fix(db): RDS-CA i poolen (app+migrator delar TLS)
This commit is contained in:
+22
-18
@@ -4,40 +4,44 @@ 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 9a9f8a6
|
||||
- Prod-server (EC2): 13.48.40.1, repo /opt/cibello-platform, HEAD 23c4a78
|
||||
- OpenClaw-workspace: cibello-work/cibello
|
||||
- Region: eu-north-1
|
||||
|
||||
## Infra (uppe)
|
||||
- EIP 13.48.40.1 → api.cibello.app + admin.cibello.app
|
||||
- CloudFront → cibello.app (marknadssajt, S3 cibello-web)
|
||||
- RDS cibello-prod-db (privat subnät, krypterad, SSL krävs: sslmode=require + NODE_EXTRA_CA_CERTS)
|
||||
- RDS cibello-prod-db (privat subnät, krypterad, SSL krävs: sslmode=require)
|
||||
- S3: cibello-production (app + training/cibello/-prefix), cibello-web (sajt)
|
||||
- Route53 zon cibello.app. Mail: Mailu mail.aamos.systems (hello@cibello.app)
|
||||
- Caddy reverse proxy på prod-servern: TLS (Let's Encrypt) → 127.0.0.1:4000
|
||||
|
||||
## AI-modell (viktigt)
|
||||
- AAMOS Core kan INTE serva Cibello (/v1/tasks 404, ej prod-duglig). Lansering kör GEMINI.
|
||||
- AAMOS_MODE=gemini. GeminiAamosClient (commit 9a9f8a6) täcker scan/etikett/kvitto/utgång.
|
||||
## AI-modell
|
||||
- AAMOS_MODE=gemini. GeminiAamosClient täcker scan/etikett/kvitto/utgång.
|
||||
- Shadow-capture skriver träningspar → s3://cibello-production/training/cibello/. Insamling PÅ
|
||||
för admin/beta (imageTraining=true); publika användare följer samtycke (gate ej byggd än).
|
||||
- FAS 2–3 (distillation, cutover) = AMOS-agentens jobb, senare. Bygg INTE här.
|
||||
för admin/beta (imageTraining=true); publika användare följer samtycke (gate ej byggd än).
|
||||
|
||||
## Hemligheter
|
||||
- SSM /cibello/prod/* (SecureString). Gemini-nyckel = f.n. återanvänd /openclaw/-nyckel (ROTERA → egen).
|
||||
|
||||
## KLART
|
||||
- FAS 1 byggt (9a9f8a6): GeminiAamosClient + shadow-capture.ts + scans-integration.
|
||||
- Server prepped: Node 22, pnpm, Redis. S3 via IAM-instansroll (aws s3 ls OK). RDS SSL löst.
|
||||
- Giltig Gemini-nyckel i SSM /cibello/prod/gemini-api-key + /opt/cibello-platform/.env.
|
||||
- [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.
|
||||
- [x] RDS SSL fixat vid källan: `packages/database/src/client.ts` strippar `sslmode` från URL och skapar explicit `ssl`-objekt från `DATABASE_CA_CERT` eller `rejectUnauthorized: false`.
|
||||
- [x] `first-deploy.sh` uppdaterad för RDS-SSL + `DATABASE_CA_CERT` + `pg_dump` 16.
|
||||
- [x] Vitest-konfig för `apps/api` och `apps/worker` laddar root `.env` så tester hittar `TEST_DATABASE_URL` även i produktion.
|
||||
- [x] Prod-server: Node 22, pnpm, Redis, postgresql-client-16, Caddy.
|
||||
- [x] `DEPLOY_MODE=production REQUIRE_REAL=1 ./infrastructure/deployment/first-deploy.sh` → **ALLA GRINDAR GRÖNA**.
|
||||
- [x] `https://api.cibello.app/healthz` och `/readyz` svarar.
|
||||
- [x] Röktest via HTTPS: registrering + token + recept fungerar.
|
||||
|
||||
## PENDING (kritiskt, i ordning)
|
||||
1. Hermetiska eval-bilder: sviten hämtar externt (429/404) → gör Grind 5 opålitlig. Använd
|
||||
LOKALA committade fixtures. (Blockerar deploy nu.)
|
||||
2. gemini som committat prod-läge: first-deploy.sh Grind 1 (~L118) + Grind 8 REQUIRE_REAL
|
||||
(~L281) hårdkodar "http". Patchat bara på servern → COMMITTA i repot.
|
||||
3. Kör first-deploy.sh (grind 0–8) till grönt.
|
||||
4. ROTERA exponerade hemligheter (gemini/JWT/SMTP/db-password) — exponerade i transkript vid debug.
|
||||
5. Före publika användare: end-user samtyckes-gate (bildträning) + in-app allergen-disclaimer.
|
||||
## PENDING (i ordning)
|
||||
1. **Rotera exponerade hemligheter** (gemini-nyckel, JWT-secrets, db-password, eventuellt SMTP).
|
||||
Några hemligheter exponerades i transkript/debug under felsökningen.
|
||||
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.
|
||||
|
||||
## 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