secrets

package
v1.0.9 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package secrets provides secret management backends

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Backend      string
	CacheEnabled bool
	CacheTTL     time.Duration
}

Config holds configuration for secrets manager

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig returns default configuration

type EnvProvider

type EnvProvider struct {
	// contains filtered or unexported fields
}

EnvProvider reads secrets from environment variables

func NewEnvProvider

func NewEnvProvider() *EnvProvider

NewEnvProvider creates a new environment variable provider

func (*EnvProvider) Close

func (e *EnvProvider) Close() error

func (*EnvProvider) Delete

func (e *EnvProvider) Delete(ctx context.Context, key string) error

func (*EnvProvider) Exists

func (e *EnvProvider) Exists(ctx context.Context, key string) bool

func (*EnvProvider) Get

func (e *EnvProvider) Get(ctx context.Context, key string) (Secret, error)

func (*EnvProvider) Health

func (e *EnvProvider) Health(ctx context.Context) error

func (*EnvProvider) List

func (e *EnvProvider) List(ctx context.Context) ([]string, error)

func (*EnvProvider) Name

func (e *EnvProvider) Name() string

func (*EnvProvider) Set

func (e *EnvProvider) Set(ctx context.Context, key string, value Secret) error

func (*EnvProvider) WithPrefix

func (e *EnvProvider) WithPrefix(prefix string) *EnvProvider

type FileConfig

type FileConfig struct {
	Path      string
	MasterKey string // For encryption (future)
}

FileConfig for file-based storage

type FileProvider

type FileProvider struct {
	// contains filtered or unexported fields
}

FileProvider stores secrets in a JSON file

func NewFileProvider

func NewFileProvider(config *FileConfig) (*FileProvider, error)

NewFileProvider creates a file-based provider

func (*FileProvider) Close

func (f *FileProvider) Close() error

func (*FileProvider) Delete

func (f *FileProvider) Delete(ctx context.Context, key string) error

func (*FileProvider) Exists

func (f *FileProvider) Exists(ctx context.Context, key string) bool

func (*FileProvider) Get

func (f *FileProvider) Get(ctx context.Context, key string) (Secret, error)

func (*FileProvider) Health

func (f *FileProvider) Health(ctx context.Context) error

func (*FileProvider) List

func (f *FileProvider) List(ctx context.Context) ([]string, error)

func (*FileProvider) Name

func (f *FileProvider) Name() string

func (*FileProvider) Set

func (f *FileProvider) Set(ctx context.Context, key string, value Secret) error

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager provides unified access to secrets with caching

func GetManager

func GetManager(config *Config) (*Manager, error)

GetManager returns the singleton secrets manager

func NewManager

func NewManager(config *Config) (*Manager, error)

NewManager creates a new secrets manager

func (*Manager) Close

func (m *Manager) Close() error

Close releases resources

func (*Manager) Delete

func (m *Manager) Delete(ctx context.Context, key string) error

Delete removes a secret

func (*Manager) Get

func (m *Manager) Get(ctx context.Context, key string) (Secret, error)

Get retrieves a secret

func (*Manager) GetJSON

func (m *Manager) GetJSON(ctx context.Context, key string, target interface{}) error

GetJSON retrieves and unmarshals a secret

func (*Manager) GetString

func (m *Manager) GetString(ctx context.Context, key string) (string, error)

GetString retrieves a secret as string

func (*Manager) List

func (m *Manager) List(ctx context.Context) ([]string, error)

List returns all secret keys

func (*Manager) Set

func (m *Manager) Set(ctx context.Context, key string, value Secret) error

Set stores a secret

type Provider

type Provider interface {
	Get(ctx context.Context, key string) (Secret, error)
	Set(ctx context.Context, key string, value Secret) error
	Delete(ctx context.Context, key string) error
	List(ctx context.Context) ([]string, error)
	Exists(ctx context.Context, key string) bool
	Close() error
	Health(ctx context.Context) error
	Name() string
}

Provider defines the interface for secret management backends

type Secret

type Secret struct {
	Value     interface{}       `json:"value"`
	Version   string            `json:"version,omitempty"`
	CreatedAt time.Time         `json:"created_at"`
	UpdatedAt time.Time         `json:"updated_at"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	Tags      map[string]string `json:"tags,omitempty"`
}

Secret represents a secret with metadata

Jump to

Keyboard shortcuts

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