docs(deploy): scan worker + AUD0 wire + env contract
CI (SIAX Cloud) / security (push) Successful in 13s
CI (SIAX Cloud) / contracts (push) Successful in 16s
CI (SIAX Cloud) / quality (push) Successful in 54s
CI (SIAX Cloud) / contracts (pull_request) Successful in 41s
CI (SIAX Cloud) / security (pull_request) Successful in 42s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m13s
CI (SIAX Cloud) / security (push) Successful in 13s
CI (SIAX Cloud) / contracts (push) Successful in 16s
CI (SIAX Cloud) / quality (push) Successful in 54s
CI (SIAX Cloud) / contracts (pull_request) Successful in 41s
CI (SIAX Cloud) / security (pull_request) Successful in 42s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m13s
This commit is contained in:
@@ -72,6 +72,9 @@ docker run -d -p 3000:3000 \
|
||||
| `ZITADEL_INTROSPECTION_CLIENT_ID` | Prod | — | RFC 7662-introspection-klient (Zitadel app `c0py-introspect`) — utan dessa körs endast Bearer-presence-check (warn-logg i prod) |
|
||||
| `ZITADEL_INTROSPECTION_CLIENT_SECRET` | Prod | — | Introspection-klientsecret (Infisical: `C0PY_ZITADEL_INTROSPECTION_CLIENT_SECRET`) |
|
||||
| `ZITADEL_EXPECTED_AUDIENCE` | Prod | — | Projektnivå-aud (Zitadel projekt-id `391064954179944451`); PAT-introspection bär aud=[clientId, projectId] |
|
||||
| `AUD0_BASE_URL` | Nej | — | AUD0 evidens-URL (`https://api.aud0.siax.io`) — utan denna+key tappas events (advisory, loggad) |
|
||||
| `AUD0_API_KEY` | Nej | — | AUD0 Bearer (Infisical: `AUD0_AUTH_TOKEN`) |
|
||||
| `CHROMIUM_EXECUTABLE_PATH` | Nej | `/usr/bin/chromium-browser` | Browser för scan-worker (image installerar `apk chromium`) |
|
||||
| `DATABASE_URL` | Ja | — | Postgres-anslutning |
|
||||
| `AUD0_BASE_URL` | Nej | — | AUD0 evidens-URL |
|
||||
| `AUD0_API_KEY` | Nej | — | AUD0 autentisering |
|
||||
@@ -97,6 +100,20 @@ docker run -d -p 3000:3000 \
|
||||
| GET | `/v1/c0py/scans?registryId=` | ägarens scans, valbar filter |
|
||||
| GET | `/v1/c0py/scans/:id` | 200 / 404 |
|
||||
|
||||
## Scan worker + AUD0
|
||||
|
||||
- API-containern kör en **in-process scan-worker** (poll 2s, atomic claim via
|
||||
`FOR UPDATE SKIP LOCKED`): capture med playwright-core + system-chromium
|
||||
(DNS-only domän måste vara nåbar från server6) → typed `EvidenceRecord`s
|
||||
(runtime-html/dom/computed-style/stylesheet/asset/network-request/screenshot,
|
||||
`confidence: measured`) → `scans.result` (JSONB) → status completed/failed.
|
||||
- **AUD0 (fire-and-forget, advisory)**: `c0py.registry_created` (L1),
|
||||
`c0py.scan_created` (L1), `c0py.scan_completed`/`c0py.scan_failed` (L2).
|
||||
tenant_id = Zitadel resourceowner-org (server-side assertat; klienten kan
|
||||
aldrig sätta tenant). AUD0-outage tappar events men blockerar aldrig API:et.
|
||||
- `page.evaluate` körs som **ren string** — tsx/esbuild injicerar annars
|
||||
`__name`-helpers som kraschar i browser-kontextet.
|
||||
|
||||
## Hälsocheck
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user