- go.mod: module bee/audit - schema/hardware.go: HardwareIngestRequest types (compatible with core) - collector/collector.go: Run() stub, logs start/finish, returns empty snapshot - updater/trust.go: Ed25519 multi-key verification via ldflags injection - updater/trust_test.go: valid sig, tampered, multi-key any-match, dev build - cmd/audit/main.go: --output stdout|file:<path>|usb, --version flag - Version = "dev" by default, injected via ldflags at release Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
114 lines
4.4 KiB
Go
114 lines
4.4 KiB
Go
// Package schema defines the HardwareIngestRequest types compatible with
|
|
// core/internal/ingest/parser_hardware.go. No import dependency on core.
|
|
package schema
|
|
|
|
// HardwareIngestRequest is the top-level output document produced by the audit binary.
|
|
// It is accepted as-is by the core /api/ingest/hardware endpoint.
|
|
type HardwareIngestRequest struct {
|
|
Filename *string `json:"filename"`
|
|
SourceType *string `json:"source_type"`
|
|
Protocol *string `json:"protocol"`
|
|
TargetHost string `json:"target_host"`
|
|
CollectedAt string `json:"collected_at"`
|
|
Hardware HardwareSnapshot `json:"hardware"`
|
|
}
|
|
|
|
type HardwareSnapshot struct {
|
|
Board HardwareBoard `json:"board"`
|
|
Firmware []HardwareFirmwareRecord `json:"firmware,omitempty"`
|
|
CPUs []HardwareCPU `json:"cpus,omitempty"`
|
|
Memory []HardwareMemory `json:"memory,omitempty"`
|
|
Storage []HardwareStorage `json:"storage,omitempty"`
|
|
PCIeDevices []HardwarePCIeDevice `json:"pcie_devices,omitempty"`
|
|
PowerSupplies []HardwarePowerSupply `json:"power_supplies,omitempty"`
|
|
}
|
|
|
|
type HardwareBoard struct {
|
|
Manufacturer *string `json:"manufacturer"`
|
|
ProductName *string `json:"product_name"`
|
|
SerialNumber string `json:"serial_number"`
|
|
PartNumber *string `json:"part_number"`
|
|
UUID *string `json:"uuid"`
|
|
}
|
|
|
|
type HardwareFirmwareRecord struct {
|
|
DeviceName string `json:"device_name"`
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
type HardwareCPU struct {
|
|
Socket *int `json:"socket"`
|
|
Model *string `json:"model"`
|
|
Manufacturer *string `json:"manufacturer"`
|
|
Status *string `json:"status"`
|
|
SerialNumber *string `json:"serial_number"`
|
|
Firmware *string `json:"firmware"`
|
|
Cores *int `json:"cores"`
|
|
Threads *int `json:"threads"`
|
|
FrequencyMHz *int `json:"frequency_mhz"`
|
|
MaxFrequencyMHz *int `json:"max_frequency_mhz"`
|
|
}
|
|
|
|
type HardwareMemory struct {
|
|
Slot *string `json:"slot"`
|
|
Location *string `json:"location"`
|
|
Present *bool `json:"present"`
|
|
SizeMB *int `json:"size_mb"`
|
|
Type *string `json:"type"`
|
|
MaxSpeedMHz *int `json:"max_speed_mhz"`
|
|
CurrentSpeedMHz *int `json:"current_speed_mhz"`
|
|
Manufacturer *string `json:"manufacturer"`
|
|
SerialNumber *string `json:"serial_number"`
|
|
PartNumber *string `json:"part_number"`
|
|
Status *string `json:"status"`
|
|
}
|
|
|
|
type HardwareStorage struct {
|
|
Slot *string `json:"slot"`
|
|
Type *string `json:"type"`
|
|
Model *string `json:"model"`
|
|
SizeGB *int `json:"size_gb"`
|
|
SerialNumber *string `json:"serial_number"`
|
|
Manufacturer *string `json:"manufacturer"`
|
|
Firmware *string `json:"firmware"`
|
|
Interface *string `json:"interface"`
|
|
Present *bool `json:"present"`
|
|
Status *string `json:"status"`
|
|
Telemetry map[string]any `json:"telemetry,omitempty"`
|
|
}
|
|
|
|
type HardwarePCIeDevice struct {
|
|
Slot *string `json:"slot"`
|
|
VendorID *int `json:"vendor_id"`
|
|
DeviceID *int `json:"device_id"`
|
|
BDF *string `json:"bdf"`
|
|
DeviceClass *string `json:"device_class"`
|
|
Manufacturer *string `json:"manufacturer"`
|
|
Model *string `json:"model"`
|
|
LinkWidth *int `json:"link_width"`
|
|
LinkSpeed *string `json:"link_speed"`
|
|
MaxLinkWidth *int `json:"max_link_width"`
|
|
MaxLinkSpeed *string `json:"max_link_speed"`
|
|
SerialNumber *string `json:"serial_number"`
|
|
Firmware *string `json:"firmware"`
|
|
Present *bool `json:"present"`
|
|
Status *string `json:"status"`
|
|
Telemetry map[string]any `json:"telemetry,omitempty"`
|
|
}
|
|
|
|
type HardwarePowerSupply struct {
|
|
Slot *string `json:"slot"`
|
|
Present *bool `json:"present"`
|
|
Model *string `json:"model"`
|
|
Vendor *string `json:"vendor"`
|
|
WattageW *int `json:"wattage_w"`
|
|
SerialNumber *string `json:"serial_number"`
|
|
PartNumber *string `json:"part_number"`
|
|
Firmware *string `json:"firmware"`
|
|
Status *string `json:"status"`
|
|
InputType *string `json:"input_type"`
|
|
InputPowerW *float64 `json:"input_power_w"`
|
|
OutputPowerW *float64 `json:"output_power_w"`
|
|
InputVoltage *float64 `json:"input_voltage"`
|
|
}
|