config

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2025 License: MIT Imports: 12 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConfigProvider

type ConfigProvider interface {
	GetGRPCConfig() HTTPServerConfig
	GetHTTPConfig() HTTPServerConfig
	GetHealthConfig() HealthServerConfig
	GetGRPCServices() []GRPCService
}

type GRPCServerConfig

type GRPCServerConfig struct {
	Host              string
	Port              string
	ReadTimeout       time.Duration
	WriteTimeout      time.Duration
	IdleTimeout       time.Duration
	ReadHeaderTimeout time.Duration
}

type GRPCService

type GRPCService struct {
	Name     string
	Address  string
	Register RegisterFunc
}

type HTTPServerConfig

type HTTPServerConfig struct {
	Host              string
	Port              string
	ReadTimeout       time.Duration
	WriteTimeout      time.Duration
	IdleTimeout       time.Duration
	ReadHeaderTimeout time.Duration
}

type HealthServerConfig

type HealthServerConfig struct {
	Host string
	Port string
}

type RegisterFunc

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

type ServerConfig

type ServerConfig struct {
	AppEnv string `env:"APP_ENV" envDefault:"dev"`

	GRPC struct {
		Host              string        `env:"GRPC_HOST" envDefault:"0.0.0.0"`
		Port              string        `env:"-"`
		ReadTimeout       time.Duration `env:"GRPC_READ_TIMEOUT" envDefault:"10s"`
		WriteTimeout      time.Duration `env:"GRPC_WRITE_TIMEOUT" envDefault:"10s"`
		IdleTimeout       time.Duration `env:"GRPC_IDLE_TIMEOUT" envDefault:"60s"`
		ReadHeaderTimeout time.Duration `env:"GRPC_READ_HEADER_TIMEOUT" envDefault:"5s"`
	} `envPrefix:"GRPC_"`

	HTTP struct {
		Host              string        `env:"HTTP_HOST" envDefault:"0.0.0.0"`
		Port              string        `env:"-"`
		ReadTimeout       time.Duration `env:"HTTP_READ_TIMEOUT" envDefault:"10s"`
		WriteTimeout      time.Duration `env:"HTTP_WRITE_TIMEOUT" envDefault:"10s"`
		IdleTimeout       time.Duration `env:"HTTP_IDLE_TIMEOUT" envDefault:"60s"`
		ReadHeaderTimeout time.Duration `env:"HTTP_READ_HEADER_TIMEOUT" envDefault:"5s"`
	} `envPrefix:"HTTP_"`

	Health struct {
		Host string `env:"HEALTH_HOST" envDefault:"0.0.0.0"`
		Port string `env:"-"`
	} `envPrefix:"HEALTH_"`

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

func LoadConfig

func LoadConfig() (*ServerConfig, error)

Jump to

Keyboard shortcuts

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