Add repo-family metadata to Fabric registry
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s

This commit is contained in:
codex 2026-07-25 18:08:57 +02:00
parent 3240b78185
commit 0ea99a73d8
15 changed files with 189 additions and 32 deletions

View file

@ -19,6 +19,7 @@ This document is intentionally narrower than the framework architecture in
The first adaptation wave is deliberately small:
- onboard the missing current Railiance repos in the seed manifest
- persist repo-family metadata in the registry and repository projections
- add the first rail-specific capability type
- define canonical `service_type` values for future declarations
- avoid inventing full repo-family metadata or new export relations before the
@ -63,6 +64,21 @@ Initial Fabric shape:
The first declarations should make the substrate boundary visible before Fabric
tries to model every machine or placement relation in detail.
## Registry Metadata Path
The registry now carries the first repo-family-aware metadata fields on
repository records:
- `repo_family`
- `ownership_repo`
- `primary_rail`
- `supported_rails`
- `substrate_kind`
This metadata is available through repository registration, manifest sync, and
repository projections such as the graph explorer's synthesized repository
nodes.
## First New Capability Type
Fabric now reserves:
@ -83,12 +99,13 @@ service-level visibility before they need their own dedicated capability types.
The following are not done by this adaptation slice:
- repo-level `repo_family` metadata in the registry
- `ownership_repo`, `supported_rails`, `primary_rail`, or `substrate_kind`
registry metadata
- export relations such as `supports_rail`, `hosts_rail`, `binds_rapp`, or
`governed_by`
- validator rules for repo-family-specific declaration completeness
- graph queries that resolve placement or governance directly from the new
repo-family metadata
- State Hub read-model fields that surface repo family directly in generated
repo briefs or inventory views
Those require a second wave after the first real `rail-*`, `rapp-*`, and
`reef-*` repos exist.

View file

@ -45,6 +45,7 @@ repositories:
path: ..
default_branch: main
state_hub_repo_id: 2c0de614-e468-4eb6-8157-470649ac8c05
repo_family: ownership
declaration_paths:
- ..
sbom: bom.json
@ -58,6 +59,17 @@ repositories:
link back to State Hub repo views, but do not block onboarding when a repo is
registered in Fabric before that ID is wired in here.
The following repo-family metadata fields are also optional:
- `repo_family`: `ownership`, `rail`, `rapp`, or `reef`
- `ownership_repo`: canonical owning `railiance-*` repo when the registered repo
is not itself an ownership repo
- `primary_rail`: default rail for a reef or package when one is explicitly
declared
- `supported_rails`: array of supported rail ids for `rapp-*` repos
- `substrate_kind`: grouped substrate category such as `server`,
`workstation-group`, or `cluster`
`sbom` or `sboms` may point to CycloneDX JSON/YAML files. When present, the
command ingests them as queryable library inventory after repository
registration.