Newer Older
54 lines | 2.129kb
Bogdan Timofte authored 4 days ago
1
# Table: `dhcp_leases`
2

            
3
Stores observed DHCP lease/reservation data.
4

            
5
## Columns
6

            
7
| Column | Type | Null | Default | Notes |
8
|--------|------|------|---------|-------|
9
| `lease_key` | `TEXT` | no | none | Stable lease observation key. Primary key. |
10
| `worker_id` | `TEXT` | no | none | Collector worker. References `data_workers(worker_id)`. |
11
| `host_fqdn` | `TEXT` | yes | `NULL` | Matched host if known. References `hosts(fqdn)`. |
12
| `observed_name` | `TEXT` | no | `''` | Name reported by DHCP. |
13
| `ip_address` | `TEXT` | no | none | Observed IP address. |
14
| `mac_address` | `TEXT` | no | `''` | Observed MAC address. |
15
| `lease_state` | `TEXT` | no | `''` | DHCP state, if known. |
16
| `first_seen` | `TEXT` | no | none | First observation timestamp. |
17
| `last_seen` | `TEXT` | no | none | Last observation timestamp. |
18
| `raw` | `TEXT` | no | `''` | Raw source payload or diagnostic text. |
19

            
20
## Keys And Indexes
21

            
22
- Primary key: `lease_key`
23
- `idx_dhcp_leases_ip` on `ip_address`
24
- `idx_dhcp_leases_mac` on `mac_address`
25
- `idx_dhcp_leases_worker_last_seen` on `(worker_id, last_seen)`
26

            
27
## Relationships
28

            
29
- `worker_id` references `data_workers(worker_id)` with `ON UPDATE CASCADE ON DELETE RESTRICT`
30
- `host_fqdn` references `hosts(fqdn)` with `ON UPDATE CASCADE ON DELETE SET NULL`
31

            
32
## Definition
33

            
34
```sql
35
CREATE TABLE IF NOT EXISTS dhcp_leases (
36
    lease_key TEXT PRIMARY KEY,
37
    worker_id TEXT NOT NULL,
38
    host_fqdn TEXT,
39
    observed_name TEXT NOT NULL DEFAULT '',
40
    ip_address TEXT NOT NULL,
41
    mac_address TEXT NOT NULL DEFAULT '',
42
    lease_state TEXT NOT NULL DEFAULT '',
43
    first_seen TEXT NOT NULL,
44
    last_seen TEXT NOT NULL,
45
    raw TEXT NOT NULL DEFAULT '',
46
    FOREIGN KEY (worker_id) REFERENCES data_workers(worker_id) ON UPDATE CASCADE ON DELETE RESTRICT,
47
    FOREIGN KEY (host_fqdn) REFERENCES hosts(fqdn) ON UPDATE CASCADE ON DELETE SET NULL
48
);
49

            
50
CREATE INDEX IF NOT EXISTS idx_dhcp_leases_ip ON dhcp_leases(ip_address);
51
CREATE INDEX IF NOT EXISTS idx_dhcp_leases_mac ON dhcp_leases(mac_address);
52
CREATE INDEX IF NOT EXISTS idx_dhcp_leases_worker_last_seen
53
ON dhcp_leases(worker_id, last_seen);
54
```