omnichannel-backend/.env.example
Rafael Lopes 5bd13e30f1 FEAT: Implementa módulo de autenticação com JWT
* Bootstrap da aplicação com NestJS + TypeScript
* Migração de Node.js puro + JavaScript para NestJS como framework
* Estrutura base: AppModule, AppController, health check em /health
* loadEnv com busca hierárquica de .env por ambiente
* Módulo auth completo com arquitetura em camadas:
  - AuthController: rotas HTTP de autenticação
  - AuthService: fachada de negócio
  - AuthConfigService: leitura centralizada de variáveis de ambiente
  - AuthTokenService: emissão de JWT próprio da aplicação
* Autenticação via LDAP/Active Directory com ldapts
* Autenticação via Microsoft OAuth 2.0 (Entra ID)
* Proteção CSRF no fluxo OAuth com HMAC state assinado
* Endpoint /auth/config para o frontend descobrir provedores ativos
* Documentação do módulo em docs/auth.md
2026-05-08 17:10:50 -03:00

38 lines
983 B
Plaintext

# Backend environment variables
NODE_ENV=development
PORT=3001
# Database
DB_HOST=postgres
DB_PORT=5432
DB_USER=omnichannel
DB_PASSWORD=change-me
DB_NAME=omnichannel
# HTTP/JWT
FRONTEND_URL=http://localhost:3000
JWT_SECRET=change-this-long-random-secret
JWT_EXPIRES_IN=8h
# Auth providers: ldap,microsoft or only one of them
AUTH_PROVIDERS=ldap,microsoft
# LDAP / Active Directory
LDAP_ENABLED=true
LDAP_URL=ldaps://kratos.sothistelecom.com:636
LDAP_DOMAIN=sothis.com.br
LDAP_USER_DN_TEMPLATE={{username}}@sothis.com.br
LDAP_SEARCH_BASE=DC=sothistelecom,DC=com
LDAP_SEARCH_FILTER=(&(objectClass=user)(sAMAccountName={{username}}))
# LDAP_BIND_DN=CN=ldap-reader,OU=Users,DC=example,DC=com
# LDAP_BIND_PASSWORD=change-me
# Microsoft Entra ID OAuth
MICROSOFT_ENABLED=false
MICROSOFT_TENANT_ID=common
MICROSOFT_CLIENT_ID=
MICROSOFT_CLIENT_SECRET=
MICROSOFT_REDIRECT_URI=http://localhost:3001/auth/oauth/microsoft/callback
MICROSOFT_SUCCESS_REDIRECT_URL=http://localhost:3000/login