# 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.