config

package
v2.0.8 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultSlowQueryThreshold = 200 * time.Millisecond

	//nolint:gosec // configuration key, not a credential
	TokenEndpointAuthMethodPrivateKeyJWT = "private_key_jwt"
	PrivateKeyJWTSourceWorkloadAPI       = "workload_api"
	PrivateKeyJWTSourceURL               = "url"
)
View Source
const (
	AuthorizationModeEnforced = "enforced"
	AuthorizationModeDisabled = "disabled"
)
View Source
const (
	RuntimeModeMonolith = "monolith"
	RuntimeModePolylith = "polylith"
)

Variables

This section is empty.

Functions

func DefaultQueuePushHandlerTimeout added in v2.0.6

func DefaultQueuePushHandlerTimeout() time.Duration

DefaultQueuePushHandlerTimeout is the default per-request handler timeout for push. Zero means no timeout (queue work runs to completion).

func DefaultQueuePushMaxBodyBytes added in v2.0.6

func DefaultQueuePushMaxBodyBytes() int64

DefaultQueuePushMaxBodyBytes is the default max request body for push handlers.

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 IsMonolith

func IsMonolith(cfg ConfigurationRuntime) bool

func IsPolylith

func IsPolylith(cfg ConfigurationRuntime) bool

func LoadWithOIDC

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

LoadWithOIDC convenience method to process configs.

func NormalizeRuntimeMode

func NormalizeRuntimeMode(mode string) string

func ResourceAudienceStrings

func ResourceAudienceStrings(audiences []ResourceAudience) []string

func ToContext

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

ToContext adds service configuration to the current supplied context.

Types

type AudienceBaseURL

type AudienceBaseURL string

func ParseAudienceBaseURL

func ParseAudienceBaseURL(value string) (AudienceBaseURL, error)

type ClientAssertionAudience

type ClientAssertionAudience string

func ParseClientAssertionAudience

func ParseClientAssertionAudience(value string) (ClientAssertionAudience, error)

type ConfigurationAuthorization

type ConfigurationAuthorization interface {
	GetAuthorizationServiceReadURI() string
	GetAuthorizationServiceWriteURI() string
	GetAuthorizationMode() string
	AuthorizationServiceCanRead() bool
	AuthorizationServiceCanWrite() bool
}

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

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

type ConfigurationDebug

type ConfigurationDebug interface {
	DebugEndpointsEnabled() bool
	DebugEndpointsBasePath() string
}

type ConfigurationDefault

type ConfigurationDefault struct {
	LogLevel      string `envDefault:"info"                      env:"LOG_LEVEL"       yaml:"log_level"`
	LogFormat     string `envDefault:"text"                      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:"0.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"`

	RuntimeModeValue  string `envDefault:"polylith" env:"FRAME_RUNTIME_MODE"  yaml:"runtime_mode"`
	ServiceIDValue    string `envDefault:""         env:"FRAME_SERVICE_ID"    yaml:"service_id"`
	ServiceGroupValue string `envDefault:""         env:"FRAME_SERVICE_GROUP" yaml:"service_group"`

	DebugEndpointsEnabledValue  bool   `envDefault:"false"        env:"FRAME_DEBUG_ENDPOINTS"          yaml:"frame_debug_endpoints"`
	DebugEndpointsBasePathValue string `envDefault:"/debug/frame" env:"FRAME_DEBUG_ENDPOINTS_BASEPATH" yaml:"frame_debug_endpoints_basepath"`

	ServerPort     string `envDefault:":7000" env:"PORT"      yaml:"server_port"`
	HTTPServerPort string `envDefault:":8080" env:"HTTP_PORT" yaml:"http_server_port"`

	HTTPServerReadTimeout       string `envDefault:"30s"  env:"HTTP_SERVER_READ_TIMEOUT"        yaml:"http_server_read_timeout"`
	HTTPServerReadHeaderTimeout string `envDefault:"5s"   env:"HTTP_SERVER_READ_HEADER_TIMEOUT" yaml:"http_server_read_header_timeout"`
	HTTPServerWriteTimeout      string `envDefault:"30s"  env:"HTTP_SERVER_WRITE_TIMEOUT"       yaml:"http_server_write_timeout"`
	HTTPServerIdleTimeout       string `envDefault:"90s"  env:"HTTP_SERVER_IDLE_TIMEOUT"        yaml:"http_server_idle_timeout"`
	HTTPServerShutdownTimeout   string `envDefault:"15s"  env:"HTTP_SERVER_SHUTDOWN_TIMEOUT"    yaml:"http_server_shutdown_timeout"`
	HTTPServerMaxHeaderBytes    int    `envDefault:"1024" env:"HTTP_SERVER_MAX_HEADER_KB"       yaml:"http_server_max_header_kb"`

	// HTTPClientTimeout is the per-request timeout applied to outbound
	// http.Client.Do calls performed by the Frame-instrumented HTTP client.
	// Doubles as a downstream backpressure valve: setting it longer than
	// a slow upstream's worst-case response time lets clients wait
	// rather than retry-storm; setting it shorter sheds load when a
	// downstream is unhealthy. Default 30s.
	HTTPClientTimeout string `envDefault:"30s" env:"HTTP_CLIENT_TIMEOUT"      yaml:"http_client_timeout"`
	// HTTPClientIdleTimeout is the connection idle timeout for outbound
	// http.Transport keep-alive pools. Default 90s.
	HTTPClientIdleTimeout string `envDefault:"90s" env:"HTTP_CLIENT_IDLE_TIMEOUT" yaml:"http_client_idle_timeout"`

	// 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"`

	WorkloadAPITrustedDomain string `env:"WORKLOAD_API_TRUSTED_DOMAIN" yaml:"workload_api_trusted_domain"`

	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"`
	Oauth2RequestedAudiences      []string                  `env:"OAUTH2_REQUESTED_AUDIENCES"  yaml:"oauth2_requested_audiences"`
	Oauth2AudienceBaseURL         string                    `env:"OAUTH2_AUDIENCE_BASE_URL"    yaml:"oauth2_audience_base_url"`
	Oauth2ClientAssertionAudience string                    `env:"OAUTH2_CLIENT_ASSERTION_AUDIENCE" yaml:"oauth2_client_assertion_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"`
	Oauth2TokenEndpointAuthMethod string                    `env:"OAUTH2_TOKEN_ENDPOINT_AUTH_METHOD" yaml:"oauth2_token_endpoint_auth_method"`
	Oauth2PrivateJwtKey           OAuth2PrivateJWTKeyConfig `env:"OAUTH2_PRIVATE_JWT_KEY" yaml:"oauth2_private_jwt_key"`
	Oauth2SignerAPIKey            string                    `env:"OAUTH2_SIGNER_API_KEY" yaml:"oauth2_signer_api_key"`

	Oauth2WellKnownJwkData string `env:"OAUTH2_WELL_KNOWN_JWK_DATA" yaml:"oauth2_well_known_jwk_data"`
	Oauth2ResourceAudience string `env:"OAUTH2_RESOURCE_AUDIENCE" yaml:"oauth2_resource_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"`
	AuthorizationMode            string `env:"AUTHORIZATION_MODE" yaml:"authorization_mode" envDefault:"enforced"`

	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"`

	// Queue push (HTTP multiplexing) settings
	QueuePushBasePath       string `envDefault:"/_frame/queue" env:"FRAME_QUEUE_PUSH_BASE_PATH" yaml:"queue_push_base_path"`
	QueuePushAuth           string `envDefault:"none"          env:"FRAME_QUEUE_PUSH_AUTH"      yaml:"queue_push_auth"`
	QueuePushRequireAuthRaw *bool  `                           env:"FRAME_QUEUE_PUSH_REQUIRE_AUTH" yaml:"queue_push_require_auth"`
	QueuePushBearerToken    string `envDefault:""              env:"FRAME_QUEUE_PUSH_BEARER_TOKEN" yaml:"queue_push_bearer_token"`
	QueuePushOIDCAudience   string `envDefault:""              env:"FRAME_QUEUE_PUSH_OIDC_AUDIENCE" yaml:"queue_push_oidc_audience"`
	QueuePushOIDCIssuers    string `envDefault:""              env:"FRAME_QUEUE_PUSH_OIDC_ISSUERS" yaml:"queue_push_oidc_issuers"`
	QueuePushOIDCJWKSURL    string `envDefault:"https://www.googleapis.com/oauth2/v3/certs" env:"FRAME_QUEUE_PUSH_OIDC_JWKS_URL" yaml:"queue_push_oidc_jwks_url"`
	QueuePushTrustMetadata  bool   `envDefault:"false"         env:"FRAME_QUEUE_PUSH_TRUST_METADATA" yaml:"queue_push_trust_metadata"`
	QueuePushAckPoison      bool   `envDefault:"false"         env:"FRAME_QUEUE_PUSH_ACK_POISON" yaml:"queue_push_ack_poison"`
	QueuePushMaxBodyBytes   int64  `envDefault:"1048576"       env:"FRAME_QUEUE_PUSH_MAX_BODY_BYTES" yaml:"queue_push_max_body_bytes"`
	// QueuePushHandlerTimeout bounds the push delivery context. Default "0s"
	// means no timeout: queue work runs until the handler returns. Outbound
	// peer I/O is still bounded by HTTP/Connect client timeouts. Set a positive
	// duration only when a hard push SLA is required.
	QueuePushHandlerTimeout string `envDefault:"0s"            env:"FRAME_QUEUE_PUSH_HANDLER_TIMEOUT" yaml:"queue_push_handler_timeout"`
	// contains filtered or unexported fields
}

func (*ConfigurationDefault) AuthorizationServiceCanRead

func (c *ConfigurationDefault) AuthorizationServiceCanRead() bool

func (*ConfigurationDefault) AuthorizationServiceCanWrite

func (c *ConfigurationDefault) AuthorizationServiceCanWrite() bool

func (*ConfigurationDefault) CanDatabaseTraceQueries

func (c *ConfigurationDefault) CanDatabaseTraceQueries() bool

func (*ConfigurationDefault) DebugEndpointsBasePath

func (c *ConfigurationDefault) DebugEndpointsBasePath() string

func (*ConfigurationDefault) DebugEndpointsEnabled

func (c *ConfigurationDefault) DebugEndpointsEnabled() 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) GetAuthorizationMode

func (c *ConfigurationDefault) GetAuthorizationMode() 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) GetHTTPClientIdleTimeout

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

GetHTTPClientIdleTimeout returns the configured outbound HTTP idle-conn timeout (env HTTP_CLIENT_IDLE_TIMEOUT), falling back to the default.

func (*ConfigurationDefault) GetHTTPClientTimeout

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

GetHTTPClientTimeout returns the configured outbound HTTP request timeout (env HTTP_CLIENT_TIMEOUT), falling back to defaultHTTPClientTimeout when unset or unparseable.

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) GetOauth2AudienceBaseURL

func (c *ConfigurationDefault) GetOauth2AudienceBaseURL() string

func (*ConfigurationDefault) GetOauth2AuthorizationEndpoint

func (c *ConfigurationDefault) GetOauth2AuthorizationEndpoint() string

func (*ConfigurationDefault) GetOauth2ClientAssertionAudience

func (c *ConfigurationDefault) GetOauth2ClientAssertionAudience() string

func (*ConfigurationDefault) GetOauth2EndSessionEndpoint

func (c *ConfigurationDefault) GetOauth2EndSessionEndpoint() string

func (*ConfigurationDefault) GetOauth2Issuer

func (c *ConfigurationDefault) GetOauth2Issuer() string

func (*ConfigurationDefault) GetOauth2PrivateKeyJWTConfig

func (c *ConfigurationDefault) GetOauth2PrivateKeyJWTConfig() *PrivateKeyJWTConfig

func (*ConfigurationDefault) GetOauth2RegistrationEndpoint

func (c *ConfigurationDefault) GetOauth2RegistrationEndpoint() string

func (*ConfigurationDefault) GetOauth2RequestedAudiences

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

func (*ConfigurationDefault) GetOauth2RevocationEndpoint

func (c *ConfigurationDefault) GetOauth2RevocationEndpoint() string

func (*ConfigurationDefault) GetOauth2ServiceAdminURI

func (c *ConfigurationDefault) GetOauth2ServiceAdminURI() 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) GetOauth2TokenEndpointAuthMethod

func (c *ConfigurationDefault) GetOauth2TokenEndpointAuthMethod() 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) GetQueuePushAckPoison added in v2.0.6

func (c *ConfigurationDefault) GetQueuePushAckPoison() bool

func (*ConfigurationDefault) GetQueuePushAuth added in v2.0.6

func (c *ConfigurationDefault) GetQueuePushAuth() string

func (*ConfigurationDefault) GetQueuePushBasePath added in v2.0.6

func (c *ConfigurationDefault) GetQueuePushBasePath() string

func (*ConfigurationDefault) GetQueuePushBearerToken added in v2.0.6

func (c *ConfigurationDefault) GetQueuePushBearerToken() string

func (*ConfigurationDefault) GetQueuePushHandlerTimeout added in v2.0.6

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

GetQueuePushHandlerTimeout returns the push handler deadline. "0", "0s", empty, or invalid values mean no timeout (duration 0). Positive durations are honored as-is.

func (*ConfigurationDefault) GetQueuePushMaxBodyBytes added in v2.0.6

func (c *ConfigurationDefault) GetQueuePushMaxBodyBytes() int64

func (*ConfigurationDefault) GetQueuePushOIDCAudience added in v2.0.6

func (c *ConfigurationDefault) GetQueuePushOIDCAudience() string

func (*ConfigurationDefault) GetQueuePushOIDCIssuers added in v2.0.6

func (c *ConfigurationDefault) GetQueuePushOIDCIssuers() string

func (*ConfigurationDefault) GetQueuePushOIDCJWKSURL added in v2.0.6

func (c *ConfigurationDefault) GetQueuePushOIDCJWKSURL() string

func (*ConfigurationDefault) GetQueuePushTrustMetadata added in v2.0.6

func (c *ConfigurationDefault) GetQueuePushTrustMetadata() bool

func (*ConfigurationDefault) GetResourceAudience

func (c *ConfigurationDefault) GetResourceAudience() string

func (*ConfigurationDefault) GetTrustedDomain

func (c *ConfigurationDefault) GetTrustedDomain() string

func (*ConfigurationDefault) GetVerificationIssuer

func (c *ConfigurationDefault) GetVerificationIssuer() string

func (*ConfigurationDefault) HTTPIdleTimeout

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

func (*ConfigurationDefault) HTTPMaxHeaderBytes

func (c *ConfigurationDefault) HTTPMaxHeaderBytes() int

func (*ConfigurationDefault) HTTPPort

func (c *ConfigurationDefault) HTTPPort() string

func (*ConfigurationDefault) HTTPReadHeaderTimeout

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

func (*ConfigurationDefault) HTTPReadTimeout

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

func (*ConfigurationDefault) HTTPShutdownTimeout

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

func (*ConfigurationDefault) HTTPWriteTimeout

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

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

func (c *ConfigurationDefault) ProfilerEnabled() bool

func (*ConfigurationDefault) ProfilerPort

func (c *ConfigurationDefault) ProfilerPort() string

func (*ConfigurationDefault) QueuePushRequireAuth added in v2.0.6

func (c *ConfigurationDefault) QueuePushRequireAuth() bool

QueuePushRequireAuth returns effective require-auth policy. Unset env inherits RUN_SERVICE_SECURELY (IsRunSecurely).

func (*ConfigurationDefault) RuntimeMode

func (c *ConfigurationDefault) RuntimeMode() string

func (*ConfigurationDefault) SamplingRatio

func (c *ConfigurationDefault) SamplingRatio() float64

func (*ConfigurationDefault) ServiceGroup

func (c *ConfigurationDefault) ServiceGroup() string

func (*ConfigurationDefault) ServiceID

func (c *ConfigurationDefault) ServiceID() string

func (*ConfigurationDefault) SetOIDCValue

func (c *ConfigurationDefault) SetOIDCValue(key string, value any)

SetOIDCValue sets a value in the OIDC discovery map. This is useful for tests that need to manually configure OIDC endpoints without performing actual OIDC discovery.

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

func (c *ConfigurationDefault) TraceReq() bool

func (*ConfigurationDefault) TraceReqLogBody

func (c *ConfigurationDefault) TraceReqLogBody() bool

func (*ConfigurationDefault) ValidateOAuth2Configuration

func (c *ConfigurationDefault) ValidateOAuth2Configuration() error

func (*ConfigurationDefault) Version

func (c *ConfigurationDefault) Version() string

type ConfigurationEvents

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

type ConfigurationHTTPClient

type ConfigurationHTTPClient interface {
	GetHTTPClientTimeout() time.Duration
	GetHTTPClientIdleTimeout() time.Duration
}

ConfigurationHTTPClient surfaces outbound HTTP-client tunables to the `frame/client` package, which consults the in-context configuration to derive sensible defaults before user-supplied options are applied.

Both methods must return strictly positive durations; non-positive or unparseable values fall back to the package defaults.

type ConfigurationHTTPServer

type ConfigurationHTTPServer interface {
	HTTPReadTimeout() time.Duration
	HTTPReadHeaderTimeout() time.Duration
	HTTPWriteTimeout() time.Duration
	HTTPIdleTimeout() time.Duration
	HTTPShutdownTimeout() time.Duration
	HTTPMaxHeaderBytes() int
}

type ConfigurationJWTVerification

type ConfigurationJWTVerification interface {
	GetOauth2WellKnownJwk() string
	GetOauth2WellKnownJwkData() string
	GetResourceAudience() 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
	GetOauth2TokenEndpointAuthMethod() string
	GetOauth2PrivateKeyJWTConfig() *PrivateKeyJWTConfig
	GetOauth2RequestedAudiences() []string
	GetOauth2ClientAssertionAudience() string
	GetOauth2ServiceAdminURI() string
}

type ConfigurationPorts

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

type ConfigurationProfiler

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

type ConfigurationQueuePush added in v2.0.6

type ConfigurationQueuePush interface {
	GetQueuePushBasePath() string
	GetQueuePushAuth() string
	QueuePushRequireAuth() bool
	GetQueuePushBearerToken() string
	GetQueuePushOIDCAudience() string
	GetQueuePushOIDCIssuers() string
	GetQueuePushOIDCJWKSURL() string
	GetQueuePushTrustMetadata() bool
	GetQueuePushAckPoison() bool
	GetQueuePushMaxBodyBytes() int64
	GetQueuePushHandlerTimeout() time.Duration
}

ConfigurationQueuePush exposes queue push HTTP settings.

type ConfigurationRuntime

type ConfigurationRuntime interface {
	RuntimeMode() string
	ServiceID() string
	ServiceGroup() 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

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

type ConfigurationWorkerPool

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

type ConfigurationWorkloadAPI

type ConfigurationWorkloadAPI interface {
	GetTrustedDomain() string
}

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 OAuth2PrivateJWTKeyConfig

type OAuth2PrivateJWTKeyConfig struct {
	PrivateKeyPEM  string `json:"private_key_pem" yaml:"private_key_pem"`
	PrivateKeyPath string `json:"private_key_path" yaml:"private_key_path"`
	Source         string `json:"source" yaml:"source"`
	SignerURL      string `json:"signer_url" yaml:"signer_url"`
	SignerAPIKey   string `json:"signer_api_key" yaml:"signer_api_key"`
	SPIFFEID       string `json:"spiffe_id" yaml:"spiffe_id"`
	Hint           string `json:"hint" yaml:"hint"`
	KeyID          string `json:"key_id" yaml:"key_id"`
	Issuer         string `json:"issuer" yaml:"issuer"`
	Subject        string `json:"subject" yaml:"subject"`
}

func (*OAuth2PrivateJWTKeyConfig) IsZero

func (c *OAuth2PrivateJWTKeyConfig) IsZero() bool

func (*OAuth2PrivateJWTKeyConfig) ToPrivateKeyJWTConfig

func (c *OAuth2PrivateJWTKeyConfig) ToPrivateKeyJWTConfig() *PrivateKeyJWTConfig

func (*OAuth2PrivateJWTKeyConfig) UnmarshalJSON

func (c *OAuth2PrivateJWTKeyConfig) UnmarshalJSON(text []byte) error

func (*OAuth2PrivateJWTKeyConfig) UnmarshalText

func (c *OAuth2PrivateJWTKeyConfig) UnmarshalText(text []byte) error

type OIDCMap

type OIDCMap map[string]any

type PrivateKeyJWTConfig

type PrivateKeyJWTConfig struct {
	PrivateKeyPEM           []byte
	PrivateKeyPath          string
	Source                  string
	SignerURL               string
	SignerAPIKey            string
	SPIFFEID                string
	Hint                    string
	KeyID                   string
	ClientAssertionAudience string
	Issuer                  string
	Subject                 string
}

func (PrivateKeyJWTConfig) IsZero

func (c PrivateKeyJWTConfig) IsZero() bool

type ResourceAudience

type ResourceAudience string

func ParseResourceAudience

func ParseResourceAudience(value string) (ResourceAudience, error)

func ParseResourceAudiences

func ParseResourceAudiences(values []string) ([]ResourceAudience, error)

Jump to

Keyboard shortcuts

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