- Kind: Projection
- Version: 1
- Fleet Manager owner: Fleet Manager squad, #fleet-manager-chat (individual claimant pending)
- Counterpart owner: Microsoft via the Nscale account team; internal delivery owner Fleet Manager squad
- Last reviewed: 2026-09-09
What flows
Thematrix-connector (src/fleet_manager/api/connectors/matrix/, ADR-0021 and ADR-0022) consumes device
and cable inventory events over JetStream, drains a delivery queue into Kusto projection tables for servers,
NVSwitches, datacentres and link staging, and runs a polling backstop. It holds inventory:read and
inventory-links:read. It also reads NetBox directly: wire_netbox_direct installs either the two-clock sync
loop (netbox_direct_enabled) or the legacy per-delivery NetBoxDirectFeed, and both populate the EthDevices
and IbInventory tables from NetBox rather than from Fleet Manager projections, so this connector has an
observation input of its own (see netbox). Site scope is a fail-closed site_filter; the freshness
target is under five minutes.
What breaks if this changes
ADeviceInventoryProjection or cable projection shape change breaks table transforms and the schema lint. A NetBox
outage or schema change stales EthDevices and IbInventory directly, independent of Fleet Manager. A
NetBox naming deviation (a missing asset tag, an off-convention IB switch name) raises MatrixTransformError in
the worker: in production the delivery is marked failed and dead-lettered with a monitored gauge, in dev the record
is skipped with a warning and a counter. The row is missing from the customer feed either way, but the signal is in
the delivery queue, logs and metrics, not silent.
Enforcement
- Principal:
matrix-connector. - Mechanism: towards Fleet Manager, FM OAuth client (private-key JWT) in the hub chart roster; towards NetBox, the NetBox API token (see netbox); towards Kusto, the
Azure service principal in the
azure-kustoandazure-kusto-admin1Password items (src/fleet_manager/settings/clients/azure_kusto.py); towards NATS, thefleet-matrix-connector-clientcertificate on the Fleet Manager-owned plane (see nats). - Hub roster client
matrix-connector;matrix-connector-schema-lintpre-commit hook. - Settings:
src/fleet_manager/settings/agents/matrix.py; operations guide Matrix Connector Operations.
Gaps
- Kusto ingest visibility is Microsoft-side; Fleet Manager measures queue age, not sink-visible latency.
Change log
- 2026-09-09 v1: created; describes present behaviour.