Simon AxelssonandClaude Fable 5.1 cbf0e1a0bf
CI (SIAX Cloud) / quality (push) Successful in 44s
CI (SIAX Cloud) / integration (push) Successful in 26s
CI (SIAX Cloud) / security (push) Successful in 20s
Security Scan (SIAX Cloud) / security (push) Successful in 17s
CI (SIAX Cloud) / quality (pull_request) Successful in 43s
CI (SIAX Cloud) / integration (pull_request) Successful in 27s
CI (SIAX Cloud) / security (pull_request) Successful in 19s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 17s
chore(estate): add first siax.repo.v3.json manifest (P003 v3 adoption)
First siax.repo.v3.json in the SIAX platform estate (P049 certification
found v3 adoption at 0/40, which structurally blocked 8 of the 11 required
siax-doctor commands with score 0 / *-NOMANIFEST).

Additive only: siax.repo.json (v2) is left untouched per CONTRIBUTING.md.
No other file changed.

Every field is filled from a real source (siax.repo.json v2, package.json,
LICENSE, siax.config.json, docs/runbook/*, docs/slo.md, PRODUCTION_EVIDENCE.json,
siax-standard SIAX_ESTATE.yaml + SIAX_TAXONOMY.yaml, cl0ud
packages/capability-registry/src/registry.ts, and a live probe of 0pt.app on
2026-09-04). Where the truth is unknown or unproven the honest schema option
is used, never a value that merely looks complete:

- productionEvidence.verified=false: no SHA->CI->artifact->SBOM->signature->
  deployment->running-digest chain exists (PRODUCTION_EVIDENCE.json is a CI
  verification report, not that chain).
- identity.workloadIdentity=false: outbound platform calls use an optional
  static ST0RE_SERVICE_TOKEN env bearer (src/clients/st0re-client.ts); cl0ud
  service-auth.ts registers no principal for 0pt.
- consumedBy=[]: SIAX_ESTATE.yaml row says consumers UNKNOWN-not-verified;
  the 4 reverse-lookup candidates are labelled "inferred" there.
- reliability.backupFrequency=none / provenRestore=false: production has no
  database (live /api/health db=not_configured); the P014 drill ran against
  throwaway containers, not a production backup.
- licenses.approved=false: no siax.license-assessment record exists.
- operationalState=degraded: live 0pt.app answers liveness 200 but
  db=not_configured and /api/ready is 404 (deployed build predates main).
- node=null / deployment.node=null: live on Vercel, not a fleet node.
- observability.metrics=false / otel=false: STATUS.md "no metrics/traces
  emitted"; /api/admin/metrics is business aggregates, not observability.
- capabilities: exactly the 19 ids cl0ud's registry lists with owner '0pt'
  (5 prospekt.* + 14 0pt.*). NOTE: the repo contains zero "prospekt" code
  and ships no CLI/MCP surface despite the registry claiming those surfaces
  for prospekt.* -- flagged in the PR, not silently dropped.
- surfaces=[api, ui]: only what actually ships (Next.js route handlers +
  FastAPI, Next.js pages). No bin, no MCP tools file, no SDK package
  (packages/schemas is JSON Schema files consumed by path), job execution
  is delegated to N0D per the registry.

siax-doctor (siax-standard main, @siax/schemas):
  repo         REPO-16  NA  -> PASS (measuredScore 85 -> 85; REPO-16 is NA-safe)
  capabilities   0 / CAP-NOMANIFEST -> 100 (CAP-DUP-OWNER PASS, 19 ids)
  dependencies   0 / DEP-NOMANIFEST -> 100 (DEP-CYCLE/DEP-REVERSE/DEP-ASYM PASS)
  surfaces       0 / SURF-NODATA    ->   0 (needs siax/capabilities/*.json records)
  engines        0 / ENG-NOMANIFEST ->   0 (ENG-DIRECT-COUPLING NA for core-platform; ENG-REGISTRY UNVERIFIED)
  licenses       0 / LIC-NOMANIFEST ->   0 (LIC-UNASSESSED UNVERIFIED -- honestly no approved=true claim)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 13:26:18 +02:00
2026-06-24 14:47:12 +00:00
2026-06-24 14:47:12 +00:00
2026-06-24 14:47:12 +00:00
2026-06-24 14:47:12 +00:00
2026-06-24 14:47:12 +00:00
2026-06-24 14:51:57 +00:00

0pt — your data

Data services on demand for the Nordics + Europe. Compose a data job, pay 50 % to start, watch production live, validate with full provenance, deliver anywhere. Owned by SIAX Technology AB. Honest accuracy is the moat: every field carries source, freshness and confidence; nothing is guessed.

Live: https://0pt.app · Contract: CLAUDE.md + docs/

Architecture (verified against code, not aspirational): docs/architecture/ARCHITECTURE.md. It documents the real API surface, the real persistence story, and the known security gaps — including several places where this README is optimistic. Read it before trusting any capability claim below. Repo identity + estate classification: siax.repo.json + siax.config.json. Compliance state: docs/compliance/ (INVENTORY, RELATIONS, OSS-INVENTORY, GOLDEN-STANDARD-REPORT, BACKLOG, SLUTRAPPORT).

Two planes (see docs/02-architecture.md)

  • Edge (Vercel, this app) — marketing, catalog, the order lifecycle, customer portal, admin portal, and the API route handlers. Defers to the data engine when ENGINE_URL is set.
  • Engine (services/api, runs on a VPS) — FastAPI orchestrator + worker pipeline doing the compliant sourcing (official API → bulk → authorized web → licensed → else level 0). Never on Vercel (long jobs). Bypass/stealth/proxy-rotation/fake-account paths are excluded by design (CLAUDE.md §1).

Routes

Area Routes
Marketing / (hero, filosofi, katalog, motorn, visualiseringar, täckning, editorial, bevis, priser, footer)
Catalog /katalog, /katalog/[id]
Sourcing map /kallor
Order lifecycle /bestall → /bestall/forskott → /order/[id] → /order/[id]/validera
Customer portal /portal, /portal/subscriptions, /portal/files, /portal/integrationer, /portal/settings
Admin portal /admin, /admin/sources, /admin/jobs, /admin/customers
API /api/{health,estimates,catalog,sources,orders,orders/[id],subscriptions,admin/metrics,uploads,auth/*,payments/*,webhooks/stripe,connections/db-grant}

Design system

Mono/editorial, light, radius 0, Inter + JetBrains Mono, single red #e40014, animated grain, scroll-reveal motion. No photography — imagery is rendered data (DataArtifact). Every fact shows a provenance square (ProvenanceBadge). Full spec: docs/05-design-system.md.

Run locally

pnpm install
pnpm dev                       # Next.js on http://localhost:3000

# data engine (separate, optional)
cd services/api && pip install -r requirements.txt && uvicorn orchestrator.main:app --reload

Deploy

  • Config target (as of 2026-08-09): siax.config.json declares deploy.target: "coolify", matching every other SIAX Cloud OS repo (n0d, st0re, aud0, ...) — a Dockerfile "for Coolify" (already committed, see Dockerfile) plus .gitea/workflows/cd.yml (renamed from deploy.yml 2026-08-10) that POSTs a restart to a Coolify app UUID on COOLIFY_TOKEN push.
  • Actually live right now: the only running instance of 0pt.app is still on Vercel (project 0pt, scope Simon Axelsson's projects) — no Coolify app has been provisioned for this repo yet, so deploy.yml's app UUID is a placeholder that fails the job on purpose until someone fills it in. Flipping the config declares intent; it does not move traffic. See docs/architecture/ARCHITECTURE.md §5/§8 for the full "Vercel or fleet" state and what's still open (Coolify app provisioning + DNS cutover — a separate decision from this config change, since the live Vercel deployment is not being touched).
  • Engine + DB + embeds → one VPS via infra/docker-compose.yml (Postgres+pgvector, Redis, api, worker, NocoDB, Metabase, Caddy).
  • Env inventory: .env.example.
  • Auth on /api/0pt/* is fail-closed: with AUTH_ENFORCE unset the middleware REQUIRES a verified Zitadel Bearer token (401 without one). Only the literal AUTH_ENFORCE=false disables it, and that is refused when NODE_ENV=production (the process throws at startup rather than serving anonymously). Caveat (live-verified 2026-08-10): the deployed instance still answers GET /api/0pt with 200 anonymously — the middleware appears not to run in production (gap S1, root cause unknown). Do not rely on this being enforced until an anonymous request gets a real 401.
  • Fonts: self-hosted via @fontsource-variable/inter + @fontsource-variable/jetbrains-mono (no Google Fonts / next/font/google).
  • API contract (SSOT): contracts/openapi.yaml.

Status

Frontend, full order lifecycle, customer + admin portals, edge API, payment/auth/embed infrastructure, the compliant data engine, schema and infra are all in place and building green. Integrations are env-guarded and activate when their keys/DB are provided:

  1. Database — Vercel → Storage → Postgres (sets POSTGRES_URL) → durable persistence (schema in sql/001_init.sql).
  2. Stripe + Resend keys → payments + email.
  3. VPS for the engine → set ENGINE_URL.
  4. AUTH_SECRET + DEV_LOGIN_KEY → login (full OAuth via Auth.js lands with the DB).

© 2026 SIAX Technology AB. Not affiliated with Protosell.

S
Description
No description provided
Readme
25 MiB
Languages
TypeScript 90.2%
Python 5.5%
JavaScript 2.1%
PLpgSQL 1.5%
Shell 0.3%
Other 0.4%