secrets

package
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 2, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NormalizeEnvRef

func NormalizeEnvRef(ref string) string

NormalizeEnvRef turns bare names into env paths for CredentialResolver.

Types

type AWSSM

type AWSSM struct {
	Client SecretsManagerAPI
	Region string // default region when ref omits one (unusual)
}

AWSSM resolves aws-sm://{region}/{secret-id}[#jsonKey] via AWS Secrets Manager.

func NewAWSSMFromEnv

func NewAWSSMFromEnv(ctx context.Context, enabled bool, region string) (*AWSSM, error)

NewAWSSMFromEnv loads the default AWS config when enabled is true.

func (*AWSSM) Get

func (a *AWSSM) Get(ctx context.Context, ref string) (string, error)

type CredentialOpener

type CredentialOpener interface {
	Open(ctx context.Context, c snapshot.Credential) (string, error)
}

CredentialOpener resolves snapshot credentials to plaintext secrets.

type CredentialResolver

type CredentialResolver struct {
	Env   Env
	Box   *credentials.Box
	Vault Resolver // Multi or scheme-specific; required for storage_kind=vault
}

CredentialResolver opens env, encrypted_db, or vault credentials.

func NewCredentialResolver

func NewCredentialResolver(box *credentials.Box) CredentialResolver

NewCredentialResolver builds a resolver; box may be nil when only env credentials are used.

func (CredentialResolver) Open

func (CredentialResolver) WithVault

WithVault returns a copy with a vault Multi (or other) resolver.

type Env

type Env struct{}

Env resolves secrets from process environment variables.

func (Env) Get

func (Env) Get(_ context.Context, ref string) (string, error)

type Hashicorp

type Hashicorp struct {
	Addr   string
	Token  string
	Client *http.Client
}

Hashicorp resolves hashicorp://path[#jsonKey] via the Vault HTTP API (KV v1/v2 compatible). Auth: VAULT_TOKEN (or AFI_SECRETS_VAULT_TOKEN). Address: VAULT_ADDR / AFI_SECRETS_VAULT_ADDR.

func NewHashicorpFromEnv

func NewHashicorpFromEnv(addr, token string) *Hashicorp

NewHashicorpFromEnv builds a client when address is configured; returns nil,nil when disabled.

func (*Hashicorp) Get

func (h *Hashicorp) Get(ctx context.Context, ref string) (string, error)

type Multi

type Multi struct {
	Env       Resolver
	AWSSM     Resolver
	Hashicorp Resolver
}

Multi routes Get calls by secret-ref scheme.

func (Multi) Get

func (m Multi) Get(ctx context.Context, ref string) (string, error)

type ParsedRef

type ParsedRef struct {
	Scheme string // env | aws-sm | hashicorp | "" (bare env name)
	Path   string // secret id / vault path (no leading slash required)
	Key    string // optional JSON object key after #
	Raw    string
}

ParsedRef is a scheme-routed secret reference.

func ParseRef

func ParseRef(ref string) (ParsedRef, error)

ParseRef parses secret references:

OPENAI_API_KEY
env://OPENAI_API_KEY
aws-sm://us-east-1/my/secret#api_key
hashicorp://secret/data/afi/openai#api_key

type Resolver

type Resolver interface {
	Get(ctx context.Context, ref string) (string, error)
}

Resolver resolves secret references (env var names today; vault later).

func Default

func Default() Resolver

Default is the process-env resolver.

type SecretsManagerAPI

type SecretsManagerAPI interface {
	GetSecretValue(ctx context.Context, params *secretsmanager.GetSecretValueInput, optFns ...func(*secretsmanager.Options)) (*secretsmanager.GetSecretValueOutput, error)
}

SecretsManagerAPI is the subset of AWS Secrets Manager used by AWSSM.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL