- 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>
34 lines
906 B
Go
34 lines
906 B
Go
// Package collector runs all hardware collectors and merges results
|
||
// into a single HardwareSnapshot. Each sub-collector is independent:
|
||
// a failure in one does not abort the others.
|
||
package collector
|
||
|
||
import (
|
||
"bee/audit/internal/schema"
|
||
"log/slog"
|
||
"time"
|
||
)
|
||
|
||
// Run executes all collectors and returns the combined snapshot.
|
||
// Partial failures are logged as warnings; collection always completes.
|
||
func Run() schema.HardwareIngestRequest {
|
||
start := time.Now()
|
||
slog.Info("audit started")
|
||
|
||
snap := schema.HardwareSnapshot{}
|
||
|
||
// collectors are added here in subsequent steps (1.2 – 1.10)
|
||
|
||
slog.Info("audit completed", "duration", time.Since(start).Round(time.Millisecond))
|
||
|
||
sourceType := "livcd"
|
||
protocol := "os-direct"
|
||
|
||
return schema.HardwareIngestRequest{
|
||
SourceType: &sourceType,
|
||
Protocol: &protocol,
|
||
CollectedAt: time.Now().UTC().Format(time.RFC3339),
|
||
Hardware: snap,
|
||
}
|
||
}
|