Pular para conteúdo

Configuração básica — variáveis eCosif Angular

Repositório: disoft/ecosif-angular
Versão (referência): ver package.json (ex.: 0.7.07.202607187)
Documentação relacionada: README.md · configuracao_provedores.md · manifesto conf/scripts/ecosif-env-map.manifest

Fonte da verdade (operacional): este ficheiro lista as variáveis ECOSIF_* aceites na task ECS / Docker. No arranque do contentor, conf/scripts/docker-entrypoint.sh normaliza esses valores e gera assets/config/config.json e assets/env.js com os mesmos dados (validação de paridade no startup). A app lê window.envenvironment.prod.ts e, em produção, config.json via AppConfigService.

Variáveis obrigatórias

1. Inicialização Básica

Variável Exemplo Descrição
ECOSIF_ANGULAR_PORT 8080 Porta em que o Nginx escuta
APP_PORT 8080 Alias usado pelo entrypoint (mesmo valor)
ECOSIF_ENABLE_RUNTIME Ignorada na task: o entrypoint força sempre true (config.json + env.js). Alias ECOSIF_ANGULAR_PRODUCTION / IS_PROD idem. Ambiente lógico: ECOSIF_ENVIRONMENT.
ECOSIF_APP_NAME / APP_NAME ECOSIF Nome da aplicação em config.json (basta uma das duas)
ECOSIF_ANGULAR_API_AUTH_URL /ecosif-auth Api de Login / Autorização
ECOSIF_ANGULAR_API_MASTERDATA_URL /ecosif-masterdata Api responsável pelos dados principais do sistema
ECOSIF_ANGULAR_API_QUERYS_URL /ecosif-querys Api responsável por consulta de resultos em tela
ECOSIF_ANGULAR_API_MOVIMENTS_URL /ecosif-moviments Api que executa lançamento e contabiliza
ECOSIF_ANGULAR_API_REPORTS_URL /ecosif-reports Api responsável pela geração de relatórios
ECOSIF_ANGULAR_API_COMPLIANCE_URL /ecosif-compliance Api responsável por validar dados para Cosif
ECOSIF_API_BASE_URL https://{api-id}.execute-api.us-west-1.amazonaws.com As URLs ficam {base}/ecosif-auth/, {base}/ecosif-masterdata/, etc. Em domínio único com paths relativos, não é necessário definir ECOSIF_API_BASE_URL.

Health check sugerido: GET /health na porta configurada (ECOSIF_ANGULAR_PORT / APP_PORT).

2. Variáveis de login e autenticação

Variável Valor Descrição
ECOSIF_ENABLE_LOCAL_AUTH Ignorada na task: o entrypoint força sempre true (formulário e botão Entrar local).
ECOSIF_ANGULAR_CHECK_AUTH true / false Default true. Se true, a tela de login exige GET {auth}/actuator/health com status UP antes de liberar os botões. Se false, não faz o health-check e libera o login. Mapeia para features.checkAuthHealth.
ECOSIF_ENABLE_AZURE_AUTH true / false Liga o botão Entrar com Microsoft. Se true (ou ECOSIF_API_TOKEN_MODE=HYBRID_ECOSIF_AZURE), exige as três variáveis Azure abaixo.
ECOSIF_AZURE_CLIENT_ID UUID do App Registration Client ID no Entra ID
ECOSIF_AZURE_TENANT_ID UUID do tenant Tenant ID no Entra ID
ECOSIF_AZURE_AUTHORITY https://login.microsoftonline.com/<tenant-id> Authority MSAL
ECOSIF_AZURE_SCOPES openid,profile,email Scopes MSAL (CSV). Default openid,profile,email se Azure ligado.
ECOSIF_AUTH_PROVIDER NONE | AZURE | AZURE_ENTERPRISE | GOOGLE Provedor externo para external-login. Default: AZURE se Azure ligado, senão NONE.
ECOSIF_ENABLE_GOOGLE_AUTH true / false Liga o botão Google (GIS). Default false. Se ECOSIF_AUTH_PROVIDER=GOOGLE, fica true automaticamente.
ECOSIF_GOOGLE_CLIENT_ID Client ID OAuth Obrigatório se provider=GOOGLE (alias legado: GOOGLE_CLIENT_ID).
ECOSIF_GOOGLE_AUTH_MODE popup | redirect Modo GIS. Default popup.
ECOSIF_API_TOKEN_MODE ver abaixo Modo de token nas APIs. Default ECOSIF_JWT.

Valores de ECOSIF_API_TOKEN_MODE:

Valor Uso
ECOSIF_JWT JWT ECOSIF no Authorization (padrão)
HYBRID_ECOSIF_AZURE Sticky por origem: login local → JWT ECOSIF; login Azure → token Azure cru
AZURE_ENTERPRISE_GATEWAY access_token MSAL nas APIs
GOOGLE_GATEWAY id_token Google nas APIs

Azure: as três variáveis ECOSIF_AZURE_* (CLIENT_ID, TENANT_ID, AUTHORITY) são obrigatórias em conjunto quando Azure/híbrido está ativo. Sem elas (ou com placeholder 00000000-…), enableAzureAuth fica false e o botão Microsoft não aparece.
O MSAL usa redirectUri: '/' (mesma origem do SPA). O App Registration no Entra ID deve ter essa URL como Redirect URI (SPA).

Detalhes de perfis: configuracao_provedores.md.

3. Variáveis recomendadas

Variável Valor sugerido Descrição
ECOSIF_ENVIRONMENT dev, qas, production Rótulo de ambiente em config.json
ECOSIF_ANGULAR_AUTH_TOKEN ex. ecosif-jwt Nome da chave no localStorage onde o JWT é guardado (não é o secret do backend)
TOKEN_EXPIRATION 1800000 Expiração do token em ms (config.json)
ECOSIF_ANGULAR_DEBUG false Modo debug
ECOSIF_ANGULAR_HIDE_ADMIN_MENU false (dev/qas) / true (prod) Oculta menu "Ferramentas Administrativas"
ECOSIF_PAGINATION_SIZE 100 Tamanho padrão de paginação
ECOSIF_VERSION ex. 0.7.07.202607187 Versão exibida em config.json (alinhar com package.json)

Exemplo — task definition Fargate (environment)

Imagem de referência: disoft/ecosif-angular:<versão-do-package.json>

[
  { "name": "ECOSIF_ANGULAR_PORT", "value": "8080" },
  { "name": "APP_PORT", "value": "8080" },
  { "name": "ECOSIF_APP_NAME", "value": "ECOSIF" },
  { "name": "ECOSIF_VERSION", "value": "0.7.07.202607187" },

  { "name": "ECOSIF_ENABLE_RUNTIME", "value": "true" },
  { "name": "ECOSIF_ENVIRONMENT", "value": "dev" },
  { "name": "ECOSIF_ENABLE_LOCAL_AUTH", "value": "true" },
  { "name": "ECOSIF_ANGULAR_CHECK_AUTH", "value": "true" },
  { "name": "ECOSIF_ENABLE_AZURE_AUTH", "value": "true" },
  { "name": "ECOSIF_AUTH_PROVIDER", "value": "AZURE" },
  { "name": "ECOSIF_API_TOKEN_MODE", "value": "ECOSIF_JWT" },

  { "name": "ECOSIF_ANGULAR_API_AUTH_URL", "value": "/ecosif-auth" },
  { "name": "ECOSIF_ANGULAR_API_MASTERDATA_URL", "value": "/ecosif-masterdata" },
  { "name": "ECOSIF_ANGULAR_API_QUERYS_URL", "value": "/ecosif-querys" },
  { "name": "ECOSIF_ANGULAR_API_MOVIMENTS_URL", "value": "/ecosif-moviments" },
  { "name": "ECOSIF_ANGULAR_API_REPORTS_URL", "value": "/ecosif-reports" },
  { "name": "ECOSIF_ANGULAR_API_COMPLIANCE_URL", "value": "/ecosif-compliance" },

  { "name": "ECOSIF_AZURE_CLIENT_ID", "value": "SEU-CLIENT-ID" },
  { "name": "ECOSIF_AZURE_TENANT_ID", "value": "SEU-TENANT-ID" },
  { "name": "ECOSIF_AZURE_AUTHORITY", "value": "https://login.microsoftonline.com/SEU-TENANT-ID" },
  { "name": "ECOSIF_AZURE_SCOPES", "value": "openid,profile,email" },

  { "name": "ECOSIF_ENABLE_GOOGLE_AUTH", "value": "false" },
  { "name": "ECOSIF_GOOGLE_AUTH_MODE", "value": "popup" },

  { "name": "ECOSIF_ANGULAR_AUTH_TOKEN", "value": "ecosif-jwt" },
  { "name": "ECOSIF_ANGULAR_DEBUG", "value": "false" },
  { "name": "ECOSIF_ANGULAR_HIDE_ADMIN_MENU", "value": "false" },
  { "name": "ECOSIF_PAGINATION_SIZE", "value": "100" },
  { "name": "TOKEN_EXPIRATION", "value": "1800000" }
]

Variáveis opcionais e aliases (podem ser omitidas)

Variável Obrigatória? Notas
ECOSIF_API_BASE_URL Não Só se quiser compor URLs absolutas. Em domínio único (app.ecosif.com.br + paths /ecosif-*), omitir.
ECOSIF_ANGULAR_API_*_URL (cada uma) Não* *Se ECOSIF_API_BASE_URL estiver definida, o entrypoint monta {base}/ecosif-auth/, etc. Senão, use os paths relativos (tabela acima) ou os defaults /ecosif-auth, …
APP_PORT Não Alias de ECOSIF_ANGULAR_PORT (basta uma das duas).
APP_NAME Não Alias de ECOSIF_APP_NAME (basta uma das duas; uma é obrigatória).
ECOSIF_VERSION Não Default no entrypoint; alinhar com package.json em releases.
ECOSIF_ENABLE_LOCAL_AUTH Não Default true (forçado pelo entrypoint).
ECOSIF_ANGULAR_CHECK_AUTH Não Default true. false desliga o health-check do ecosif-auth na tela de login.
ECOSIF_ENABLE_AZURE_AUTH Não Default conforme task; liga botão Microsoft.
ECOSIF_AZURE_* (CLIENT/TENANT/AUTHORITY) Condicional Obrigatórias se Azure/híbrido ativo.
ECOSIF_AZURE_SCOPES Não Default openid,profile,email se Azure ligado.
ECOSIF_AUTH_PROVIDER Não Default AZURE ou NONE conforme Azure.
ECOSIF_ENABLE_GOOGLE_AUTH Não Default false.
ECOSIF_GOOGLE_CLIENT_ID Condicional Obrigatória se provider=GOOGLE. Alias: GOOGLE_CLIENT_ID.
ECOSIF_GOOGLE_AUTH_MODE Não Default popup.
ECOSIF_API_TOKEN_MODE Não Default ECOSIF_JWT.
ECOSIF_ANGULAR_AUTH_TOKEN Não Há fallback interno; definir em produção é recomendado.
TOKEN_EXPIRATION Não Default 1800000 (30 min).
ECOSIF_ANGULAR_DEBUG Não Default false.
ECOSIF_ANGULAR_HIDE_ADMIN_MENU Não Default true.
ECOSIF_PAGINATION_SIZE Não Default 100.
ECOSIF_ENVIRONMENT Não Rótulo (dev, qas, production); default production.
ECOSIF_STORE_VARIABLES Não Se true, grava diagnóstico em /var/log/ecosif/ e imprime no stdout (CloudWatch / Datadog). Secrets mascarados. Alias: STORE_VARIABLES.

Aliases legados (evitar em deploys novos): ECOSIF_ANGULAR_PRODUCTION, IS_PROD, API_BASE_URL, AUTH_TOKEN, IS_DEBUG, GOOGLE_CLIENT_ID — o entrypoint aceita, mas prefira os nomes ECOSIF_* canônicos.

Não reduzir sem risco: ECOSIF_ENABLE_RUNTIME=true em Docker/ECS; URLs das APIs (6 paths ou ECOSIF_API_BASE_URL + defaults); porta HTTP (ECOSIF_ANGULAR_PORT ou APP_PORT); ECOSIF_APP_NAME ou APP_NAME.

Runtime no contentor (resumo)

ECOSIF_*  →  docker-entrypoint.sh / ecosif-env-map.sh
                ├─ config.json   (AppConfig / login / MSAL / GIS)
                ├─ env.js        (window.env → environment / services)
                └─ validação: URLs e token iguais entre os dois ficheiros