Files
Claude Opus 5 d7a1c4d5e1
CI (SIAX Cloud) / security (push) Successful in 31s
CI (SIAX Cloud) / integration (push) Successful in 42s
Security Scan (SIAX Cloud) / security (push) Successful in 44s
CI (SIAX Cloud) / quality (push) Successful in 1m6s
CI (SIAX Cloud) / security (pull_request) Successful in 30s
CI (SIAX Cloud) / integration (pull_request) Successful in 37s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 26s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m2s
docs: the Coolify deploy hook is LIVE — six docs still say it is a placeholder
Six documents on main assert that no Coolify app has been provisioned for 0pt and
that cd.yml's COOLIFY_APP_ID is a literal placeholder whose guard fails the job on
purpose. That is no longer true, and the gap is not cosmetic: it means a merge to
main silently ships to production while the repo's own docs promise it cannot.

Measured, not assumed:

  * repo Actions secret  COOLIFY_TOKEN   exists, created 2026-08-31T11:34:34Z
    (GET /api/v1/repos/sax3l/0pt/actions/secrets)
  * repo Actions variable COOLIFY_APP_ID exists with a real 24-character value,
    not the "TODO-no-coolify-app-provisioned-yet" literal
    (GET /api/v1/repos/sax3l/0pt/actions/variables)
  * both guards in .gitea/workflows/cd.yml therefore pass; on the push to main at
    1ff34410 (2026-09-06) the job "Deploy to Coolify / deploy" (run 11695, job
    26295) finished SUCCESS with "coolify deploy HTTP 200" in its log

Deliberately NOT claimed: that the Coolify app builds, starts or serves, or that
0pt.app DNS points at it rather than Vercel. Nobody probed the running site, and
every corrected passage says so explicitly rather than replacing one unverified
claim with another.

Corrected: README.md "Deploy", docs/02-architecture.md hosting callout,
docs/architecture/decisions/0001 (consequence annotated, decision untouched --
an ADR is a historical record), docs/runbook/incident.md (the symptom row is now
inverted: the risk is an unintended deploy, not a red job),
docs/compliance/GOLDEN-STANDARD-REPORT.md D4 (❌ -> ⚠️, not ✅, because "webhook
accepted" is not "app serves"), docs/compliance/INVENTORY.md CI row.

Falsifiable check over all six files (stale claim present without a correction
marker = red):

  origin/main                                  -> FAIL (12 findings)
  this branch                                  -> PASS
  mutation: drop only the README bullet        -> FAIL
  mutation: drop only the runbook correction   -> FAIL

The check initially passed vacuously on docs/02-architecture.md because PR #32 had
already put the string "CORRECTED 2026-09-06" in that file for an unrelated reason;
the marker was made specific so the check could actually fail there too.

Docs only. No workflow files, no .gitignore, no source.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 09:56:53 +02:00

1.9 KiB

Runbook: Incident — 0pt

Severity-nivåer

Nivå Exempel Svarstid
S1 Live-instans nere / dataexponering Omedelbart
S2 Större funktion trasig Inom 30 min (arbetstid)
S3 Mindre funktion/UI Inom 1 arbetsdag

Kända felbilder (2026-08-10)

Symtom Sannolik orsak Åtgärd
/api/health grön men /api/orders tom Ingen DB i prod (in-memory-store) Sätt DATABASE_URL; se BACKLOG P3-4
/api/0pt/* svarar 200 anonymt Middleware körs inte på Vercel-deployen (lucka S1) Rotorsaksanalys; verifiera 401 anonymt före "skyddad"
deploy.yml-röd på main Guard: placeholder COOLIFY_APP_ID (avsiktligt) INAKTUELL 2026-09-06 — guarden passerar numera; COOLIFY_APP_ID är en riktig UUID och COOLIFY_TOKEN finns Rätt symtom i dag är det omvända: varje merge till main utlöser en riktig omdeploy mot cloud.siax.io (verifierat: push 1ff34410, jobb Deploy to Coolify / deploy = success, coolify deploy HTTP 200). Vet vad du deployar innan du mergar
Test *.realinfra.test.ts skip ST0RE inte nåbar från CI Inte en incident — förväntat beteende
Trivy-fynd på services/scrapers/* Medvetet behållen bypass-stack Läs GOLDEN-STANDARD-REPORT C6; triage, radera ej

Incidentprocess

  1. Triagera: läs /api/health, senaste CI-run, git log -5.
  2. Kommunicera: logga i plattformens kanal; nämn tidslinje.
  3. Minsta korrekta ändring: aldrig radera funktionalitet (AR-1); fixa med minsta diff, håll tester gröna (pnpm run typecheck && pnpm run test).
  4. Evidens: dokumentera i docs/compliance/ (märk VERIFIERAT).
  5. Efter incident: skriv post-mortem i docs/ + uppdatera BACKLOG om ny lucka.

Roller

  • Oncall: se docs/runbook/oncall.md.
  • Eskalering: Simon Axelsson (simon@siax.io) — produkt- och infrastrukturbeslut (t.ex. bypass-stacken, Vercel-avveckling) tas alltid av honom.