Files
logpile/bible-local
Michael Chus 9c5512d238 dell: strip MAC from model names; fix device-bound firmware in dell/inspur
- Dell NICView: strip " - XX:XX:XX:XX:XX:XX" suffix from ProductName
  (Dell TSR embeds MAC in this field for every NIC port)
- Dell SoftwareIdentity: same strip applied to ElementName; store FQDD
  in FirmwareInfo.Description so exporter can filter device-bound entries
- Exporter: add isDeviceBoundFirmwareFQDD() to filter firmware entries
  whose Description matches NIC./PSU./Disk./RAID.Backplane./GPU. FQDD
  prefixes (prevents device firmware from appearing in hardware.firmware)
- Exporter: extend isDeviceBoundFirmwareName() to filter HGX GPU/NVSwitch
  firmware inventory IDs (_fw_gpu_, _fw_nvswitch_, _inforom_gpu_)
- Inspur: remove HDD firmware from Hardware.Firmware — already present
  in Storage.Firmware, duplicating it violates ADL-016
- bible-local/06-parsers.md: document firmware and MAC stripping rules
- bible-local/10-decisions.md: add ADL-016 (device-bound firmware) and
  ADL-017 (vendor-embedded MAC in model name fields)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 22:07:53 +03:00
..

LOGPile Bible

Documentation language: English only. All maintained project documentation must be written in English.

Architectural decisions: Every significant architectural decision must be recorded in 10-decisions.md before or alongside the code change.

Single source of truth: Architecture and technical design documentation belongs in docs/bible/. Keep README.md and CLAUDE.md minimal to avoid duplicate documentation.

This directory is the single source of truth for LOGPile's architecture, design, and integration contracts. It is structured so that both humans and AI assistants can navigate it quickly.


Reading Map (Hierarchical)

1. Foundations (read first)

File What it covers
01-overview.md Product purpose, operating modes, scope
02-architecture.md Runtime structure, control flow, in-memory state
04-data-models.md Core contracts (AnalysisResult, canonical hardware.devices)

2. Runtime Interfaces

File What it covers
03-api.md HTTP API contracts and endpoint behavior
05-collectors.md Live collection connectors (Redfish, IPMI mock)
06-parsers.md Archive parser framework and vendor parsers
07-exporters.md CSV / JSON / Reanimator exports and integration mapping

3. Delivery & Quality

File What it covers
08-build-release.md Build, packaging, release workflow
09-testing.md Testing expectations and verification guidance

4. Governance (always current)

File What it covers
10-decisions.md Architectural Decision Log (ADL)

Quick orientation for AI assistants

  • Read order for most changes: 010204 → relevant interface doc(s) → 10
  • Entry point: cmd/logpile/main.go
  • HTTP server: internal/server/ — handlers in handlers.go, routes in server.go
  • Data contracts: internal/models/ — never break AnalysisResult JSON shape
  • Frontend contract: web/static/js/app.js — keep API responses stable
  • Canonical inventory: hardware.devices in AnalysisResult — source of truth for UI and exports
  • Parser registry: internal/parser/vendors/init() auto-registration pattern
  • Collector registry: internal/collector/registry.go