13 Commits

Author SHA1 Message Date
admin aacbf3c3d6 fix(config): CL0UD_BASE_URL optional (disabled state until CL0UD machine surface exists)
CI (SIAX Cloud) / security (push) Successful in 12s
CI (SIAX Cloud) / security (pull_request) Successful in 17s
CI (SIAX Cloud) / contracts (pull_request) Successful in 16s
CI (SIAX Cloud) / contracts (push) Successful in 45s
CI (SIAX Cloud) / quality (push) Successful in 57s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m21s
2026-09-16 23:28:19 +02:00
admin f6ff1396d8 feat(api): CL0UD capability probe + a11y/HAR evidence + worker scale toggle
CI (SIAX Cloud) / contracts (pull_request) Successful in 17s
CI (SIAX Cloud) / contracts (push) Successful in 17s
CI (SIAX Cloud) / quality (pull_request) Successful in 54s
CI (SIAX Cloud) / quality (push) Successful in 56s
CI (SIAX Cloud) / security (pull_request) Successful in 1m7s
CI (SIAX Cloud) / security (push) Successful in 1m5s
- cl0ud client: contract-first probe of documented GET /capabilities/:id,
  status connected/denied/unavailable/disabled surfaced in /health;
  CL0UD_REQUIRED=true = fail-closed 503; full policy-decisions gated on
  CL0UD B-4/ADR-0031 (deliberately not simulated)
- capture depth: accessibility tree + condensed HAR as evidence kinds
  (null = explicit evidence gap)
- CAPTURE_WORKER=on/off for separate-scale deployments
- 34/34 tests
2026-09-16 23:21:54 +02:00
admin 495050752a feat(api): real Zitadel token introspection (fail-closed) + expected-audience enforcement
CI (SIAX Cloud) / security (push) Successful in 12s
CI (SIAX Cloud) / contracts (push) Successful in 30s
CI (SIAX Cloud) / quality (push) Successful in 1m33s
- preHandler: Bearer tokens are introspected against Zitadel (RFC 7662)
- any introspection failure (unreachable, non-200, bad JSON, inactive) = 401
- asserted aud must include ZITADEL_EXPECTED_AUDIENCE (project id); absent aud accepted per RFC 7662
- config: ZITADEL_INTROSPECTION_CLIENT_ID/SECRET + ZITADEL_EXPECTED_AUDIENCE (optional; Bearer-presence fallback logs warn in prod)
- 13 new tests (introspection fail-closed matrix + preHandler flow)
2026-09-16 22:06:46 +02:00
admin e26398c496 test(core): add fidelity gate coverage 2026-09-16 21:52:45 +02:00
admin cfa9a05ad8 feat(core): export reconstruction and fidelity contracts 2026-09-16 21:52:45 +02:00
admin 52f5146940 feat(core): add deterministic fidelity release gate 2026-09-16 21:52:45 +02:00
admin 762b778ee2 feat(core): add reconstruction pipeline contracts 2026-09-16 21:52:45 +02:00
admin 35f1a3ca66 test(core): validate upstream provenance policy 2026-09-16 21:52:45 +02:00
admin 56e4b696f4 feat(core): export provenance validation 2026-09-16 21:51:03 +02:00
admin b885a160bd feat(core): add upstream provenance registry validation 2026-09-16 21:51:03 +02:00
admin 1e3abaf824 feat(types): add canonical evidence and reconstruction contracts 2026-09-16 21:51:03 +02:00
admin e04cf8fbd3 c0py: initial scaffolding for website registry tool
Repo: sax3l/c0py (created on Gitea, code pushed)

Initial scaffolding includes:
- apps/api: Fastify API server (typecheck, build, test pass)
- apps/web: Next.js UI (build passes)
- packages/c0py-core: Crawler, registry assembler, analyzer (6 tests pass)
- packages/config: Zod-validated env loader
- packages/types: Shared TypeScript types

CI/CD: .gitea/workflows/ci.yml + deploy.yml
Dockerfile for Coolify deployment
mise.toml (toolchain contract)
lefthook.yml, renovate.json
docs/architecture/OVERVIEW.md, docs/PLATFORM.md

Platform setup required (see docs/PLATFORM.md):
1. Coolify app provision (c0py on server5/6)
2. Postgres database (dedicated, not shared)
3. Infisical secrets (DATABASE_URL, CL0UD, ZITADEL, AUD0, ST0RE, INF0, N0D)
4. DNS c0py.siax.io A-record
5. Zitadel OIDC project (Simon-decision)

Status: dev (repo live, code pushable, platform infra pending)
2026-09-16 13:33:45 +02:00
admin e6cc719f37 c0py: initial scaffolding for website registry tool
CI (SIAX Cloud) / security (push) Successful in 12s
CI (SIAX Cloud) / contracts (push) Failing after 12s
CI (SIAX Cloud) / quality (push) Failing after 8s
Deploy to Coolify / deploy (push) Failing after 2s
2026-09-16 13:15:21 +02:00