Files
proxmox/docs/02-architecture/IT_LIVE_COLLECTORS_CONTRACT.md
defiQUG dbd517b279 Sync workspace: config, docs, scripts, CI, operator rules, and submodule pointers.
- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains
- Omit embedded publish git dirs and empty placeholders from index

Made-with: Cursor
2026-04-12 06:12:20 -07:00

1.6 KiB

IT live collectors — contract

Canonical machine-readable contract: config/it-operations/live-collectors-contract.json
Spec: SANKOFA_IT_OPERATIONS_CONTROLLER_SPEC.md (section 5.1)

Per-collector rules

Collector Refresh target On failure
Proxmox guest IPAM Hourly on LAN (timer or CI dispatch) drift.json notes + seed_unreachable; UI stale banner
Optional ip neigh 15 min when IT_COLLECT_IP_NEIGH=1 Omitted from JSON; no fail
Hardware poll Weekly Keep last reports/status/hardware_and_connected_inventory_*.md; banner if older than policy
NPM / UniFi Phase 2 Stub endpoint returns stale: true until wired

Live-only vs declared-only

  • Live-only: guest status, observed ip, mac (from net0 / hwaddr= when present), node, collected_at from pvesh + guest config.
  • Declared-only: ip-addresses.conf keys not present on any guest (reported in drift as ip_addresses_conf_ips_not_on_guests where applicable).
  • Merged: drift.json compares live guests to declared literals and ALL_VMIDS markdown table.

API exposure

  • GET /v1/collector-contract on the read API serves the JSON above (no auth beyond existing /v1 API key rule).

Change process

  1. Edit live-collectors-contract.json and this doc together.
  2. Run bash scripts/validation/validate-config-files.sh (py_compile includes IT scripts).
  3. If portal or BFF caches intervals, bump version in JSON.