feat: allow provider-delegated reefs with no rail

Object-storage reefs omit primary_rail and hosted_rails. Scaleway
operates S3; reef-storage only names the boundary. Finish
RMASTER-WP-0022.
This commit is contained in:
codex 2026-08-14 15:53:30 +02:00
parent 82b7b7295d
commit 654bbe891b
8 changed files with 67 additions and 32 deletions

View file

@ -0,0 +1,13 @@
kind: substrate-reef
reef_id: reef-storage-example
repo: reef-storage-example
ownership_repo: railiance-platform
substrate_kind: object-storage
lifecycle_state: planned
criticality: high
current_members: []
source_documents:
- repo: railiance-master
path: docs/reef-substrate-model.md
compatibility_notes:
- Provider-delegated S3 fixture. No rail. The provider operates the capability.

View file

@ -190,7 +190,7 @@ def check_reef(loaded: Loaded, report: Report) -> None:
report.add(loaded.rel, "reef_id", f"{doc['reef_id']!r} must equal repo {doc['repo']!r}")
primary = doc.get("primary_rail")
hosted = as_list(doc.get("hosted_rails"))
if primary and hosted and primary not in hosted:
if primary and primary not in hosted:
report.add(
loaded.rel,
"primary_rail",