Configuração do CLI
Entenda como o CriptEnv organiza seus dados localmente, como funciona a senha mestra e como personalizar o comportamento via variáveis de ambiente e arquivo de configuração.
Estrutura do Diretório
O CriptEnv armazena todos os dados locais em ~/.criptenv/. Após executar criptenv init, a estrutura é a seguinte:
~/.criptenv/
├── vault.db # Banco de dados SQLite com segredos criptografados
├── config.toml # Arquivo de configuração do CLI
├── session.json # Token de sessão atual (se autenticado)
└── logs/
└── criptenv.log # Logs de operaçõesvault.db
O coração do CriptEnv. Um banco de dados SQLite que armazena todos os segredos criptografados localmente com AES-256-GCM. Cada segredo é versionado, permitindo rotação sem perder o histórico.
Info
vault.db para locais inseguros. O arquivo contém dados criptografados, mas a segurança depende da força da sua senha mestra.Tabelas internas do banco:
| Parâmetro | Tipo | Descrição |
|---|---|---|
secrets | tabela | Segredos criptografados com metadados (chave, valor cifrado, IV, salt, versão, ambiente, projeto, data de expiração) |
environments | tabela | Ambientes registrados (dev, staging, production, etc.) |
projects | tabela | Projetos e suas configurações |
rotation_history | tabela | Histórico de rotações de segredos |
audit_log | tabela | Log de auditoria de operações |
Senha Mestra
A senha mestra é usada para derivar a chave de criptografia do vault usando PBKDF2 com 600.000 iterações. Ela nunca é armazenada em disco — é mantida em memória apenas durante a sessão.
Derivação de Chave
init. O resultado é uma chave AES-256 de 32 bytes.Desbloqueio do Vault
Cache de Sessão
config.toml.# Alterar a senha mestra
criptenv init --force
# Limpar cache de sessão (força nova solicitação de senha)
criptenv logoutVariáveis de Ambiente
Todas as opções do CLI podem ser controladas via variáveis de ambiente com o prefixo CRIPTENV_. Variáveis têm prioridade sobre o arquivo de configuração.
| Parâmetro | Tipo | Descrição |
|---|---|---|
CRIPTENV_HOME | string | Diretório base (padrão: ~/.criptenv) |
CRIPTENV_MASTER_PASSWORD | string | Senha mestra (não recomendado para produção) |
CRIPTENV_SESSION_TIMEOUT | number | Timeout de sessão em segundos (padrão: 900) |
CRIPTENV_DEFAULT_ENV | string | Ambiente padrão (padrão: development) |
CRIPTENV_DEFAULT_PROJECT | string | Projeto padrão |
CRIPTENV_API_URL | string | URL da API (padrão: https://api.criptenv.com) |
CRIPTENV_NO_COLOR | boolean | Desabilita cores no output |
CRIPTENV_LOG_LEVEL | string | Nível de log: debug, info, warn, error |
CRIPTENV_CI | boolean | Habilita modo CI/CD (desabilita interações) |
# Exemplo: usar o CriptEnv em um script com sessão de 30 minutos
export CRIPTENV_SESSION_TIMEOUT=1800
export CRIPTENV_DEFAULT_ENV=production
criptenv get DATABASE_URLInfo
CRIPTENV_MASTER_PASSWORD em variáveis de ambiente em servidores compartilhados. Prefira a leitura interativa da senha.Arquivo de Configuração
O arquivo ~/.criptenv/config.toml permite personalizar o comportamento do CLI. Todas as opções possuem valores padrão sensatos.
# ~/.criptenv/config.toml
[general]
# Ambiente padrão ao omitir --env
default_env = "development"
# Projeto padrão ao omitir --project
default_project = ""
# Timeout de sessão em segundos
session_timeout = 900
# Modo de output: text, json
output_mode = "text"
[security]
# Iterações do PBKDF2 (padrão: 600000)
pbkdf2_iterations = 600000
# Algoritmo de criptografia (não alterar)
algorithm = "AES-256-GCM"
[cloud]
# URL da API do CriptEnv
api_url = "https://api.criptenv.com"
# Timeout de requisições em segundos
request_timeout = 30
[alerts]
# Alertar N dias antes da expiração
default_alert_days = 7
# Canais de alerta: email, slack, webhook
channels = ["email"]
[logs]
# Nível de log: debug, info, warn, error
level = "info"
# Reter logs por N dias
retention_days = 30Opções de Configuração
| Parâmetro | Tipo | Descrição |
|---|---|---|
default_env | string | Ambiente padrão (development) |
default_project | string | Projeto padrão |
session_timeout | number | Timeout de sessão em segundos (900) |
output_mode | string | Modo de saída: text ou json |
| Parâmetro | Tipo | Descrição |
|---|---|---|
pbkdf2_iterations | number | Iterações do PBKDF2 (600000) |
algorithm | string | Algoritmo de criptografia (AES-256-GCM) |
| Parâmetro | Tipo | Descrição |
|---|---|---|
api_url | string | URL da API (https://api.criptenv.com) |
request_timeout | number | Timeout de requisições em segundos (30) |
| Parâmetro | Tipo | Descrição |
|---|---|---|
default_alert_days | number | Dias de antecedência para alertas (7) |
channels | array | Canais de alerta: email, slack, webhook |
| Parâmetro | Tipo | Descrição |
|---|---|---|
level | string | Nível de log: debug, info, warn, error |
retention_days | number | Dias de retenção dos logs (30) |
Info
CRIPTENV_ sempre sobrescrevem os valores do arquivo de configuração. Use criptenv doctor para verificar a configuração efetiva.