# BACKLOG — 0pt (FAS 5) > P0 = säkerhetskritiskt · P1 = hög · P2 = medel · P3 = låg · P4 = hygien · P5 = struktur · P6 = senare. > Alla luckor hänvisar till docs/architecture/ARCHITECTURE.md §7 (S1–S12) och GOLDEN-STANDARD-REPORT. > **[BYPASS]** = berört av det medvetna användarbeslutet (rör ej kod). ## P0 — säkerhet, görs först (kräver produktbeslut + egna PR:er) | ID | Lucka | Åtgärd | Kräver | |---|---|---|---| | P0-1 | **S1** — middleware körs inte i prod (live: 200 anonymt) | Rotorsaksanalys (Next 16 + src/-träd + Vercel build-output), sedan verifierad 401 anonymt | Prod-deploy + test mot live | | P0-2 | **S2** — tenant tas ur body/query | Alla /api/0pt/*-handlers läser `x-0pt-verified-tenant` (middleware-header) | Fungerande middleware (P0-1) | | P0-3 | **S3** — hela icke-/api/0pt-API:t utan auth | Auth på orders/payments/admin/subscriptions/uploads/estimates/screen/ai | Auth-design (Zitadel-session eller bearer) | | P0-4 | **S4** — escrow-release utan identitet | `POST /payments/{id}/release` kräver verifierad ägare + betalningsbekräftelse före `delivered` | P0-3 | | P0-5 | **S5** — CL0UD fail-open | fail-closed + `assertPolicyConfigSafe` (mönster från auth) + NODE_ENV-spärr | — | | P0-6 | **S8** — FastAPI-engine utan auth | `X-Internal-Token`-verifiering (constant-time) på alla engine-endpoints | Koordinering med deploy | | P0-7 | **S10** — connection_config ur body (SSRF-primitiv) | Allow-list av hosts/protokoll + tenant-scoped källdefinitioner; aldrig godtycklig URL | — | | P0-8 | **C11** — middleware typkontrolleras ej | Inkludera middleware.ts i tsconfig.check.json; eslint blockerande | — | ## P1 — hög | ID | Lucka | Åtgärd | |---|---|---| | P1-1 | **S6** — AUD0 no-op utan URL | Wire AUD0_URL från Infisical; verifiera event-emission live | | P1-2 | **S7** — db-grant påstår kryptering | Implementera AES-GCM med GRANT_ENC_KEY, read-only-validering, lagring + audit — eller ta bort påståendet | | P1-3 | **S12** — svag session | exp-kontroll, rotation, användar-binding | | P1-4 | **S9** **[BYPASS]** | Produktbeslut: behåll/bygg-om bypass-stacken (GPL-fläckar + juridiskt läge). Teknisk radering är INTE planerad — beslut om framtida läge fattas av Simon | | P1-5 | **D4** — Coolify-app ej provisionerad | Provisionera app i cloud.siax.io, fyll COOLIFY_APP_ID + COOLIFY_TOKEN (Infisical) | | P1-6 | **C8** — Infisical ej inkopplat | Infisical-projekt 0pt + env-mapping; Vercel-env avvecklas i takt med cutover | ## P2 — medel | ID | Lucka | Åtgärd | |---|---|---| | P2-1 | **D5** — ingen backup/restore | När DB provisioneras: pg_dump-schema + offsite (jfr fleet-blockerare), restore-test i kalender | | P2-2 | **C13** — retention/deletion-after-job | TTL-jobb + DELETE-väg + audit | | P2-3 | **C10→P0-7-efterföljd** | Källquery-vägar tenant-scopade | | P2-4 | **D6** — observabilitet | Strukturerad loggning + correlation-id-propagering; OTel-agent senare | ## P3 — låg | ID | Lucka | Åtgärd | |---|---|---| | P3-1 | **A4/A5-efterföljd** | Registera 0pt-capabilities i CL0UD capability-registry (API/CLI/MCP/SDK) från contracts/openapi.yaml | | P3-2 | **S2-efterföljd** | Tenantmodell bekräftas mot CL0UD-tenantregister (1:1 Zitadel-org?) | | P3-3 | **C2-efterföljd** | X-Tenant-Id-headerkontroll vs body → enhetlig policy | | P3-4 | **Engine-DB** | asyncpg inkopplad; Postgres som riktig store för ordrar/jobb (idag in-memory) | ## P4 — hygien (kan göras i en session utan produktbeslut) | ID | Åtgärd | |---|---| | P4-1 | `duckdb` saknas i services/scrapers/requirements.txt trots import — lås versionen | | P4-2 | `package.json` namn `"my-v0-project"` → `@siax/0pt` (spårbarhet) | | P4-3 | sql/002/003 refereras men saknas — antingen skapa eller korrigera referenserna | | P4-4 | Committed `__pycache__/*.pyc` + `services/scrapers/output/*.json` (skrapdata) — flytta ut ur git (ej radering av funktionalitet) | | P4-5 | `.github/workflows/ci.yml` (legacy GitHub-mirror) — beslut om GitHub-avveckling; behålls tills dess (AR-1) | | P4-6 | In-memory-state-fix: Map per instans → delad store (förutsätter P3-4) | ## P5 — struktur | ID | Åtgärd | |---|---| | P5-1 | runbook/SLO-uppföljning i drift (oncall-rotation) | | P5-2 | Docs: konsumentled (Protosell/VehIQ-integrationer) verifieras och dokumenteras | ## P6 — senare | ID | Åtgärd | |---|---| | P6-1 | Designsystem-konvergens mot @siax/ui (öppen fråga §8.8) | | P6-2 | NER (spaCy), OCR (self-hosted på N0D), kvalitetslager (docs/P0_DATASET_QUALITY_FLOW.md) | | P6-3 | OpenSanctions-avtal: verifiera kommersiella villkor före produktionsvolym | | P6-4 | AI-parsning → INF0-gateway (consumes INF0) | ## Bypass-undantag (formellt) Följande backlog-poster berör den medvetet behållna bypass-stacken och ska inte åtgärdas som "radera koden": P1-4. All övrig backlog rör inte `services/scrapers/*`, `services/infra/docker-compose.data-stack.yml` eller `adaptive_router.py` (AR-1-undantag).