2.4 KiB
2.4 KiB
04 — Data Models
Core contract: AnalysisResult
internal/models/models.go defines the shared result passed between parsers, collectors, server handlers, and exporters.
Stability rule:
- do not rename or remove JSON fields from
AnalysisResult - additive fields are allowed
- UI and exporter compatibility depends on this shape remaining stable
Key fields:
| Field | Meaning |
|---|---|
filename |
Original upload name or synthesized live source name |
source_type |
archive or api |
protocol |
redfish, ipmi, or empty for archive uploads |
target_host |
Hostname or IP for live collection |
source_timezone |
Source timezone/offset if known |
collected_at |
Canonical collection/upload time |
raw_payloads |
Raw source data used for replay or diagnostics |
events |
Parsed event timeline |
fru |
FRU-derived inventory details |
sensors |
Sensor readings |
hardware |
Normalized hardware inventory |
HardwareConfig
Main sections:
hardware.board
hardware.devices
hardware.cpus
hardware.memory
hardware.storage
hardware.volumes
hardware.pcie_devices
hardware.gpus
hardware.network_adapters
hardware.network_cards
hardware.power_supplies
hardware.firmware
network_cards is legacy/alternate source data.
hardware.devices is the canonical cross-section inventory.
Canonical inventory: hardware.devices
hardware.devices is the single source of truth for device-oriented UI and Reanimator export.
Required rules:
- UI hardware views must read from
hardware.devices - Reanimator conversion must derive device sections from
hardware.devices - UI/export mismatches are bugs, not accepted divergence
- New shared device fields belong in
HardwareDevicefirst
Deduplication priority:
| Priority | Key |
|---|---|
| 1 | usable serial_number |
| 2 | bdf |
| 3 | keep records separate |
Raw payloads
raw_payloads is authoritative for replayable sources.
Current important payloads:
redfish_treeredfish_fetch_errorssource_timezone
Normalized hardware fields are derived output, not the long-term source of truth.
Raw export package
/api/export/json produces a reopenable raw-export artifact.
Design rules:
- raw source stays authoritative
- uploads of raw-export artifacts must re-analyze from raw source
- parsed snapshots inside the bundle are diagnostic only