Commit Graph
4 Commits
Author SHA1 Message Date
admin b3239487b7 feat(document-workbench): wire customer upload, structuring, credits and readiness
CI (SIAX Cloud) / integration (push) Skipped
CI (SIAX Cloud) / sonar (push) Skipped
masterplan-lock / check (push) Successful in 10s
CI (SIAX Cloud) / sonar (pull_request) Skipped
Security Scan (SIAX Cloud) / security (push) Successful in 13s
masterplan-lock / check (pull_request) Successful in 7s
CI (SIAX Cloud) / security (push) Successful in 26s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 17s
CI (SIAX Cloud) / security (pull_request) Successful in 19s
CI (SIAX Cloud) / quality (push) Successful in 1m9s
CI (SIAX Cloud) / quality (pull_request) Successful in 2m26s
CI (SIAX Cloud) / integration (pull_request) Successful in 2m33s
- POST /api/0pt/documents/upload: real multipart bytes into DOC0 through the
  durable attempt journal and the existing coordinator; verified tenant/actor
  only, project authorization fail-closed.
- POST /api/0pt/documents/structure: DOC0 segments -> INF0 -> evidence-bound
  validation -> optional JSON/CSV export, with credit reserve/settle.
- Credits: balance, server-owned price book, Stripe Checkout and idempotent
  webhook reconciliation via a Stripe re-read of session + payment intent.
- /portal/dokument and /portal/krediter: SIAX-styled workspace.
- @siax/access: universal, framework-neutral OpenFGA project relationship
  primitive reusable by DOC0/N0D/other products.
- Readiness: real Redis PING probe instead of presence-only; queue is now a
  live dependency when configured.
- Dockerfile: copy every workspace manifest so --frozen-lockfile works.
- Format/build hygiene: .prettierignore, .worktrees ignored, valid manifest YAML.
2026-11-02 14:46:10 +01:00
admin f6a29da7e5 fix(deploy): corepack-retry-loop 8×15s i båda build-stegen (server6-EGONNRESET-flaken) + GOV-06 live-evidens 2026-09-22 (0pt.app=200)
masterplan-lock / check (push) Successful in 4s
Security Scan (SIAX Cloud) / security (push) Successful in 14s
Deploy to Coolify / deploy (push) Failing after 9m58s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Failing after 9s
CI (SIAX Cloud) / quality (push) Failing after 21s
CI (SIAX Cloud) / security (push) Successful in 14s
CI (SIAX Cloud) / integration (push) Has been skipped
2026-09-22 20:49:01 +02:00
Simon AxelssonandClaude Opus 5 d428dd5018 feat(deploy): gör 0pt körbar utanför Vercel (standalone + bevisad Docker-image)
Security Scan (SIAX Cloud) / security (push) Successful in 17s
CI (SIAX Cloud) / security (push) Successful in 26s
CI (SIAX Cloud) / integration (push) Successful in 30s
CI (SIAX Cloud) / quality (push) Successful in 37s
CI (SIAX Cloud) / security (pull_request) Successful in 15s
CI (SIAX Cloud) / integration (pull_request) Successful in 25s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 26s
CI (SIAX Cloud) / quality (pull_request) Successful in 50s
0pt.app svarar i dag HTTP 402 DEPLOYMENT_DISABLED (Vercels betalningsspärr) och
har ingen självhostad ersättare igång. Det här gör appen faktiskt byggbar och
körbar på Coolify. Referens: sax3l/siax-io, som redan kör självhostat på flottan
— dess Dockerfile återanvänds i form i stället för att uppfinna ett eget mönster.

next.config.mjs:
  * output: "standalone" — runtime-imagen kör `node server.js` i stället för att
    släpa med pnpm, corepack och hela node_modules-trädet.
  * images.unoptimized: true BORTTAGET. Det var v0-generatorns standardvärde, inte
    ett val: next.config.mjs var orörd sedan "Initial commit from v0". Självhostat
    är rätt lösning att låta Next optimera själv.
  * poweredByHeader: false.

Dockerfile (fyra steg, samma form som siax-io):
  * node:24-alpine -> node:22-alpine. Båda CI-workflowsen bygger på node 22;
    att bygga och köra på samma major som grinden testar tar bort en version-skew.
  * libc6-compat (sharp), icke-root `node`, HEALTHCHECK mot /api/health,
    npm/npx strippat ur runtime-imagen (SIO-019-mönstret).
  * --ignore-workspace borttaget: motiveringen i kommentaren var inaktuell sedan
    P1-21 (pnpm-workspace.yaml har ett giltigt packages:-fält och
    packages/schemas är en riktig medlem). Containerinstallationen blir därmed
    bit för bit samma kommando som CI kör.
  * --prod=false: Coolify injicerar NODE_ENV=production vid byggtid, och pnpm
    hoppar då över devDependencies som next build kräver.

Sharp levereras i ett eget npm-steg, och det är inte godtyckligt:
next build spårar INTE sharp in i .next/standalone (verifierat: standalone-
utdatans node_modules innehöll bara next/, react/, react-dom/). Den uppenbara
lösningen outputFileTracingIncludes fungerar bevisligen inte — globben
"./node_modules/@img/**/*" får Turbopack att panika på pnpms katalogsymlänkar
("Is a directory (os error 21)") och bygget faller med exit 1. Reproducerat, inte
antaget. npm-steget lägger ett platt, symlänkfritt träd som runtime-steget kan
kopiera rakt av, pinnat till versionen i pnpm-lock.yaml, och faller hårt om
versionen inte går att läsa ut i stället för att tyst skeppa trasig optimering.

BEVISAT, inte påstått (fullständiga exitkoder i PR-beskrivningen):
  * pnpm install --frozen-lockfile -> 0; next build med HELT TOM env -> 0
  * docker build --no-cache -> 0; container startar, /api/health -> HTTP 200
  * /api/ready utan DATABASE_URL -> HTTP 503 (faller stängt, som avsett)
  * /api/0pt/* utan Bearer -> HTTP 401 (middleware kör självhostat)
  * /_next/image -> HTTP 200 image/avif, 1 488 706 B PNG -> 51 161 B (29x)
  * sharp laddar i runtime-imagen (libvips 8.18.6, musl-binärer)
  * icke-root uid=1000, HEALTHCHECK "healthy", image 1,33 GB -> 423 MB
  * typecheck 0, test 0 (930 passerade). lint/prettier faller identiskt på ren
    main => pre-existerande, inte infört här. Ingen grind har rörts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 18:50:14 +02:00
SIAX Foundation Bot bd5e309851 chore(foundation): Wave 1 scaffolding — CI gate / Dockerfile / .env.example
CI (SIAX Cloud) / quality (push) Failing after 34s
CI (SIAX Cloud) / security (push) Failing after 36s
2026-07-20 00:01:37 +02:00