config

package
v0.23.1 Latest Latest
Warning

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

Go to latest
Published: May 14, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EnvKeyPrefix    = "VEF"
	EnvNodeID       = EnvKeyPrefix + "_NODE_ID"       // XID node identifier
	EnvLogLevel     = EnvKeyPrefix + "_LOG_LEVEL"     // Log level (debug|info|warn|error)
	EnvConfigPath   = EnvKeyPrefix + "_CONFIG_PATH"   // Custom config file path
	EnvI18NLanguage = EnvKeyPrefix + "_I18N_LANGUAGE" // Override default language
)

Environment variable keys.

View Source
const (
	DefaultMaxUploadSize int64 = 1024 * 1024 * 1024 // 1 GiB

	DefaultClaimTTL         time.Duration = 24 * time.Hour
	DefaultMaxPendingClaims int           = 100

	DefaultSweepInterval  time.Duration = 5 * time.Minute
	DefaultSweepBatchSize int           = 200

	DefaultDeleteWorkerInterval time.Duration = 5 * time.Minute
	DefaultDeleteBatchSize      int           = 100
	DefaultDeleteConcurrency    int           = 8
	DefaultDeleteMaxAttempts    int           = 12
	DefaultDeleteLeaseWindow    time.Duration = 5 * time.Minute
)

Default upload-flow and worker tunables. Mirror the values documented in the upload API design; configuration overrides apply iff strictly positive (a zero or negative value re-selects the default).

Variables

This section is empty.

Functions

This section is empty.

Types

type AppConfig

type AppConfig struct {
	Name      string `config:"name"`
	Port      uint16 `config:"port"`
	BodyLimit string `config:"body_limit"`
}

AppConfig defines core application settings.

type ApprovalConfig

type ApprovalConfig struct {
	AutoMigrate         bool `config:"auto_migrate"`
	OutboxRelayInterval int  `config:"outbox_relay_interval"` // Polling interval in seconds (default: 5)
	OutboxMaxRetries    int  `config:"outbox_max_retries"`    // Max retry attempts (default: 10)
	OutboxBatchSize     int  `config:"outbox_batch_size"`     // Max events per poll (default: 100)
}

ApprovalConfig defines approval workflow engine settings.

func (*ApprovalConfig) OutboxBatchSizeOrDefault

func (c *ApprovalConfig) OutboxBatchSizeOrDefault() int

OutboxBatchSizeOrDefault returns the batch size, defaulting to 100.

func (*ApprovalConfig) OutboxMaxRetriesOrDefault

func (c *ApprovalConfig) OutboxMaxRetriesOrDefault() int

OutboxMaxRetriesOrDefault returns the max retries, defaulting to 10.

func (*ApprovalConfig) OutboxRelayIntervalOrDefault

func (c *ApprovalConfig) OutboxRelayIntervalOrDefault() int

OutboxRelayIntervalOrDefault returns the relay interval, defaulting to 5 seconds.

type Config

type Config interface {
	// Unmarshal decodes configuration at the given key into target.
	Unmarshal(key string, target any) error
}

Config provides access to application configuration values.

type CorsConfig

type CorsConfig struct {
	Enabled      bool     `config:"enabled"`
	AllowOrigins []string `config:"allow_origins"`
}

CorsConfig defines CORS middleware settings.

type DBKind

type DBKind string

DBKind represents supported database kinds.

const (
	Oracle    DBKind = "oracle"
	SQLServer DBKind = "sqlserver"
	Postgres  DBKind = "postgres"
	MySQL     DBKind = "mysql"
	SQLite    DBKind = "sqlite"
)

Supported database kinds.

type DataSourceConfig

type DataSourceConfig struct {
	Kind           DBKind `config:"type"`
	Host           string `config:"host"`
	Port           uint16 `config:"port"`
	User           string `config:"user"`
	Password       string `config:"password"`
	Database       string `config:"database"`
	Schema         string `config:"schema"`
	Path           string `config:"path"`
	EnableSQLGuard bool   `config:"enable_sql_guard"`
}

DataSourceConfig defines database connection settings.

type FilesystemConfig

type FilesystemConfig struct {
	Root string `config:"root"`
}

FilesystemConfig defines filesystem storage settings.

type MCPConfig

type MCPConfig struct {
	Enabled     bool `config:"enabled"`
	RequireAuth bool `config:"require_auth"`
}

MCPConfig defines MCP server settings.

type MinIOConfig

type MinIOConfig struct {
	Endpoint  string `config:"endpoint"`
	AccessKey string `config:"access_key"`
	SecretKey string `config:"secret_key"`
	Bucket    string `config:"bucket"`
	Region    string `config:"region"`
	UseSSL    bool   `config:"use_ssl"`
}

MinIOConfig defines MinIO storage settings.

type MonitorConfig

type MonitorConfig struct {
	SampleInterval time.Duration `config:"sample_interval"` // Interval between samples (default: 10s)
	SampleDuration time.Duration `config:"sample_duration"` // Sampling window duration (default: 2s)
}

MonitorConfig defines monitoring service settings.

type RedisConfig

type RedisConfig struct {
	Host     string `config:"host"`
	Port     uint16 `config:"port"`
	User     string `config:"user"`
	Password string `config:"password"`
	Database uint8  `config:"database"` // Database number (0-15)
	Network  string `config:"network"`  // "tcp" or "unix" (default: "tcp")
}

RedisConfig defines Redis connection settings.

type SecurityConfig

type SecurityConfig struct {
	TokenExpires     time.Duration `config:"token_expires"`
	RefreshNotBefore time.Duration `config:"refresh_not_before"`
	LoginRateLimit   int           `config:"login_rate_limit"`
	RefreshRateLimit int           `config:"refresh_rate_limit"`
}

SecurityConfig defines security settings.

type StorageConfig

type StorageConfig struct {
	Provider    StorageProvider  `config:"provider"`
	AutoMigrate bool             `config:"auto_migrate"`
	MinIO       MinIOConfig      `config:"minio"`
	Filesystem  FilesystemConfig `config:"filesystem"`

	// MaxUploadSize is the hard upper bound (in bytes) on a single object
	// uploaded through the storage RPC, regardless of declared mode.
	// Default: 1 GiB.
	MaxUploadSize int64 `config:"max_upload_size"`

	// ClaimTTL is how long an upload claim stays valid before being swept.
	// Default: 24h.
	ClaimTTL time.Duration `config:"claim_ttl"`

	// MaxPendingClaims caps the number of in-flight (status='pending')
	// upload claims a single principal may hold simultaneously. Prevents
	// a single user from exhausting backend resources by opening
	// thousands of multipart sessions. Default: 100.
	MaxPendingClaims int `config:"max_pending_claims"`

	// AllowPublicUploads controls whether clients may set public=true on
	// init_upload. When false (default), all uploads land under priv/
	// regardless of the client's request. Set to true only when the
	// business explicitly needs user-initiated public uploads.
	AllowPublicUploads bool `config:"allow_public_uploads"`

	// SweepInterval is how often the claim sweeper polls for expired
	// upload claims. Default: 5m.
	SweepInterval time.Duration `config:"sweep_interval"`
	// SweepBatchSize bounds how many expired claims one sweep tick processes.
	// Default: 200.
	SweepBatchSize int `config:"sweep_batch_size"`

	// DeleteWorkerInterval is how often the delete worker polls for due
	// pending-delete rows. Default: 5m.
	DeleteWorkerInterval time.Duration `config:"delete_worker_interval"`
	// DeleteBatchSize bounds how many rows the delete worker leases per tick.
	// Default: 100.
	DeleteBatchSize int `config:"delete_batch_size"`
	// DeleteConcurrency caps the number of in-flight object deletions
	// per worker tick. Default: 8.
	DeleteConcurrency int `config:"delete_concurrency"`
	// DeleteMaxAttempts is the retry budget after which a pending-delete
	// row is parked as dead-letter. Default: 12.
	DeleteMaxAttempts int `config:"delete_max_attempts"`
	// DeleteLeaseWindow is the visibility timeout applied when leasing
	// rows. Should comfortably exceed expected per-item processing time.
	// Default: 5m.
	DeleteLeaseWindow time.Duration `config:"delete_lease_window"`
}

StorageConfig defines storage provider settings.

Upload-flow and worker tunables have working defaults applied at read time when their zero value is loaded; callers should not assume the parsed config carries non-zero values. Use the Effective* accessors instead of reading struct fields directly.

func (*StorageConfig) EffectiveClaimTTL added in v0.23.0

func (c *StorageConfig) EffectiveClaimTTL() time.Duration

EffectiveClaimTTL returns ClaimTTL or its default.

func (*StorageConfig) EffectiveDeleteBatchSize added in v0.23.0

func (c *StorageConfig) EffectiveDeleteBatchSize() int

EffectiveDeleteBatchSize returns DeleteBatchSize or its default.

func (*StorageConfig) EffectiveDeleteConcurrency added in v0.23.0

func (c *StorageConfig) EffectiveDeleteConcurrency() int

EffectiveDeleteConcurrency returns DeleteConcurrency or its default.

func (*StorageConfig) EffectiveDeleteLeaseWindow added in v0.23.0

func (c *StorageConfig) EffectiveDeleteLeaseWindow() time.Duration

EffectiveDeleteLeaseWindow returns DeleteLeaseWindow or its default.

func (*StorageConfig) EffectiveDeleteMaxAttempts added in v0.23.0

func (c *StorageConfig) EffectiveDeleteMaxAttempts() int

EffectiveDeleteMaxAttempts returns DeleteMaxAttempts or its default.

func (*StorageConfig) EffectiveDeleteWorkerInterval added in v0.23.0

func (c *StorageConfig) EffectiveDeleteWorkerInterval() time.Duration

EffectiveDeleteWorkerInterval returns DeleteWorkerInterval or its default.

func (*StorageConfig) EffectiveMaxPendingClaims added in v0.23.0

func (c *StorageConfig) EffectiveMaxPendingClaims() int

EffectiveMaxPendingClaims returns MaxPendingClaims or its default.

func (*StorageConfig) EffectiveMaxUploadSize added in v0.23.0

func (c *StorageConfig) EffectiveMaxUploadSize() int64

EffectiveMaxUploadSize returns MaxUploadSize or its default.

func (*StorageConfig) EffectiveSweepBatchSize added in v0.23.0

func (c *StorageConfig) EffectiveSweepBatchSize() int

EffectiveSweepBatchSize returns SweepBatchSize or its default.

func (*StorageConfig) EffectiveSweepInterval added in v0.23.0

func (c *StorageConfig) EffectiveSweepInterval() time.Duration

EffectiveSweepInterval returns SweepInterval or its default.

type StorageProvider

type StorageProvider string

StorageProvider represents supported storage backend types.

const (
	StorageMinIO      StorageProvider = "minio"
	StorageMemory     StorageProvider = "memory"
	StorageFilesystem StorageProvider = "filesystem"
)

Supported storage providers.

Jump to

Keyboard shortcuts

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