Files
Cibello-app/HANDOFF.md
T

54 lines
3.1 KiB
Markdown

# Cibello — HANDOFF / DEPLOY-STATE
Cibello = AI-matapp (recept + bildscanning av kylskåp/etiketter/kvitto/utgångsdatum).
pnpm/turbo-monorepo: Fastify+Drizzle+BullMQ (apps/api, apps/worker), Expo (apps/mobile).
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
- 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)
- 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
- 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).
## Hemligheter
- SSM /cibello/prod/* (SecureString).
- **ROTERADE (Grupp A):** JWT_ACCESS_SECRET, JWT_REFRESH_SECRET, ENTITLEMENT_SIGNING_SECRET,
db-password (cibello_admin). Både RDS och SSM uppdaterade; appen verifierad med nya värden.
- **VÄNTAR PÅ JOHAN (Grupp B):**
- Egen Cibello-Gemini-nyckel (ersätt återanvänd /openclaw/-nyckel).
- SMTP-pass för hello@cibello.app.
## KLART
- [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.
- [x] JWT- + DB-hemligheter roterade och verifierade.
## PENDING (i ordning)
1. **Egen Gemini-nyckel + SMTP-pass** — Johan levererar värden lokalt; claw skriver till SSM/.env.
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
.env/hemligheter (`set +x`, variabler, aldrig `cat .env`). Uppdatera denna fil innan sessionen tar slut.