config

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2026 License: MIT Imports: 15 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppConfig added in v0.0.3

type AppConfig struct {
	AppEnv               AppEnv          `env:"APP_ENV" envDefault:"dev"`
	LogLevel             logger.LogLevel `env:"APP_LOG_LEVEL" envDefault:"INFO"`
	ServiceHealthTimeout time.Duration   `env:"SERVICE_HEALTH_TIMEOUT" envDefault:"60s"`

	GRPC   GRPCServerConfig   `envPrefix:"GRPC_"`
	HTTP   HTTPServerConfig   `envPrefix:"HTTP_"`
	Health HealthServerConfig `envPrefix:"HEALTH_"`
	Auth   AuthConfig         `envPrefix:"AUTH_"`
	Mongo  MongoConfig        `envPrefix:"MONGO_"`

	GRPCServices []*GRPCService `env:"-"`
}

func LoadConfig

func LoadConfig() (*AppConfig, error)

func (*AppConfig) GetAuthConfig added in v0.2.1

func (p *AppConfig) GetAuthConfig() *AuthConfig

func (*AppConfig) GetConfig added in v0.0.10

func (p *AppConfig) GetConfig() *AppConfig

func (*AppConfig) GetGRPCConfig added in v0.0.9

func (p *AppConfig) GetGRPCConfig() *GRPCServerConfig

func (*AppConfig) GetGRPCServices added in v0.0.9

func (p *AppConfig) GetGRPCServices() []*GRPCService

func (*AppConfig) GetHTTPConfig added in v0.0.9

func (p *AppConfig) GetHTTPConfig() *HTTPServerConfig

func (*AppConfig) GetHealthConfig added in v0.0.9

func (p *AppConfig) GetHealthConfig() *HealthServerConfig

func (*AppConfig) GetMongoConfig added in v0.0.9

func (p *AppConfig) GetMongoConfig() *MongoConfig

type AppConfigProvider added in v0.0.11

type AppConfigProvider interface {
	GetConfig() *AppConfig
	GetGRPCConfig() *GRPCServerConfig
	GetHTTPConfig() *HTTPServerConfig
	GetAuthConfig() *AuthConfig
	GetHealthConfig() *HealthServerConfig
	GetMongoConfig() *MongoConfig
	GetGRPCServices() []*GRPCService
}

func Config added in v0.1.0

func Config() (AppConfigProvider, error)

type AppEnv added in v0.0.6

type AppEnv string

"dev" | "prod"

const (
	AppEnvDevelopment AppEnv = "dev"
	AppEnvProduction  AppEnv = "prod"
)

func (AppEnv) String added in v0.0.6

func (s AppEnv) String() string

func (*AppEnv) UnmarshalText added in v0.0.6

func (s *AppEnv) UnmarshalText(text []byte) error

type AuthConfig added in v0.2.1

type AuthConfig struct {
	AccessTokenTTL          time.Duration `env:"ACCESS_TOKEN_TTL" envDefault:"15m"`
	RefreshTokenTTL         time.Duration `env:"REFRESH_TOKEN_TTL" envDefault:"720h"`
	JWTIssuer               string        `env:"JWT_ISSUER" envDefault:"invenlore.identity"`
	JWTAudience             string        `env:"JWT_AUDIENCE" envDefault:"invenlore.api"`
	JWKSCacheTTL            time.Duration `env:"JWKS_CACHE_TTL" envDefault:"10m"`
	JWTAllowedSkew          time.Duration `env:"JWT_ALLOWED_SKEW" envDefault:"60s"`
	KeyRotationInterval     time.Duration `env:"KEY_ROTATION_INTERVAL" envDefault:"168h"`
	KeyRetireAfter          time.Duration `env:"KEY_RETIRE_AFTER" envDefault:"1h"`
	KeyRotationTickInterval time.Duration `env:"KEY_ROTATION_TICK_INTERVAL" envDefault:"10m"`
}

type GRPCServerConfig

type GRPCServerConfig struct {
	Host string `env:"HOST" envDefault:"0.0.0.0"`
	Port string `env:"PORT" envDefault:"8080"`
}

type GRPCService

type GRPCService struct {
	Name            string
	Address         string
	RegisterEntries []RegisterEntry
}

type HTTPServerConfig

type HTTPServerConfig struct {
	Host              string        `env:"HOST" envDefault:"0.0.0.0"`
	Port              string        `env:"PORT" envDefault:"8080"`
	ReadTimeout       time.Duration `env:"READ_TIMEOUT" envDefault:"10s"`
	WriteTimeout      time.Duration `env:"WRITE_TIMEOUT" envDefault:"10s"`
	IdleTimeout       time.Duration `env:"IDLE_TIMEOUT" envDefault:"60s"`
	ReadHeaderTimeout time.Duration `env:"READ_HEADER_TIMEOUT" envDefault:"5s"`
}

type HealthServerConfig

type HealthServerConfig struct {
	Host              string        `env:"HOST" envDefault:"0.0.0.0"`
	Port              string        `env:"PORT" envDefault:"80"`
	ReadTimeout       time.Duration `env:"READ_TIMEOUT" envDefault:"10s"`
	WriteTimeout      time.Duration `env:"WRITE_TIMEOUT" envDefault:"10s"`
	IdleTimeout       time.Duration `env:"IDLE_TIMEOUT" envDefault:"60s"`
	ReadHeaderTimeout time.Duration `env:"READ_HEADER_TIMEOUT" envDefault:"5s"`
}

type MongoConfig added in v0.0.7

type MongoConfig struct {
	URI                      string        `env:"URI"`
	DatabaseName             string        `env:"DATABASE_NAME"`
	HealthCheckTimeout       time.Duration `env:"HEALTHCHECK_TIMEOUT" envDefault:"2s"`
	HealthCheckInterval      time.Duration `env:"HEALTHCHECK_INTERVAL" envDefault:"10s"`
	OperationTimeout         time.Duration `env:"OPERATION_TIMEOUT" envDefault:"10s"`
	MigrationTimeout         time.Duration `env:"MIGRATION_TIMEOUT" envDefault:"15m"`
	MigrationLeaseForTimeout time.Duration `env:"MIGRATION_LEASEFOR_TIMEOUT" envDefault:"30s"`
	MigrationPollInterval    time.Duration `env:"MIGRATION_POLL_INTERVAL" envDefault:"2s"`
	MigrationServiceTimeout  time.Duration `env:"MIGRATION_SERVICE_TIMEOUT" envDefault:"5s"`
}

type RegisterEntry added in v0.2.0

type RegisterEntry struct {
	HandlerName         string
	HandlerRegisterFunc RegisterFunc
}

type RegisterFunc

type RegisterFunc func(context.Context, *runtime.ServeMux, *grpc.ClientConn) error

Jump to

Keyboard shortcuts

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