Files
2026-08-03 21:40:48 +00:00

90 lines
1.6 KiB
Markdown

# Domain Model
## Entitਨ principali
### Object
Rappresenta qualsiasi entitਨ mappabile.
Campi iniziali:
- `id`
- `name`
- `slug`
- `type` (`site`, `area`, `rack`, `physical_host`, `vm`, `lxc`, `app`, `switch`, `firewall`, `router`, `ap`, `camera`, `storage`, `other`)
- `status`
- `vendor`
- `model`
- `serial`
- `os_name`
- `os_version`
- `notes`
### ObjectRelation
Relazione tra due oggetti.
Campi iniziali:
- `id`
- `source_object_id`
- `target_object_id`
- `relation_type` (`contains`, `hosts`, `connected_to`, `depends_on`, `managed_by`, `runs`)
- `confidence`
- `source_type` (`manual`, `nmap`, `snmp`, `lldp`, `arp`, `api`)
### NetworkInterface
Interfaccia di rete collegata a un oggetto.
Campi iniziali:
- `id`
- `object_id`
- `name`
- `mac_address`
- `mtu`
- `speed`
- `admin_state`
- `oper_state`
- `description`
### IPAddress
Indirizzo IP associato a un oggetto o a un'interfaccia.
Campi iniziali:
- `id`
- `address`
- `version`
- `prefix_length`
- `hostname`
- `dns_name`
- `status`
- `object_id`
- `interface_id`
- `is_primary`
- `source_type`
### DiscoveryJob
Esecuzione di un task di discovery.
Campi iniziali:
- `id`
- `job_type`
- `scope`
- `status`
- `started_at`
- `finished_at`
- `requested_by`
- `parameters_json`
- `result_summary`
### Evidence
Dato grezzo o semi-normalizzato raccolto da una sorgente.
Campi iniziali:
- `id`
- `source_type`
- `object_hint`
- `payload_json`
- `observed_at`
- `fingerprint`
## Nota di progettazione
Separare oggetti, relazioni e evidenze consente di distinguere ciò che il sistema ha osservato da ciò che il sistema ha consolidato nel modello finale.