first commit
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# ============================================================
|
||||
# SeConectai Vendas — variáveis de ambiente
|
||||
# Copie este arquivo para `.env` e ajuste os valores.
|
||||
# ============================================================
|
||||
|
||||
# Ambiente da aplicação: development | production | test
|
||||
NODE_ENV=development
|
||||
|
||||
# Porta HTTP exposta pela API (também usada pelo docker-compose para o mapeamento de porta)
|
||||
PORT=3000
|
||||
|
||||
# --- Postgres --------------------------------------------------
|
||||
# Credenciais usadas pelo container do Postgres (docker-compose.yml)
|
||||
POSTGRES_USER=seconectai
|
||||
POSTGRES_PASSWORD=seconectai
|
||||
POSTGRES_DB=seconectai_vendas
|
||||
POSTGRES_PORT=5432
|
||||
|
||||
# String de conexão usada pelo Prisma. Dentro do docker-compose, o host é o
|
||||
# nome do serviço (`postgres`); rodando a API fora do compose, use `localhost`.
|
||||
DATABASE_URL=postgresql://seconectai:seconectai@postgres:5432/seconectai_vendas?schema=public
|
||||
|
||||
# Connection string da role `app_master` (LOGIN + BYPASSRLS, criada na
|
||||
# migration `20260813120000_auth_app_roles`), usada pelo painel master para
|
||||
# enxergar dados de todos os tenants sem passar pelas policies de RLS.
|
||||
DATABASE_URL_MASTER=postgresql://app_master:app_master_changeme@postgres:5432/seconectai_vendas?schema=public
|
||||
|
||||
# Connection string da role `app_tenant` (LOGIN comum, sem BYPASSRLS),
|
||||
# usada para toda query autenticada como tenant_user, dentro da transação
|
||||
# que executa `SET LOCAL app.current_tenant_id` — é essa role que faz as
|
||||
# policies de RLS valerem de fato (a role de DATABASE_URL é dona das
|
||||
# tabelas e, por ser a superuser bootstrap do Postgres, sempre ignora RLS).
|
||||
DATABASE_URL_TENANT=postgresql://app_tenant:app_tenant_changeme@postgres:5432/seconectai_vendas?schema=public
|
||||
|
||||
# Em produção, troque as senhas acima com `ALTER ROLE app_master/app_tenant
|
||||
# WITH PASSWORD '...'` e atualize as URLs de acordo — mesma lógica de
|
||||
# POSTGRES_PASSWORD/JWT_SECRET: os valores default aqui são só para dev.
|
||||
|
||||
# --- Redis -------------------------------------------------------
|
||||
REDIS_HOST=redis
|
||||
REDIS_PORT=6379
|
||||
|
||||
# --- Autenticação --------------------------------------------------
|
||||
# Segredo usado para assinar os JWTs de acesso/refresh (mínimo 32 caracteres)
|
||||
JWT_SECRET=troque-este-valor-por-um-segredo-forte-com-32-caracteres-ou-mais
|
||||
|
||||
# Expiração do access token (formato aceito pela lib `ms`, ex: 15m, 1h)
|
||||
JWT_ACCESS_EXPIRES_IN=15m
|
||||
|
||||
# Expiração do refresh token e do token de reset de senha, em dias/horas
|
||||
REFRESH_TOKEN_EXPIRES_IN_DAYS=30
|
||||
PASSWORD_RESET_EXPIRES_IN_HOURS=1
|
||||
|
||||
# Bloqueio de força bruta: nº de tentativas falhas e janela (minutos) até bloquear
|
||||
LOGIN_MAX_ATTEMPTS=5
|
||||
LOGIN_LOCKOUT_WINDOW_MINUTES=15
|
||||
|
||||
# --- Painel Master ------------------------------------------------
|
||||
# Dias de trial concedidos a um tenant recém-criado (tenants.trial_expira_em)
|
||||
TENANT_TRIAL_DIAS=14
|
||||
|
||||
# --- Integrações (Evolution API / SMTP) ----------------------------
|
||||
# Chave usada para cifrar segredos em repouso (AES-256-GCM): api_key da
|
||||
# Evolution API (evolution_api_config.api_key_cripto) e senha SMTP
|
||||
# (master_email_config.smtp_senha_cripto / tenant_email_config.smtp_senha_cripto).
|
||||
# Mínimo 32 caracteres; internamente é reduzida a 32 bytes via SHA-256 antes
|
||||
# de virar a chave AES-256, então qualquer string longa o suficiente serve.
|
||||
# Nunca reutilize o valor de exemplo em produção — trocar invalida todos os
|
||||
# segredos já cifrados no banco (seria necessário recriá-los).
|
||||
ENCRYPTION_KEY=troque-este-valor-por-um-segredo-forte-com-32-caracteres-ou-mais
|
||||
Reference in New Issue
Block a user