feat: complete fabric authority cutover contract
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a053ff-1d6f-7fe2-ac1c-a6eb40a42a0c
This commit is contained in:
tegwick 2026-08-31 22:18:39 +02:00
parent bbfa2d661b
commit debe67edf0
7 changed files with 344 additions and 8 deletions

View file

@ -4,11 +4,11 @@ type: workplan
title: "Fabric authority boundary for State Hub retirement"
domain: financials
repo: fin-hub
status: proposed
status: finished
owner: codex
topic_slug: financials
created: "2026-08-09"
updated: "2026-08-09"
updated: "2026-08-31"
parent_project: prj-state-hub-retirement
parent_workplan: SHR-WP-0001
related:
@ -30,7 +30,7 @@ define any hub-core projection, and support State Hub fabric route disposition
```task
id: FIN-WP-0003-T01
status: todo
status: done
priority: high
state_hub_task_id: "c6f6d2c5-4df2-5f8a-a838-76e4a0cb2974"
```
@ -38,11 +38,17 @@ state_hub_task_id: "c6f6d2c5-4df2-5f8a-a838-76e4a0cb2974"
Document which fabric entities/APIs are authoritative here vs State Hub read
models; publish consumer contract for migration.
Completed 2026-08-31: `docs/fabric-authority-consumer-contract-v1.md` assigns
topology, containment, ownership, accepted snapshots, and exports to the
specialized `railiance-fabric` engine. Fin-hub retains financial-domain
accountability and identifier joins only; State Hub remains a temporary read
model and neither fin-hub nor hub-core receives copied authority tables.
## Migration path from State Hub fabric routes
```task
id: FIN-WP-0003-T02
status: todo
status: done
priority: high
state_hub_task_id: "9743357c-d32d-5508-845e-d341fd611c49"
```
@ -50,11 +56,18 @@ state_hub_task_id: "9743357c-d32d-5508-845e-d341fd611c49"
With STATE-WP-0079, plan cutover for fabric ingest/read routes and dashboard
consumers; row-count and provenance checks.
Completed 2026-08-31: implemented `finhub fabric-cutover-check`. It gates the
switch on export identity, canonical content hash, five row counts, and exact
source revision/path/time provenance. The route map replaces State Hub ingest
with Fabric registry snapshot acceptance, points reads at Fabric graph/export
surfaces, points UI use at the graph explorer, and retains State Hub only as a
dual-read rollback during the cutover window.
## Optional hub projection
```task
id: FIN-WP-0003-T03
status: todo
status: done
priority: low
state_hub_task_id: "b57b5135-7e77-5cbe-9da8-fa226e43a0a5"
```
@ -62,8 +75,14 @@ state_hub_task_id: "b57b5135-7e77-5cbe-9da8-fa226e43a0a5"
If orientation needs a hub-core projection, define port usage without copying
authority tables into hub-core.
Completed 2026-08-31: explicitly deferred. The caller scan found no external
consumer of State Hub's Fabric routes, while Railiance Fabric already serves a
graph API and explorer. A future need must use a versioned read-only port with
source revision/content hash and a rebuildable bounded cache; it may not create
hub-core authority tables.
## Acceptance
- [ ] Authority boundary documented
- [ ] Migration path agreed with State Hub strangler
- [ ] Projection decision recorded (implement or explicitly defer)
- [x] Authority boundary documented
- [x] Migration path agreed with State Hub strangler
- [x] Projection decision recorded (implement or explicitly defer)