feat: implement RMASTER-WP-0023 private-by-default exposure
Add the exposure contract, additive family schema fields, validator checks and fixtures, the reef-railiance exception snapshot, and routed intakes. Enforcement stays in the owning repos.
This commit is contained in:
parent
6301798fab
commit
4a664533d3
24 changed files with 998 additions and 13 deletions
|
|
@ -4,8 +4,8 @@ type: workplan
|
|||
title: "Private-by-default exposure until production admission"
|
||||
domain: financials
|
||||
repo: railiance-master
|
||||
status: active
|
||||
owner: bernd
|
||||
status: finished
|
||||
owner: grok
|
||||
topic_slug: railiance
|
||||
planning_priority: high
|
||||
planning_order: 23
|
||||
|
|
@ -212,7 +212,7 @@ distinct.
|
|||
|
||||
```task
|
||||
id: RMASTER-WP-0023-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "96db2a2d-670c-4b98-b6f3-860f9b3009b3"
|
||||
```
|
||||
|
|
@ -236,11 +236,15 @@ substrate grant is invalid.
|
|||
**Done when:** implementation repos can implement without inventing
|
||||
vocabulary.
|
||||
|
||||
Completed 2026-08-15: `docs/exposure-posture-contract.md` names the
|
||||
per-family reading, grant shape, fail-closed default, conflict rule,
|
||||
6443 exclusion, and provider-delegated carve-out.
|
||||
|
||||
### T03 — Schema and validator
|
||||
|
||||
```task
|
||||
id: RMASTER-WP-0023-T03
|
||||
status: wait
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "03070be7-925e-4aee-9938-85b03b8cbe37"
|
||||
```
|
||||
|
|
@ -268,11 +272,17 @@ Name the field so it cannot be confused with rapp
|
|||
rapp that is not production-approved, and the testdata tree has good and
|
||||
bad fixtures. Live sibling repos are unchanged.
|
||||
|
||||
Completed 2026-08-15: additive `exposure` on all three family schemas.
|
||||
Validator rejects unapproved public rapps, missing grants, public rapps
|
||||
on a private reef, port 6443, and public provider-delegated reefs.
|
||||
Fixtures: `good-exposure` and `bad-exposure`. Live declarations omitted
|
||||
the field and still validate.
|
||||
|
||||
### T04 — Exception snapshot for already-public surfaces
|
||||
|
||||
```task
|
||||
id: RMASTER-WP-0023-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "6576cc7c-6c85-4d3b-b0cc-dfba4e9b4774"
|
||||
```
|
||||
|
|
@ -293,11 +303,16 @@ Out of scope: CoulombCore, shutdown plans, provider-native APIs.
|
|||
**Done when:** every known public surface on `reef-railiance` is either a
|
||||
snapshot grant or a routed task to close it.
|
||||
|
||||
Completed 2026-08-15:
|
||||
`docs/evidence/reef-railiance-exposure-snapshot-2026-08-15.md`.
|
||||
Grants: Forgejo, Coulomb Social, reuse-surface, Nydus 2224. Routed:
|
||||
`bao.coulomb.social` verify/close; CoulombCore names stay out.
|
||||
|
||||
### T05 — Route enforcement work
|
||||
|
||||
```task
|
||||
id: RMASTER-WP-0023-T05
|
||||
status: wait
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "d780df59-c67d-486e-8e8a-15e5043cd513"
|
||||
```
|
||||
|
|
@ -318,6 +333,12 @@ there from this repo.
|
|||
**Done when:** each owning repo has a workplan or an accepted intake,
|
||||
with a back-link to this ID.
|
||||
|
||||
Completed 2026-08-15: intakes in
|
||||
`docs/exposure-enforcement-intakes.md`. State Hub messages sent to
|
||||
`rail-kubernetes`, `railiance-cluster`, `reef-railiance`,
|
||||
`railiance-infra`, and `railiance-enablement`. Owning-repo agents file
|
||||
the workplans.
|
||||
|
||||
## Suggested review order
|
||||
|
||||
1. T01 (human) — accept or change the recommended table.
|
||||
|
|
@ -328,6 +349,6 @@ with a back-link to this ID.
|
|||
|
||||
## Outcome
|
||||
|
||||
T01 accepted 2026-08-15 (`status: active`). ADR-0008 is the record.
|
||||
Next: T02 contract and T04 exception snapshot. Implementation stays out
|
||||
of this repo.
|
||||
Finished 2026-08-15. ADR-0008, the exposure contract, additive schemas,
|
||||
validator fixtures, the reef-railiance snapshot, and routed intakes are
|
||||
in this repo. Packet-level enforcement stays with the owning repos.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue