4.4 KiB
4.4 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 - local mirror currently tracks upstream contract
v2.7 - timestamps are RFC3339
- status is normalized to Reanimator-friendly values
- missing component serial numbers must stay absent; LOGPile must not synthesize fake serials for Reanimator export
- 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- Reanimator ingest may apply its own server-side fallback serial rules for CPU and PCIe when LOGPile leaves serials absent
Inclusion rules
Included:
- PCIe-class devices when the component itself is present, even if serial number is missing
- contract
v2.7component telemetry and health fields when source data exists - hardware sensors grouped into
fans,power,temperatures,otheronly when the sensor has a real numeric reading - sensor
locationis not exported; LOGPile keeps only sensornameplus measured values and status - Redfish linked metric docs that carry component telemetry:
ProcessorMetrics,MemoryMetrics,DriveMetrics,EnvironmentMetrics,Metrics pcie_devices.slotis treated as the canonical PCIe address;bdfis used only as an internal fallback/dedupe key and is not serialized in the payloadevent_logsare exported only from normalized parser/collector events that can be mapped to contract sourceshost/bmc/redfishwithout synthesizing contentmanufactured_year_weekis exported only as a reliable passthrough when the parser/collector already extracted a validYYYY-Wwwvalue
Excluded:
- storage endpoints from
pcie_devices; disks and NVMe drives export only throughhardware.storage - fake serial numbers for PCIe-class devices; any fallback serial generation belongs to Reanimator ingest, not LOGPile
- sensors without a real numeric reading
- events with internal-only or unmappable sources such as LOGPile internal warnings
- 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.