CI (SIAX Cloud) / quality (push) Successful in 49s
CI (SIAX Cloud) / security (push) Successful in 7m5s
Security Scan (SIAX Cloud) / security (push) Successful in 7m5s
CI (SIAX Cloud) / integration (push) Successful in 18m53s
CI (SIAX Cloud) / security (pull_request) Successful in 46s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 58s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m38s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m45s
This snapshot was found sitting uncommitted in a stale /opt/vehiq-work lane clone dated ~2026-09-09..18, base branch: feat/p060-p068-ingestion-plane. Not reviewed, not verified against current main. Pushed only so the directory could be deleted without losing the diff.
5.2 KiB
5.2 KiB
BACKLOG — 0pt (FAS 5)
Beslut 2026-09-16:
[BYPASS]betyder hädanefter migrationsarbete mot b0ts + 1p, inte en förbjuden teknisk kategori. Förmågor bevaras och görs valbara; provider-/routeägarskap konsolideras i 1p.
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] | Migrera aktiv transport, rotation och high-risk-profiler till b0ts + 1p; behåll historisk funktionalitet isolerad tills paritet är verifierad. Ingen blanket-radering eller blanket-förbud. |
| 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).