Files

4.9 KiB
Raw Permalink Blame History

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).