Commit Graph

5 Commits

Author SHA1 Message Date
admin 9482a97795 feat(api): Postgres persistence for registries + scans (owner-scoped, fail-closed)
CI (SIAX Cloud) / security (push) Successful in 13s
CI (SIAX Cloud) / contracts (pull_request) Successful in 17s
CI (SIAX Cloud) / security (pull_request) Successful in 13s
CI (SIAX Cloud) / contracts (push) Successful in 16s
CI (SIAX Cloud) / quality (push) Successful in 52s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m13s
- schema migration 001 (registries, scans; owner_sub = introspected subject)
- pg pool + services; scan ownership enforced in SQL (INSERT ... SELECT WHERE owner_sub)
- real handlers: 201/400/404/500, owner-scoped GET/POST, listScans registryId filter
- graceful shutdown closes pool; 7 new persistence tests (21/21)
2026-09-16 22:32:48 +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 db3509ab4f fix: add fail-closed preHandler auth check
Deploy to Coolify / deploy (push) Failing after 2s
CI (SIAX Cloud) / security (push) Successful in 13s
CI (SIAX Cloud) / contracts (push) Successful in 16s
CI (SIAX Cloud) / quality (push) Successful in 49s
2026-09-16 15:13:13 +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