- 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
1.6 KiB
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, observedip,mac(fromnet0/hwaddr=when present),node,collected_atfrompvesh+ guest config. - Declared-only:
ip-addresses.confkeys not present on any guest (reported in drift asip_addresses_conf_ips_not_on_guestswhere applicable). - Merged:
drift.jsoncompares live guests to declared literals and ALL_VMIDS markdown table.
API exposure
- GET
/v1/collector-contracton the read API serves the JSON above (no auth beyond existing/v1API key rule).
Change process
- Edit
live-collectors-contract.jsonand this doc together. - Run
bash scripts/validation/validate-config-files.sh(py_compile includes IT scripts). - If portal or BFF caches intervals, bump
versionin JSON.