Skip to content

Aplicações Frontend

Visão Geral

As aplicações de frontend são publicadas majoritariamente como SPAs Angular servidas por Nginx. O padrão da plataforma é construir uma imagem única por UI e injetar configuração em runtime, evitando rebuild por ambiente.

Inventário

Aplicação Stack Porta Output de build Observações
is-core-ui Angular 17 / Node 22 80 /app/IS/ Usa env.js em runtime
is-indicadores-ui Angular 14 / Node legado 80 dist/ Stack mais antiga, ainda usa Karma
is-notification-ui Angular 17 / Node 22 80 dist/ Build alinhado ao padrão moderno
is-portal-ui Angular 17 / Node 18 80 dist/portal-ui/ Output path customizado
is-regulation-ui Angular 17 / Node 18 80 dist/regulation-ui/ Output path customizado
is-reports-ui Java / WAR / JasperReports 9999 WAR Exceção: não é Angular apesar do sufixo -ui

Padrão de Build Angular

O fluxo dominante para as UIs Angular é:

```dockerfile FROM node:22 AS dependencies WORKDIR /app COPY package.json ./ RUN npm install --legacy-peer-deps

FROM dependencies AS build COPY . ./ ENV NODE_OPTIONS="--max-old-space-size=8192" RUN npm run build --prod

FROM nginx:alpine COPY --from=build /app/dist/ /usr/share/nginx/html/ EXPOSE 80 ```

Mesmo padrão, outputs diferentes

O padrão de Dockerfile é similar entre as UIs, mas o diretório final do build varia por projeto. is-core-ui publica em /app/IS/, is-portal-ui em dist/portal-ui/ e is-regulation-ui em dist/regulation-ui/.

Configuração em Runtime

As UIs Angular não dependem de recompilar a imagem para cada ambiente. Em vez disso:

  1. A imagem é construída uma vez
  2. Um env.js é montado por ConfigMap, volume ou script de startup
  3. A UI lê endpoints, ambiente e flags a partir de window.__env

Isso permite reutilizar a mesma imagem em HML e NOX.

Detalhes por Aplicação

is-core-ui

  • É a referência principal para o padrão Angular moderno da plataforma.
  • Build com Node 22.
  • Output em /app/IS/, não em dist/.
  • Testes com Jest e jest-preset-angular.

is-indicadores-ui

  • É a UI mais antiga deste grupo.
  • Usa Angular 14.2 e tooling legado.
  • O projeto ainda usa Karma em vez de Jest.
  • Deve ser documentado como exceção de manutenção, porque não segue o padrão Angular 17 das demais UIs.

is-notification-ui

  • Segue o padrão moderno de Angular 17 com Jest.
  • O Helm chart é simples: porta 80, probes HTTP e secret de configuração da app.

is-portal-ui

  • Angular 17, mas com Node 18 no build observado.
  • O ponto mais importante para troubleshooting é o outputPath, que publica em dist/portal-ui/.
  • O Nginx precisa servir uma SPA com fallback para index.html.

is-regulation-ui

  • Parecida com is-portal-ui, também usa Node 18.
  • O build sai em dist/regulation-ui/.
  • O roteamento e o path do chart precisam permanecer coerentes com esse output.

is-reports-ui

Exceção tecnológica

O is-reports-ui não é uma UI Angular. O projeto é Java, empacota WAR e roda na porta 9999 com bibliotecas de relatórios como JasperReports e Stimulsoft.

  • Mantém o sufixo -ui por contexto funcional, não por stack técnica.
  • Deve ser lido junto do is-reports-api e dos charts especiais.
  • Requer memória mais alta no runtime do que uma UI Nginx típica.

Chart e Deploy

Nas UIs Angular, o chart normalmente precisa de:

  • ExternalSecret da configuração da app
  • imagePullSecrets vindos de system/global-pull-secrets
  • Service na porta 80
  • HTTPRoute com hostname do tenant e path da UI

Para requisitos detalhados de chart e diferenças por app, consulte Requisitos por Aplicação e Charts Especiais.