feat(document-workbench): kundflöde uppladdning → struktur → export + credits #429

Merged
admin merged 2 commits from feat/document-workbench-prod into main 2026-11-02 13:54:13 +00:00
Owner

Vad

Kopplar ihop kundflödet ladda upp → DOC0 → INF0 → evidensbunden export → credits och gör readiness ärlig.

Nya ytor

  • POST /api/0pt/documents/upload — riktiga filbytes (multipart) via den befintliga koordinatorn och den durability-journal som redan fanns. Tenant/aktör endast från middleware-verifierade headers.
  • POST /api/0pt/documents/structure — läser DOC0-segment (version + checksum + trunkeringskontroll), anropar INF0, validerar varje fält mot exakt källspann, reserverar/avräknar credits, valfri JSON/CSV-export.
  • GET /api/0pt/documents/models, credits: balance, packs, checkout.
  • POST /api/webhooks/stripe hanterar nu 0pt_credit_purchase genom att läsa tillbaka session + payment intent från Stripe (idempotent ledger-kommando).
  • /portal/dokument och /portal/krediter i befintlig SIAX-design.

Återanvändning

  • packages/siax-access (@siax/access): universell, ramverksneutral OpenFGA-relationskontroll (fail-closed). Samma primitiv som DOC0 använder, avsedd att konsumeras av DOC0/N0D/övriga produkter i stället för kopior.

Readiness

  • checkQueue gör nu en riktig Redis PING (RESP, AUTH vid lösenord) i stället för att bara se om REDIS_URL finns. Konfigurerad-men-död kö ger error.

Hygiene

  • Dockerfile kopierar alla workspace-manifest (annars faller --frozen-lockfile).
  • .prettierignore, .worktrees/ ignoreras, giltig .siax/des1gn-consumer.yaml.

Verifierat

  • pnpm typecheck grön.
  • vitest run: 1322 passed, 197 skipped.
  • pnpm build grön; nya routes och sidor byggs.
  • Nya enhetstester: @siax/access, price book, Stripe-verifiering, DOC0-källklient, readiness.

Inte påstått

  • Utdata är mechanically_validated, inte bevisat komplett/semantiskt korrekt.
  • Återbetalningar/chargebacks återkallar inte credits automatiskt.
  • Priser kräver OPT_CREDIT_PRICE_BOOK (affärsbeslut, ingen default).
## Vad Kopplar ihop kundflödet **ladda upp → DOC0 → INF0 → evidensbunden export → credits** och gör readiness ärlig. ### Nya ytor - `POST /api/0pt/documents/upload` — riktiga filbytes (multipart) via den befintliga koordinatorn och den durability-journal som redan fanns. Tenant/aktör endast från middleware-verifierade headers. - `POST /api/0pt/documents/structure` — läser DOC0-segment (version + checksum + trunkeringskontroll), anropar INF0, validerar varje fält mot exakt källspann, reserverar/avräknar credits, valfri JSON/CSV-export. - `GET /api/0pt/documents/models`, credits: `balance`, `packs`, `checkout`. - `POST /api/webhooks/stripe` hanterar nu `0pt_credit_purchase` genom att läsa tillbaka session + payment intent från Stripe (idempotent ledger-kommando). - `/portal/dokument` och `/portal/krediter` i befintlig SIAX-design. ### Återanvändning - `packages/siax-access` (`@siax/access`): universell, ramverksneutral OpenFGA-relationskontroll (fail-closed). Samma primitiv som DOC0 använder, avsedd att konsumeras av DOC0/N0D/övriga produkter i stället för kopior. ### Readiness - `checkQueue` gör nu en riktig Redis `PING` (RESP, AUTH vid lösenord) i stället för att bara se om `REDIS_URL` finns. Konfigurerad-men-död kö ger `error`. ### Hygiene - Dockerfile kopierar alla workspace-manifest (annars faller `--frozen-lockfile`). - `.prettierignore`, `.worktrees/` ignoreras, giltig `.siax/des1gn-consumer.yaml`. ## Verifierat - `pnpm typecheck` grön. - `vitest run`: 1322 passed, 197 skipped. - `pnpm build` grön; nya routes och sidor byggs. - Nya enhetstester: `@siax/access`, price book, Stripe-verifiering, DOC0-källklient, readiness. ## Inte påstått - Utdata är `mechanically_validated`, inte bevisat komplett/semantiskt korrekt. - Återbetalningar/chargebacks återkallar inte credits automatiskt. - Priser kräver `OPT_CREDIT_PRICE_BOOK` (affärsbeslut, ingen default).
admin added 1 commit 2026-11-02 13:46:27 +00:00
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
b3239487b7
- 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.
CODEOWNERS rules requested review from sax3l 2026-11-02 13:46:27 +00:00
admin added 1 commit 2026-11-02 13:50:58 +00:00
feat(workbench): live LiteLLM gateway adapter + explicit project grants
CI (SIAX Cloud) / integration (push) Skipped
CI (SIAX Cloud) / sonar (push) Skipped
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 6s
masterplan-lock / check (push) Successful in 6s
CI (SIAX Cloud) / security (push) Successful in 14s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 19s
CI (SIAX Cloud) / security (pull_request) Successful in 21s
Security Scan (SIAX Cloud) / security (push) Successful in 25s
CI (SIAX Cloud) / integration (pull_request) Successful in 29s
CI (SIAX Cloud) / quality (pull_request) Successful in 51s
CI (SIAX Cloud) / quality (push) Successful in 1m29s
e3c4bc28c3
- createInf0Gateway prefers the live OpenAI-compatible LiteLLM gateway and
  falls back to the native INF0 surface; admission stays local and fail-closed.
- Project authorization: OpenFGA when configured, otherwise a validated
  server-owned OPT_PROJECT_GRANTS list (deny by default).
- Tests for the gateway adapter, the factory and grants.
admin merged commit e4d51dbf03 into main 2026-11-02 13:54:13 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/0pt#429