Skip to content

feat(daemon): pluggable secret store backends #114

Description

@cidrblock

Related

Summary

The daemon today hardcodes a fixed set of secret backends (memory, keychain, plus env as a configure/reference path). The core SecretStore interface is injectable for library/CoreState consumers, but the running daemon and the public secret_store vocabulary are not pluggable.

Operators and embedders may want additional backends (e.g. HashiCorp Vault, cloud KMS/Secrets Manager, org-specific secret services) without forking Abbenay.

Desired outcome

  • A documented extension point for registering additional secret-store backends
  • Daemon configuration (and/or plugin discovery) that can select a backend by name
  • Existing memory / keychain / env behavior preserved as built-ins
  • Auth, audit ([Audit] secret changed), and list/presence-only HTTP semantics unchanged

Non-goals (for this issue)

Acceptance criteria

  • Documented interface / registration API for custom backends
  • Daemon can resolve secret_store: <custom-id> to a registered implementation
  • Built-in backends still work; unknown store IDs fail closed with a clear error
  • Tests cover registration + selection; no secret values in logs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions