infrastructure

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2026 License: MIT Imports: 61 Imported by: 0

Documentation

Overview

Package infrastructure assembles configured, named services over Foundry's existing providers. Configuration and graph validation are pure; resources are acquired only when the containing application boots.

Index

Constants

View Source
const CoordinationProvider foundation.ProviderID = "foundry.infrastructure.coordination"
View Source
const Provider foundation.ProviderID = "foundry.infrastructure"

Variables

Functions

func BrokerProvider

func BrokerProvider(name pubsub.ConnectionName) foundation.ProviderID

func BrokerSettingsConfigSchema

func BrokerSettingsConfigSchema() (*config.Schema[BrokerSettings], error)

BrokerSettingsConfigSchema reuses the shared file/environment/override loader.

func CacheKey

func CacheKey(name cache.StoreName) foundation.Key[*cache.Store]

func CacheProvider

func CacheProvider(name cache.StoreName) foundation.ProviderID

func CacheSettingsConfigSchema

func CacheSettingsConfigSchema() (*config.Schema[CacheSettings], error)

CacheSettingsConfigSchema reuses the shared file/environment/override loader.

func ConnectionSettingsConfigSchema

func ConnectionSettingsConfigSchema() (*config.Schema[ConnectionSettings], error)

ConnectionSettingsConfigSchema reuses the shared file/environment/override loader.

func CredentialProvider

func CredentialProvider(name credentials.Name) foundation.ProviderID

func DatabaseKey

func DatabaseKey(name database.ConnectionName) foundation.Key[*database.DB]

func DatabaseProvider

func DatabaseProvider(name database.ConnectionName) foundation.ProviderID

func DiskKey

func DiskKey(name storage.DiskID) foundation.Key[*storage.Disk]

func DiskProvider

func DiskProvider(name storage.DiskID) foundation.ProviderID

func DiskSettingsConfigSchema

func DiskSettingsConfigSchema() (*config.Schema[DiskSettings], error)

DiskSettingsConfigSchema reuses the shared file/environment/override loader.

func HTTPClientKey

func HTTPClientKey(name httpclient.Name) foundation.Key[*httpclient.Client]

func HTTPClientProvider

func HTTPClientProvider(name httpclient.Name) foundation.ProviderID

func HTTPClientSettingsConfigSchema

func HTTPClientSettingsConfigSchema() (*config.Schema[HTTPClientSettings], error)

HTTPClientSettingsConfigSchema reuses the shared file/environment/override loader.

func JobConnectionSettingsConfigSchema

func JobConnectionSettingsConfigSchema() (*config.Schema[JobConnectionSettings], error)

JobConnectionSettingsConfigSchema reuses the shared file/environment/override loader.

func JobDispatcherKey

func JobDispatcherKey(name jobs.ConnectionName) foundation.Key[*jobs.Dispatcher]

func JobProvider

func JobProvider(name jobs.ConnectionName) foundation.ProviderID

func MailKey

func MailKey(name email.MailerName) foundation.Key[*email.Mailer]

func MailProvider

func MailProvider(name email.MailerName) foundation.ProviderID

func MailerSettingsConfigSchema

func MailerSettingsConfigSchema() (*config.Schema[MailerSettings], error)

MailerSettingsConfigSchema reuses the shared file/environment/override loader.

func RealtimeConnectionSettingsConfigSchema

func RealtimeConnectionSettingsConfigSchema() (*config.Schema[RealtimeConnectionSettings], error)

RealtimeConnectionSettingsConfigSchema reuses the shared file/environment/override loader.

func RedisConnectionSettingsConfigSchema

func RedisConnectionSettingsConfigSchema() (*config.Schema[RedisConnectionSettings], error)

RedisConnectionSettingsConfigSchema reuses the shared file/environment/override loader.

func RedisKey

func RedisKey(name redis.ConnectionName) foundation.Key[*redis.Client]

func RedisProvider

func RedisProvider(name redis.ConnectionName) foundation.ProviderID

func SettingsConfigSchema

func SettingsConfigSchema() (*config.Schema[Settings], error)

SettingsConfigSchema reuses the shared file/environment/override loader.

Types

type BrokerDriver

type BrokerDriver string
const (
	MemoryBroker BrokerDriver = "memory"
	RedisBroker  BrokerDriver = "redis"
)

type BrokerSettings

type BrokerSettings struct {
	Driver BrokerDriver
	Redis  redis.ConnectionName
	Config pubsub.Config
}

func DefaultBrokerSettings

func DefaultBrokerSettings() BrokerSettings

type BrokerSettingsConfigBufferConfigKeySet

type BrokerSettingsConfigBufferConfigKeySet struct {
	// Messages selects config.buffer.messages. Set accepts int.
	Messages config.Key[BrokerSettings, int]
	// Bytes selects config.buffer.bytes. Set accepts int.
	Bytes config.Key[BrokerSettings, int]
	// PayloadBytes selects config.buffer.payload_bytes. Set accepts int.
	PayloadBytes config.Key[BrokerSettings, int]
	// Channels selects config.buffer.channels. Set accepts int.
	Channels config.Key[BrokerSettings, int]
}

BrokerSettingsConfigBufferConfigKeySet exposes compiler-checked configuration overrides.

type BrokerSettingsConfigConfigKeySet

type BrokerSettingsConfigConfigKeySet struct {
	Namespace BrokerSettingsConfigNamespaceConfigKeySet
	// MaxDeclarations selects config.max_declarations. Set accepts int.
	MaxDeclarations config.Key[BrokerSettings, int]
	// MaxKeyBytes selects config.max_key_bytes. Set accepts int.
	MaxKeyBytes config.Key[BrokerSettings, int]
	// MaxConcurrent selects config.max_concurrent. Set accepts int.
	MaxConcurrent config.Key[BrokerSettings, int]
	// MaxSubscriptions selects config.max_subscriptions. Set accepts int.
	MaxSubscriptions config.Key[BrokerSettings, int]
	// Timeout selects config.timeout. Set accepts time.Duration.
	Timeout config.Key[BrokerSettings, time.Duration]
	Buffer  BrokerSettingsConfigBufferConfigKeySet
}

BrokerSettingsConfigConfigKeySet exposes compiler-checked configuration overrides.

type BrokerSettingsConfigKeySet

type BrokerSettingsConfigKeySet struct {
	// Driver selects driver. Set accepts BrokerDriver.
	Driver config.Key[BrokerSettings, BrokerDriver]
	// Redis selects redis. Set accepts redis.ConnectionName.
	Redis  config.Key[BrokerSettings, redis.ConnectionName]
	Config BrokerSettingsConfigConfigKeySet
}

BrokerSettingsConfigKeySet exposes compiler-checked configuration overrides.

func BrokerSettingsConfigKeys

func BrokerSettingsConfigKeys() BrokerSettingsConfigKeySet

BrokerSettingsConfigKeys derives keys from the handwritten settings declaration.

type BrokerSettingsConfigNamespaceConfigKeySet

type BrokerSettingsConfigNamespaceConfigKeySet struct {
	// Application selects config.namespace.application. Set accepts string.
	Application config.Key[BrokerSettings, string]
	// Environment selects config.namespace.environment. Set accepts string.
	Environment config.Key[BrokerSettings, string]
}

BrokerSettingsConfigNamespaceConfigKeySet exposes compiler-checked configuration overrides.

type Brokers

func (*Brokers) UnmarshalText

func (m *Brokers) UnmarshalText(data []byte) error

type CacheDriver

type CacheDriver string
const (
	MemoryCache   CacheDriver = "memory"
	RedisCache    CacheDriver = "redis"
	FileCache     CacheDriver = "file"
	PostgresCache CacheDriver = "postgres"
	// NullCache retains nothing: reads miss and Remember always loads. It
	// supports every capability requirement except distributed fills.
	NullCache CacheDriver = "null"
)

type CacheSettings

type CacheSettings struct {
	Driver       CacheDriver
	Config       cache.Config
	Memory       memory.Config
	File         FileCacheSettings
	Postgres     PostgresCacheSettings
	Redis        redis.ConnectionName
	Database     database.ConnectionName
	Require      cache.Requirements
	Leases       lease.Config
	Coordination cache.CoordinationConfig
}

CacheSettings chooses an adapter while domain declarations keep their types. An omitted Redis/Database reference selects that family's configured default.

func DefaultCacheSettings

func DefaultCacheSettings() CacheSettings

type CacheSettingsConfigConfigKeySet

type CacheSettingsConfigConfigKeySet struct {
	Namespace CacheSettingsConfigNamespaceConfigKeySet
	// MaxKeyBytes selects config.max_key_bytes. Set accepts int.
	MaxKeyBytes config.Key[CacheSettings, int]
	// MaxValueBytes selects config.max_value_bytes. Set accepts int.
	MaxValueBytes config.Key[CacheSettings, int]
	// MaxDeclarations selects config.max_declarations. Set accepts int.
	MaxDeclarations config.Key[CacheSettings, int]
	// MaxBatchEntries selects config.max_batch_entries. Set accepts int.
	//
	// Maximum batch input keys before deduplication; bounded by MaxBatchEntries.
	//
	MaxBatchEntries config.Key[CacheSettings, int]
	// MaxTags selects config.max_tags. Set accepts int.
	//
	// Maximum references in a tagged view/invalidation; bounded by cache.MaxTags.
	//
	MaxTags config.Key[CacheSettings, int]
	// MaxFills selects config.max_fills. Set accepts int.
	//
	// MaxFills bounds concurrent Remember loaders across this store.
	//
	MaxFills config.Key[CacheSettings, int]
	// MaxFillWaiters selects config.max_fill_waiters. Set accepts int.
	//
	// MaxFillWaiters bounds followers of each Remember loader (excluding its owner).
	//
	MaxFillWaiters config.Key[CacheSettings, int]
	// Timeout selects config.timeout. Set accepts time.Duration.
	//
	// Timeout bounds each backend step (read, write, metadata) and every other
	// operation. It does not cap Remember loaders; LoadTimeout does.
	//
	Timeout config.Key[CacheSettings, time.Duration]
	// LoadTimeout selects config.load_timeout. Set accepts time.Duration.
	//
	// LoadTimeout bounds one Remember loader run, detached from the requesting
	// caller's cancellation. A call can narrow it with WithLoadTimeout.
	//
	LoadTimeout config.Key[CacheSettings, time.Duration]
}

CacheSettingsConfigConfigKeySet exposes compiler-checked configuration overrides.

type CacheSettingsConfigKeySet

type CacheSettingsConfigKeySet struct {
	// Driver selects driver. Set accepts CacheDriver.
	Driver   config.Key[CacheSettings, CacheDriver]
	Config   CacheSettingsConfigConfigKeySet
	Memory   CacheSettingsMemoryConfigKeySet
	File     CacheSettingsFileConfigKeySet
	Postgres CacheSettingsPostgresConfigKeySet
	// Redis selects redis. Set accepts redis.ConnectionName.
	Redis config.Key[CacheSettings, redis.ConnectionName]
	// Database selects database. Set accepts database.ConnectionName.
	Database     config.Key[CacheSettings, database.ConnectionName]
	Require      CacheSettingsRequireConfigKeySet
	Leases       CacheSettingsLeasesConfigKeySet
	Coordination CacheSettingsCoordinationConfigKeySet
}

CacheSettingsConfigKeySet exposes compiler-checked configuration overrides.

func CacheSettingsConfigKeys

func CacheSettingsConfigKeys() CacheSettingsConfigKeySet

CacheSettingsConfigKeys derives keys from the handwritten settings declaration.

type CacheSettingsConfigNamespaceConfigKeySet

type CacheSettingsConfigNamespaceConfigKeySet struct {
	// Application selects config.namespace.application. Set accepts string.
	Application config.Key[CacheSettings, string]
	// Environment selects config.namespace.environment. Set accepts string.
	Environment config.Key[CacheSettings, string]
}

CacheSettingsConfigNamespaceConfigKeySet exposes compiler-checked configuration overrides.

type CacheSettingsCoordinationConfigKeySet

type CacheSettingsCoordinationConfigKeySet struct {
	// LeaseDuration selects coordination.lease_duration. Set accepts time.Duration.
	LeaseDuration config.Key[CacheSettings, time.Duration]
	// Wait selects coordination.wait. Set accepts time.Duration.
	Wait config.Key[CacheSettings, time.Duration]
}

CacheSettingsCoordinationConfigKeySet exposes compiler-checked configuration overrides.

type CacheSettingsFileConfigKeySet

type CacheSettingsFileConfigKeySet struct {
	// Root selects file.root. Set accepts string.
	Root config.Key[CacheSettings, string]
	// MaxEntries selects file.max_entries. Set accepts int.
	MaxEntries config.Key[CacheSettings, int]
	// MaxBytes selects file.max_bytes. Set accepts int64.
	MaxBytes config.Key[CacheSettings, int64]
	// Sync selects file.sync. Set accepts bool.
	Sync config.Key[CacheSettings, bool]
	// PruneInterval selects file.prune_interval. Set accepts time.Duration.
	PruneInterval config.Key[CacheSettings, time.Duration]
}

CacheSettingsFileConfigKeySet exposes compiler-checked configuration overrides.

type CacheSettingsLeasesConfigKeySet

type CacheSettingsLeasesConfigKeySet struct {
	Namespace CacheSettingsLeasesNamespaceConfigKeySet
	// MaxActive selects leases.max_active. Set accepts int.
	MaxActive config.Key[CacheSettings, int]
	// MaxDeclarations selects leases.max_declarations. Set accepts int.
	MaxDeclarations config.Key[CacheSettings, int]
	// MaxKeyBytes selects leases.max_key_bytes. Set accepts int.
	MaxKeyBytes config.Key[CacheSettings, int]
	// OperationTimeout selects leases.operation_timeout. Set accepts time.Duration.
	OperationTimeout config.Key[CacheSettings, time.Duration]
	// MaxWait selects leases.max_wait. Set accepts time.Duration.
	MaxWait config.Key[CacheSettings, time.Duration]
	// PollInterval selects leases.poll_interval. Set accepts time.Duration.
	PollInterval config.Key[CacheSettings, time.Duration]
}

CacheSettingsLeasesConfigKeySet exposes compiler-checked configuration overrides.

type CacheSettingsLeasesNamespaceConfigKeySet

type CacheSettingsLeasesNamespaceConfigKeySet struct {
	// Application selects leases.namespace.application. Set accepts string.
	Application config.Key[CacheSettings, string]
	// Environment selects leases.namespace.environment. Set accepts string.
	Environment config.Key[CacheSettings, string]
}

CacheSettingsLeasesNamespaceConfigKeySet exposes compiler-checked configuration overrides.

type CacheSettingsMemoryConfigKeySet

type CacheSettingsMemoryConfigKeySet struct {
	// MaxEntries selects memory.max_entries. Set accepts int.
	MaxEntries config.Key[CacheSettings, int]
	// MaxBytes selects memory.max_bytes. Set accepts int.
	MaxBytes config.Key[CacheSettings, int]
}

CacheSettingsMemoryConfigKeySet exposes compiler-checked configuration overrides.

type CacheSettingsPostgresConfigKeySet

type CacheSettingsPostgresConfigKeySet struct {
	// Schema selects postgres.schema. Set accepts string.
	Schema config.Key[CacheSettings, string]
	// MaxEntries selects postgres.max_entries. Set accepts int.
	MaxEntries config.Key[CacheSettings, int]
	// MaxBytes selects postgres.max_bytes. Set accepts int64.
	MaxBytes config.Key[CacheSettings, int64]
	// PruneInterval selects postgres.prune_interval. Set accepts time.Duration.
	PruneInterval config.Key[CacheSettings, time.Duration]
}

CacheSettingsPostgresConfigKeySet exposes compiler-checked configuration overrides.

type CacheSettingsRequireConfigKeySet

type CacheSettingsRequireConfigKeySet struct {
	// Tags selects require.tags. Set accepts bool.
	Tags config.Key[CacheSettings, bool]
	// Counters selects require.counters. Set accepts bool.
	Counters config.Key[CacheSettings, bool]
	// Entries selects require.entries. Set accepts bool.
	Entries config.Key[CacheSettings, bool]
	// Batches selects require.batches. Set accepts bool.
	Batches config.Key[CacheSettings, bool]
	// DistributedFills selects require.distributed_fills. Set accepts bool.
	DistributedFills config.Key[CacheSettings, bool]
}

CacheSettingsRequireConfigKeySet exposes compiler-checked configuration overrides.

type CacheStores

type CacheStores map[cache.StoreName]CacheSettings

func (*CacheStores) UnmarshalText

func (m *CacheStores) UnmarshalText(data []byte) error

type CachesSettings

type CachesSettings struct {
	Default cache.StoreName
	Stores  CacheStores
}

func DefaultCachesSettings

func DefaultCachesSettings() CachesSettings

type CloudDiskSettings

type CloudDiskSettings struct {
	Bucket, Region, Endpoint, Namespace, PublicBase string
	Credentials                                     credentials.Name
	PathStyle                                       bool
	PartBytes                                       int64
	MaxUploads, ReadAttempts, PartAttempts          int
	AbortTimeout                                    time.Duration
	PartConcurrency                                 int
	VerifyPublication                               bool
	// AllowHTTP and Compatible apply only to the s3_compatible driver.
	AllowHTTP  bool
	Compatible s3.CompatibleCapabilities
}

type ConnectionSettings

type ConnectionSettings struct {
	Primary        PostgreSQLSettings
	ReadEnabled    bool
	Read           PostgreSQLSettings
	MaxConnections int
	// SlowQueryThreshold logs statements at least this slow through the
	// application logger, without SQL text or arguments; zero disables it.
	SlowQueryThreshold time.Duration
	// StickyReadWindow routes reads to the primary for this long after a write
	// in a database.StickyReads request scope; zero disables it.
	StickyReadWindow time.Duration
}

ConnectionSettings defines one logical primary/read topology.

func DefaultConnectionSettings

func DefaultConnectionSettings() ConnectionSettings

func (ConnectionSettings) Config

func (ConnectionSettings) Validate

func (s ConnectionSettings) Validate() error

type ConnectionSettingsConfigKeySet

type ConnectionSettingsConfigKeySet struct {
	Primary ConnectionSettingsPrimaryConfigKeySet
	// ReadEnabled selects read_enabled. Set accepts bool.
	ReadEnabled config.Key[ConnectionSettings, bool]
	Read        ConnectionSettingsReadConfigKeySet
	// MaxConnections selects max_connections. Set accepts int.
	MaxConnections config.Key[ConnectionSettings, int]
	// SlowQueryThreshold selects slow_query_threshold. Set accepts time.Duration.
	//
	// SlowQueryThreshold logs statements at least this slow through the
	// application logger, without SQL text or arguments; zero disables it.
	//
	SlowQueryThreshold config.Key[ConnectionSettings, time.Duration]
	// StickyReadWindow selects sticky_read_window. Set accepts time.Duration.
	//
	// StickyReadWindow routes reads to the primary for this long after a write
	// in a database.StickyReads request scope; zero disables it.
	//
	StickyReadWindow config.Key[ConnectionSettings, time.Duration]
}

ConnectionSettingsConfigKeySet exposes compiler-checked configuration overrides.

func ConnectionSettingsConfigKeys

func ConnectionSettingsConfigKeys() ConnectionSettingsConfigKeySet

ConnectionSettingsConfigKeys derives keys from the handwritten settings declaration.

type ConnectionSettingsPrimaryConfigKeySet

type ConnectionSettingsPrimaryConfigKeySet struct {
	// Host selects primary.host. Set accepts string.
	Host config.Key[ConnectionSettings, string]
	// Port selects primary.port. Set accepts uint16.
	Port config.Key[ConnectionSettings, uint16]
	// Database selects primary.database. Set accepts string.
	Database config.Key[ConnectionSettings, string]
	// User selects primary.user. Set accepts string.
	User config.Key[ConnectionSettings, string]
	// Schema selects primary.schema. Set accepts string.
	Schema config.Key[ConnectionSettings, string]
	// Password selects primary.password. Set accepts secret.String.
	Password config.Key[ConnectionSettings, secret.String]
	// TLS selects primary.tls. Set accepts postgres.TLSMode.
	TLS config.Key[ConnectionSettings, postgres.TLSMode]
	// ApplicationName selects primary.application_name. Set accepts string.
	ApplicationName config.Key[ConnectionSettings, string]
	Pool            ConnectionSettingsPrimaryPoolConfigKeySet
	// StatementCacheCapacity selects primary.statement_cache_capacity. Set accepts int.
	StatementCacheCapacity config.Key[ConnectionSettings, int]
	// MaxProtocolMessageBytes selects primary.max_protocol_message_bytes. Set accepts int.
	MaxProtocolMessageBytes config.Key[ConnectionSettings, int]
	// StatementTimeout selects primary.statement_timeout. Set accepts time.Duration.
	StatementTimeout config.Key[ConnectionSettings, time.Duration]
	// LockTimeout selects primary.lock_timeout. Set accepts time.Duration.
	LockTimeout config.Key[ConnectionSettings, time.Duration]
	// IdleInTransactionSessionTimeout selects primary.idle_in_transaction_session_timeout. Set accepts time.Duration.
	IdleInTransactionSessionTimeout config.Key[ConnectionSettings, time.Duration]
}

ConnectionSettingsPrimaryConfigKeySet exposes compiler-checked configuration overrides.

type ConnectionSettingsPrimaryPoolConfigKeySet

type ConnectionSettingsPrimaryPoolConfigKeySet struct {
	// MaxOpen selects primary.pool.max_open. Set accepts int.
	MaxOpen config.Key[ConnectionSettings, int]
	// MaxIdle selects primary.pool.max_idle. Set accepts int.
	MaxIdle config.Key[ConnectionSettings, int]
	// MaxLifetime selects primary.pool.max_lifetime. Set accepts time.Duration.
	MaxLifetime config.Key[ConnectionSettings, time.Duration]
	// MaxIdleTime selects primary.pool.max_idle_time. Set accepts time.Duration.
	MaxIdleTime config.Key[ConnectionSettings, time.Duration]
	// ConnectTimeout selects primary.pool.connect_timeout. Set accepts time.Duration.
	ConnectTimeout config.Key[ConnectionSettings, time.Duration]
	// AcquireTimeout selects primary.pool.acquire_timeout. Set accepts time.Duration.
	AcquireTimeout config.Key[ConnectionSettings, time.Duration]
	// CommitTimeout selects primary.pool.commit_timeout. Set accepts time.Duration.
	CommitTimeout config.Key[ConnectionSettings, time.Duration]
	// StartupTimeout selects primary.pool.startup_timeout. Set accepts time.Duration.
	StartupTimeout config.Key[ConnectionSettings, time.Duration]
}

ConnectionSettingsPrimaryPoolConfigKeySet exposes compiler-checked configuration overrides.

type ConnectionSettingsReadConfigKeySet

type ConnectionSettingsReadConfigKeySet struct {
	// Host selects read.host. Set accepts string.
	Host config.Key[ConnectionSettings, string]
	// Port selects read.port. Set accepts uint16.
	Port config.Key[ConnectionSettings, uint16]
	// Database selects read.database. Set accepts string.
	Database config.Key[ConnectionSettings, string]
	// User selects read.user. Set accepts string.
	User config.Key[ConnectionSettings, string]
	// Schema selects read.schema. Set accepts string.
	Schema config.Key[ConnectionSettings, string]
	// Password selects read.password. Set accepts secret.String.
	Password config.Key[ConnectionSettings, secret.String]
	// TLS selects read.tls. Set accepts postgres.TLSMode.
	TLS config.Key[ConnectionSettings, postgres.TLSMode]
	// ApplicationName selects read.application_name. Set accepts string.
	ApplicationName config.Key[ConnectionSettings, string]
	Pool            ConnectionSettingsReadPoolConfigKeySet
	// StatementCacheCapacity selects read.statement_cache_capacity. Set accepts int.
	StatementCacheCapacity config.Key[ConnectionSettings, int]
	// MaxProtocolMessageBytes selects read.max_protocol_message_bytes. Set accepts int.
	MaxProtocolMessageBytes config.Key[ConnectionSettings, int]
	// StatementTimeout selects read.statement_timeout. Set accepts time.Duration.
	StatementTimeout config.Key[ConnectionSettings, time.Duration]
	// LockTimeout selects read.lock_timeout. Set accepts time.Duration.
	LockTimeout config.Key[ConnectionSettings, time.Duration]
	// IdleInTransactionSessionTimeout selects read.idle_in_transaction_session_timeout. Set accepts time.Duration.
	IdleInTransactionSessionTimeout config.Key[ConnectionSettings, time.Duration]
}

ConnectionSettingsReadConfigKeySet exposes compiler-checked configuration overrides.

type ConnectionSettingsReadPoolConfigKeySet

type ConnectionSettingsReadPoolConfigKeySet struct {
	// MaxOpen selects read.pool.max_open. Set accepts int.
	MaxOpen config.Key[ConnectionSettings, int]
	// MaxIdle selects read.pool.max_idle. Set accepts int.
	MaxIdle config.Key[ConnectionSettings, int]
	// MaxLifetime selects read.pool.max_lifetime. Set accepts time.Duration.
	MaxLifetime config.Key[ConnectionSettings, time.Duration]
	// MaxIdleTime selects read.pool.max_idle_time. Set accepts time.Duration.
	MaxIdleTime config.Key[ConnectionSettings, time.Duration]
	// ConnectTimeout selects read.pool.connect_timeout. Set accepts time.Duration.
	ConnectTimeout config.Key[ConnectionSettings, time.Duration]
	// AcquireTimeout selects read.pool.acquire_timeout. Set accepts time.Duration.
	AcquireTimeout config.Key[ConnectionSettings, time.Duration]
	// CommitTimeout selects read.pool.commit_timeout. Set accepts time.Duration.
	CommitTimeout config.Key[ConnectionSettings, time.Duration]
	// StartupTimeout selects read.pool.startup_timeout. Set accepts time.Duration.
	StartupTimeout config.Key[ConnectionSettings, time.Duration]
}

ConnectionSettingsReadPoolConfigKeySet exposes compiler-checked configuration overrides.

type CoordinationDriver

type CoordinationDriver string
const (
	MemoryCoordination CoordinationDriver = "memory"
	RedisCoordination  CoordinationDriver = "redis"
)

type CoordinationSettings

type CoordinationSettings struct {
	Enabled    bool
	Driver     CoordinationDriver
	Redis      redis.ConnectionName
	Config     lease.Config
	MaxEntries int
}

func DefaultCoordinationSettings

func DefaultCoordinationSettings() CoordinationSettings

type CredentialSources

type CredentialSources map[credentials.Name]credentials.Settings

func (*CredentialSources) UnmarshalText

func (m *CredentialSources) UnmarshalText(data []byte) error

type DatabaseConnections

type DatabaseConnections map[database.ConnectionName]ConnectionSettings

DatabaseConnections uses generated element keys, including nested durations and secrets. Each input entry starts with DefaultConnectionSettings.

func (*DatabaseConnections) UnmarshalText

func (m *DatabaseConnections) UnmarshalText(data []byte) error

type DatabaseSettings

type DatabaseSettings struct {
	Default        database.ConnectionName
	MaxConnections int
	Connections    DatabaseConnections `config:",secret"`
}

func DefaultDatabaseSettings

func DefaultDatabaseSettings() DatabaseSettings

func (DatabaseSettings) MigrationGroups

func (s DatabaseSettings) MigrationGroups(targets ...MigrationTarget) ([]MigrationGroup, error)

MigrationGroups resolves every target before any database I/O. A blank connection selects the default alias and a blank schema selects the connection's primary schema, or public for an unscoped connection. Targets addressing the same primary host, port, database and schema share one history table, so they merge into one group: an identical repeated definition collapses and a conflicting one fails. Each group must form a valid migrate registry. Targets without definitions contribute nothing. Groups are ordered by first connection name, then schema; definitions keep their first-seen order and are owned copies.

func (DatabaseSettings) ScopedSchema

ScopedSchema resolves the default alias and rejects an unscoped endpoint.

type DiskDriver

type DiskDriver string
const (
	LocalDisk DiskDriver = "local"
	S3Disk    DiskDriver = "s3"
	R2Disk    DiskDriver = "r2"
	// CompatibleDisk is a generic S3-compatible endpoint whose guarantees are
	// declared in CloudDiskSettings.Compatible.
	CompatibleDisk DiskDriver = "s3_compatible"
)

type DiskSettings

type DiskSettings struct {
	Driver DiskDriver
	Config storage.Config
	Local  LocalDiskSettings
	Cloud  CloudDiskSettings
}

DiskSettings owns one driver selection and the common storage limits.

func DefaultDiskSettings

func DefaultDiskSettings() DiskSettings

type DiskSettingsCloudCompatibleConfigKeySet

type DiskSettingsCloudCompatibleConfigKeySet struct {
	// ConditionalCreate selects cloud.compatible.conditional_create. Set accepts bool.
	ConditionalCreate config.Key[DiskSettings, bool]
	// ConditionalReplace selects cloud.compatible.conditional_replace. Set accepts bool.
	ConditionalReplace config.Key[DiskSettings, bool]
	// ConditionalDelete selects cloud.compatible.conditional_delete. Set accepts bool.
	ConditionalDelete config.Key[DiskSettings, bool]
	// Versions selects cloud.compatible.versions. Set accepts bool.
	Versions config.Key[DiskSettings, bool]
	// SingleRequestConditions selects cloud.compatible.single_request_conditions. Set accepts bool.
	SingleRequestConditions config.Key[DiskSettings, bool]
	// RequiresNFCKeys selects cloud.compatible.requires_nfc_keys. Set accepts bool.
	RequiresNFCKeys config.Key[DiskSettings, bool]
	// ServerCopy selects cloud.compatible.server_copy. Set accepts bool.
	ServerCopy config.Key[DiskSettings, bool]
	// ListingPathEncoding selects cloud.compatible.listing_path_encoding. Set accepts bool.
	ListingPathEncoding config.Key[DiskSettings, bool]
	// FormUploads selects cloud.compatible.form_uploads. Set accepts bool.
	FormUploads config.Key[DiskSettings, bool]
}

DiskSettingsCloudCompatibleConfigKeySet exposes compiler-checked configuration overrides.

type DiskSettingsCloudConfigKeySet

type DiskSettingsCloudConfigKeySet struct {
	// Bucket selects cloud.bucket. Set accepts string.
	Bucket config.Key[DiskSettings, string]
	// Region selects cloud.region. Set accepts string.
	Region config.Key[DiskSettings, string]
	// Endpoint selects cloud.endpoint. Set accepts string.
	Endpoint config.Key[DiskSettings, string]
	// Namespace selects cloud.namespace. Set accepts string.
	Namespace config.Key[DiskSettings, string]
	// PublicBase selects cloud.public_base. Set accepts string.
	PublicBase config.Key[DiskSettings, string]
	// Credentials selects cloud.credentials. Set accepts credentials.Name.
	Credentials config.Key[DiskSettings, credentials.Name]
	// PathStyle selects cloud.path_style. Set accepts bool.
	PathStyle config.Key[DiskSettings, bool]
	// PartBytes selects cloud.part_bytes. Set accepts int64.
	PartBytes config.Key[DiskSettings, int64]
	// MaxUploads selects cloud.max_uploads. Set accepts int.
	MaxUploads config.Key[DiskSettings, int]
	// ReadAttempts selects cloud.read_attempts. Set accepts int.
	ReadAttempts config.Key[DiskSettings, int]
	// PartAttempts selects cloud.part_attempts. Set accepts int.
	PartAttempts config.Key[DiskSettings, int]
	// AbortTimeout selects cloud.abort_timeout. Set accepts time.Duration.
	AbortTimeout config.Key[DiskSettings, time.Duration]
	// PartConcurrency selects cloud.part_concurrency. Set accepts int.
	PartConcurrency config.Key[DiskSettings, int]
	// VerifyPublication selects cloud.verify_publication. Set accepts bool.
	VerifyPublication config.Key[DiskSettings, bool]
	// AllowHTTP selects cloud.allow_http. Set accepts bool.
	//
	// AllowHTTP and Compatible apply only to the s3_compatible driver.
	//
	AllowHTTP  config.Key[DiskSettings, bool]
	Compatible DiskSettingsCloudCompatibleConfigKeySet
}

DiskSettingsCloudConfigKeySet exposes compiler-checked configuration overrides.

type DiskSettingsConfigConfigKeySet

type DiskSettingsConfigConfigKeySet struct {
	// Visibility selects config.visibility. Set accepts storage.Visibility.
	Visibility config.Key[DiskSettings, storage.Visibility]
	// MaxObjectBytes selects config.max_object_bytes. Set accepts int64.
	MaxObjectBytes config.Key[DiskSettings, int64]
	// MaxActive selects config.max_active. Set accepts int.
	MaxActive config.Key[DiskSettings, int]
	// Timeout selects config.timeout. Set accepts time.Duration.
	Timeout config.Key[DiskSettings, time.Duration]
	// MaxStreams selects config.max_streams. Set accepts int.
	MaxStreams config.Key[DiskSettings, int]
	// StreamIdleTimeout selects config.stream_idle_timeout. Set accepts time.Duration.
	StreamIdleTimeout config.Key[DiskSettings, time.Duration]
}

DiskSettingsConfigConfigKeySet exposes compiler-checked configuration overrides.

type DiskSettingsConfigKeySet

type DiskSettingsConfigKeySet struct {
	// Driver selects driver. Set accepts DiskDriver.
	Driver config.Key[DiskSettings, DiskDriver]
	Config DiskSettingsConfigConfigKeySet
	Local  DiskSettingsLocalConfigKeySet
	Cloud  DiskSettingsCloudConfigKeySet
}

DiskSettingsConfigKeySet exposes compiler-checked configuration overrides.

func DiskSettingsConfigKeys

func DiskSettingsConfigKeys() DiskSettingsConfigKeySet

DiskSettingsConfigKeys derives keys from the handwritten settings declaration.

type DiskSettingsLocalConfigKeySet

type DiskSettingsLocalConfigKeySet struct {
	// Root selects local.root. Set accepts string.
	Root config.Key[DiskSettings, string]
	// MaxScan selects local.max_scan. Set accepts int.
	MaxScan config.Key[DiskSettings, int]
	// Sync selects local.sync. Set accepts bool.
	Sync config.Key[DiskSettings, bool]
}

DiskSettingsLocalConfigKeySet exposes compiler-checked configuration overrides.

type Disks

type Disks map[storage.DiskID]DiskSettings

func (*Disks) UnmarshalText

func (m *Disks) UnmarshalText(data []byte) error

type FileCacheSettings

type FileCacheSettings struct {
	Root          string
	MaxEntries    int
	MaxBytes      int64
	Sync          bool
	PruneInterval time.Duration
}

FileCacheSettings configures the file adapter. PruneInterval runs automatic reclamation of expired records while the application is started (default one minute); zero disables it.

type HTTPClientSettings

type HTTPClientSettings struct{ Config httpclient.Config }

func DefaultHTTPClientSettings

func DefaultHTTPClientSettings(name httpclient.Name) HTTPClientSettings

type HTTPClientSettingsConfigConfigKeySet

type HTTPClientSettingsConfigConfigKeySet struct {
	//
	// Destination optionally enforces direct, address-checked outbound networking.
	//
	Destination HTTPClientSettingsConfigDestinationConfigKeySet
	// Name selects config.name. Set accepts httpclient.Name.
	Name config.Key[HTTPClientSettings, httpclient.Name]
	// BaseURL selects config.base_url. Set accepts string.
	BaseURL config.Key[HTTPClientSettings, string]
	// Headers selects config.headers. Set accepts http.Header.
	Headers config.Key[HTTPClientSettings, http.Header]
	// ConnectTimeout selects config.connect_timeout. Set accepts time.Duration.
	ConnectTimeout config.Key[HTTPClientSettings, time.Duration]
	// AttemptTimeout selects config.attempt_timeout. Set accepts time.Duration.
	AttemptTimeout config.Key[HTTPClientSettings, time.Duration]
	// Timeout selects config.timeout. Set accepts time.Duration.
	Timeout config.Key[HTTPClientSettings, time.Duration]
	// Concurrency selects config.concurrency. Set accepts int.
	Concurrency config.Key[HTTPClientSettings, int]
	// RequestBytes selects config.request_bytes. Set accepts int64.
	RequestBytes config.Key[HTTPClientSettings, int64]
	// ResponseBytes selects config.response_bytes. Set accepts int64.
	ResponseBytes config.Key[HTTPClientSettings, int64]
	// HeaderBytes selects config.header_bytes. Set accepts int.
	HeaderBytes config.Key[HTTPClientSettings, int]
	Retry       HTTPClientSettingsConfigRetryConfigKeySet
	// PropagateTrace selects config.propagate_trace. Set accepts bool.
	//
	// PropagateTrace opts this named destination into bounded W3C correlation.
	// When enabled, framework context replaces manual trace headers on the
	// owned request copy. Disabled clients do not add propagation headers.
	//
	PropagateTrace config.Key[HTTPClientSettings, bool]
	//
	// TLS customizes certificate verification and client certificates for the
	// owned transport. A supplied custom transport cannot combine with it.
	//
	TLS HTTPClientSettingsConfigTLSConfigKeySet
}

HTTPClientSettingsConfigConfigKeySet exposes compiler-checked configuration overrides.

type HTTPClientSettingsConfigDestinationConfigKeySet

type HTTPClientSettingsConfigDestinationConfigKeySet struct {
	// Mode selects config.destination.mode. Set accepts httpclient.DestinationMode.
	Mode config.Key[HTTPClientSettings, httpclient.DestinationMode]
	// Schemes selects config.destination.schemes. Set accepts []httpclient.Scheme.
	Schemes config.Key[HTTPClientSettings, []httpclient.Scheme]
	// Ports selects config.destination.ports. Set accepts []uint16.
	Ports config.Key[HTTPClientSettings, []uint16]
	// Hosts selects config.destination.hosts. Set accepts []string.
	Hosts config.Key[HTTPClientSettings, []string]
	// Networks selects config.destination.networks. Set accepts []netip.Prefix.
	Networks config.Key[HTTPClientSettings, []netip.Prefix]
}

HTTPClientSettingsConfigDestinationConfigKeySet exposes compiler-checked configuration overrides.

type HTTPClientSettingsConfigKeySet

type HTTPClientSettingsConfigKeySet struct {
	Config HTTPClientSettingsConfigConfigKeySet
}

HTTPClientSettingsConfigKeySet exposes compiler-checked configuration overrides.

func HTTPClientSettingsConfigKeys

func HTTPClientSettingsConfigKeys() HTTPClientSettingsConfigKeySet

HTTPClientSettingsConfigKeys derives keys from the handwritten settings declaration.

type HTTPClientSettingsConfigRetryConfigKeySet

type HTTPClientSettingsConfigRetryConfigKeySet struct {
	// Mode selects config.retry.mode. Set accepts httpclient.RetryMode.
	Mode config.Key[HTTPClientSettings, httpclient.RetryMode]
	// Attempts selects config.retry.attempts. Set accepts int.
	Attempts config.Key[HTTPClientSettings, int]
	// InitialBackoff selects config.retry.initial_backoff. Set accepts time.Duration.
	InitialBackoff config.Key[HTTPClientSettings, time.Duration]
	// MaxBackoff selects config.retry.max_backoff. Set accepts time.Duration.
	MaxBackoff config.Key[HTTPClientSettings, time.Duration]
	// Jitter selects config.retry.jitter. Set accepts bool.
	Jitter config.Key[HTTPClientSettings, bool]
	// Statuses selects config.retry.statuses. Set accepts []int.
	Statuses config.Key[HTTPClientSettings, []int]
}

HTTPClientSettingsConfigRetryConfigKeySet exposes compiler-checked configuration overrides.

type HTTPClientSettingsConfigTLSConfigKeySet

type HTTPClientSettingsConfigTLSConfigKeySet struct {
	// CertificateAuthorities selects config.tls.certificate_authorities. Set accepts string.
	CertificateAuthorities config.Key[HTTPClientSettings, string]
	// AppendSystemRoots selects config.tls.append_system_roots. Set accepts bool.
	AppendSystemRoots config.Key[HTTPClientSettings, bool]
	// Certificate selects config.tls.certificate. Set accepts secret.String.
	Certificate config.Key[HTTPClientSettings, secret.String]
	// PrivateKey selects config.tls.private_key. Set accepts secret.String.
	PrivateKey config.Key[HTTPClientSettings, secret.String]
	// ServerName selects config.tls.server_name. Set accepts string.
	ServerName config.Key[HTTPClientSettings, string]
}

HTTPClientSettingsConfigTLSConfigKeySet exposes compiler-checked configuration overrides.

type HTTPClients

type HTTPClients map[httpclient.Name]HTTPClientSettings

func (*HTTPClients) UnmarshalText

func (m *HTTPClients) UnmarshalText(data []byte) error

type HTTPClientsSettings

type HTTPClientsSettings struct {
	Default httpclient.Name
	Clients HTTPClients `config:",secret"`
}

func DefaultHTTPClientsSettings

func DefaultHTTPClientsSettings() HTTPClientsSettings

type JobConnectionSettings

type JobConnectionSettings struct {
	Driver       JobDriver
	Redis        redis.ConnectionName
	AllowMemory  bool
	DefaultQueue jobs.Queue
	Dispatch     jobs.DispatchConfig
	Queue        jobs.QueueConfig
}

JobConnectionSettings configures one named job connection. The memory driver is process-local: a job dispatched by a process that runs no worker kernel (for example an HTTP replica) is never executed and is lost when that process exits. Outside local, development and test environments it therefore requires AllowMemory; production deployments should use the redis driver.

func DefaultJobConnectionSettings

func DefaultJobConnectionSettings() JobConnectionSettings

type JobConnectionSettingsConfigKeySet

type JobConnectionSettingsConfigKeySet struct {
	// Driver selects driver. Set accepts JobDriver.
	Driver config.Key[JobConnectionSettings, JobDriver]
	// Redis selects redis. Set accepts redis.ConnectionName.
	Redis config.Key[JobConnectionSettings, redis.ConnectionName]
	// AllowMemory selects allow_memory. Set accepts bool.
	AllowMemory config.Key[JobConnectionSettings, bool]
	// DefaultQueue selects default_queue. Set accepts jobs.Queue.
	DefaultQueue config.Key[JobConnectionSettings, jobs.Queue]
	Dispatch     JobConnectionSettingsDispatchConfigKeySet
	Queue        JobConnectionSettingsQueueConfigKeySet
}

JobConnectionSettingsConfigKeySet exposes compiler-checked configuration overrides.

func JobConnectionSettingsConfigKeys

func JobConnectionSettingsConfigKeys() JobConnectionSettingsConfigKeySet

JobConnectionSettingsConfigKeys derives keys from the handwritten settings declaration.

type JobConnectionSettingsDispatchConfigKeySet

type JobConnectionSettingsDispatchConfigKeySet struct {
	Namespace JobConnectionSettingsDispatchNamespaceConfigKeySet
	// MaxInFlight selects dispatch.max_in_flight. Set accepts int.
	MaxInFlight config.Key[JobConnectionSettings, int]
}

JobConnectionSettingsDispatchConfigKeySet exposes compiler-checked configuration overrides.

type JobConnectionSettingsDispatchNamespaceConfigKeySet

type JobConnectionSettingsDispatchNamespaceConfigKeySet struct {
	// Application selects dispatch.namespace.application. Set accepts string.
	Application config.Key[JobConnectionSettings, string]
	// Environment selects dispatch.namespace.environment. Set accepts string.
	Environment config.Key[JobConnectionSettings, string]
}

JobConnectionSettingsDispatchNamespaceConfigKeySet exposes compiler-checked configuration overrides.

type JobConnectionSettingsQueueConfigKeySet

type JobConnectionSettingsQueueConfigKeySet struct {
	// MaxEntries selects queue.max_entries. Set accepts int.
	MaxEntries config.Key[JobConnectionSettings, int]
	// MaxBytes selects queue.max_bytes. Set accepts int64.
	MaxBytes config.Key[JobConnectionSettings, int64]
	// MaxHistory selects queue.max_history. Set accepts int.
	MaxHistory config.Key[JobConnectionSettings, int]
	// Retention selects queue.retention. Set accepts time.Duration.
	Retention config.Key[JobConnectionSettings, time.Duration]
	// MaxRetained selects queue.max_retained. Set accepts int.
	MaxRetained config.Key[JobConnectionSettings, int]
}

JobConnectionSettingsQueueConfigKeySet exposes compiler-checked configuration overrides.

type JobConnections

type JobConnections map[jobs.ConnectionName]JobConnectionSettings

func (*JobConnections) UnmarshalText

func (m *JobConnections) UnmarshalText(data []byte) error

type JobDriver

type JobDriver string
const (
	MemoryJobs JobDriver = "memory"
	RedisJobs  JobDriver = "redis"
	// SyncJobs runs each dispatched job inline in the dispatching caller
	// (jobs/inline). Like memory it is process-local and non-durable.
	SyncJobs JobDriver = "sync"
)

type JobsSettings

type JobsSettings struct {
	Default     jobs.ConnectionName
	Connections JobConnections
}

func DefaultJobsSettings

func DefaultJobsSettings() JobsSettings

type LocalDiskSettings

type LocalDiskSettings struct {
	Root    string
	MaxScan int
	Sync    bool
}

type MailAPISettings

type MailAPISettings struct {
	Endpoint         string
	Timeout          time.Duration
	Token            secret.String
	AccountID        string
	Domain           string
	MessageStream    string
	Region           string
	ConfigurationSet string
	Credentials      credentials.Name
}

type MailDriver

type MailDriver string
const (
	LogMail        MailDriver = "log"
	MemoryMail     MailDriver = "memory"
	SMTPMail       MailDriver = "smtp"
	SESMail        MailDriver = "ses"
	ResendMail     MailDriver = "resend"
	CloudflareMail MailDriver = "cloudflare"
	PostmarkMail   MailDriver = "postmark"
	MailgunMail    MailDriver = "mailgun"
	// FailoverMail tries Transports in order; RoundRobinMail starts each send at
	// the next one. Both move on only after a known non-acceptance (Transient).
	FailoverMail   MailDriver = "failover"
	RoundRobinMail MailDriver = "roundrobin"
	// PreviewMail logs the rendered message for local development; it
	// records private content and delivers nothing.
	PreviewMail MailDriver = "preview"
)

type MailSettings

type MailSettings struct {
	Default email.MailerName
	Mailers Mailers `config:",secret"`
}

func DefaultMailSettings

func DefaultMailSettings() MailSettings

type MailerSettings

type MailerSettings struct {
	Driver         MailDriver
	Config         email.Config
	SMTP           SMTPSettings
	API            MailAPISettings
	MemoryCapacity int
	Transports     []email.MailerName `config:",json"`
}

MailerSettings keeps transport configuration separate from typed message data. From is required when enabling a mailer; defaults simulate acceptance through logs.

Transports names 2 to 8 other configured mailers composed by the failover and roundrobin drivers. Each composition owns its own transport instances built from those mailers' settings; referenced mailers cannot themselves compose.

func DefaultMailerSettings

func DefaultMailerSettings() MailerSettings

type MailerSettingsAPIConfigKeySet

type MailerSettingsAPIConfigKeySet struct {
	// Endpoint selects api.endpoint. Set accepts string.
	Endpoint config.Key[MailerSettings, string]
	// Timeout selects api.timeout. Set accepts time.Duration.
	Timeout config.Key[MailerSettings, time.Duration]
	// Token selects api.token. Set accepts secret.String.
	Token config.Key[MailerSettings, secret.String]
	// AccountID selects api.account_id. Set accepts string.
	AccountID config.Key[MailerSettings, string]
	// Domain selects api.domain. Set accepts string.
	Domain config.Key[MailerSettings, string]
	// MessageStream selects api.message_stream. Set accepts string.
	MessageStream config.Key[MailerSettings, string]
	// Region selects api.region. Set accepts string.
	Region config.Key[MailerSettings, string]
	// ConfigurationSet selects api.configuration_set. Set accepts string.
	ConfigurationSet config.Key[MailerSettings, string]
	// Credentials selects api.credentials. Set accepts credentials.Name.
	Credentials config.Key[MailerSettings, credentials.Name]
}

MailerSettingsAPIConfigKeySet exposes compiler-checked configuration overrides.

type MailerSettingsConfigConfigKeySet

type MailerSettingsConfigConfigKeySet struct {
	// From selects config.from. Set accepts email.Address.
	//
	// From supplies Mailer.Message; explicit NewMessage senders are never replaced.
	//
	From config.Key[MailerSettings, email.Address]
	// MaxActive selects config.max_active. Set accepts int.
	MaxActive config.Key[MailerSettings, int]
	// MaxMessageBytes selects config.max_message_bytes. Set accepts int.
	MaxMessageBytes config.Key[MailerSettings, int]
	// MaxAttachmentBytes selects config.max_attachment_bytes. Set accepts int.
	MaxAttachmentBytes config.Key[MailerSettings, int]
	// Timeout selects config.timeout. Set accepts time.Duration.
	Timeout config.Key[MailerSettings, time.Duration]
	// MessageIDDomain selects config.message_id_domain. Set accepts string.
	//
	// MessageIDDomain is the right-hand side of generated Message-ID headers.
	// Empty uses each message's sender domain.
	//
	MessageIDDomain config.Key[MailerSettings, string]
}

MailerSettingsConfigConfigKeySet exposes compiler-checked configuration overrides.

type MailerSettingsConfigKeySet

type MailerSettingsConfigKeySet struct {
	// Driver selects driver. Set accepts MailDriver.
	Driver config.Key[MailerSettings, MailDriver]
	Config MailerSettingsConfigConfigKeySet
	SMTP   MailerSettingsSMTPConfigKeySet
	API    MailerSettingsAPIConfigKeySet
	// MemoryCapacity selects memory_capacity. Set accepts int.
	MemoryCapacity config.Key[MailerSettings, int]
	// Transports selects transports. Set accepts []email.MailerName.
	Transports config.Key[MailerSettings, []email.MailerName]
}

MailerSettingsConfigKeySet exposes compiler-checked configuration overrides.

func MailerSettingsConfigKeys

func MailerSettingsConfigKeys() MailerSettingsConfigKeySet

MailerSettingsConfigKeys derives keys from the handwritten settings declaration.

type MailerSettingsSMTPConfigKeySet

type MailerSettingsSMTPConfigKeySet struct {
	// Address selects smtp.address. Set accepts string.
	Address config.Key[MailerSettings, string]
	// Security selects smtp.security. Set accepts smtp.Security.
	Security config.Key[MailerSettings, smtp.Security]
	// Username selects smtp.username. Set accepts string.
	Username config.Key[MailerSettings, string]
	// Password selects smtp.password. Set accepts secret.String.
	Password config.Key[MailerSettings, secret.String]
	// Auth selects smtp.auth. Set accepts smtp.Mechanism.
	Auth config.Key[MailerSettings, smtp.Mechanism]
	// LocalName selects smtp.local_name. Set accepts string.
	LocalName config.Key[MailerSettings, string]
	// Timeout selects smtp.timeout. Set accepts time.Duration.
	Timeout config.Key[MailerSettings, time.Duration]
	// MaxIdle selects smtp.max_idle. Set accepts int.
	MaxIdle config.Key[MailerSettings, int]
	// IdleTimeout selects smtp.idle_timeout. Set accepts time.Duration.
	IdleTimeout config.Key[MailerSettings, time.Duration]
}

MailerSettingsSMTPConfigKeySet exposes compiler-checked configuration overrides.

type Mailers

type Mailers map[email.MailerName]MailerSettings

func (*Mailers) UnmarshalText

func (m *Mailers) UnmarshalText(data []byte) error

type MigrationGroup

type MigrationGroup struct {
	Connections []database.ConnectionName
	Schema      string
	Definitions []migrate.Definition
}

MigrationGroup is one migration history: every target addressing the same configured primary database endpoint and schema, merged into one definition set. Connections lists every configured name that addresses it, sorted; any of them can run the group because they reach the same database and schema.

func (MigrationGroup) PostgresConfig

PostgresConfig keeps the group's history in its own schema (<schema>.<base.Table>, by default <schema>.schema_migrations) and runs its unqualified SQL with that schema as the search path. Other bounds come from base.

type MigrationTarget

type MigrationTarget struct {
	Connection  database.ConnectionName
	Schema      string
	Definitions []migrate.Definition
}

MigrationTarget contributes definitions to an explicit migration command. It never runs during normal application boot. Multiple stores sharing one target return one contribution; the existing migration registry owns deduplication.

type Option

type Option func(*options) error

func WithClock

func WithClock(source clock.Clock) Option

func WithCredentials

func WithCredentials(name credentials.Name, provider credentials.Provider) Option

WithCredentials installs an explicitly borrowed rotating provider. Its caller owns lifecycle and keeps it alive until the whole application has drained.

func WithDatabaseEncryption

func WithDatabaseEncryption(keys *encryption.Keyring) Option

WithDatabaseEncryption gives every configured database connection the key ring that encrypted model fields (database/encrypted) seal and open with.

func WithLogger

func WithLogger(logger *slog.Logger) Option

WithLogger borrows the containing application's structured logger.

func WithMailDriver

func WithMailDriver(name MailDriver, driver email.Driver) Option

WithMailDriver extends configured mailers with one borrowed driver. Its owner must outlive application shutdown. Built-in driver names cannot be replaced.

func WithQueryObserver

func WithQueryObserver(observer database.QueryObserver) Option

WithQueryObserver installs one borrowed observer on all configured database pools. Nil or repeated observers are invalid, as with database.WithQueryObserver. Example: infrastructure.Configure(settings, infrastructure.WithQueryObserver(observer)).

func WithRedisStores

func WithRedisStores(stores ...RedisStore) Option

WithRedisStores snapshots application declarations before plan resolution.

func WithStatementDetector

func WithStatementDetector(detector *database.StatementDetector) Option

WithStatementDetector installs one borrowed detector on every named database. Defaults still alias their named pool; no additional pool is constructed.

type Plan

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

func Configure

func Configure(settings Settings, optionsList ...Option) (*Plan, error)

Configure freezes a settings snapshot and constructs provider definitions. It does not open files, retrieve credentials, connect pools or execute migrations.

func (Plan) Format

func (Plan) Format(s fmt.State, _ rune)

Plans retain configuration privately; formatting must not reflect through those private fields and bypass nested secret.String formatting.

func (Plan) LogValue

func (Plan) LogValue() slog.Value

func (*Plan) Migrations

func (p *Plan) Migrations() []MigrationTarget

func (*Plan) Providers

func (p *Plan) Providers() []foundation.Provider

Providers returns a fresh declaration slice. Every registration constructs independent services, so the same plan may be used by independent applications.

func (*Plan) RedisKeys

func (p *Plan) RedisKeys() []RedisConnectionInventory

RedisKeys returns an owned, sorted and deduplicated snapshot of resolved Redis consumers. It performs no I/O. Unused connections and non-Redis stores add nothing. Arbitrary providers registered outside the plan are not inspectable; declare application stores with WithRedisStores to include them.

func (*Plan) Register

func (p *Plan) Register(builder *foundation.Builder) *foundation.Builder

func (*Plan) Worker

func (p *Plan) Worker(owner foundation.ProviderID, name jobs.ConnectionName, config jobs.WorkerConfig, requires []foundation.ProviderID) (foundation.Module, error)

Worker selects one configured connection without duplicating its namespace or default queue. It registers no resources until the returned module is added.

type PostgreSQLSettings

type PostgreSQLSettings struct {
	Host                                            string
	Port                                            uint16
	Database, User                                  string
	Schema                                          string
	Password                                        secret.String
	TLS                                             postgres.TLSMode
	ApplicationName                                 string
	Pool                                            database.PoolConfig
	StatementCacheCapacity, MaxProtocolMessageBytes int
	StatementTimeout                                time.Duration
	LockTimeout                                     time.Duration
	IdleInTransactionSessionTimeout                 time.Duration
}

PostgreSQLSettings is the serializable subset of postgres.Config. The explicit adapter API remains available for custom certificates/native customization.

func PostgreSQLSettingsFromConfig

func PostgreSQLSettingsFromConfig(c postgres.Config) PostgreSQLSettings

func (PostgreSQLSettings) Config

func (s PostgreSQLSettings) Config() postgres.Config

type PostgresCacheSettings

type PostgresCacheSettings struct {
	Schema        string
	MaxEntries    int
	MaxBytes      int64
	PruneInterval time.Duration
}

PostgresCacheSettings configures the PostgreSQL adapter. PruneInterval runs automatic deletion of expired rows while started; zero disables it.

type PubSubSettings

type PubSubSettings struct {
	Default     pubsub.ConnectionName
	Connections Brokers
}

func DefaultPubSubSettings

func DefaultPubSubSettings() PubSubSettings

type RealtimeConnectionSettings

type RealtimeConnectionSettings struct {
	Driver  RealtimeDriver
	Redis   redis.ConnectionName
	Cluster websocket.ClusterConfig
}

func DefaultRealtimeConnectionSettings

func DefaultRealtimeConnectionSettings() RealtimeConnectionSettings

type RealtimeConnectionSettingsClusterBufferConfigKeySet

type RealtimeConnectionSettingsClusterBufferConfigKeySet struct {
	// Messages selects cluster.buffer.messages. Set accepts int.
	Messages config.Key[RealtimeConnectionSettings, int]
	// Bytes selects cluster.buffer.bytes. Set accepts int.
	Bytes config.Key[RealtimeConnectionSettings, int]
	// PayloadBytes selects cluster.buffer.payload_bytes. Set accepts int.
	PayloadBytes config.Key[RealtimeConnectionSettings, int]
	// Channels selects cluster.buffer.channels. Set accepts int.
	Channels config.Key[RealtimeConnectionSettings, int]
}

RealtimeConnectionSettingsClusterBufferConfigKeySet exposes compiler-checked configuration overrides.

type RealtimeConnectionSettingsClusterConfigKeySet

type RealtimeConnectionSettingsClusterConfigKeySet struct {
	Namespace RealtimeConnectionSettingsClusterNamespaceConfigKeySet
	// MaxConnections selects cluster.max_connections. Set accepts int.
	MaxConnections config.Key[RealtimeConnectionSettings, int]
	// MaxConnectionsPerSubject selects cluster.max_connections_per_subject. Set accepts int.
	MaxConnectionsPerSubject config.Key[RealtimeConnectionSettings, int]
	// ConnectionTTL selects cluster.connection_ttl. Set accepts time.Duration.
	ConnectionTTL config.Key[RealtimeConnectionSettings, time.Duration]
	// OperationTimeout selects cluster.operation_timeout. Set accepts time.Duration.
	OperationTimeout config.Key[RealtimeConnectionSettings, time.Duration]
	Buffer           RealtimeConnectionSettingsClusterBufferConfigKeySet
	// RetainConnectionsOnGap selects cluster.retain_connections_on_gap. Set accepts bool.
	//
	// RetainConnectionsOnGap keeps local sockets open across a lost fan-out
	// stream; events published during the gap are then missed silently. The
	// default closes them with a retryable status so clients reconnect and
	// request replay.
	//
	RetainConnectionsOnGap config.Key[RealtimeConnectionSettings, bool]
	// ExcludeRemoteConnections selects cluster.exclude_remote_connections. Set accepts bool.
	//
	// ExcludeRemoteConnections lets ExceptConnection name a connection hosted
	// by another instance by carrying the exclusion in the fan-out envelope.
	// Instances before this field reject such envelopes, so enable it only
	// once every instance in the namespace runs a release that has it.
	// Excluding a connection of this instance (RelayToOthers) never needs it.
	//
	ExcludeRemoteConnections config.Key[RealtimeConnectionSettings, bool]
}

RealtimeConnectionSettingsClusterConfigKeySet exposes compiler-checked configuration overrides.

type RealtimeConnectionSettingsClusterNamespaceConfigKeySet

type RealtimeConnectionSettingsClusterNamespaceConfigKeySet struct {
	// Application selects cluster.namespace.application. Set accepts string.
	Application config.Key[RealtimeConnectionSettings, string]
	// Environment selects cluster.namespace.environment. Set accepts string.
	Environment config.Key[RealtimeConnectionSettings, string]
}

RealtimeConnectionSettingsClusterNamespaceConfigKeySet exposes compiler-checked configuration overrides.

type RealtimeConnectionSettingsConfigKeySet

type RealtimeConnectionSettingsConfigKeySet struct {
	// Driver selects driver. Set accepts RealtimeDriver.
	Driver config.Key[RealtimeConnectionSettings, RealtimeDriver]
	// Redis selects redis. Set accepts redis.ConnectionName.
	Redis   config.Key[RealtimeConnectionSettings, redis.ConnectionName]
	Cluster RealtimeConnectionSettingsClusterConfigKeySet
}

RealtimeConnectionSettingsConfigKeySet exposes compiler-checked configuration overrides.

func RealtimeConnectionSettingsConfigKeys

func RealtimeConnectionSettingsConfigKeys() RealtimeConnectionSettingsConfigKeySet

RealtimeConnectionSettingsConfigKeys derives keys from the handwritten settings declaration.

type RealtimeConnections

type RealtimeConnections map[websocket.ConnectionName]RealtimeConnectionSettings

func (*RealtimeConnections) UnmarshalText

func (m *RealtimeConnections) UnmarshalText(data []byte) error

type RealtimeDriver

type RealtimeDriver string
const (
	LocalRealtime RealtimeDriver = "local"
	RedisRealtime RealtimeDriver = "redis"
)

type RealtimeSettings

type RealtimeSettings struct {
	Default     websocket.ConnectionName
	Connections RealtimeConnections
}

func DefaultRealtimeSettings

func DefaultRealtimeSettings() RealtimeSettings

type RedisConnectionInventory

type RedisConnectionInventory struct {
	Connection redis.ConnectionName `json:"connection"`
	Keys       []RedisKeySpace      `json:"keys"`
	Channels   []RedisKeySpace      `json:"channels"`
}

RedisConnectionInventory separates key permissions (~pattern) from pub/sub channel permissions (&pattern). It contains no connection configuration.

type RedisConnectionSettings

type RedisConnectionSettings struct {
	Host                                                                    string
	Port                                                                    uint16
	Database                                                                int
	User                                                                    string
	Password                                                                secret.String
	TLS                                                                     redis.TLSMode
	MaxConnections, MaxOperations, MaxSubscriptions                         int
	ConnectTimeout, OperationTimeout, PoolTimeout, MaxIdleTime, MaxLifetime time.Duration
	MaxValueBytes                                                           int
}

RedisConnectionSettings addresses one standalone server, with verified TLS by default. Custom TLS certificates use the advanced redis.Config/module API.

func DefaultRedisConnectionSettings

func DefaultRedisConnectionSettings() RedisConnectionSettings

func RedisSettingsFromConfig

func RedisSettingsFromConfig(c redis.Config) RedisConnectionSettings

func (RedisConnectionSettings) Config

func (RedisConnectionSettings) Validate

func (s RedisConnectionSettings) Validate() error

type RedisConnectionSettingsConfigKeySet

type RedisConnectionSettingsConfigKeySet struct {
	// Host selects host. Set accepts string.
	Host config.Key[RedisConnectionSettings, string]
	// Port selects port. Set accepts uint16.
	Port config.Key[RedisConnectionSettings, uint16]
	// Database selects database. Set accepts int.
	Database config.Key[RedisConnectionSettings, int]
	// User selects user. Set accepts string.
	User config.Key[RedisConnectionSettings, string]
	// Password selects password. Set accepts secret.String.
	Password config.Key[RedisConnectionSettings, secret.String]
	// TLS selects tls. Set accepts redis.TLSMode.
	TLS config.Key[RedisConnectionSettings, redis.TLSMode]
	// MaxConnections selects max_connections. Set accepts int.
	MaxConnections config.Key[RedisConnectionSettings, int]
	// MaxOperations selects max_operations. Set accepts int.
	MaxOperations config.Key[RedisConnectionSettings, int]
	// MaxSubscriptions selects max_subscriptions. Set accepts int.
	MaxSubscriptions config.Key[RedisConnectionSettings, int]
	// ConnectTimeout selects connect_timeout. Set accepts time.Duration.
	ConnectTimeout config.Key[RedisConnectionSettings, time.Duration]
	// OperationTimeout selects operation_timeout. Set accepts time.Duration.
	OperationTimeout config.Key[RedisConnectionSettings, time.Duration]
	// PoolTimeout selects pool_timeout. Set accepts time.Duration.
	PoolTimeout config.Key[RedisConnectionSettings, time.Duration]
	// MaxIdleTime selects max_idle_time. Set accepts time.Duration.
	MaxIdleTime config.Key[RedisConnectionSettings, time.Duration]
	// MaxLifetime selects max_lifetime. Set accepts time.Duration.
	MaxLifetime config.Key[RedisConnectionSettings, time.Duration]
	// MaxValueBytes selects max_value_bytes. Set accepts int.
	MaxValueBytes config.Key[RedisConnectionSettings, int]
}

RedisConnectionSettingsConfigKeySet exposes compiler-checked configuration overrides.

func RedisConnectionSettingsConfigKeys

func RedisConnectionSettingsConfigKeys() RedisConnectionSettingsConfigKeySet

RedisConnectionSettingsConfigKeys derives keys from the handwritten settings declaration.

type RedisConnections

type RedisConnections map[redis.ConnectionName]RedisConnectionSettings

func (*RedisConnections) UnmarshalText

func (m *RedisConnections) UnmarshalText(data []byte) error

type RedisKeySpace

type RedisKeySpace struct {
	Feature   keyspace.Feature   `json:"feature"`
	Namespace keyspace.Namespace `json:"namespace"`
	Version   string             `json:"version"`
	Prefix    string             `json:"prefix"`
}

RedisKeySpace describes one exact physical address prefix. Namespace components are validated and contain no Redis glob metacharacters. Prefix + "*" is an ACL pattern; never replace feature, application or environment with a wildcard.

type RedisSettings

type RedisSettings struct {
	Default        redis.ConnectionName
	MaxConnections int
	Connections    RedisConnections `config:",secret"`
}

func DefaultRedisSettings

func DefaultRedisSettings() RedisSettings

type RedisStore

type RedisStore interface {
	// contains filtered or unexported methods
}

RedisStore is a sealed application store declaration. Its typed constructor owns both runtime construction and inventory metadata. A zero namespace uses the application namespace; an empty connection selects the Redis default.

func RedisLockoutStore

func RedisLockoutStore(key foundation.Key[*lockout.Store], connection redis.ConnectionName, config lockout.Config) RedisStore

RedisLockoutStore declares a borrowing credential-protection store. Its config and connection are shared by runtime construction and service-free inspection.

func RedisRateLimitStore

func RedisRateLimitStore(key foundation.Key[*ratelimit.Store], connection redis.ConnectionName, config ratelimit.Config) RedisStore

RedisRateLimitStore declares a borrowing rate-limit store under a typed service key. The key name follows named-service syntax. Resolve it during bootstrap, then bind ordinary ratelimit declarations to the resulting store.

type SMTPSettings

type SMTPSettings struct {
	Address     string
	Security    smtp.Security
	Username    string
	Password    secret.String
	Auth        smtp.Mechanism
	LocalName   string
	Timeout     time.Duration
	MaxIdle     int
	IdleTimeout time.Duration
}

SMTPSettings configures the SMTP transport. Auth selects plain, login or xoauth2 (the password is then the OAuth access token). LocalName overrides the EHLO name. MaxIdle > 0 reuses up to that many idle connections for IdleTimeout.

type Services

type Services struct {
	Databases    *database.Connections
	Redis        *redis.Connections
	Storage      *storage.Registry
	Caches       *cache.Stores
	Mailers      *email.Mailers
	Jobs         *jobs.Connections
	HTTPClients  *httpclient.Clients
	Brokers      *pubsub.Brokers
	Realtime     *websocket.Connections
	Coordination *lease.Manager
}

Services supplies typed constructor dependencies. Disabled families have no registry. Default access is automatic and errors if that family is disabled.

func (*Services) Broker

func (s *Services) Broker() (*pubsub.Broker, error)

func (*Services) Cache

func (s *Services) Cache() (*cache.Store, error)

func (*Services) Database

func (s *Services) Database() (*database.DB, error)

func (*Services) Disk

func (s *Services) Disk() (*storage.Disk, error)

func (*Services) HTTPClient

func (s *Services) HTTPClient() (*httpclient.Client, error)

func (*Services) JobConnection

func (s *Services) JobConnection() (*jobs.Connection, error)

func (*Services) Leases

func (s *Services) Leases() (*lease.Manager, error)

func (*Services) Mailer

func (s *Services) Mailer() (*email.Mailer, error)

func (*Services) RealtimeConnection

func (s *Services) RealtimeConnection() (*websocket.BackendConnection, error)

func (*Services) RedisConnection

func (s *Services) RedisConnection() (*redis.Client, error)

type Settings

type Settings struct {
	Namespace    keyspace.Namespace
	Database     DatabaseSettings
	Redis        RedisSettings
	Storage      StorageSettings
	Cache        CachesSettings
	Mail         MailSettings
	Jobs         JobsSettings
	HTTPClients  HTTPClientsSettings
	PubSub       PubSubSettings
	Realtime     RealtimeSettings
	Coordination CoordinationSettings
	Credentials  CredentialSources `config:",secret"`
}

Settings enables each family by supplying a nonempty collection. Its Default names an existing entry; omitted backend references select that default.

func DefaultSettings

func DefaultSettings() Settings

func (Settings) Validate

func (s Settings) Validate() error

Validate performs the same pure checks used by Configure, without preparing adapters. Custom credential providers must instead be supplied to Configure.

func (Settings) WithDatabaseScopes

func (s Settings) WithDatabaseScopes(databases DatabaseSettings) (Settings, error)

WithDatabaseScopes returns independently owned database/cache maps. A blank or public feature schema means the conventional default; other explicit schemas must already match their selected connection. No I/O or migrations run here.

type SettingsCacheConfigKeySet

type SettingsCacheConfigKeySet struct {
	// Default selects cache.default. Set accepts cache.StoreName.
	Default config.Key[Settings, cache.StoreName]
	// Stores selects cache.stores. Set accepts CacheStores.
	Stores config.Key[Settings, CacheStores]
}

SettingsCacheConfigKeySet exposes compiler-checked configuration overrides.

type SettingsConfigKeySet

type SettingsConfigKeySet struct {
	Namespace    SettingsNamespaceConfigKeySet
	Database     SettingsDatabaseConfigKeySet
	Redis        SettingsRedisConfigKeySet
	Storage      SettingsStorageConfigKeySet
	Cache        SettingsCacheConfigKeySet
	Mail         SettingsMailConfigKeySet
	Jobs         SettingsJobsConfigKeySet
	HTTPClients  SettingsHTTPClientsConfigKeySet
	PubSub       SettingsPubSubConfigKeySet
	Realtime     SettingsRealtimeConfigKeySet
	Coordination SettingsCoordinationConfigKeySet
	// Credentials selects credentials. Set accepts CredentialSources.
	Credentials config.Key[Settings, CredentialSources]
}

SettingsConfigKeySet exposes compiler-checked configuration overrides.

func SettingsConfigKeys

func SettingsConfigKeys() SettingsConfigKeySet

SettingsConfigKeys derives keys from the handwritten settings declaration.

type SettingsCoordinationConfigConfigKeySet

type SettingsCoordinationConfigConfigKeySet struct {
	Namespace SettingsCoordinationConfigNamespaceConfigKeySet
	// MaxActive selects coordination.config.max_active. Set accepts int.
	MaxActive config.Key[Settings, int]
	// MaxDeclarations selects coordination.config.max_declarations. Set accepts int.
	MaxDeclarations config.Key[Settings, int]
	// MaxKeyBytes selects coordination.config.max_key_bytes. Set accepts int.
	MaxKeyBytes config.Key[Settings, int]
	// OperationTimeout selects coordination.config.operation_timeout. Set accepts time.Duration.
	OperationTimeout config.Key[Settings, time.Duration]
	// MaxWait selects coordination.config.max_wait. Set accepts time.Duration.
	MaxWait config.Key[Settings, time.Duration]
	// PollInterval selects coordination.config.poll_interval. Set accepts time.Duration.
	PollInterval config.Key[Settings, time.Duration]
}

SettingsCoordinationConfigConfigKeySet exposes compiler-checked configuration overrides.

type SettingsCoordinationConfigKeySet

type SettingsCoordinationConfigKeySet struct {
	// Enabled selects coordination.enabled. Set accepts bool.
	Enabled config.Key[Settings, bool]
	// Driver selects coordination.driver. Set accepts CoordinationDriver.
	Driver config.Key[Settings, CoordinationDriver]
	// Redis selects coordination.redis. Set accepts redis.ConnectionName.
	Redis  config.Key[Settings, redis.ConnectionName]
	Config SettingsCoordinationConfigConfigKeySet
	// MaxEntries selects coordination.max_entries. Set accepts int.
	MaxEntries config.Key[Settings, int]
}

SettingsCoordinationConfigKeySet exposes compiler-checked configuration overrides.

type SettingsCoordinationConfigNamespaceConfigKeySet

type SettingsCoordinationConfigNamespaceConfigKeySet struct {
	// Application selects coordination.config.namespace.application. Set accepts string.
	Application config.Key[Settings, string]
	// Environment selects coordination.config.namespace.environment. Set accepts string.
	Environment config.Key[Settings, string]
}

SettingsCoordinationConfigNamespaceConfigKeySet exposes compiler-checked configuration overrides.

type SettingsDatabaseConfigKeySet

type SettingsDatabaseConfigKeySet struct {
	// Default selects database.default. Set accepts database.ConnectionName.
	Default config.Key[Settings, database.ConnectionName]
	// MaxConnections selects database.max_connections. Set accepts int.
	MaxConnections config.Key[Settings, int]
	// Connections selects database.connections. Set accepts DatabaseConnections.
	Connections config.Key[Settings, DatabaseConnections]
}

SettingsDatabaseConfigKeySet exposes compiler-checked configuration overrides.

type SettingsHTTPClientsConfigKeySet

type SettingsHTTPClientsConfigKeySet struct {
	// Default selects http_clients.default. Set accepts httpclient.Name.
	Default config.Key[Settings, httpclient.Name]
	// Clients selects http_clients.clients. Set accepts HTTPClients.
	Clients config.Key[Settings, HTTPClients]
}

SettingsHTTPClientsConfigKeySet exposes compiler-checked configuration overrides.

type SettingsJobsConfigKeySet

type SettingsJobsConfigKeySet struct {
	// Default selects jobs.default. Set accepts jobs.ConnectionName.
	Default config.Key[Settings, jobs.ConnectionName]
	// Connections selects jobs.connections. Set accepts JobConnections.
	Connections config.Key[Settings, JobConnections]
}

SettingsJobsConfigKeySet exposes compiler-checked configuration overrides.

type SettingsMailConfigKeySet

type SettingsMailConfigKeySet struct {
	// Default selects mail.default. Set accepts email.MailerName.
	Default config.Key[Settings, email.MailerName]
	// Mailers selects mail.mailers. Set accepts Mailers.
	Mailers config.Key[Settings, Mailers]
}

SettingsMailConfigKeySet exposes compiler-checked configuration overrides.

type SettingsNamespaceConfigKeySet

type SettingsNamespaceConfigKeySet struct {
	// Application selects namespace.application. Set accepts string.
	Application config.Key[Settings, string]
	// Environment selects namespace.environment. Set accepts string.
	Environment config.Key[Settings, string]
}

SettingsNamespaceConfigKeySet exposes compiler-checked configuration overrides.

type SettingsPubSubConfigKeySet

type SettingsPubSubConfigKeySet struct {
	// Default selects pub_sub.default. Set accepts pubsub.ConnectionName.
	Default config.Key[Settings, pubsub.ConnectionName]
	// Connections selects pub_sub.connections. Set accepts Brokers.
	Connections config.Key[Settings, Brokers]
}

SettingsPubSubConfigKeySet exposes compiler-checked configuration overrides.

type SettingsRealtimeConfigKeySet

type SettingsRealtimeConfigKeySet struct {
	// Default selects realtime.default. Set accepts websocket.ConnectionName.
	Default config.Key[Settings, websocket.ConnectionName]
	// Connections selects realtime.connections. Set accepts RealtimeConnections.
	Connections config.Key[Settings, RealtimeConnections]
}

SettingsRealtimeConfigKeySet exposes compiler-checked configuration overrides.

type SettingsRedisConfigKeySet

type SettingsRedisConfigKeySet struct {
	// Default selects redis.default. Set accepts redis.ConnectionName.
	Default config.Key[Settings, redis.ConnectionName]
	// MaxConnections selects redis.max_connections. Set accepts int.
	MaxConnections config.Key[Settings, int]
	// Connections selects redis.connections. Set accepts RedisConnections.
	Connections config.Key[Settings, RedisConnections]
}

SettingsRedisConfigKeySet exposes compiler-checked configuration overrides.

type SettingsStorageConfigKeySet

type SettingsStorageConfigKeySet struct {
	// Default selects storage.default. Set accepts storage.DiskID.
	Default config.Key[Settings, storage.DiskID]
	// Disks selects storage.disks. Set accepts Disks.
	Disks config.Key[Settings, Disks]
}

SettingsStorageConfigKeySet exposes compiler-checked configuration overrides.

type StorageSettings

type StorageSettings struct {
	Default storage.DiskID
	Disks   Disks
}

func DefaultStorageSettings

func DefaultStorageSettings() StorageSettings

Jump to

Keyboard shortcuts

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