3.3 KiB
3.3 KiB
07 — Exporters
Export surfaces
| Endpoint | Output | Purpose |
|---|---|---|
GET /api/export/csv |
CSV | Serial-number export |
GET /api/export/json |
raw-export ZIP bundle | Reopen and re-analyze later |
GET /api/export/reanimator |
JSON | Reanimator hardware payload |
POST /api/convert |
async ZIP artifact | Batch archive-to-Reanimator conversion |
Raw export
Raw export is not a final report dump. It is a replayable artifact that preserves enough source data for future parser improvements.
Current bundle contents:
raw_export.jsoncollect.logparser_fields.json
Design rules:
- raw source is authoritative
- uploads of raw export must replay from raw source
- parsed snapshots inside the bundle are diagnostic only
Reanimator export
Implementation files:
internal/exporter/reanimator_models.gointernal/exporter/reanimator_converter.gointernal/server/handlers.gobible-local/docs/hardware-ingest-contract.md
Conversion rules:
- canonical source is merged canonical inventory derived from
hardware.devicesplus legacy hardware slices - output must conform to the strict Reanimator ingest contract in
docs/hardware-ingest-contract.md - timestamps are RFC3339
- status is normalized to Reanimator-friendly values
- missing PCIe serials may be generated from board serial + slot
- missing CPU serials may be generated from board serial + socket
- CPU
firmwarefield means CPU microcode, not generic processor firmware inventory NULL-style board manufacturer/product values are treated as absent- optional component telemetry/health fields are exported when LOGPile already has the data
- partial
hardware.devicesmust not suppress components still present only in legacy parser/collector fields presentis not serialized for exported components; presence is expressed by the existence of the component record itself
Inclusion rules
Included:
- PCIe-class devices even when serial must be synthesized
- contract
v2.4component telemetry and health fields when source data exists - hardware sensors grouped into
fans,power,temperatures,other - Redfish linked metric docs that carry component telemetry:
ProcessorMetrics,MemoryMetrics,DriveMetrics,EnvironmentMetrics,Metrics
Excluded:
- memory with missing serial number
- memory with
present=falseorstatus=Empty - CPUs with
present=false - storage without
serial_number - storage with
present=false - power supplies without
serial_number - power supplies with
present=false - non-present network adapters
- non-present PCIe / GPU devices
- device-bound firmware duplicated at top-level firmware list
- any field not present in the strict ingest contract
Batch convert
POST /api/convert accepts multiple supported files and produces a ZIP with:
- one
*.reanimator.jsonfile per successful input convert-summary.txt
Behavior:
- unsupported filenames are skipped
- each file is parsed independently
- one bad file must not fail the whole batch if at least one conversion succeeds
- result artifact is temporary and deleted after download
CSV export
GET /api/export/csv uses the same merged canonical inventory as Reanimator export,
with legacy network-card fallback kept only for records that still have no canonical device match.