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

91 lines
3.2 KiB
Markdown

# 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.