repository

package
v0.29.0 Latest Latest
Warning

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

Go to latest
Published: May 27, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package repository implements data persistence for transit encryption key management. Transit keys support versioning and soft deletion, with PostgreSQL persistence.

Index

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.

Jump to

Keyboard shortcuts

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