Documentation
¶
Overview ¶
Package repository implements data persistence for transit encryption key management. Transit keys support versioning and soft deletion, with PostgreSQL persistence.
Index ¶
- type TransitKeyRepository
- func (p *TransitKeyRepository) Create(ctx context.Context, transitKey *transitDomain.TransitKey) error
- func (p *TransitKeyRepository) Delete(ctx context.Context, name string) error
- func (p *TransitKeyRepository) GetByName(ctx context.Context, name string) (*transitDomain.TransitKey, error)
- func (p *TransitKeyRepository) GetByNameAndVersion(ctx context.Context, name string, version uint) (*transitDomain.TransitKey, error)
- func (p *TransitKeyRepository) GetTransitKey(ctx context.Context, name string, version uint) (*transitDomain.TransitKey, error)
- func (p *TransitKeyRepository) HardDelete(ctx context.Context, olderThan time.Time, dryRun bool) (int64, error)
- func (p *TransitKeyRepository) ListCursor(ctx context.Context, afterName *string, limit int) ([]*transitDomain.TransitKey, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type TransitKeyRepository ¶ added in v0.29.0
type TransitKeyRepository struct {
// contains filtered or unexported fields
}
TransitKeyRepository implements transit key persistence for PostgreSQL databases.
func NewTransitKeyRepository ¶ added in v0.29.0
func NewTransitKeyRepository(db *sql.DB) *TransitKeyRepository
NewTransitKeyRepository creates a new PostgreSQL transit key repository instance.
func (*TransitKeyRepository) Create ¶ added in v0.29.0
func (p *TransitKeyRepository) Create( ctx context.Context, transitKey *transitDomain.TransitKey, ) error
Create inserts a new transit key into the PostgreSQL database.
func (*TransitKeyRepository) Delete ¶ added in v0.29.0
func (p *TransitKeyRepository) Delete(ctx context.Context, name string) error
Delete soft-deletes all versions of a transit key by name.
func (*TransitKeyRepository) GetByName ¶ added in v0.29.0
func (p *TransitKeyRepository) GetByName( ctx context.Context, name string, ) (*transitDomain.TransitKey, error)
GetByName retrieves the latest non-deleted version of a transit key by name.
func (*TransitKeyRepository) GetByNameAndVersion ¶ added in v0.29.0
func (p *TransitKeyRepository) GetByNameAndVersion( ctx context.Context, name string, version uint, ) (*transitDomain.TransitKey, error)
GetByNameAndVersion retrieves a specific version of a transit key by name and version.
func (*TransitKeyRepository) GetTransitKey ¶ added in v0.29.0
func (p *TransitKeyRepository) GetTransitKey( ctx context.Context, name string, version uint, ) (*transitDomain.TransitKey, error)
GetTransitKey retrieves a transit key version by name and optional version (0 for latest), including its associated encryption algorithm (populated in TransitKey.Algorithm). Returns ErrTransitKeyNotFound if not found.
func (*TransitKeyRepository) HardDelete ¶ added in v0.29.0
func (p *TransitKeyRepository) HardDelete( ctx context.Context, olderThan time.Time, dryRun bool, ) (int64, error)
HardDelete permanently removes soft-deleted transit keys older than the specified time.
func (*TransitKeyRepository) ListCursor ¶ added in v0.29.0
func (p *TransitKeyRepository) ListCursor( ctx context.Context, afterName *string, limit int, ) ([]*transitDomain.TransitKey, error)
ListCursor retrieves transit keys ordered by name ascending using cursor-based pagination. Returns the latest version for each key.