config

package
v0.0.0-...-de89868 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package config - конфигурация, настройка всего сервиса.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type App

type App struct {
	// Название сервиса
	Name string `env-required:"true" json:"name"    env:"APP_NAME"`
	// Версия сервиса
	Version string `env-required:"true" json:"version" env:"APP_VERSION"`
	// Имя файла конфигурации должно задаваться через флаг -c/-config или переменную окружения CONFIG
	ConfigFileName string `env:"CONFIG"`
}

Config структура содержит всё окружение проекта App - переменные окружения для приложения. HTTP - окружения для сервера. Storage - окружения для хранилищ. Cookie - окружения для куки. Log - окружения для логирования

type Config

type Config struct {
	App     `json:"app"`
	HTTP    `json:"http"`
	Storage `json:"storage"`
	Cookie  `json:"cookie"`
	Log     `json:"logger"`
	GRPC    `json:"grpc"`
}

Config структура содержит всё окружение проекта App - переменные окружения для приложения. HTTP - окружения для сервера. Storage - окружения для хранилищ. Cookie - окружения для куки. Log - окружения для логирования

func NewConfig

func NewConfig() (*Config, error)

NewConfig (singleton) возвращает инициализированную структуру конфига.

type Cookie struct {
	// ACCESS_TOKEN_NAME - содержит наименование для куки доступа, по умолчанию access_token
	// Например куки будет выглядеть так:
	// access_token=5d9470be88997d3a200126e686ac7dab0190db8b341ba40e5c6cccf1e6ba66a08f05717dece9; Path=/;
	AccessTokenName string `env-required:"true" json:"access_token_name" env:"ACCESS_TOKEN_NAME" envDefault:"access_token"`
	// SECRET_KEY ключ шифрования для куки
	SecretKey string `env-required:"true" json:"secret_key" env:"SECRET_KEY" envDefault:"RtsynerpoGIYdab_s234r"` // cookie encryp application

}

Config структура содержит всё окружение проекта App - переменные окружения для приложения. HTTP - окружения для сервера. Storage - окружения для хранилищ. Cookie - окружения для куки. Log - окружения для логирования

type GRPC

type GRPC struct {
	Port string `env-required:"true" json:"port" env:"GRPC_PORT" envDefault:"8085"`
	Host string `env-required:"true" json:"host" env:"GRPC_HOST" envDefault:"localhost"`
}

Config структура содержит всё окружение проекта App - переменные окружения для приложения. HTTP - окружения для сервера. Storage - окружения для хранилищ. Cookie - окружения для куки. Log - окружения для логирования

type HTTP

type HTTP struct {
	// При передаче флага -s или переменной окружения ENABLE_HTTPS сервер запуститься с
	// помощью метода http.ListenAndServeTLS или tls.Listen.
	EnableHTTPS bool `env:"ENABLE_HTTPS"`
	// передать строковое представление бесклассовой адресации (CIDR)
	TrustedSubnet string `json:"trusted_subnet" env:"TRUSTED_SUBNET"`
	// разрешить IP с использованием заголовка
	ResolveIPUsingHeader bool
	// BASE_URL - базовый адрес результирующего сокращённого URL
	BaseURL string `env:"BASE_URL" json:"base_url" env-default:"http://localhost:8080"`
	// SERVER_ADDRESS - адрес запуска HTTP-сервера
	ServerAddress string `json:"server_address" env:"SERVER_ADDRESS"`
	// SERVER_DOMAIN - доменное имя сервера
	ServerDomain string `env:"SERVER_DOMAIN" json:"server_domain"`
	CertsDir     string `env:"CERTS_DIR"`
	CertFile     string `env:"CERT_NAME_FILE"`
	KeyFile      string `env:"CERT_KEY_FILE"`
}

Config структура содержит всё окружение проекта App - переменные окружения для приложения. HTTP - окружения для сервера. Storage - окружения для хранилищ. Cookie - окружения для куки. Log - окружения для логирования

type Log

type Log struct {
	// LOG_LEVEL переменная окружения, содержит значение уровня логирования проекта
	Level string `env-required:"true" yaml:"log_level"  json:"log_level"  env:"LOG_LEVEL"`
}

Config структура содержит всё окружение проекта App - переменные окружения для приложения. HTTP - окружения для сервера. Storage - окружения для хранилищ. Cookie - окружения для куки. Log - окружения для логирования

type Storage

type Storage struct {
	// FILE_STORAGE_PATH путь до файла с сокращёнными URL (директории не создаёт)
	FileStorage string `env:"FILE_STORAGE_PATH"`
	// Строка с адресом подключения к БД, например для PostgreSQL (драйвер pgx): postgres://username:password@localhost:5432/database_name
	ConnectDB string `env:"DATABASE_DSN" env-default:"postgres://shorturl:[email protected]:5432/shorturl?sslmode=disable"`
}

Config структура содержит всё окружение проекта App - переменные окружения для приложения. HTTP - окружения для сервера. Storage - окружения для хранилищ. Cookie - окружения для куки. Log - окружения для логирования

Jump to

Keyboard shortcuts

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