env

package
v0.0.0-...-aef14cd Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2024 License: Unlicense Imports: 18 Imported by: 0

Documentation

Overview

Package env работа с настройками и окружением.

Package env работа с настройками и окружением.

Package env работа с настройками и окружением.

Package env работа с настройками и окружением.

Package env работа с настройками и окружением.

Package env работа с настройками и окружением.

Package env работа с настройками и окружением.

Index

Constants

View Source
const MSG = "go-favorites "

Variables

View Source
var ErrEmptyAddress = fmt.Errorf("can't configure epmty address")

Functions

func WithCacheExpire

func WithCacheExpire(cacheExpire time.Duration) func(*mapProperties)

WithCacheExpire — срок действия записи в кэше.

func WithCacheGCInterval

func WithCacheGCInterval(cacheGCInterval time.Duration) func(*mapProperties)

WithCacheGCInterval — интервал очистки кэша.

func WithConfig

func WithConfig(config Config) func(*mapProperties)

WithConfig — Конфигурация.

func WithEnvironments

func WithEnvironments(env environments) func(*mapProperties)

WithEnvironments — Окружение.

func WithExternalAssetGRPCAddress

func WithExternalAssetGRPCAddress(address string) func(*mapProperties)

WithExternalAssetGRPCAddress — внешний адрес gRPC-сервиса по биржевым инструментам.

func WithExternalAuthGRPCAddress

func WithExternalAuthGRPCAddress(address string) func(*mapProperties)

WithExternalAuthGRPCAddress — внешний адрес gRPC-сервиса аутентификации пользователей.

func WithExternalRequestTimeoutInterval

func WithExternalRequestTimeoutInterval(timeoutInterval time.Duration) func(*mapProperties)

WithExternalRequestTimeoutInterval — интервал ожидания ответа от внешних gRPC-сервисов.

func WithFlags

func WithFlags(flags map[string]interface{}) func(*mapProperties)

WithFlags — Флаги.

func WithGRPCAddress

func WithGRPCAddress(address string) func(*mapProperties)

WithGRPCAddress — адрес gRPC сервера.

func WithGRPCTransportCredentials

func WithGRPCTransportCredentials(tCredentials credentials.TransportCredentials) func(*mapProperties)

WithGRPCTransportCredentials — TLS реквизиты для gRPC-сервера.

func WithHTTPAddress

func WithHTTPAddress(address string) func(*mapProperties)

WithHTTPAddress — адрес HTTP сервера.

func WithHTTPTLSConfig

func WithHTTPTLSConfig(tCredentials *tls.Config) func(*mapProperties)

WithHTTPTLSConfig — TLS конфигурация для HTTP-сервера.

func WithJwtExpiresIn

func WithJwtExpiresIn(jwtExpiresIn time.Duration) func(*mapProperties)

WithJwtExpiresIn — Утверждение «exp» (время истечения срока действия) определяет время истечения срока действия или после чего JWT НЕ ДОЛЖЕН приниматься в обработку.

func WithJwtMaxAgeSec

func WithJwtMaxAgeSec(maxAge int) func(*mapProperties)

WithJwtMaxAgeSec — определяет время жизни куки в секундах.

func WithJwtSecret

func WithJwtSecret(secret string) func(*mapProperties)

WithJwtSecret — секрет для подписи JWТокена.

func WithLogger

func WithLogger(logger *slog.Logger) func(*mapProperties)

WithLogger — логгер приложения.

func WithUpkRSAPrivateKey

func WithUpkRSAPrivateKey(privateKey *rsa.PrivateKey) func(*mapProperties)

WithUpkRSAPrivateKey — RSA ключ для дешифрации секрета который применяется в симметричном шифровании UPK (User Personal Key).

func WithUpkRSAPublicKey

func WithUpkRSAPublicKey(publicKey *rsa.PublicKey) func(*mapProperties)

WithUpkRSAPublicKey — RSA ключ для шифрования секрета который применяется в симметричном шифровании UPK (User Personal Key).

func WithUpkSecretKey

func WithUpkSecretKey(secretKey []byte) func(*mapProperties)

WithUpkSecretKey — секрет симметричного шифрования UPK (User Personal Key).

Types

type Config

type Config interface {
	fmt.Stringer
	CacheEnabled() bool
	CacheExpireMs() int
	CacheGCIntervalSec() int
	DBEnabled() bool
	DBHost() string
	DBName() string
	DBPort() int
	DBUserName() string
	DBUserPassword() string
	Enabled() bool
	ExternalAssetGRPCAddress() string
	ExternalAuthGRPCAddress() string
	ExternalRequestTimeoutInterval() int
	GRPCAddress() string
	GRPCEnabled() bool
	GRPCPort() int
	GRPCProto() string
	GRPCTLSCAFile() string
	GRPCTLSCertFile() string
	GRPCTLSEnabled() bool
	GRPCTLSKeyFile() string
	HTTPAddress() string
	HTTPEnabled() bool
	HTTPPort() int
	HTTPTLSCAFile() string
	HTTPTLSCertFile() string
	HTTPTLSEnabled() bool
	HTTPTLSKeyFile() string
	JwtExpiresIn() time.Duration
	JwtMaxAgeSec() int
	JwtSecret() string
	MongoEnabled() bool
	MongoHost() string
	MongoName() string
	MongoPort() int
	MongoUserName() string
	MongoUserPassword() string
	Token() string
	UpkRSAPrivateKeyFile() string
	UpkRSAPublicKeyFile() string
	UpkSecret() string
}

Config статичная конфигурация собранная из Yaml-файла.

func LoadConfig

func LoadConfig(path string) (cfg Config, err error)

LoadConfig - TODO. Example:

favorites:

enabled: true
cache:
  enabled: true
  expire_ms: 1000
  gc_interval_sec: 10
db:
  enabled: true
  name: db
  host: localhost
  port: 5432
  username: dbuser
  password: password
external:
  asset_grpc_address: 127.0.0.1:8444
  auth_grpc_address: 127.0.0.1:8444
  request_timeout_interval_ms: 911
grpc:
  address: localhost
  enabled: true
  port: 8442
  proto: tcp
  tls:
    enabled: true
    ca_file: cert/grpc-ca-cert.pem
    cert_file: cert/grpc-server-cert.pem
    key_file: cert/grpc-server-key.pem
http:
  address: localhost
  enabled: true
  port: 8443
  tls:
    enabled: true
    ca_file: cert/http-ca-cert.pem
    cert_file: cert/http-server-cert.pem
    key_file: cert/http-server-key.pem
jwt:
  jwt_secret: TzzVGdLUJGcYKaf5he4zeLW5QdSJws9UoUug3Q3kCMeLVijBSjPY3k0pNu2XWhB
  jwt_expired_in: 60m
  jwt_max_age_sec: 3600
mongo:
  enabled: true
  name: db
  host: localhost
  port: 27017
  username: mongouser
  password: password
token: '$2a$11$ZTzzVGdLUJGcYKJws9UoUug3Q3kCMELVziajBSJPY3k0pNu2XWHBy'
upk:
  rsa_private_key_file: cert/upk-private-key.pem
  rsa_public_key_file: cert/upk-public-key.pem
  secret: g16Ug0b1zVaCYQzxD45C6p99fUxMkaSL2npjmi5qBjRMAy6kjpZP0/zahKE4zQGvTlp7lKavV4z3RWIm9Uch1pBgaYLZ/pAZDbgr8roqVc/QEzQnsaLqoe7ZzOcPsj7NzbrXz/l+rWVAGdyAkLGs7NIZ3GgNlyZ5lrjglAIRdHA6PpW0jBzbcKb5Z5Y5U80N75+wrenlWPFUKTrN8exuUhzLK6FHWpAzuivD+pg42bZFvdSLE/0oXd0U1W+SxSBXv3RxEkRMquYG+9/VHpT745BzF+QQlR+CicLC5XaUusAZKtqFf3LokISPY1kxjP32gW3SqtZThZa/4pPMpesrXA==

type Properties

type Properties interface {
	fmt.Stringer
	CacheExpire() time.Duration
	CacheGCInterval() time.Duration
	Config() Config
	DBPool() *pgxpool.Pool
	Environments() environments
	ExternalAssetGRPCAddress() string
	ExternalAuthGRPCAddress() string
	ExternalRequestTimeoutInterval() time.Duration
	Flags() map[string]interface{}
	GRPCAddress() string
	GRPCTransportCredentials() credentials.TransportCredentials
	HTTPAddress() string
	HTTPTLSConfig() *tls.Config
	JwtExpiresIn() time.Duration
	JwtMaxAgeSec() int
	JwtSecret() string
	Logger() *slog.Logger
	MongodbPool() *tool.MongoPool
	SlogJSON() bool
	OutboundIP() net.IP
	UpkRSAPrivateKey() *rsa.PrivateKey
	UpkRSAPublicKey() *rsa.PublicKey
	UpkSecretKey() []byte
}

Properties конфигурация собранная из Yaml-файла, переменных окружения и флагов командной строки.

func GetProperties

func GetProperties() Properties

GetProperties — свойства преобразованные из конфигурации и окружения. потокобезопасное (thread-safe) создание.

Jump to

Keyboard shortcuts

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