feat(storage,deploy): delad S3/mock-lagring, SSM .env-sync, Gemini readyz
- @app/storage med MockStorage + AwsStorage delas mellan API och worker - Workerns readUrl() ger presignerad S3-URL i aws-läge (fixar mock-s3 404) - sync-env-from-ssm.py hämtar /cibello/prod/* och skriver .env; first-deploy.sh kör det i prod - /readyz returnerar 503 om app.aamos.healthCheck() misslyckas - docs/SECRETS.md med rotations- och SSM-regler
This commit is contained in:
+11
-9
@@ -4,9 +4,11 @@ pnpm/turbo-monorepo: Fastify+Drizzle+BullMQ (apps/api, apps/worker), Expo (apps/
|
||||
Roller: OpenClaw bygger. Extern granskare ("Sven", i Johans chatt) verifierar + ger promptar.
|
||||
|
||||
## Var saker finns
|
||||
- Prod-server (EC2): 13.48.40.1, repo /opt/cibello-platform, HEAD 81927b6
|
||||
- Prod-server (EC2): 13.48.40.1, repo /opt/cibello-platform
|
||||
- OpenClaw-workspace: cibello-work/cibello
|
||||
- Region: eu-north-1
|
||||
- SSM: `/cibello/prod/*` (enda sanningskälla för hemligheter)
|
||||
- `.env` på servern härleds ur SSM via `infrastructure/deployment/sync-env-from-ssm.py`
|
||||
|
||||
## Infra (uppe)
|
||||
- EIP 13.48.40.1 → api.cibello.app + admin.cibello.app
|
||||
@@ -36,6 +38,10 @@ Roller: OpenClaw bygger. Extern granskare ("Sven", i Johans chatt) verifierar +
|
||||
- SMTP-pass för hello@cibello.app.
|
||||
|
||||
## KLART
|
||||
- [x] **Skarpt bildflöde:** delad lagringsmodul `@app/storage` (MockStorage + AwsStorage) används av både API och worker. Workerns `readUrl()` ger nu riktig presignerad S3-URL i `aws`-läge istället för `/v1/mock-s3/...`.
|
||||
- [x] **SSM = enda sanningskälla:** `infrastructure/deployment/sync-env-from-ssm.py` hämtar `/cibello/prod/*` och skriver `/opt/cibello-platform/.env`. `first-deploy.sh` kör detta i produktion.
|
||||
- [x] **Gemini-nyckel hälsokoll:** `/readyz` returnerar 503 om `app.aamos.healthCheck()` misslyckas (t.ex. ogiltig Gemini-nyckel).
|
||||
- [x] Dokumenterat i `docs/SECRETS.md`.
|
||||
- [x] FAS 1 byggt: GeminiAamosClient + shadow-capture.ts + scans-integration.
|
||||
- [x] Gemini som committat prod-läge (AAMOS_MODE=gemini).
|
||||
- [x] Hermetiska eval-fixtures committade.
|
||||
@@ -61,14 +67,10 @@ Roller: OpenClaw bygger. Extern granskare ("Sven", i Johans chatt) verifierar +
|
||||
## PENDING (i ordning)
|
||||
1. **Egen Gemini-nyckel + SMTP-pass** — Johan levererar värden lokalt; claw skriver till SSM/.env.
|
||||
- Nuvarande `.env` innehåller fortfarande den delade `/openclaw`-Gemini-nyckeln.
|
||||
2. **End-user samtyckes-gate** för bildträning + in-app allergen-disclaimer före publik lansering.
|
||||
3. **Säkerhetsgranskning**: öppna portar, Caddy-konfig, IAM, S3-bucket-policy.
|
||||
4. **Övervakning/larm**: logga fel, sentry, health-check alert.
|
||||
5. **Worker-S3-reader**: `readUrl` i `apps/worker/src/context.ts` pekar fortfarande på
|
||||
`/v1/mock-s3/` vilket ger 404 på riktiga S3-uppladdningar. För fullt skarpt
|
||||
bildflöde behöver den returnera presignerad S3-URL (jmf eval-fixturer som använder
|
||||
data URLs). Budget-spärren är verifierad trots detta; Gemini-anrop nås nu före
|
||||
bildhämtning.
|
||||
2. **Skarpt end-to-end-test** när Grupp B är på plats: riktig scan → S3 → Gemini → resultat + träningspar i `s3://cibello-production/training/cibello/`.
|
||||
3. **End-user samtyckes-gate** för bildträning + in-app allergen-disclaimer före publik lansering.
|
||||
4. **Säkerhetsgranskning**: öppna portar, Caddy-konfig, IAM, S3-bucket-policy.
|
||||
5. **Övervakning/larm**: logga fel, sentry, health-check alert.
|
||||
|
||||
## Så här återupptar en färsk session
|
||||
Läs denna fil + `git log --oneline -8` + senaste prompt från Sven. Arbeta stramt. Echo ALDRIG
|
||||
|
||||
Reference in New Issue
Block a user