credentials

package
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: Sep 25, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNotFound conveys that the item was not found.
	ErrNotFound = errors.New("item not found")
	// ErrTargetNotFound conveys that the target was not round.
	ErrTargetNotFound = errors.New("target not found")
	// ErrProjectTokenNotFound conveys that the token was not found.
	ErrProjectTokenNotFound = errors.New("project token not found")
)

Functions

func NewVaultSvc

func NewVaultSvc(c VaultConfig, h http.Header) (*vault.Client, error)

NewVaultSvc returns a new vault.Client. TODO before open sourcing we should provide the token instead of generating it TODO rename to client?

Types

type Authorization

type Authorization struct {
	Provider string `valid:"required"`
	Key      string `valid:"required"`
	Secret   string `valid:"required"`
}

Authorization represents a user's authorization token.

func NewAuthorization

func NewAuthorization(authorizationHeader string) (*Authorization, error)

NewAuthorization provides an Authorization from a header. This is separate from admin functions which use the admin env var

func (Authorization) Validate

func (a Authorization) Validate(optionalValidations ...func() error) error

func (Authorization) ValidateAuthorizedAdmin

func (a Authorization) ValidateAuthorizedAdmin(adminSecret string) func() error

ValidateAuthorizedAdmin determines if the Authorization is valid and an admin. TODO See if this can be removed when refactoring auth. Optional validation should be passed as parameter to Validate().

type Provider

type Provider interface {
	CreateProject(string) (types.Token, error)
	CreateTarget(string, types.Target) error
	CreateToken(string) (types.Token, error)
	UpdateTarget(string, types.Target) error
	DeleteProject(string) error
	DeleteTarget(string, string) error
	GetProject(string) (responses.GetProject, error)
	GetTarget(string, string) (types.Target, error)
	GetToken() (string, error)
	DeleteProjectToken(string, string) error
	GetProjectToken(string, string) (types.ProjectToken, error)
	ListTargets(string) ([]string, error)
	ProjectExists(string) (bool, error)
	TargetExists(string, string) (bool, error)
}

Provider defines the interface required by providers.

func NewVaultProvider

func NewVaultProvider(a Authorization, env env.Vars, h http.Header, vaultConfigFn VaultConfigFn, vaultSvcFn VaultSvcFn) (Provider, error)

NewVaultProvider returns a new VaultProvider

type VaultConfig

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

func NewVaultConfig

func NewVaultConfig(config *vault.Config, role, secret string) *VaultConfig

NewVaultConfig returns a new VaultConfig.

type VaultConfigFn

type VaultConfigFn func(config *vault.Config, role, secret string) *VaultConfig

type VaultProvider

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

func (VaultProvider) CreateProject

func (v VaultProvider) CreateProject(name string) (types.Token, error)

func (VaultProvider) CreateTarget

func (v VaultProvider) CreateTarget(projectName string, target types.Target) error

CreateTarget creates a target for the project. TODO validate policy and other information is correct in target TODO Validate role exists (if possible, etc)

func (VaultProvider) CreateToken added in v0.14.0

func (v VaultProvider) CreateToken(name string) (types.Token, error)

func (VaultProvider) DeleteProject

func (v VaultProvider) DeleteProject(name string) error

func (VaultProvider) DeleteProjectToken added in v0.14.0

func (v VaultProvider) DeleteProjectToken(projectName, tokenID string) error

func (VaultProvider) DeleteTarget

func (v VaultProvider) DeleteTarget(projectName string, targetName string) error

func (VaultProvider) GetProject

func (v VaultProvider) GetProject(projectName string) (responses.GetProject, error)

func (VaultProvider) GetProjectToken added in v0.14.0

func (v VaultProvider) GetProjectToken(projectName, tokenID string) (types.ProjectToken, error)

func (VaultProvider) GetTarget

func (v VaultProvider) GetTarget(projectName, targetName string) (types.Target, error)

func (VaultProvider) GetToken

func (v VaultProvider) GetToken() (string, error)

func (VaultProvider) ListTargets

func (v VaultProvider) ListTargets(project string) ([]string, error)

func (VaultProvider) ProjectExists

func (v VaultProvider) ProjectExists(name string) (bool, error)

func (VaultProvider) TargetExists

func (v VaultProvider) TargetExists(projectName, targetName string) (bool, error)

func (VaultProvider) UpdateTarget

func (v VaultProvider) UpdateTarget(projectName string, target types.Target) error

UpdateTarget updates a targets policies for the project.

type VaultSvcFn

type VaultSvcFn func(c VaultConfig, h http.Header) (svc *vault.Client, err error)

Jump to

Keyboard shortcuts

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