store

package
v1.5.2 Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package store provides storage interfaces and implementations for staging.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Drainer

type Drainer interface {
	// Drain retrieves the entire state from storage.
	// If service is empty, returns all services; otherwise filters to the specified service.
	// If keep is false, the source storage is cleared after reading.
	Drain(ctx context.Context, service staging.Service, keep bool) (*staging.State, error)
}

Drainer provides bulk read access to staging state (for drain command).

type FileStore

type FileStore interface {
	Drainer
	Writer
}

FileStore combines drain and write operations for file storage.

type ReadOperator

type ReadOperator interface {
	// GetEntry retrieves the staged entry identified by key.
	GetEntry(ctx context.Context, service staging.Service, key staging.EntryKey) (*staging.Entry, error)
	// GetTag retrieves the staged tag changes identified by key.
	GetTag(ctx context.Context, service staging.Service, key staging.EntryKey) (*staging.TagEntry, error)
	// ListEntries returns all staged entries for a service, keyed by EntryKey.
	ListEntries(ctx context.Context, service staging.Service) (map[staging.Service]map[staging.EntryKey]staging.Entry, error)
	// ListTags returns all staged tag changes for a service, keyed by EntryKey.
	ListTags(ctx context.Context, service staging.Service) (map[staging.Service]map[staging.EntryKey]staging.TagEntry, error)
}

ReadOperator provides read-only access to individual staging entries. Items are addressed by staging.EntryKey (name + namespace); the namespace is the App Configuration label axis (empty for every other provider), and it is part of the key for both entries and tags so a namespaced setting is never resolved under the wrong namespace.

type ReadWriteOperator

type ReadWriteOperator interface {
	ReadOperator
	WriteOperator
}

ReadWriteOperator combines read and write access to staging entries.

type WriteOperator

type WriteOperator interface {
	// StageEntry adds or updates the staged entry identified by key.
	StageEntry(ctx context.Context, service staging.Service, key staging.EntryKey, entry staging.Entry) error
	// StageTag adds or updates the staged tag changes identified by key.
	StageTag(ctx context.Context, service staging.Service, key staging.EntryKey, tagEntry staging.TagEntry) error
	// UnstageEntry removes the staged entry identified by key.
	UnstageEntry(ctx context.Context, service staging.Service, key staging.EntryKey) error
	// UnstageTag removes the staged tag changes identified by key.
	UnstageTag(ctx context.Context, service staging.Service, key staging.EntryKey) error
	// UnstageAll removes all staged changes for a service.
	UnstageAll(ctx context.Context, service staging.Service) error
}

WriteOperator provides write access to individual staging entries.

type Writer

type Writer interface {
	// WriteState writes the entire state to storage.
	// If service is empty, writes all services; otherwise writes only the specified service.
	WriteState(ctx context.Context, service staging.Service, state *staging.State) error
}

Writer provides bulk write access to staging state.

Directories

Path Synopsis
Package file provides file-based staging storage.
Package file provides file-based staging storage.
internal/crypt
Package crypt provides encryption for staging files.
Package crypt provides encryption for staging files.
internal/keyprovider
Package keyprovider resolves the AES-256 data key used to encrypt the working staging state files (param.json/secret.json).
Package keyprovider resolves the AES-256 data key used to encrypt the working staging state files (param.json/secret.json).
Package testutil provides test utilities for staging package.
Package testutil provides test utilities for staging package.

Jump to

Keyboard shortcuts

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