Files
railiance-fabric/docs/registry-onboarding.md

3.2 KiB

Registry Onboarding

Multi-repo onboarding uses an operator-owned manifest to register ecosystem repositories with a running Railiance Fabric registry and to push graph and library inventory when the local checkout has the required inputs.

Repo-local declarations remain useful self-description evidence. They should not be treated as the default authority for external fabric membership, ownership, tenant boundaries, or cross-boundary utility relations. Those belong to the accountability-root discovery model described in docs/FabricDiscoveryAndUpdate.md.

Run The Railiance Manifest

Start the registry:

railiance-fabric-registry --db .railiance-fabric/registry.sqlite3 --port 8765

Sync the known local Railiance ecosystem repos:

railiance-fabric registry sync-manifest registry/railiance-repos.yaml

Sync every active State Hub repo that is available on this local host:

railiance-fabric registry sync-manifest registry/local-repos.yaml

Use --json for automation and --strict when unavailable repos or invalid inputs should fail the command.

Manifest Shape

apiVersion: railiance.fabric/v1alpha1
kind: RegistryOnboardingManifest
registry_url: http://127.0.0.1:8765
repositories:
  - slug: railiance-fabric
    name: railiance-fabric
    path: ..
    default_branch: main
    state_hub_repo_id: 2c0de614-e468-4eb6-8157-470649ac8c05
    declaration_paths:
      - ..
    sbom: bom.json

path is the local checkout used for git metadata and default graph discovery. declaration_paths is optional; when omitted, the repo path is scanned for a fabric/ directory. Relative paths are resolved from the manifest file.

sbom or sboms may point to CycloneDX JSON/YAML files. When present, the command ingests them as queryable library inventory after repository registration.

Onboarding Behavior

Each repository entry is registered first. If the checkout is unavailable or has no Fabric declarations yet, the command leaves the repo registered and reports a warning. This lets the registry represent known repos before every repo has published local evidence.

When declarations exist, the command validates them, builds a graph snapshot, and posts it to:

POST /repositories/{repo_slug}/snapshots

The first Railiance manifest keeps the seed ecosystem graph in railiance-fabric and registers adjacent repos as known sources. As discovery roots mature, adjacent repos can contribute local evidence without making each repo responsible for the whole external fabric relation model.

registry/local-repos.yaml is a broader local-host manifest. It is generated from active State Hub repo records whose local path exists on the current WSL host. It registers cross-domain local repos into the Fabric registry while only syncing graph snapshots for repos that already have Fabric declarations.

When two active repo records point at the same checkout path, accountability root discovery treats them as aliases of one repository identity. The canonical identity can be declared with canonical_slug; otherwise discovery prefers the slug matching the checkout directory name and then the entry with a remote URL. Use split_identity: true only when shared paths are intentional and should remain separate review candidates.