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

Repositório: disoft/ecosif-angular
Versão (referência): ver package.json (ex.: 0.0.00.202605273)
Documentação relacionada: README.md

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_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. Variaveis Extra para login

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_AZURE_CLIENT_ID 00000000-0000-0000-0000-000000000000 Id do client na Azure
ECOSIF_AZURE_TENANT_ID 00000000-0000-0000-0000-000000000000 Id do tenant na Azure
ECOSIF_AZURE_AUTHORITY https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000 Url de autorização para login usando Azure

As três variáveis abaixo são obrigatórias em conjunto. Se faltar uma, enableAzureAuth será 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).

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.0.00.202605273 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_ENABLE_RUNTIME", "value": "true" },
  { "name": "ECOSIF_ENVIRONMENT", "value": "dev" },
  { "name": "ECOSIF_ENABLE_LOCAL_AUTH", "value": "true" },

  { "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_ANGULAR_DEBUG", "value": "false" },
  { "name": "ECOSIF_ANGULAR_HIDE_ADMIN_MENU", "value": "false" },
  { "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).
ECOSIF_VERSION Não Default no entrypoint; alinhar com package.json em releases.
ECOSIF_AZURE_* (3) Não Só se usar login Microsoft; sem elas, enableAzureAuth=false.
ECOSIF_ENABLE_LOCAL_AUTH Não Default true.
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.

Aliases legados (evitar em deploys novos): ECOSIF_ANGULAR_PRODUCTION, IS_PROD, API_BASE_URL, AUTH_TOKEN, IS_DEBUG — o entrypoint aceita, mas prefira ECOSIF_ENABLE_RUNTIME.

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).

Runtime no contentor (resumo)

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