repository

package
v0.0.0-...-e163d20 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AccessPrefix = "configleam:access"
	KeyPrefix    = "key"
	MetaPrefix   = "meta"
	SetPrefix    = "set"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessKey

type AccessKey struct {
	Key      string
	Perms    permissions.AccessKeyPermissions
	Metadata AccessKeyMetadata
}

type AccessKeyMetadata

type AccessKeyMetadata struct {
	Key            string
	Name           string                           `json:"name"`
	MaskedKey      string                           `json:"masked_key"`
	ExpirationDate time.Time                        `json:"expiration_date"`
	CreationDate   time.Time                        `json:"creation_date"`
	Permissions    permissions.AccessKeyPermissions `json:"permissions"`
}

type Encryptor

type Encryptor interface {
	Encrypt(ctx context.Context, b []byte) ([]byte, error)
	EncryptDet(ctx context.Context, b []byte) ([]byte, error)
	Decrypt(ctx context.Context, b []byte) ([]byte, error)
}

type EtcdRepository

type EtcdRepository struct {
	*etcd.Etcd
	// contains filtered or unexported fields
}

func NewEtcdRepository

func NewEtcdRepository(redis *etcd.Etcd, encryptor Encryptor) *EtcdRepository

func (*EtcdRepository) GetAccessKeyKey

func (r *EtcdRepository) GetAccessKeyKey(key string) string

func (*EtcdRepository) GetAccessKeyPermissions

func (r *EtcdRepository) GetAccessKeyPermissions(ctx context.Context, key string) (*permissions.AccessKeyPermissions, bool, error)

func (*EtcdRepository) GetAccessMetaKey

func (r *EtcdRepository) GetAccessMetaKey(key string) string

func (*EtcdRepository) GetAccessSetKey

func (r *EtcdRepository) GetAccessSetKey() string

func (*EtcdRepository) PaginateAccessKeys

func (r *EtcdRepository) PaginateAccessKeys(ctx context.Context, page int, size int) (*PaginatedAccessKeys, error)

func (*EtcdRepository) RemoveKeys

func (r *EtcdRepository) RemoveKeys(ctx context.Context, keys []string) error

func (*EtcdRepository) StoreAccessKey

func (r *EtcdRepository) StoreAccessKey(ctx context.Context, accessKey AccessKey) error

type PaginatedAccessKeys

type PaginatedAccessKeys struct {
	Total int                 `json:"total"`
	Pages int                 `json:"pages"`
	Page  int                 `json:"page"`
	Size  int                 `json:"size"`
	Items []AccessKeyMetadata `json:"items"`
}

type RedisRepository

type RedisRepository struct {
	*rds.Redis
	// contains filtered or unexported fields
}

func NewRedisRepository

func NewRedisRepository(redis *rds.Redis, encryptor Encryptor) *RedisRepository

func (*RedisRepository) GetAccessKeyKey

func (r *RedisRepository) GetAccessKeyKey(key string) string

func (*RedisRepository) GetAccessKeyPermissions

func (r *RedisRepository) GetAccessKeyPermissions(ctx context.Context, key string) (*permissions.AccessKeyPermissions, bool, error)

func (*RedisRepository) GetAccessMetaKey

func (r *RedisRepository) GetAccessMetaKey(key string) string

func (*RedisRepository) GetAccessSetKey

func (r *RedisRepository) GetAccessSetKey() string

func (*RedisRepository) PaginateAccessKeys

func (r *RedisRepository) PaginateAccessKeys(ctx context.Context, page int, size int) (*PaginatedAccessKeys, error)

func (*RedisRepository) RemoveKeys

func (r *RedisRepository) RemoveKeys(ctx context.Context, keys []string) error

func (*RedisRepository) StoreAccessKey

func (r *RedisRepository) StoreAccessKey(ctx context.Context, accessKey AccessKey) error

type Repository

type Repository interface {
	StoreAccessKey(ctx context.Context, accessKey AccessKey) error
	GetAccessKeyPermissions(ctx context.Context, key string) (*permissions.AccessKeyPermissions, bool, error)
	PaginateAccessKeys(ctx context.Context, page int, size int) (*PaginatedAccessKeys, error)
	RemoveKeys(ctx context.Context, keys []string) error
}

func New

func New(ctx context.Context, cfg RepositoryConfig, encryptor Encryptor) (Repository, error)

type RepositoryConfig

type RepositoryConfig struct {
	RedisAddrs    string
	RedisUsername string
	RedisPassword string
	RedisTLS      bool

	EtcdAddrs    []string
	EtcdUsername string
	EtcdPassword string
	EtcdTLS      bool
}

Jump to

Keyboard shortcuts

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