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 - окружения для логирования
type Cookie ¶
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:DBshorten-2023@127.0.0.1:5432/shorturl?sslmode=disable"` }
Config структура содержит всё окружение проекта App - переменные окружения для приложения. HTTP - окружения для сервера. Storage - окружения для хранилищ. Cookie - окружения для куки. Log - окружения для логирования