> ## Documentation Index
> Fetch the complete documentation index at: https://docs.internal.nscale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Relationship Register

> What the relationship register is, the five relationship kinds, and how to add or change a file.

One file per system Fleet Manager observes, is actuated by, projects to, depends on to run, or shares [custody](../start-here/glossary#customer-custody) with. The
decision and the rules are in ADR-0046 (`docs/adr/0046-fleet-manager-relationship-register.md`). Each file
records present behaviour as read from the code and the OAuth client roster in
`deployment/charts/hub/values.yaml`; it is not a negotiation.

| Kind | Direction | Files |
| - | - | - |
| Observation | source system feeds Fleet Manager | [netbox](./netbox), [ironic-nova-placement](./ironic-nova-placement), [slurm](./slurm), [mimir](./mimir), [topology-service](./topology-service), [nvlink-fabric](./nvlink-fabric), [uni-attribution](./uni-attribution) |
| Actuation | another system asks Fleet Manager to change hardware | [chad](./chad), [operators-ui](./operators-ui) |
| Projection | another system reads Fleet Manager | [radar](./radar), [matrix-connector](./matrix-connector), [google-borneo](./google-borneo), [burn-in-testing](./burn-in-testing), [deployment-readiness-dashboard](./deployment-readiness-dashboard), [ops-command-center](./ops-command-center), [reservation](./reservation), [support](./support) |
| Dependency | a service Fleet Manager relies on to run, holding no [fleet](../start-here/glossary#fleet) state | [object-storage](./object-storage), [onepassword](./onepassword), [hashicorp-vault](./hashicorp-vault), [nats](./nats) |
| Custody | hardware moves between Nscale and a customer | [google-lon14](./google-lon14), [meta-north-carolina](./meta-north-carolina), [microsoft-ward-county](./microsoft-ward-county) |

## Adding or changing a relationship

1. Copy [the template](./template) to `<counterpart-slug>.mdx` and fill every section. A relationship gets a page
   only once it runs; planned integrations are opened by the counterpart team when they land. Unknown counterpart owners are
   written as `unassigned`, never guessed.
2. Open a pull request. GitHub requests both owning teams for review; an approval from either satisfies the
   code-owner gate today, so counterpart approval is a convention until a ruleset enforces it. Raise the request
   in the engineering work-request channel so the counterpart team sees it.
3. Land the OAuth client, scopes and any pact or contract test in the same change where the relationship is
   new.
4. When either side changes the behaviour a file describes, change the file in the same pull request and bump
   its version.

Every actuation or projection page lists the principals the counterpart uses to reach Fleet Manager. One principal
per relationship is the goal, not the current state: CHAD lists three clients, [Radar](../start-here/glossary#radar-api) and OpenStack list two, and
Reservation lists none. Custody pages have no principal. Today a principal is an OAuth client in the hub chart
roster; when Fleet Manager's service authentication moves onto Auth0 and uni-identity, the page keeps its
principals and only the mechanism line changes.

Nothing lapses because a relationship is quiet. Only counterpart ownership of an actuation or projection page
lapses, and the freeze is a manual procedure, not automation. The thirty-day clock starts when the Fleet Manager
squad learns the counterpart owner has left, through that team's offboarding notice or, failing that, the quarterly
register review; a departure right after a review can therefore go unnoticed for up to a quarter. Once the clock
runs out with nobody claiming the page, the squad removes the write scopes of the counterpart's principals listed on
that page by pull request to the hub chart roster and records it in the change log. Read scopes are never frozen, and
observation, dependency and custody pages are never frozen because their principals are Fleet Manager's own agents
or none. The Fleet Manager side of a page may be owned by the squad; a named engineer is a claimant, not a
precondition.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.