6.9 KiB
BLOCKERS.md — 0pt (§1.4)
Policy: enligt SIAX-F0KUSREPO-PROMPT §1.4 (Blockerarpolicy) dokumenteras varje blockerare som inte kan lösas själv eller plattformsbrett här — exakt vad som krävs för att lyfta den. En obesvarad blockerare som inte står i denna fil räknas som ett fel i leveransen (Appendix C #20).
Märkning: 🔴 = öppen blockerare · 🟡 = beslutad/accepterad skuld (frågan är avgjord, men konsekvensen kvarstår i koden/driften) · Bevis per post (AR-5).
Verifierad färsk 2026-08-11 mot
main@5c36dc300f45fed6ae789a5edccc0dfcbfb98918(git.siax.io/sax3l/0pt). Detta dokument fanns inte tidigare i repot (bekräftad frånvaro vid en tidigare audit-passering) — denna fil är den första skrivningen, inte en uppdatering.
B-1 🟡 — WAF-bypass-/evasionstacken (services/scrapers/*)
| Fält | Innehåll |
|---|---|
| Vad blockerar | services/scrapers/waf_bypass.py, engine.py och engine_v2.py innehåller en FlareSolverr-/Tor-/proxyrotationsstack som strider mot CLAUDE.md §1:s uttryckliga förbud mot WAF/bot-detektionsbypass. En kirurgiskt ren borttagnings-PR (#7, chore(compliance): ta bort den förbjudna WAF-bypass-/evasionstacken) verifierades ren men stängdes omergad 2026-08-09. |
| Vad krävs för att lyfta den | Ett uttryckligt, dokumenterat kontoägarbeslut: behåll, bygg om, eller ta bort stacken. |
| Vem beslutar | Simon Axelsson (kontoägare). |
| Nuvarande status | Redan beslutad (behåll) — 2026-08-11. Kontoägaren tillfrågades direkt via en interaktiv beslutsprompt, som svar på PR #7:s borttagningsförslag, och valde uttryckligen behåll. Beslutet är nu dokumenterat i AGENTS.md (rad ~21–30) och SECURITY.md, mergat till main via PR #15 (docs-only, merge-commit 5c36dc3 — samma commit som är denna verifierings main-HEAD). PR #7 kvarstår closed/unmerged och rörs inte av detta dokument eller detta uppdrag. Ingen affärs- eller juridisk motivering utöver "behåll" är dokumenterad, och ingen ska hittas på om den saknas i framtida rapporter. services/scrapers/{waf_bypass,engine,engine_v2}.py är oförändrade av denna PR och ligger utanför detta dokuments och detta uppdrags mandat. |
| Bevis | git log -- services/scrapers/waf_bypass.py (bb6be0f, afd301f); Gitea API repos/sax3l/0pt/pulls/7 (state: closed, merged: false, closed_at: 2026-08-09T09:49:05Z); Gitea API repos/sax3l/0pt/pulls/15 (merged: true, merged_at: 2026-08-11T09:36:17Z); AGENTS.md rad 21–30 (denna checkout). |
B-2 ✅ LÖST 2026-09-30 — Coolify-app provisionerad, 0pt.app kanonisk prod
| Fält | Innehåll |
|---|---|
| Vad blockerar | (Inget — löst.) Tidigare: cd.yml saknade provisionerad Coolify-app (BACKLOG P1-5). Den rapporten var falsk blocker: den testade 0pt.siax.io (fel domän) — 0pt.app är och var den kanoniska prod-ytan (siax.config.json: "domain": "0pt.app"). |
| Hur den löstes | Coolify-app provisionerad + deployad via cd.yml (COOLIFY_APP_ID via repo-vars). Live-verifierat 2026-09-30: GET https://0pt.app/api/health → 200 (db: ok), GET /admin → 200, GET /api/orders → 401 fail-closed (OPT_UNAUTHENTICATED). main e7d5ee3 är deployad. |
| Vem beslutar | — |
| Nuvarande status | LÖST 2026-09-30. 0pt.app är kanonisk prod-yta (verifierad). Eventuellt 0pt.siax.io-alias är en separat DNS-fråga (ej blockerande; domänen svarar i dagsläget ej). |
| Bevis | Live-prober 2026-09-30 (health 200 db:ok, /admin 200, /api/orders 401); siax.config.json domain 0pt.app; .gitea/workflows/cd.yml deploy-väg; main e7d5ee3 (PR #134). |
B-3 🔴 — DNS-zonerna (0pt.app, 0pt.dev) delegerade till Vercel, inte egen PowerDNS
| Fält | Innehåll |
|---|---|
| Vad blockerar | Live NS-uppslag (denna session, 2026-08-11) visar att både 0pt.app och 0pt.dev fortfarande delegeras till ns1.vercel-dns.com/ns2.vercel-dns.com — trots att PowerDNS (server5/server6, se z0ne-DNS-migrationen) redan håller skuggkopior av dessa zoner. |
| Vad krävs för att lyfta den | Byt NS-poster hos registrar (Name.com) till ns1.siax.io/ns2.siax.io; verifiera att zoninnehållet i PowerDNS matchar produktionens faktiska poster innan cutover (dump/backup krävs per §1.4:s regel om irreversibla DNS-delegeringsbyten); ta därefter bort eller markera skuggkopiorna som primära. |
| Vem beslutar | Simon Axelsson — DNS-cutover för en produktionsdomän räknas som en operation som kräver dump/backup före körning enligt §1.4. |
| Nuvarande status | Fortfarande öppen. Verifierad färsk denna session (nslookup -type=NS 0pt.app / 0pt.dev, 2026-08-11): båda svarar fortfarande med Vercel-nameservrar. |
| Bevis | nslookup -type=NS 0pt.app och 0pt.dev (körd denna session, 2026-08-11). |
B-4 🔴 — middleware.ts exekverar inte i den liva Vercel-produktionsbygget
| Fält | Innehåll |
|---|---|
| Vad blockerar | Trots att auth-koden i middleware.ts är fail-closed i källan, och trots att en färsk fix (PR #11, fix(security): require auth on GET /api/orders and GET /api/admin/metrics, commit 15a0dbe) redan är mergad till main, svarar de liva produktionsrutterna fortfarande anonymt. Verifierat färskt denna session: GET https://0pt.app/api/0pt, /api/orders och /api/admin/metrics gav samtliga HTTP 200 anonymt (2026-08-11). Detta är repots egen dokumenterade lucka P0-1/S1 i BACKLOG.md/GOLDEN-STANDARD-REPORT.md — rotorsaken är okänd. |
| Vad krävs för att lyfta den | Någon med Vercel-deploy-access måste undersöka byggutmatningen (Next 16 + src/-trädet, ev. edge-runtime-konfiguration) för att fastställa varför middleware.ts inte körs i produktionsbygget, fixa det, och verifiera med en levande anonym request → 401 efter fix. |
| Vem beslutar | Ingen produktbeslutsfråga — tekniskt rotorsaksarbete som kräver Vercel-projektåtkomst som denna session saknar. |
| Nuvarande status | Fortfarande öppen, och allvarligare än BACKLOG.md:s ursprungliga formulering antyder: koden är nu fixad (PR #11 mergad) men produktionen speglar ändå inte koden — detta bekräftar att gapet är i bygg-/deploykonfigurationen, inte (bara) i applikationskoden. |
| Bevis | docs/compliance/BACKLOG.md P0-1; docs/compliance/GOLDEN-STANDARD-REPORT.md C1/C3; curl -o /dev/null -w '%{http_code}' mot samtliga tre rutter (körd denna session, 2026-08-11, samtliga 200). |
Undantag (formellt, oförändrat av detta dokument)
Detta dokument beskriver ovanstående blockerare utan att lösa dem. Ingen av
posterna ovan har medfört ändringar i services/scrapers/{waf_bypass,engine,engine_v2}.py,
services/scrapers/requirements.txt, services/infra/docker-compose.data-stack.yml,
docs/compliance/BACKLOG.md, eller PR #7 (varken återöppnad eller mergad). Den frågan
är explicit under hantering i ett separat, parallellt spår per uppdragets instruktion.