feat: durable AUD0 outbox + dataset/search/ER HTTP surfaces + P065 stängd (kod, utan workflow-ändringar) #43

Merged
admin merged 68 commits from feat/aud0-outbox-code-20260907 into main 2026-09-07 17:53:04 +00:00
Owner

Durable AUD0 outbox + dataset/search/ER surfaces — KOD utan workflow-ändringar

Ersatter #42 som blockeras av estate-skyddet pa .gitea/workflows/ (CI-hardningen:
Trivy blocking + Postgres-service + python-engine-gate kraver estate-policy-beslut
och dokumenteras separat — HARDNINGEN RORS EJ).

Samma 63 commits fran GitHub PR #10-head (e2437ab) + slutgransknings-fix 3edc56d,
minus de 2 workflow-commits. Kanoniserad FORST har (Gitea = source of truth).

Innehall

  • Durable Postgres-outbox for AUD0 + OpenLineage (en central durability-boundary;
    dispatcher explicit durable:false; retry/backoff, leasing, SKIP LOCKED, dead-letter,
    tenant-binding, idempotency)
  • DatasetService mot opt_datasets/opt_dataset_versions: immutable versions, monotont
    nummer under lock, idempotency med payload-drift-detektering, cross-tenant => NOT_FOUND
  • HTTP: datasets/versions, ER candidates/internal/batch (rights_tag fail-closed),
    search definitions/query; OpenSearch forblir rebuildable projection
  • ER split-brain stangd: Python thin adapter; stable-identifiers.v3; P065 STANGD
    med closure-record i STATUS.md

Verifierat (exekverat lokalt)

  • typecheck EXIT 0 - unit 945/945 - next build EXIT 0
  • real-Postgres 5/5 (inkl AUD0-outbox-durability; hardningens nya integration-jobb
    kors i CI nar estate godkanner workflow-andringen)
## Durable AUD0 outbox + dataset/search/ER surfaces — KOD utan workflow-ändringar Ersatter #42 som blockeras av estate-skyddet pa .gitea/workflows/ (CI-hardningen: Trivy blocking + Postgres-service + python-engine-gate kraver estate-policy-beslut och dokumenteras separat — HARDNINGEN RORS EJ). Samma 63 commits fran GitHub PR #10-head (e2437ab) + slutgransknings-fix 3edc56d, minus de 2 workflow-commits. Kanoniserad FORST har (Gitea = source of truth). ## Innehall - Durable Postgres-outbox for AUD0 + OpenLineage (en central durability-boundary; dispatcher explicit durable:false; retry/backoff, leasing, SKIP LOCKED, dead-letter, tenant-binding, idempotency) - DatasetService mot opt_datasets/opt_dataset_versions: immutable versions, monotont nummer under lock, idempotency med payload-drift-detektering, cross-tenant => NOT_FOUND - HTTP: datasets/versions, ER candidates/internal/batch (rights_tag fail-closed), search definitions/query; OpenSearch forblir rebuildable projection - ER split-brain stangd: Python thin adapter; stable-identifiers.v3; P065 STANGD med closure-record i STATUS.md ## Verifierat (exekverat lokalt) - typecheck EXIT 0 - unit 945/945 - next build EXIT 0 - real-Postgres 5/5 (inkl AUD0-outbox-durability; hardningens nya integration-jobb kors i CI nar estate godkanner workflow-andringen)
admin added 64 commits 2026-09-07 17:37:59 +00:00
docs(er): reconcile ecosystem acquisition plan with canonical ER architecture
CI (SIAX Cloud) / security (push) Successful in 16s
CI (SIAX Cloud) / quality (push) Failing after 19s
Security Scan (SIAX Cloud) / security (push) Successful in 32s
CI (SIAX Cloud) / integration (push) Failing after 49s
Python Engine CI (SIAX Cloud) / python-engine (push) Failing after 5m34s
e2437ab09e
ci: behåller main:s workflows (estate-skyddade filer)
CI (SIAX Cloud) / security (push) Successful in 15s
Security Scan (SIAX Cloud) / security (push) Successful in 14s
CI (SIAX Cloud) / quality (push) Failing after 27s
CI (SIAX Cloud) / integration (push) Failing after 30s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 14s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
CI (SIAX Cloud) / quality (pull_request) Failing after 20s
CI (SIAX Cloud) / integration (pull_request) Failing after 35s
Python Engine CI (SIAX Cloud) / python-engine (push) Failing after 4m56s
Python Engine CI (SIAX Cloud) / python-engine (pull_request) Failing after 4m48s
0eb9429932
CI-härdningen ur PR #10 (Trivy HIGH/CRITICAL blocking, Postgres-service i
integration, python-engine pytest-gate) berör .gitea/workflows/ och kräver
estate-policy-beslut — dokumenterad separat, hålls UTANFÖR denna merge så
koden kanoniseras utan blockering. Härdningens nya tester är exekverade
lokalt: real-Postgres 5/5 (DATABASE_URL-aktiverad outbox).
CODEOWNERS rules requested review from sax3l 2026-09-07 17:37:59 +00:00
admin added 3 commits 2026-09-07 17:50:05 +00:00
fix: slutgranskning av dataset/search/ER-ytorna + STATUS-sanning
Security Scan (SIAX Cloud) / security (push) Successful in 16s
CI (SIAX Cloud) / security (push) Successful in 17s
CI (SIAX Cloud) / integration (push) Successful in 29s
CI (SIAX Cloud) / quality (push) Successful in 48s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 15s
CI (SIAX Cloud) / security (pull_request) Successful in 28s
CI (SIAX Cloud) / quality (pull_request) Successful in 48s
CI (SIAX Cloud) / integration (pull_request) Successful in 55s
Python Engine CI (SIAX Cloud) / python-engine (push) Failing after 4m52s
Python Engine CI (SIAX Cloud) / python-engine (pull_request) Failing after 4m48s
3edc56dcdb
Slutgate inför merge (per fortsättningsplan):

Kontrakt: CreateDatasetVersionInput.artifact_refs → readonly string[]
(anropare får skicka 'as const'; servicen muterar aldrig); postgres.js
tx.array() får muterbar kopia vid INSERT.

Testkorrigeringar (stale mot starkare implementation — aldrig svagare):
- entity-resolution-http: request(body, undefined) triggade default-param
  och skickade GILTIGT token → 200. Tomt token = 'utan token' → 401 fail-closed.
- entity-resolution: /two records/ → /between 2 and 5000/ (bounds-aware validering)
- search-service: omformat purpose-filter-test + NY negativ kontroll —
  rebuild avvisar dokument utan purpose_tags (fail closed, generation discarded)
- dataset-postgres.realinfra: sätter DATABASE_URL i setup så den durabla
  AUD0-outboxen aktiveras (testet ljög annars om durabilitet) — 5/5 mot live Postgres

STATUS.md: AUD0-klient + lineage-rader (outbox nu real-infra testad),
gap-listan (persistence/routes/outbox stängda, exakt vad som återstår),
P065 STÄNGD med closure-record (thin adapter, v3-semantik, hard-negative
transitivitet, fail-closed 401 — 4/4 planpunkter verifierade).

Verifierat: typecheck EXIT 0 · 945/945 unit · 5/5 real-Postgres · next build EXIT 0
test(er): resolv-determinism — match-pairs behöver hard-rule decided_by
CI (SIAX Cloud) / security (pull_request) Successful in 14s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 16s
Security Scan (SIAX Cloud) / security (push) Successful in 17s
CI (SIAX Cloud) / security (push) Successful in 29s
CI (SIAX Cloud) / integration (pull_request) Failing after 31s
CI (SIAX Cloud) / integration (push) Failing after 32s
CI (SIAX Cloud) / quality (pull_request) Successful in 36s
CI (SIAX Cloud) / quality (push) Successful in 38s
Python Engine CI (SIAX Cloud) / python-engine (push) Successful in 9m31s
Python Engine CI (SIAX Cloud) / python-engine (pull_request) Successful in 9m32s
6befaa7be7
_apply_matches ignorerar medvetet decided_by=score (defence in depth:
score/fuzzy får aldrig skapa canonical identity-länkar) — testernas
stub-bridge returnerade score-pairs och förväntade ändå merge → CI-fail var
implementationen som hade rätt. Pairs är nu decided_by=stable-identifiers.v3.

Verifierat: pytest services/api/tests 6+14 pass, full unit 945/945,
typecheck EXIT 0, real-Postgres 5/5.
admin added 1 commit 2026-09-07 17:52:04 +00:00
ci: tar bort python-engine.yml — kräver estate-policy-beslut (skyddade filer)
CI (SIAX Cloud) / security (push) Successful in 16s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 15s
Security Scan (SIAX Cloud) / security (push) Successful in 16s
CI (SIAX Cloud) / security (pull_request) Successful in 21s
CI (SIAX Cloud) / integration (push) Failing after 27s
CI (SIAX Cloud) / quality (push) Successful in 35s
CI (SIAX Cloud) / integration (pull_request) Failing after 36s
CI (SIAX Cloud) / quality (pull_request) Successful in 50s
3c9abda020
Ny blockerande pytest-gate + Postgres/OpenSearch/ClickHouse-härdningen i
ci.yml ur PR #10 berör .gitea/workflows/ (estate-skydd). De nya real-infra-
testerna är exekverade lokalt (Postgres 5/5; OpenSearch/CH-gate behåller
main:s konfig tills beslut) — hålls utanför merge så koden landar.
admin merged commit into main 2026-09-07 17:53:04 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/0pt#43