# 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: ```bash railiance-fabric-registry --db .railiance-fabric/registry.sqlite3 --port 8765 ``` Sync the known local Railiance ecosystem repos: ```bash railiance-fabric registry sync-manifest registry/railiance-repos.yaml ``` Sync every active State Hub repo that is available on this local host: ```bash 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 ```yaml 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: ```text 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.