Files
Cibello-app/docs/PRE-LAUNCH-READINESS.md
T
2026-08-11 07:40:00 +07:00

89 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Cibello Pre-launch readiness report
> Genererad 2026-08-11 efter slutförande-audit.
> Repo: `/home/dator_ubuntujpb/.openclaw/workspace/cibello-work/cibello`
> HEAD: `63d83e0d7cebf12fce8573f54f828cd4dc2167aa`
---
## Vad som är grönt ✅
| Kontroll | Resultat |
|----------|----------|
| Branch / repo-kontroll | HEAD stämmer, trädet rent |
| `pnpm typecheck` | 19/19 paket gröna |
| `pnpm test --force` | 34/34 tasks, 328 tester gröna (kört 2× på färsk DB) |
| `pnpm build` | `@app/admin`, `@app/api`, `@app/worker` byggda |
| `brand-guard.sh` | OK varumärket lever endast i `brand.config.json` |
| Databas | `cibello_test` färskt skapad med `DROP DATABASE + CREATE DATABASE … OWNER app_user`, migrerad + seedad med 254 recept/102 ingredienser/76 tabeller |
| Allergen-invariant | `@app/recipe-generation/test/allergen-invariant.test.ts` grön varje seedat recept har `allergens` som matchar färsk derivering från `canonical_ingredients` |
| Safety canary | Worker-testet grön; canary-kontraktet är `{allergen_invariant_brott, overifierade_visade, food_safety_lint_avvisade_7d}` |
| GDPR-radering | `DELETE /v1/me` tömmer `memory_items`, `taste_signals`, `feedback`, `ai_corrections`, `ai_training_bank`, `scan_jobs` och tillhörande bilder (residual-test grön) |
| i18n-paritet ×12 | Tester för locale-preferenser, minnesrendering och enhetsetiketter gröna |
| Consent-grindar | Ingen personalisering/impact utan `personalization=granted` (recommendations + memory-impact tester gröna) |
| Integritetsspärrar | Impact för användare A returnerar aldrig användare B:s data |
| Ops-kontraktet | `/ops/v1/summary` har 14 toppnycklar + `wall` med 6 tiles; `/ops/v1/health` svarar `{"ok":true,"app":"cibello"}`; tester gröna |
---
## Ändringar i denna runda
1. `cleanup(memory): impact läser bara egen userPreferences-rad`
- `computeMemoryImpact` hämtar nu endast den anropande användarens fulla `user_preferences`-rad.
- Andra hushållsmedlemmars personliga preferenser läcker inte in; endast de begränsande fälten (`allergens`, `avoidIngredientIds`, `spiceLevelMax`) läses för säkerhetsfiltrering.
2. `docs(status): uppdatera till nuläge (S1S6, 254 recept, ops+wall, EOC)`
- `docs/STATUS.md` speglar nu 19 paket, 328 tester, 254 recept, S1S6, ops + wall, EOC.
3. `docs(security): genomgång av hardening-checklist inför prod`
- `infrastructure/security/hardening-checklist.md` har kryssats av efter faktiskt läge; återstående gap listade (se nedan).
4. `ops(api): lägg till /ops/v1/health för EOC`
- Fanns inte i koden trots att EOC-panelen förväntas anropa den.
- Endpointen är token-skyddad och svarar med det frysta kontraktet.
---
## Hardening-gaps inför produktion ⚠️
Baserat på genomgång av `infrastructure/security/hardening-checklist.md`:
- **Server**
- Dedikerad Linux-användare `<slug>` utan sudo är inte provisionerad (`/opt` är tom).
- Secrets i `/opt/<slug>-platform/secrets/*.env` är inte på plats.
- **`Dockerfile.admin` saknar `USER`-direktiv och kör som root** api/worker har redan `USER app`.
- Reverse proxy + TLS är inte uppsatt i denna miljö.
- Brandvägg och automatiska säkerhetsuppdateringar är ej verifierade.
- **AWS**
- IAM-roll `<slug>-app` är inte provisionerad.
- S3-bucket med block public access / SSE-S3 / lifecycle är inte provisionerad.
- `create-database.sql` finns för begränsad DB-roll, men faktisk RDS-instans är inte provisionerad här.
- Secrets Manager/SSM för produktionshemligheter är inte provisionerad.
- **GDPR**
- Personuppgiftsbiträdesavtal med AWS + AAMOS-drift saknas.
---
## Jordnötssmör-beslutet 🥜
- Nollcellen för jordnötssmör har fortfarande **0 recept** i seed (kandidaterna i förra rundan var för enkla och underkändes).
- Beslut: **lämnat medvetet ofyllt** i denna runda för att undvika bred skalning/generering nu.
- Rekommendation: vid lansering eller strax innan, kör en **riktad omkörning** för satay, jordnötsnudlar, afrikansk jordnötsgryta etc. (≥3 ingredienser) genom samma verifieringspipelin + import som 254-setet.
---
## Leverans
- Git bundle: `/mnt/c/Users/Public/cibello-63d83e0d7cebf12fce8573f54f828cd4dc2167aa.bundle`
- Storlek: 2.6M
- `git bundle verify`: OK, complete history, sha1
- HEAD: `63d83e0d7cebf12fce8573f54f828cd4dc2167aa`
---
## Sammanfattning
Kodbasen är **funktionellt klar och alla automatiska grindar är gröna** på färsk DB. Återstående arbete inför produktion är uteslutande infrastruktur/provisionering, avtal och den valfria jordnötssmör-cellen inga blockeras av kod.