Files
0pt/evidence/operational-state.json
T
admin 8f7a064177
CI (SIAX Cloud) / integration (push) Has been skipped
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 7s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 14s
CI (SIAX Cloud) / security (push) Successful in 15s
Security Scan (SIAX Cloud) / security (push) Successful in 16s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
CI (SIAX Cloud) / integration (pull_request) Successful in 27s
CI (SIAX Cloud) / quality (pull_request) Successful in 33s
CI (SIAX Cloud) / quality (push) Successful in 53s
fix(doctor-tests): GOV-06-tester uppdaterade till running-truth (0pt#96:s prod-truth-fix; down+402/404 var den föråldrade paret; ok:false-next-to-200 är nu negativa-fallet)
2026-09-22 21:11:33 +02:00

51 lines
2.5 KiB
JSON

{
"$comment": [
"GOV-06 substantiation record for siax.repo.json's `operationalState`.",
"",
"WHY THIS FILE EXISTS: `operationalState` is a claim about the world, and",
"scripts/siax-doctor.mjs cannot check the world from CI (no network, and a",
"check that needs the internet is a check that goes red for the wrong",
"reason). What the doctor CAN do offline is refuse to accept the claim",
"unless it is backed by a dated, machine-readable probe result that agrees",
"with it. That is this file. Setting operationalState to \"running\" while",
"the probes below say 402/404 now fails `pnpm siax:doctor`.",
"",
"HOW TO REFRESH: `node scripts/siax-doctor.mjs --live --write-evidence`",
"(opt-in, needs network). Or edit by hand from a real probe -- but the",
"doctor cross-checks `ok` against `httpStatus`, so a hand-written",
"`ok: true` next to a 402 is itself a failure."
],
"control": "GOV-06",
"operationalState": "running",
"checkedAt": "2026-09-22T19:08:50Z",
"method": "scripts/siax-doctor.mjs --live --write-evidence (fetch, 15000ms timeout)",
"probes": [
{
"fqdn": "0pt.app",
"env": "prod",
"url": "https://0pt.app/api/health",
"httpStatus": 200,
"ok": true,
"note": "server: unknown"
},
{
"fqdn": "api.0pt.app",
"env": "prod",
"url": "https://api.0pt.app/api/health",
"httpStatus": 200,
"ok": true,
"note": "server: unknown"
}
],
"securityHeadersObserved": {
"content-security-policy": "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self' data:; connect-src 'self'; frame-src 'none'; frame-ancestors 'none'; form-action 'self'; base-uri 'self'; object-src 'none'",
"strict-transport-security": "max-age=63072000; includeSubDomains; preload",
"x-frame-options": "DENY",
"x-content-type-options": "nosniff",
"referrer-policy": "strict-origin-when-cross-origin"
},
"runtimeEvidence": {
"$comment": "Runtime-state 2026-09-15 (inuti SIAX Cloud, ej publikt routat): Coolify-app 54 shxd6lepxuxfsjsp0ath3z1g pa server6; container healthy; /api/health {ok:true, db:ok}; /api/ready HTTP 200 {ready:true}; security headers (HSTS/XFO/CSP) observerade; egen Postgres (0pt-edge-postgres, uuid xh70k0qa0cyju840zsvsgoze, migrations 001-013 = 60 tabeller, icke-superuser-roll 0pt_app NOBYPASSRLS); backup-cron 03:15 motor + 03:05 edge-DB; 0pt.app-DNS-cutover kvar hos Simon."
}
}