config

package
v0.0.0-...-58ae5d1 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2022 License: BSD-3-Clause Imports: 3 Imported by: 0

Documentation

Overview

Package config provides connection with environment configuration.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CockroachDB

type CockroachDB struct {
	Host            string `env:"COCKROACHDB_HOST,default=localhost"`
	Port            string `env:"COCKROACHDB_PORT,default=26257"`
	User            string `env:"COCKROACHDB_USER,default=username"`
	Password        string `env:"COCKROACHDB_PASSWORD,default=password"`
	Name            string `env:"COCKROACHDB_NAME,default=toggle"`
	MaxOpenConns    string `env:"COCKROACHDB_MAX_OPEN_CONNS,default=5"`
	MaxConnLifetime string `env:"COCKROACHDB_MAX_CONN_LIFETIME,default=10m"`
	MaxIdleLifetime string `env:"COCKROACHDB_MAX_IDLE_LIFETIME,default=5m"`
	SSLMode         string `env:"COCKROACHDB_SSL_MODE,default=verify-full"`
	SSLRootCert     string `env:"COCKROACHDB_SSL_ROOT_CERT,default=$HOME"`
	Options         string `env:"COCKROACHDB_OPTIONS"`
}

CockroachDB holds all configuration for CockroachDB.

type Config

type Config struct {
	ServiceName string `env:"SERVICE_NAME,default=toggle-api"`
	AppEnv      string `env:"APP_ENV,default=development"`
	Port        Port
	Postgres    Postgres
	CockroachDB CockroachDB
	Redis       Redis
	Kafka       Kafka
	Jaeger      Jaeger
}

Config holds configuration for the project.

func NewConfig

func NewConfig(env string) (*Config, error)

NewConfig creates an instance of Config. It needs the path of the env file to be used.

type Jaeger

type Jaeger struct {
	Enabled       bool    `env:"JAEGER_ENABLED,default=true"`
	Host          string  `env:"JAEGER_HOST,default=localhost"`
	Port          string  `env:"JAEGER_PORT,default=6831"`
	SamplingType  string  `env:"JAEGER_SAMPLING_TYPE,default=const"`
	SamplingParam float64 `env:"JAEGER_SAMPLING_PARAM,default=1"`
	LogSpans      bool    `env:"JAEGER_LOG_SPANS,default=true"`
	FlushInterval uint    `env:"JAEGER_FLUSH_INTERVAL,default=1"`
}

Jaeger holds configuration for Jaeger.

type Kafka

type Kafka struct {
	Address      string `env:"KAFKA_ADDRESS,default=localhost:9092"`
	Topic        string `env:"KAFKA_TOPIC,default=toggle"`
	WriteTimeout int    `env:"KAFKA_WRITE_TIMEOUT,default=10"`
	MaxAttempts  int    `env:"KAFKA_MAX_ATTEMPTS,default=10"`
	BatchSize    int    `env:"KAFKA_BATCH_SIZE,default=100"`
	BatchTimeout int    `env:"KAFKA_BATCH_TIMEOUT,default=1"`
	WriteAsync   bool   `env:"KAFKA_WRITE_ASYNC,default=false"`
}

Kafka holds configuration for Kafka.

type Port

type Port struct {
	Grpc        string `env:"PORT_GRPC,default=8080"`
	GrpcGateway string `env:"PORT_GRPC_GATEWAY,default=8081"`
}

Port holds configuration for project's port.

type Postgres

type Postgres struct {
	Host            string `env:"POSTGRES_HOST,default=localhost"`
	Port            string `env:"POSTGRES_PORT,default=5432"`
	User            string `env:"POSTGRES_USER,required"`
	Password        string `env:"POSTGRES_PASSWORD,required"`
	Name            string `env:"POSTGRES_NAME,required"`
	MaxOpenConns    string `env:"POSTGRES_MAX_OPEN_CONNS,default=5"`
	MaxConnLifetime string `env:"POSTGRES_MAX_CONN_LIFETIME,default=10m"`
	MaxIdleLifetime string `env:"POSTGRES_MAX_IDLE_LIFETIME,default=5m"`
	SSLMode         string `env:"POSTGRES_SSL_MODE,default=disable"`
}

Postgres holds all configuration for PostgreSQL.

type Redis

type Redis struct {
	Address string `env:"REDIS_ADDRESS,default=localhost:6379"`
	// TTL in minute.
	TTL         uint `env:"REDIS_TTL,default=5"`
	DBSelect    int  `env:"REDIS_DB_SELECT,default=0"`
	Concurrency int  `env:"REDIS_CONCURRENCY,default=10"`
}

Redis holds configuration for Redis.

Jump to

Keyboard shortcuts

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