# RELATIONS — 0pt relationskarta (FAS 2) > Verifierad mot kod 2026-08-10. Alla relationer är grep-/läs-verifierade (AR-5). > Legenden: **sources.yaml** = kompliant källregistret · **bypass-stacken** = medvetet behållen > per användarbeslut (se GOLDEN-STANDARD-REPORT), visas grått. ## 1. Router → källor `services/api/workers/adaptive_router.py` bygger sourcingplan per marknad; `services/api/sources/sources.yaml` är källregistret (kompliant sida). Skrapmotorn (`services/scrapers/`) är den medvetet behållna bypass-sidan. ```mermaid flowchart LR subgraph Router["adaptive_router.py (workers)"] R["plan_for_market(market) -> source_id-lista"] end subgraph Registry["sources.yaml (kompliant, 8 källor)"] S1[gleif · global · api CC0] S2[brreg · NO · api NLOD] S3[companies_house · GB · api nyckel] S4[prh · FI · api CC-BY] S5[cvr · DK · api Virk] S6[bolagsverket · SE · licensed] S7[rdw · NL · bulk fordon] S8[opensanctions · global · bulk screening] end subgraph Scraper["services/scrapers (medvetet behållen bypass)"] W[waf_bypass.py: FlareSolverr/Tor/cloudscraper/curl_cffi] E2[engine_v2.py] C[clickhouse_pipeline.py] end R -->|NO| S2 R -->|GB| S3 R -->|FI| S4 R -->|DK| S5 R -->|SE| S6 R -->|NL| S7 R -->|global| S1 R -->|screening| S8 R -.->|"deep scraping (b0ts/legacy)"| E2 E2 --> W E2 --> C ``` ## 2. ST0RE-artefakter (lakehouse-write-vägen) Enda skrivväg för Iceberg-state: `src/clients/st0re-lakehouse-client.ts` → `/v1/st0re/lakehouse/*` (namespace → table → snapshot). Live-verifierad 2026-07-13. ```mermaid flowchart LR API["POST /api/0pt/lakehouse/mappings/{id}/writes"] --> WRITE[IcebergWriteService] WRITE --> NS[registerNamespace
X-Tenant-Id/X-Actor-Id] NS --> T[registerTable
IcebergTableInput] T --> SNAP[createSnapshot
manifestUri, aud0EventId] SNAP --> MANI["Iceberg-manifest (bytes)
N0D skriver faktiska filer"] WRITE --> N0D[createJob /v1/n0d/jobs
job_type=0pt.* heavy] WRITE --> MAP["DatasetIcebergMapping (0pt, in-memory/Postgres mål)"] MAP -.->|"mappingId->tableId"| T ``` ## 3. N0D-jobb `src/clients/n0d-client.ts` → `POST /v1/n0d/jobs`. 0pt begär jobb, äger aldrig scheduling/GPU. Mock (`mock_job_*`) utan `N0D_URL` — testbar, inte verklig. ```mermaid sequenceDiagram participant S as Service (0pt) participant N as N0D (POST /v1/n0d/jobs) participant R as N0D-Runner S->>N: createJob {tenant_id, project_id, job_type, input_artifact_ids, risk_level} N-->>S: job_id (status=queued) N->>R: scheduler -> worker R-->>S: (0pt följer ej upp — poll/hook saknas, backlog) ``` ## 4. AUD0-events (system of record) `src/clients/aud0-client.ts` → `POST /v1/aud0/events` + `/v1/aud0/lineage/events`. Event-typer som emiteteras i kod (grep-verifierat): | event_type | Källa (service) | Linjage-event | |---|---|---| | `0pt.dataset_registered` | dataset-service.ts | — | | `0pt.source_created` | source-service.ts | — | | `0pt.source_rate_policy_created` | source-rate-policy-service.ts | — | | `0pt.source_queried` | source-query-service.ts | — | | `0pt.dataset_iceberg_table_mapped` | dataset-iceberg-mapping-service.ts | `lineage_0pt_dataset_iceberg_*` | | `0pt.iceberg_write_requested` | iceberg-write-service.ts | — | | `0pt.iceberg_snapshot_created` | iceberg-write-service.ts | `lineage_0pt_iceberg_snapshot_*` | | `0pt.document_captured` | document-capture-service.ts | `lineage_0pt_document_captured_*` | | `0pt.document_extracted` | document-extraction-service.ts | `lineage_0pt_document_extracted_*` | | `0pt.external_record_written` | external-writeback-service.ts | `lineage_0pt_external_write_*` | > ⚠️ Utan `AUD0_URL` är emissionen **no-op** (klientkontraktet) — lucka S6. > Ingen live-AUD0-endpoint verifierad för 0pt ännu (klientdokkommentar). ## 5. Beroendepilar (AR-8, nedåt endast) ```mermaid flowchart TD UI[0pt.app UI] --> API[Next.js API-routes] API --> CAP[src/ capability-lagret] CAP --> CL[CL0UD policy · fail-open] CAP --> ST[ST0RE artefakter/lakehouse] CAP --> ND[N0D jobb] CAP --> AU[AUD0 audit · no-op utan URL] CAP --> EN[FastAPI-engine services/api] EN --> SRC[Komplienta källor + bypass-stack] CL -.->|K1| SAX[SIAX Cloud (K1) - endast nedåt, inga K2-K5] ST -.->|K1| SAX ND -.->|K1| SAX AU -.->|K1| SAX ``` AR-8-status: **VERIFIERAT** — 0pt beror endast på K1-tjänster (CL0UD/ST0RE/N0D/AUD0/INF0) + externa data-/betalningskällor; inga kundrepon (K2–K5) refereras i koden. ## 6. Utfallsfil FAS 2 ✅ `docs/compliance/RELATIONS.md` skapad med 4 Mermaid-diagram.