vault

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2025 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type SecretData

type SecretData struct {
	Data        map[string]interface{} `json:"data"`
	Version     int                    `json:"version"`
	CreatedTime time.Time              `json:"created_time"`
	UpdatedTime time.Time              `json:"updated_time"`
	Metadata    map[string]interface{} `json:"metadata"`
}

SecretData represents a secret with metadata

type VaultClient

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

VaultClient wraps HashiCorp Vault client with additional functionality

func NewVaultClient

func NewVaultClient(config VaultConfig, logger *logrus.Logger) (*VaultClient, error)

NewVaultClient creates a new Vault client

func (*VaultClient) Close

func (vc *VaultClient) Close() error

Close closes the Vault client connection

func (*VaultClient) CreateToken

func (vc *VaultClient) CreateToken(ctx context.Context, policies []string, ttl time.Duration) (*api.SecretAuth, error)

CreateToken creates a new Vault token with specified policies

func (*VaultClient) Decrypt

func (vc *VaultClient) Decrypt(ctx context.Context, keyName string, ciphertext string) ([]byte, error)

Decrypt decrypts data using Vault's transit engine

func (*VaultClient) DeleteSecret

func (vc *VaultClient) DeleteSecret(ctx context.Context, path string) error

DeleteSecret removes a secret at the given path

func (*VaultClient) Encrypt

func (vc *VaultClient) Encrypt(ctx context.Context, keyName string, plaintext []byte) (string, error)

Encrypt encrypts data using Vault's transit engine

func (*VaultClient) GetClient

func (vc *VaultClient) GetClient() *api.Client

GetClient returns the underlying Vault API client

func (*VaultClient) GetTransitKey

func (vc *VaultClient) GetTransitKey(ctx context.Context, keyName string) error

GetTransitKey creates or retrieves a transit encryption key

func (*VaultClient) HealthCheck

func (vc *VaultClient) HealthCheck(ctx context.Context) error

HealthCheck verifies Vault connection and status

func (*VaultClient) IsInitialized

func (vc *VaultClient) IsInitialized(ctx context.Context) (bool, error)

IsInitialized checks if Vault is initialized

func (*VaultClient) IsSealed

func (vc *VaultClient) IsSealed(ctx context.Context) (bool, error)

IsSealed checks if Vault is sealed

func (*VaultClient) ListSecrets

func (vc *VaultClient) ListSecrets(ctx context.Context, path string) ([]string, error)

ListSecrets lists all secrets under a given path

func (*VaultClient) ReadSecret

func (vc *VaultClient) ReadSecret(ctx context.Context, path string) (*SecretData, error)

ReadSecret retrieves a secret from the given path

func (*VaultClient) RenewToken

func (vc *VaultClient) RenewToken(ctx context.Context, token string, increment time.Duration) (*api.SecretAuth, error)

RenewToken renews a Vault token

func (*VaultClient) RevokeToken

func (vc *VaultClient) RevokeToken(ctx context.Context, token string) error

RevokeToken revokes a Vault token

func (*VaultClient) RotateSecret

func (vc *VaultClient) RotateSecret(ctx context.Context, path string, newData map[string]interface{}) error

RotateSecret creates a new version of an existing secret

func (*VaultClient) WriteSecret

func (vc *VaultClient) WriteSecret(ctx context.Context, path string, data map[string]interface{}) error

WriteSecret stores a secret at the given path

type VaultConfig

type VaultConfig struct {
	Address     string        `json:"address"`
	Token       string        `json:"token"`
	MountPath   string        `json:"mount_path"`
	Timeout     time.Duration `json:"timeout"`
	MaxRetries  int           `json:"max_retries"`
	EnableTLS   bool          `json:"enable_tls"`
	TLSInsecure bool          `json:"tls_insecure"`
}

VaultConfig holds Vault client configuration

Jump to

Keyboard shortcuts

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