config

package
v0.0.0-...-56803a9 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2016 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package config armazena as configurações relacionadas ao servidor REST. Para facilitar a usabilidade uma variável global estará disponível para acessar os dados de configuração.

Index

Constants

This section is empty.

Variables

View Source
var Versão = "desenvolvimento"

Versão define a versão atual do servidor REST.

Functions

func AtualizarConfiguração

func AtualizarConfiguração(c *Configuração)

AtualizarConfiguração modifica a atual configuração do sistema de maneira segura. Muito útil para cenários de testes que precisam simular uma configuração específica.

func CarregarDeArquivo

func CarregarDeArquivo(arquivo string) error

CarregarDeArquivo interpreta um arquivo de configuração em formato YAML e preenche as variáveis da configuração global do servidor REST. O que não for informado no arquivo de configuração YAML não será sobrescrito.

func CarregarDeVariávelAmbiente

func CarregarDeVariávelAmbiente() error

CarregarDeVariávelAmbiente analisa as variáveis de ambiente e preenche as variáveis da configuração global do servidor REST. O que não for informado nas variáveis de ambiente não será sobrescrito.

func DefinirValoresPadrão

func DefinirValoresPadrão()

DefinirValoresPadrão utiliza valores padrão em todos os campos da configuração caso o usuário não informe. O usuário também tem a opção de sobrescrever somente alguns valores, mantendo os demais com valores padrão.

Types

type Configuração

type Configuração struct {
	config.Configuração `yaml:",inline"`

	// Binário define as informações necessárias para se obter um novo binário e
	// troca-lo com o atual sem que o sistema pare de funcionar.
	Binário struct {
		// URL endereço para se obter o novo binário.
		URL string `yaml:"url" envconfig:"url"`

		// TempoAtualização intervalo de tempo que o sistema irá verificar se existe
		// um binário novo.
		TempoAtualização time.Duration `yaml:"tempo atualizacao" envconfig:"tempo_atualizacao"`
	} `yaml:"binario" envconfig:"binario"`

	Servidor struct {
		// Endereço interface que o servidor irá escutar, formado pelo IP com porta
		// (exemplo 127.0.0.1:443).
		Endereço string `yaml:"endereco" envconfig:"endereco"`

		TLS struct {
			// Habilitado define se o TLS será utilizado ou não.
			Habilitado bool `yaml:"habilitado" envconfig:"habilitado"`

			// ArquivoCertificado caminho para o arquivo em formato PEM que contém o
			// certificado.
			ArquivoCertificado string `yaml:"arquivo certificado" envconfig:"arquivo_certificado"`

			// ArquivoCertificado caminho para o arquivo em formato PEM que contém a
			// chave privada referente ao certificado.
			ArquivoChave string `yaml:"arquivo chave" envconfig:"arquivo_chave"`
		} `yaml:"tls" envconfig:"tls"`

		// TempoEsgotadoLeitura define o tempo em que o servidor irá aguardar após
		// um cliente se conectar para que alguma requisição seja recebida.
		TempoEsgotadoLeitura time.Duration `yaml:"tempo esgotado leitura" envconfig:"tempo_esgotado_leitura"`
	} `yaml:"servidor" envconfig:"servidor"`

	Syslog struct {
		// EndereçoSyslog endereço IP com porta (exemplo  127.0.0.1:514) para
		// conexão com o servidor de log central. A conexão será feita utilizando o
		// protocolo TCP para minimizar a perda de mensagens.
		Endereço             string        `yaml:"endereco" envconfig:"endereco"`
		TempoEsgotadoConexão time.Duration `yaml:"tempo esgotado conexao" envconfig:"tempo_esgotado_conexao"`
	} `yaml:"syslog" envconfig:"syslog"`

	BancoDados struct {
		Endereço                     string        `yaml:"endereco" envconfig:"endereco"`
		Porta                        int           `yaml:"porta" envconfig:"porta"`
		Nome                         string        `yaml:"nome" envconfig:"nome"`
		Usuário                      string        `yaml:"usuario" envconfig:"usuario"`
		Senha                        string        `yaml:"senha" envconfig:"senha"`
		TempoEsgotadoConexão         time.Duration `yaml:"tempo esgotado conexao" envconfig:"tempo_esgotado_Conexao"`
		TempoEsgotadoComando         time.Duration `yaml:"tempo esgotado comando" envconfig:"tempo_esgotado_comando"`
		TempoEsgotadoTransação       time.Duration `yaml:"tempo esgotado transacao" envconfig:"tempo_esgotado_transacao"`
		MáximoNúmeroConexõesInativas int           `yaml:"maximo numero conexoes inativas" envconfig:"maximo_numero_conexoes_inativas"`
		MáximoNúmeroConexõesAbertas  int           `yaml:"maximo numero conexoes abertas" envconfig:"maximo_numero_conexoes_abertas"`
	} `yaml:"banco de dados" envconfig:"bd"`

	// Proxies define a lista de endereços IPs que podem informar os cabeçalhos
	// HTTP X-Forwarded-For ou X-Real-IP para identificar os clientes finais.
	Proxies []net.IP `yaml:"proxies" envconfig:"proxies"`
}

Configuração estrutura que representa todas as possíveis configurações do relacionadas ao sistema REST.

func Atual

func Atual() *Configuração

Atual retorna a configuração atual do sistema, armazenada internamente em uma variável global.

Jump to

Keyboard shortcuts

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