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.shnormaliza esses valores e geraassets/config/config.jsoneassets/env.jscom os mesmos dados (validação de paridade no startup). A app lêwindow.env→environment.prod.tse, em produção,config.jsonviaAppConfigService.
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