secrets
packageAPI reference for the secrets
package.
Imports
(3)Store
Store is the shared contract for secret backends.
type Store interface
MemoryStore
MemoryStore is a thread-safe in-memory store intended for tests and ephemeral use.
type MemoryStore struct
Methods
Set stores a copy of the provided secret value.
Parameters
Returns
func (*MemoryStore) Set(key string, value []byte) error
{
s.mu.Lock()
defer s.mu.Unlock()
s.m[key] = append([]byte(nil), value...)
return nil
}
Get returns a copy of the stored secret value.
Parameters
Returns
func (*MemoryStore) Get(key string) ([]byte, error)
{
s.mu.RLock()
defer s.mu.RUnlock()
v, ok := s.m[key]
if !ok {
return nil, ErrNotFound
}
return append([]byte(nil), v...), nil
}
Delete removes a secret from the in-memory store.
Parameters
Returns
func (*MemoryStore) Delete(key string) error
{
s.mu.Lock()
defer s.mu.Unlock()
delete(s.m, key)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| mu | sync.RWMutex | |
| m | map[string][]byte |
NewMemoryStore
NewMemoryStore creates a new in-memory store.
Returns
func NewMemoryStore() *MemoryStore
{
return &MemoryStore{m: make(map[string][]byte)}
}
EnvStore
EnvStore provides read-only access to environment variables.
type EnvStore struct
Methods
Set reports that environment-backed stores are read-only.
Parameters
Returns
func (*EnvStore) Set(key string, value []byte) error
{
return ErrReadOnly
}
Get returns the environment variable value for the provided key.
Parameters
Returns
func (*EnvStore) Get(key string) ([]byte, error)
{
v, ok := os.LookupEnv(key)
if !ok {
return nil, ErrNotFound
}
return []byte(v), nil
}
Delete reports that environment-backed stores are read-only.
Parameters
Returns
func (*EnvStore) Delete(key string) error
{
return ErrReadOnly
}
NewEnvStore
NewEnvStore creates a new environment-backed secret store.
Returns
func NewEnvStore() *EnvStore
{
return &EnvStore{}
}
VaultStore
VaultStore is a placeholder for an external secret manager implementation.
type VaultStore struct
Methods
Set reports that the placeholder Vault store is not implemented yet.
Parameters
Returns
func (*VaultStore) Set(key string, value []byte) error
{
return ErrNotImplemented
}
Get reports that the placeholder Vault store is not implemented yet.
Parameters
Returns
func (*VaultStore) Get(key string) ([]byte, error)
{
return nil, ErrNotImplemented
}
Delete reports that the placeholder Vault store is not implemented yet.
Parameters
Returns
func (*VaultStore) Delete(key string) error
{
return ErrNotImplemented
}
NewVaultStore
NewVaultStore creates a placeholder Vault-backed store.
Returns
func NewVaultStore() *VaultStore
{
return &VaultStore{}
}