Implements the hardware.licenses[] contract section (v2.12, refreshed from reanimator/core's hardware-ingest-contract.md — was v2.11 locally). - models.License / HardwareConfig.Licenses mirror the contract field set. - collector.collectLicenses() reads the standard DMTF /redfish/v1/LicenseService/Licenses collection during Redfish-walk replay; it's a generic DMTF resource, not Dell-specific, so any future vendor's Redfish walk gets license collection for free through ReplayRedfishFromRawPayloads. - vendors/dell merges replayed Licenses like every other category. - exporter.convertLicenses/dedupeLicenses wire hw.Licenses into the reanimator export directly (no canonical-devices merge — licenses have no physical identity to merge on), setting Present on every record from the start (per the ADL-049 round-trip lesson). - chart viewer renders a licenses section in /chart/current. Verified end-to-end on the PowerEdge R7715 (1TVFYL4) TSR: 3 system-level licenses extracted and correctly exported/rendered. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
LOGPile Bible
bible-local/ is the project-specific source of truth for LOGPile.
Keep top-level docs minimal and put maintained architecture/API contracts here.
Rules
- Documentation language: English only
- Update relevant bible files in the same change as the code
- Record significant architectural decisions in
10-decisions.md - Do not duplicate shared rules from
bible/
Read order
| File | Purpose |
|---|---|
| 01-overview.md | Product scope, modes, non-goals |
| 02-architecture.md | Runtime structure, state, main flows |
| 04-data-models.md | Stable data contracts and canonical inventory |
| 03-api.md | HTTP endpoints and response contracts |
| 05-collectors.md | Live collection behavior |
| 06-parsers.md | Archive parser framework and vendor coverage |
| 07-exporters.md | Raw export, Reanimator export, batch convert |
| docs/hardware-ingest-contract.md | Reanimator ingest schema mirrored locally |
| 08-build-release.md | Build and release workflow |
| 09-testing.md | Test expectations and regression rules |
| 10-decisions.md | Architectural Decision Log |
Fast orientation
- Entry point:
cmd/logpile/main.go - HTTP layer:
internal/server/ - Core contracts:
internal/models/models.go - Live collection:
internal/collector/ - Archive parsing:
internal/parser/ - Export conversion:
internal/exporter/ - Frontend consumer:
web/static/js/app.js
Maintenance rule
If a document becomes stale, either fix it immediately or delete it. Stale docs are worse than missing docs.