From ddbda3a8dd313c0561667bb8f5648abb75540cfc Mon Sep 17 00:00:00 2001 From: sax3l Date: Tue, 22 Sep 2026 06:10:19 +0200 Subject: [PATCH] =?UTF-8?q?docs(truth):=20STATUS.md=20=E2=80=94=20slutprod?= =?UTF-8?q?uktions-verifiering=202026-09-22=20(live-matris,=203=20fixar=20?= =?UTF-8?q?+=20CI-infra,=20=C3=A4rliga=20kvarvarande)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- STATUS.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/STATUS.md b/STATUS.md index 660a5d0..7d0939f 100644 --- a/STATUS.md +++ b/STATUS.md @@ -204,3 +204,74 @@ Residual honesty: the PYTHON-side tests run in CI, but the full adapter→Next.js route chain has not been exercised against a live deployed edge in this branch (the route's own fail-closed behavior is unit-proven). That keeps P065 at INTEGRATION_TESTED, not LIVE_VERIFIED. + +--- + +## SLUTPRODUKTIONS-VERIFIERING 2026-09-22 (live-mätt, ej påstått) + +**Prod: `https://0pt.app` på flottan (server6, Coolify-app `shxd6lepxuxfsjsp0ath3z1g`), +container-image på exakt merge-SHA `df6ab70` via den signerade release-kedjan +(cosign-attestation verifierad före redeploy). DNS A → 65.109.19.146, +NS chris/maxine.ns.cloudflare.com — Vercel är borta.** + +### Live-matris, mätt med curl (2026-09-22 04:09 UTC) + +| Yta | Resultat | +|---|---| +| Front `/` + 10 nyckelsidor (bestall, katalog, kallor, tjanster, portal, admin, order) | 200 ×11 | +| `/api/health` | 200 `{ok:true, db:"ok", engine:"ok"}` | +| `/api/ready` | 200 (fail-closed-grinden: var 503 före DB-provisioneringen) | +| `/api/0pt/*` (9 rutter) anonymt | **401 ×9** — S1-luckan (2026-08-07: anonym 200) är STÄNGD | +| `/api/orders`, `/api/admin/metrics` anonymt | 401 | +| `/api/subscriptions` | 200 `[]` (var 500: migration 014, se nedan) | +| `POST /api/estimates` | 200 (edge räknar + engine-wire) | +| `GET /api/catalog`, `/api/sources` | 200 (publika läsvyter, avsiktligt) | +| `GET /api/vehicles` utan param | 400 (kräver reg-nr — korrekt) | +| Security headers | HSTS(63072000+preload) · CSP · XFO DENY · nosniff · ingen X-Powered-By | + +### Denna pass fixat (3 PR, alla mergerade + deployade live) + +1. **PR #80** — G17 hook-pin re-bump `7725498 → a401880` (re-review: 0 diff under + `ci/v2/reference-hooks/`). Release chain + gated deploy gröna igen. +2. **PR #81 (fix för issue #53)**: 7 legacy money-routes (orders, orders/[id], + subscriptions, payments/deposit, payments/release, webhooks/stripe, + admin/metrics) mappar nu `SiaxError(DEPENDENCY_UNAVAILABLE, 503, retryable)` + via `app/api/siax-error-mapping.ts` i stället för att läcka Next opaka 500. + Stripe-webhooken svarar 503 `received:false reason:store_unavailable` på + store-outage — aldrig tyst `received:true` för ett betalt event som inte + processats. 3 nya tester pinar kontraktet. +3. **PR #86**: `sql/014_subscriptions_created_at.sql` — `lib/subscriptions-store.ts` + SELECT:ade `created_at` som `001_init.sql` aldrig definierat (42703 mätt live: + GET /api/subscriptions har ALWAYS varit 500 mot Postgres). Kolonnen ADD:ad + idempotent LIVE på 0pt-edge-postgres; route svarar nu 200 `[]`. +4. **PR #87**: cd-gatens not-ready-regex — cosign 3.1.3 säger + `no matching attestations:` (utan `found`); en transient not-ready misstolkades + som hårt verify-fel. Fail-closed för riktiga attestfel oförändrad. +5. **CI-infra reparerad**: repo-secrets `SIAX_CI_TOKEN` + `REGISTRY_TOKEN` var + döda efter token-svepet (2026-09-22 eng0-introspect-rotation revoade 107+ tokens; + fällan: 0pt:s repo-secret överrider org-secreten — org-PUT räcker inte). Nya + siax-ci-tokens (`write:package,read:package` + all) mintade och satta via + secrets-API (PUT 204, verifierade via lyckad release-kedja). + +### 0pt-motor (engine, satellite) + +- 6 containers Up på server6 (`motor-provisional`), core `/health` ok+pg+redis, + delivery `/version` = fb67870, core revision = 6cfd433 — båda IN main. +- CI grön på main (runs 55985/55987/56004) — healer-issue #38 (run 40562, + 2026-09-20) stängd som transient runner-flake (apt-GPG under last). +- Bara `main` kvar i 0pt och 0pt-motor (8 + 6 stale grenar raderade — alla + bevisade redan mergerade via `git merge-base --is-ancestor`). +- motor/-executor-koden (signals/NER/normalization, 3507 rader nya sedan 6cfd433) + konsumeras av `Dockerfile.motor`-imaget som ännu inte har ett driftsatt runtime + i stacken (core/ingest/resolve/delivery importerar ej motor/ — verifierat + import-graf). Byggs enligt `scripts/build-images.sh` + `verify-image.sh`-gaten + när executor-ytan aktiveras — dokumenterat i `docs/runbook/deploy.md`. + +### Kvarstår (ärligt, ej gömt) + +1. **Stripe-creds** (Simon): live-keys → edge-envs `STRIPE_SECRET_KEY`/`STRIPE_WEBHOOK_SECRET`. + Innan dess förblir payments 501 och issue #67:s staging-triage kan ej köras. +2. **queue: not_configured** — ingen Redis i edge-stacken (ärligt rapporterat). +3. **`0pt.siax.io`/`motor.siax.io`**: medvetet ej återupprättade (0pt.app + lokala + 127.0.0.1-portar är kanoniska ytor; issues #70/#35 stängda/avgjorda därefter). +4. **motor.siax.io**: motor:s publika yta kräver Simon-beslut (traefik-labels + DNS).