Help us shape the future of Go! Take the 2026 Go Developer Survey

secrets

package
v3.0.0 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package secrets retrieves secrets from configured providers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSParameterStoreProvider

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

AWSParameterStoreProvider retrieves secrets from AWS Systems Manager Parameter Store.

func NewAWSParameterStoreProvider

func NewAWSParameterStoreProvider(ctx context.Context, region string) (*AWSParameterStoreProvider, error)

NewAWSParameterStoreProvider creates an AWS Systems Manager Parameter Store provider. If region is provided, it will use that region; otherwise it uses the default AWS configuration.

func (*AWSParameterStoreProvider) GetSecret

func (p *AWSParameterStoreProvider) GetSecret(ctx context.Context, name string) (string, error)

GetSecret retrieves and decrypts a parameter value by name.

type AWSSecretsManagerProvider

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

AWSSecretsManagerProvider retrieves secrets from AWS Secrets Manager.

func NewAWSSecretsManagerProvider

func NewAWSSecretsManagerProvider(ctx context.Context, region string) (*AWSSecretsManagerProvider, error)

NewAWSSecretsManagerProvider creates a new AWS Secrets Manager provider. If region is provided, it will use that region; otherwise uses default AWS configuration.

func (*AWSSecretsManagerProvider) GetSecret

func (p *AWSSecretsManagerProvider) GetSecret(ctx context.Context, name string) (string, error)

GetSecret retrieves a secret value from AWS Secrets Manager by name.

type AzureProvider

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

AzureProvider retrieves secrets from Azure Key Vault.

func NewAzureProvider

func NewAzureProvider(ctx context.Context, vaultURL string) (*AzureProvider, error)

NewAzureProvider creates a new Azure Key Vault provider using default Azure credentials. The vaultURL should be in the format: https://<vault-name>.vault.azure.net/.

func (*AzureProvider) GetSecret

func (p *AzureProvider) GetSecret(ctx context.Context, name string) (string, error)

GetSecret retrieves a secret from Azure Key Vault by name.

type EnvProvider

type EnvProvider struct {
}

EnvProvider reads secrets from environment variables.

func NewEnvProvider

func NewEnvProvider(cfg config.SecretsConfig) *EnvProvider

NewEnvProvider creates a new environment-based secrets provider. Configured secret names are resolved when GetSecret is called.

func (*EnvProvider) GetSecret

func (p *EnvProvider) GetSecret(ctx context.Context, name string) (string, error)

GetSecret retrieves a secret by name from environment variables.

type FileProvider

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

FileProvider reads secrets from files below a configured directory.

func NewFileProvider

func NewFileProvider(directory string) (*FileProvider, error)

NewFileProvider creates a file secrets provider rooted at directory.

func (*FileProvider) GetSecret

func (p *FileProvider) GetSecret(ctx context.Context, name string) (string, error)

GetSecret retrieves a non-empty secret file beneath the configured directory.

type GoogleSecretManagerProvider

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

GoogleSecretManagerProvider retrieves secrets from Google Secret Manager.

func NewGoogleSecretManagerProvider

func NewGoogleSecretManagerProvider(ctx context.Context) (*GoogleSecretManagerProvider, error)

NewGoogleSecretManagerProvider creates a Google Secret Manager provider using default credentials.

func (*GoogleSecretManagerProvider) GetSecret

func (p *GoogleSecretManagerProvider) GetSecret(ctx context.Context, name string) (string, error)

GetSecret retrieves a secret version from Google Secret Manager. The name should be in the format: projects/*/secrets/*/versions/*.

type OAuthCredentials

type OAuthCredentials struct {
	ClientID     string `json:"client_id"`
	ClientSecret string `json:"client_secret"`
}

OAuthCredentials represents OAuth client credentials stored as JSON in secrets.

func ParseOAuthCredentials

func ParseOAuthCredentials(secretValue string) (*OAuthCredentials, error)

ParseOAuthCredentials parses a JSON secret value into OAuth credentials. It validates that both client_id and client_secret are present.

type Provider

type Provider interface {
	GetSecret(ctx context.Context, name string) (string, error)
}

Provider is the interface for retrieving secrets from a secret management service.

func NewProvider

func NewProvider(ctx context.Context, cfg config.SecretsConfig) (Provider, error)

NewProvider creates a new secrets provider based on the configuration. It supports AWS Secrets Manager, AWS Systems Manager Parameter Store, Google Secret Manager, Azure Key Vault, files, and environment variables.

Jump to

Keyboard shortcuts

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