Context
Scan targets are currently configured via a single OPENCMDB_SCAN_CIDR env var (one CIDR, set at deploy time, read once on startup). Real deployments have several subnets — Guy's home-lab already does, and an SMB will typically have more (VLANs per role/site).
Request
Let the operator manage the set of scan subnets from the web interface, not just an env var:
- Enter/edit multiple CIDRs (a list, not a single value).
- Add / remove / edit them at runtime, persisted (a table), no container restart.
- Validate each CIDR (reuse the existing
subnet_hosts bounds: reject / too large, malformed input).
- Trigger a scan of all configured subnets (and, later, on the periodic schedule — FR6).
Notes / design pointers
- Today the scan is a one-shot startup scan wired in
spawn_startup_scan (main.rs), building one ArpPingConnector from one CIDR via ArpPingConnector::from_cidr. subnet_hosts already expands+bounds a single CIDR.
- Interim step (cheap): accept a comma/space-separated list in
OPENCMDB_SCAN_CIDR so multiple subnets work before the UI exists.
- Full feature: a
scan_subnet table + a form on the page (Askama/HTMX) + the scan reading targets from the DB instead of the env; ties into the periodic scheduler (FR6) and the full ARP/ping scan epic.
Scope
Enhancement — Growth (beyond the v0.1 walking skeleton). Raised by Guy during the v0.1.0 deployment, 2026-07-20.
Context
Scan targets are currently configured via a single
OPENCMDB_SCAN_CIDRenv var (one CIDR, set at deploy time, read once on startup). Real deployments have several subnets — Guy's home-lab already does, and an SMB will typically have more (VLANs per role/site).Request
Let the operator manage the set of scan subnets from the web interface, not just an env var:
subnet_hostsbounds: reject/too large, malformed input).Notes / design pointers
spawn_startup_scan(main.rs), building oneArpPingConnectorfrom one CIDR viaArpPingConnector::from_cidr.subnet_hostsalready expands+bounds a single CIDR.OPENCMDB_SCAN_CIDRso multiple subnets work before the UI exists.scan_subnettable + a form on the page (Askama/HTMX) + the scan reading targets from the DB instead of the env; ties into the periodic scheduler (FR6) and the full ARP/ping scan epic.Scope
Enhancement — Growth (beyond the v0.1 walking skeleton). Raised by Guy during the v0.1.0 deployment, 2026-07-20.