config

package
v1.70.0 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultSlowQueryThreshold = 200 * time.Millisecond
)

Variables

This section is empty.

Functions

func FillEnv

func FillEnv(v any) error

FillEnv convenience method to fill a config object with environment data.

func FromContext

func FromContext[T any](ctx context.Context) T

FromContext extracts service configuration from the supplied context if any exist.

func FromEnv

func FromEnv[T any]() (T, error)

FromEnv convenience method to process configs.

func LoadWithOIDC

func LoadWithOIDC[T any](ctx context.Context) (T, error)

LoadWithOIDC convenience method to process configs.

func ToContext

func ToContext(ctx context.Context, config any) context.Context

ToContext adds service configuration to the current supplied context.

Types

type ConfigurationAuthorization

type ConfigurationAuthorization interface {
	GetAuthorizationServiceReadURI() string
	GetAuthorizationServiceWriteURI() string
}

type ConfigurationDatabase

type ConfigurationDatabase interface {
	GetDatabasePrimaryHostURL() []string
	GetDatabaseReplicaHostURL() []string
	DoDatabaseMigrate() bool
	SkipDefaultTransaction() bool
	PreferSimpleProtocol() bool
	GetMaxIdleConnections() int
	GetMaxOpenConnections() int
	GetMaxConnectionLifeTimeInSeconds() time.Duration

	GetDatabaseMigrationPath() string
}

type ConfigurationDatabaseTracing added in v1.63.0

type ConfigurationDatabaseTracing interface {
	CanDatabaseTraceQueries() bool
	GetDatabaseSlowQueryLogThreshold() time.Duration
}

type ConfigurationDefault

type ConfigurationDefault struct {
	LogLevel      string `envDefault:"info"                      env:"LOG_LEVEL"       yaml:"log_level"`
	LogFormat     string `envDefault:"info"                      env:"LOG_FORMAT"      yaml:"log_format"`
	LogTimeFormat string `envDefault:"2006-01-02T15:04:05Z07:00" env:"LOG_TIME_FORMAT" yaml:"log_time_format"`
	LogColored    bool   `envDefault:"true"                      env:"LOG_COLORED"     yaml:"log_colored"`

	LogShowStackTrace bool `envDefault:"false" env:"LOG_SHOW_STACK_TRACE" yaml:"log_show_stack_trace"`

	TraceRequests        bool `envDefault:"false" env:"TRACE_REQUESTS"          yaml:"trace_requests"`
	TraceRequestsLogBody bool `envDefault:"false" env:"TRACE_REQUESTS_LOG_BODY" yaml:"trace_requests_log_body"`

	ProfilerEnable   bool   `envDefault:"false" env:"PROFILER_ENABLE" yaml:"profiler_enable"`
	ProfilerPortAddr string `envDefault:":6060" env:"PROFILER_PORT"   yaml:"profiler_port"`

	OpenTelemetryDisable    bool    `envDefault:"false" env:"OPENTELEMETRY_DISABLE"        yaml:"opentelemetry_disable"`
	OpenTelemetryTraceRatio float64 `envDefault:"1"     env:"OPENTELEMETRY_TRACE_ID_RATIO" yaml:"opentelemetry_trace_id_ratio"`

	ServiceName        string `envDefault:""     env:"SERVICE_NAME"         yaml:"service_name"`
	ServiceEnvironment string `envDefault:""     env:"SERVICE_ENVIRONMENT"  yaml:"service_environment"`
	ServiceVersion     string `envDefault:""     env:"SERVICE_VERSION"      yaml:"service_version"`
	RunServiceSecurely bool   `envDefault:"true" env:"RUN_SERVICE_SECURELY" yaml:"run_service_securely"`

	ServerPort     string `envDefault:":7000"  env:"PORT"      yaml:"server_port"`
	HTTPServerPort string `envDefault:":8080"  env:"HTTP_PORT" yaml:"http_server_port"`
	GrpcServerPort string `envDefault:":50051" env:"GRPC_PORT" yaml:"grpc_server_port"`

	// Worker pool settings
	WorkerPoolCPUFactorForWorkerCount int    `envDefault:"10"  env:"WORKER_POOL_CPU_FACTOR_FOR_WORKER_COUNT" yaml:"worker_pool_cpu_factor_for_worker_count"`
	WorkerPoolCapacity                int    `envDefault:"100" env:"WORKER_POOL_CAPACITY"                    yaml:"worker_pool_capacity"`
	WorkerPoolCount                   int    `envDefault:"100" env:"WORKER_POOL_COUNT"                       yaml:"worker_pool_count"`
	WorkerPoolExpiryDuration          string `envDefault:"1s"  env:"WORKER_POOL_EXPIRY_DURATION"             yaml:"worker_pool_expiry_duration"`

	TLSCertificatePath    string `env:"TLS_CERTIFICATE_PATH"     yaml:"tls_certificate_path"`
	TLSCertificateKeyPath string `env:"TLS_CERTIFICATE_KEY_PATH" yaml:"tls_certificate_key_path"`

	Oauth2ServiceURI          string   `env:"OAUTH2_SERVICE_URI"           yaml:"oauth2_service_uri"`
	Oauth2ServiceAdminURI     string   `env:"OAUTH2_SERVICE_ADMIN_URI"     yaml:"oauth2_service_admin_uri"`
	Oauth2WellKnownOIDCPath   string   `env:"OAUTH2_WELL_KNOWN_OIDC_PATH"  yaml:"oauth2_well_known_oidc_path"  envDefault:".well-known/openid-configuration"`
	Oauth2ServiceAudience     []string `env:"OAUTH2_SERVICE_AUDIENCE"      yaml:"oauth2_service_audience"`
	Oauth2ServiceClientID     string   `env:"OAUTH2_SERVICE_CLIENT_ID"     yaml:"oauth2_service_client_id"`
	Oauth2ServiceClientSecret string   `env:"OAUTH2_SERVICE_CLIENT_SECRET" yaml:"oauth2_service_client_secret"`

	Oauth2WellKnownJwkData  string   `env:"OAUTH2_WELL_KNOWN_JWK_DATA" yaml:"oauth2_well_known_jwk_data"`
	Oauth2JwtVerifyAudience []string `env:"OAUTH2_JWT_VERIFY_AUDIENCE" yaml:"oauth2_jwt_verify_audience"`
	Oauth2JwtVerifyIssuer   string   `env:"OAUTH2_JWT_VERIFY_ISSUER"   yaml:"oauth2_jwt_verify_issuer"`

	AuthorizationServiceReadURI  string `env:"AUTHORIZATION_SERVICE_READ_URI"  yaml:"authorization_service_read_uri"`
	AuthorizationServiceWriteURI string `env:"AUTHORIZATION_SERVICE_WRITE_URI" yaml:"authorization_service_write_uri"`

	DatabasePrimaryURL             []string `env:"DATABASE_URL"             yaml:"database_url"`
	DatabaseReplicaURL             []string `env:"REPLICA_DATABASE_URL"     yaml:"replica_database_url"`
	DatabaseMigrate                bool     `env:"DO_MIGRATION"             yaml:"do_migration"             envDefault:"false"`
	DatabaseMigrationPath          string   `env:"MIGRATION_PATH"           yaml:"migration_path"           envDefault:"./migrations/0001"`
	DatabaseSkipDefaultTransaction bool     `env:"SKIP_DEFAULT_TRANSACTION" yaml:"skip_default_transaction" envDefault:"true"`
	DatabasePreferSimpleProtocol   bool     `env:"PREFER_SIMPLE_PROTOCOL"   yaml:"prefer_simple_protocol"   envDefault:"true"`

	DatabaseMaxIdleConnections           int `envDefault:"2"   env:"DATABASE_MAX_IDLE_CONNECTIONS"                yaml:"database_max_idle_connections"`
	DatabaseMaxOpenConnections           int `envDefault:"5"   env:"DATABASE_MAX_OPEN_CONNECTIONS"                yaml:"database_max_open_connections"`
	DatabaseMaxConnectionLifeTimeSeconds int `envDefault:"300" env:"DATABASE_MAX_CONNECTION_LIFE_TIME_IN_SECONDS" yaml:"database_max_connection_life_time_seconds"`

	DatabaseTraceQueries          bool   `envDefault:"false" env:"DATABASE_LOG_QUERIES"          yaml:"database_log_queries"`
	DatabaseSlowQueryLogThreshold string `envDefault:"200ms" env:"DATABASE_SLOW_QUERY_THRESHOLD" yaml:"database_slow_query_threshold"`

	EventsQueueName string `envDefault:"frame.events.internal_._queue"       env:"EVENTS_QUEUE_NAME" yaml:"events_queue_name"`
	EventsQueueURL  string `envDefault:"mem://frame.events.internal_._queue" env:"EVENTS_QUEUE_URL"  yaml:"events_queue_url"`
	// contains filtered or unexported fields
}

func (*ConfigurationDefault) CanDatabaseTraceQueries

func (c *ConfigurationDefault) CanDatabaseTraceQueries() bool

func (*ConfigurationDefault) DisableOpenTelemetry

func (c *ConfigurationDefault) DisableOpenTelemetry() bool

func (*ConfigurationDefault) DoDatabaseMigrate

func (c *ConfigurationDefault) DoDatabaseMigrate() bool

func (*ConfigurationDefault) Environment

func (c *ConfigurationDefault) Environment() string

func (*ConfigurationDefault) GetAuthorizationServiceReadURI

func (c *ConfigurationDefault) GetAuthorizationServiceReadURI() string

func (*ConfigurationDefault) GetAuthorizationServiceWriteURI

func (c *ConfigurationDefault) GetAuthorizationServiceWriteURI() string

func (*ConfigurationDefault) GetCPUFactor

func (c *ConfigurationDefault) GetCPUFactor() int

func (*ConfigurationDefault) GetCapacity

func (c *ConfigurationDefault) GetCapacity() int

func (*ConfigurationDefault) GetCount

func (c *ConfigurationDefault) GetCount() int

func (*ConfigurationDefault) GetDatabaseMigrationPath

func (c *ConfigurationDefault) GetDatabaseMigrationPath() string

func (*ConfigurationDefault) GetDatabasePrimaryHostURL

func (c *ConfigurationDefault) GetDatabasePrimaryHostURL() []string

func (*ConfigurationDefault) GetDatabaseReplicaHostURL

func (c *ConfigurationDefault) GetDatabaseReplicaHostURL() []string

func (*ConfigurationDefault) GetDatabaseSlowQueryLogThreshold

func (c *ConfigurationDefault) GetDatabaseSlowQueryLogThreshold() time.Duration

func (*ConfigurationDefault) GetEventsQueueName

func (c *ConfigurationDefault) GetEventsQueueName() string

func (*ConfigurationDefault) GetEventsQueueURL

func (c *ConfigurationDefault) GetEventsQueueURL() string

func (*ConfigurationDefault) GetExpiryDuration

func (c *ConfigurationDefault) GetExpiryDuration() time.Duration

func (*ConfigurationDefault) GetMaxConnectionLifeTimeInSeconds

func (c *ConfigurationDefault) GetMaxConnectionLifeTimeInSeconds() time.Duration

func (*ConfigurationDefault) GetMaxIdleConnections

func (c *ConfigurationDefault) GetMaxIdleConnections() int

func (*ConfigurationDefault) GetMaxOpenConnections

func (c *ConfigurationDefault) GetMaxOpenConnections() int

func (*ConfigurationDefault) GetOauth2AuthorizationEndpoint

func (c *ConfigurationDefault) GetOauth2AuthorizationEndpoint() string

func (*ConfigurationDefault) GetOauth2EndSessionEndpoint

func (c *ConfigurationDefault) GetOauth2EndSessionEndpoint() string

func (*ConfigurationDefault) GetOauth2Issuer

func (c *ConfigurationDefault) GetOauth2Issuer() string

func (*ConfigurationDefault) GetOauth2RegistrationEndpoint

func (c *ConfigurationDefault) GetOauth2RegistrationEndpoint() string

func (*ConfigurationDefault) GetOauth2RevocationEndpoint

func (c *ConfigurationDefault) GetOauth2RevocationEndpoint() string

func (*ConfigurationDefault) GetOauth2ServiceAdminURI

func (c *ConfigurationDefault) GetOauth2ServiceAdminURI() string

func (*ConfigurationDefault) GetOauth2ServiceAudience

func (c *ConfigurationDefault) GetOauth2ServiceAudience() []string

func (*ConfigurationDefault) GetOauth2ServiceClientID

func (c *ConfigurationDefault) GetOauth2ServiceClientID() string

func (*ConfigurationDefault) GetOauth2ServiceClientSecret

func (c *ConfigurationDefault) GetOauth2ServiceClientSecret() string

func (*ConfigurationDefault) GetOauth2ServiceURI

func (c *ConfigurationDefault) GetOauth2ServiceURI() string

func (*ConfigurationDefault) GetOauth2TokenEndpoint

func (c *ConfigurationDefault) GetOauth2TokenEndpoint() string

func (*ConfigurationDefault) GetOauth2UserInfoEndpoint

func (c *ConfigurationDefault) GetOauth2UserInfoEndpoint() string

func (*ConfigurationDefault) GetOauth2WellKnownJwk

func (c *ConfigurationDefault) GetOauth2WellKnownJwk() string

func (*ConfigurationDefault) GetOauth2WellKnownJwkData

func (c *ConfigurationDefault) GetOauth2WellKnownJwkData() string

func (*ConfigurationDefault) GetOauth2WellKnownOIDC

func (c *ConfigurationDefault) GetOauth2WellKnownOIDC() string

func (*ConfigurationDefault) GetVerificationAudience added in v1.67.0

func (c *ConfigurationDefault) GetVerificationAudience() []string

func (*ConfigurationDefault) GetVerificationIssuer added in v1.67.0

func (c *ConfigurationDefault) GetVerificationIssuer() string

func (*ConfigurationDefault) GrpcPort

func (c *ConfigurationDefault) GrpcPort() string

func (*ConfigurationDefault) HTTPPort

func (c *ConfigurationDefault) HTTPPort() string

func (*ConfigurationDefault) IsRunSecurely

func (c *ConfigurationDefault) IsRunSecurely() bool

func (*ConfigurationDefault) LoadOauth2Config

func (c *ConfigurationDefault) LoadOauth2Config(ctx context.Context) error

func (*ConfigurationDefault) LoggingColored

func (c *ConfigurationDefault) LoggingColored() bool

func (*ConfigurationDefault) LoggingFormat

func (c *ConfigurationDefault) LoggingFormat() string

func (*ConfigurationDefault) LoggingLevel

func (c *ConfigurationDefault) LoggingLevel() string

func (*ConfigurationDefault) LoggingLevelIsDebug

func (c *ConfigurationDefault) LoggingLevelIsDebug() bool

func (*ConfigurationDefault) LoggingShowStackTrace

func (c *ConfigurationDefault) LoggingShowStackTrace() bool

func (*ConfigurationDefault) LoggingTimeFormat

func (c *ConfigurationDefault) LoggingTimeFormat() string

func (*ConfigurationDefault) Name

func (c *ConfigurationDefault) Name() string

func (*ConfigurationDefault) Port

func (c *ConfigurationDefault) Port() string

func (*ConfigurationDefault) PreferSimpleProtocol

func (c *ConfigurationDefault) PreferSimpleProtocol() bool

func (*ConfigurationDefault) ProfilerEnabled added in v1.68.15

func (c *ConfigurationDefault) ProfilerEnabled() bool

func (*ConfigurationDefault) ProfilerPort added in v1.68.15

func (c *ConfigurationDefault) ProfilerPort() string

func (*ConfigurationDefault) SamplingRatio

func (c *ConfigurationDefault) SamplingRatio() float64

func (*ConfigurationDefault) SetTLSCertAndKeyPath

func (c *ConfigurationDefault) SetTLSCertAndKeyPath(certificatePath, certificateKeyPath string)

func (*ConfigurationDefault) SkipDefaultTransaction

func (c *ConfigurationDefault) SkipDefaultTransaction() bool

func (*ConfigurationDefault) TLSCertKeyPath

func (c *ConfigurationDefault) TLSCertKeyPath() string

func (*ConfigurationDefault) TLSCertPath

func (c *ConfigurationDefault) TLSCertPath() string

func (*ConfigurationDefault) TraceReq added in v1.63.0

func (c *ConfigurationDefault) TraceReq() bool

func (*ConfigurationDefault) TraceReqLogBody added in v1.68.0

func (c *ConfigurationDefault) TraceReqLogBody() bool

func (*ConfigurationDefault) Version

func (c *ConfigurationDefault) Version() string

type ConfigurationEvents

type ConfigurationEvents interface {
	GetEventsQueueName() string
	GetEventsQueueURL() string
}

type ConfigurationJWTVerification added in v1.67.0

type ConfigurationJWTVerification interface {
	GetOauth2WellKnownJwk() string
	GetVerificationAudience() []string
	GetVerificationIssuer() string
}

type ConfigurationLogLevel

type ConfigurationLogLevel interface {
	LoggingLevel() string
	LoggingFormat() string
	LoggingTimeFormat() string
	LoggingShowStackTrace() bool
	LoggingColored() bool
	LoggingLevelIsDebug() bool
}

type ConfigurationOAUTH2

type ConfigurationOAUTH2 interface {
	LoadOauth2Config(ctx context.Context) error
	GetOauth2WellKnownOIDC() string
	GetOauth2WellKnownJwk() string
	GetOauth2WellKnownJwkData() string
	GetOauth2Issuer() string
	GetOauth2AuthorizationEndpoint() string
	GetOauth2RegistrationEndpoint() string
	GetOauth2TokenEndpoint() string
	GetOauth2UserInfoEndpoint() string
	GetOauth2RevocationEndpoint() string
	GetOauth2EndSessionEndpoint() string
	GetOauth2ServiceURI() string
	GetOauth2ServiceClientID() string
	GetOauth2ServiceClientSecret() string
	GetOauth2ServiceAudience() []string
	GetOauth2ServiceAdminURI() string
}

type ConfigurationPorts

type ConfigurationPorts interface {
	Port() string
	HTTPPort() string
	GrpcPort() string
}

type ConfigurationProfiler added in v1.68.15

type ConfigurationProfiler interface {
	ProfilerEnabled() bool
	ProfilerPort() string
}

type ConfigurationSecurity

type ConfigurationSecurity interface {
	IsRunSecurely() bool
}

type ConfigurationService

type ConfigurationService interface {
	Name() string
	Environment() string
	Version() string
}

type ConfigurationTLS

type ConfigurationTLS interface {
	TLSCertPath() string
	TLSCertKeyPath() string
	SetTLSCertAndKeyPath(certificatePath, certificateKeyPath string)
}

type ConfigurationTelemetry

type ConfigurationTelemetry interface {
	DisableOpenTelemetry() bool
	SamplingRatio() float64
}

type ConfigurationTraceRequests added in v1.63.0

type ConfigurationTraceRequests interface {
	TraceReq() bool
	TraceReqLogBody() bool
}

type ConfigurationWorkerPool

type ConfigurationWorkerPool interface {
	GetCPUFactor() int
	GetCapacity() int
	GetCount() int
	GetExpiryDuration() time.Duration
}

type JSONWebKeys

type JSONWebKeys struct {
	Kty string   `json:"kty"`
	Kid string   `json:"kid"`
	Use string   `json:"use"`
	N   string   `json:"n"`
	E   string   `json:"e"`
	X5c []string `json:"x5c"`
}

type Jwks

type Jwks struct {
	Keys []JSONWebKeys `json:"keys"`
}

type OIDCMap

type OIDCMap map[string]any

Jump to

Keyboard shortcuts

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