Secrets and data protection
Backend secret delivery
The typed configuration parser supports reading a value from a file by appending _FILE to its environment-variable name. This allows runtime secrets to arrive through mounted files rather than source-controlled configuration. Protect private keys, database credentials, broker credentials, session signing material, and query cursor signing material according to their owners.
The development PKI tool creates local test material under .local/pki. Its certificates are for the development workflow, not a production trust bootstrap. Never copy those private keys into documentation examples or container images.
Endpoint secrets
The agent configuration carries no secret values and reads no environment-variable configuration. It names the trust bundle and installation directory. Private keys live in owner-only files in the private installation tree; file ownership and shape are checked. Installation metadata carries IDs and credential descriptions, not key bytes.
Logs bound and escape repeated untrusted text. Linux core-dump controls reduce accidental key exposure. They do not guarantee memory erasure, prevent root access, or encrypt swap. TPM-backed keys and other protected providers are planned options, not enabled settings.
Security telemetry is sensitive
Authentication and inventory records can expose usernames, addresses, package versions, host properties, and investigation context. Query authorization, store access, log access, retention, backups, and export handling are therefore data-protection boundaries. The repository does not establish a universal data classification policy or transparent encryption-at-rest guarantee.
Source evidence
Reviewed against the source baseline. Seagull-backend-v2/internal/platform/config/parser.go · Seagull-agent-v2/internal/secrets/secrets.go · Seagull-agent-v2/internal/pki/keyfiles.go · Seagull-agent-v2/tests/architecture/exposure_test.go.