Skip to content

Phase 01 Data Inventory ​

Status: Draft
Version: 0.2

DataSourcePurposeLocationTransmittedSensitivityRule
Base appliance configurationImage/project ownerRuntime defaults/etc/sovereign/NoLow/MediumNo device secrets
Machine identityFirst bootUnique host identityBase-OS locationsmDNS/network protocols as requiredMediumMust not originate from build host
SSH host keysFirst bootSSH server identity if enabled/etc/ssh/During SSHHighUnique per device; absent from image
Preview bootstrap password hashRelease imageFirst headless login/etc/shadowSSH authentication on LANHighPublic temporary credential; expired before release; prohibited in production
Pi-hole admin passwordFirst bootUI/API authentication/data/sovereign/secrets/To local Pi-hole login/APIHighRoot-owned; never in image, YAML, or logs
Pi-hole configurationPi-hole/userDNS and UI behaviorPersistent Pi-hole volumeNo by defaultMedium/HighSurvives container recreation
DNS query dataLAN clients/Pi-holeResolution, blocking, statisticsPersistent Pi-hole volume/logsTo configured upstream DNS as requiredHighHousehold metadata; document retention/privacy defaults
Client identifiersPi-holeStatistics and troubleshootingPersistent Pi-hole dataNo by defaultHighAvoid duplicating in Nginx/system logs
Upstream DNS requestsPi-holeResolve allowed domainsSelected upstream resolverInternetHighDefault provider and privacy behavior documented
Pi-hole OCI artifactRelease buildOffline first boot/opt/sovereign/bootstrap/ until importNoLow/Integrity-criticalPinned and verified by digest
Container runtime stateDockerRun Pi-hole/var/lib/docker/Registry only during explicit future updatesMediumNot a backup substitute for Pi-hole data
First-boot stateInitializerIdempotency and recovery/data/sovereign/update-state/NoMediumAtomic, health-gated completion
Nginx access/error logsNginxDiagnosticsHost logsNo by defaultMediumBounded; avoid credentials/query payloads
Pi-hole logsPi-holeDNS and service diagnosticsPersistent volumeNo by defaultHighRotation and privacy defaults documented
Avahi service metadataHostLocal discoveryRuntime/configLocal multicastLowAdvertise service identity only
Console health snapshotHost runtimeLocal status displayGenerated in memoryLocal LAN client on requestMediumBounded allowlist only; exclude secrets, logs, DNS history, client identities, and serial numbers
Build manifestBuild pipelineProvenanceRelease artifactPublishedLowMust not include build credentials or sensitive paths
Diagnostic bundleUser-initiated future toolSupportGenerated on requestOnly when user shares itHighContents previewed and redacted before sharing

Required Decisions ​

  • Exact persistent paths and ownership
  • Initial password delivery and reset mechanism
  • Production replacement for the preview bootstrap credential
  • Pi-hole privacy level and query retention default
  • Nginx and Pi-hole log retention
  • Diagnostic bundle contents
  • Health API field allowlist and future authentication boundary
  • Backup, restore, and reflash semantics
  • Default upstream DNS provider
  • Treatment of IPv6 client and query data

Image Sanitization Rule ​

The final exported image must be checked for:

  • machine IDs;
  • SSH host private keys;
  • Pi-hole passwords;
  • Docker registry credentials;
  • build-system tokens;
  • Wi-Fi credentials;
  • shell history;
  • build-host paths and usernames;
  • DNS query history;
  • package-manager and installation logs containing sensitive build context.

Open source under AGPL-3.0. Each Sovereign instance is independently operated.