Skip to content

Componentes Principais da Aplicação

Considera-se componentes principais da aplicação o conjunto de componentes que viabilizam o uso do e-SUS AF para os fins aos quais foi projetado. Ou sejam, ofertam para o usuário final da aplicação a experiência de realizar operações administrativas (entradas, saídas, emissão de relatórios básicos e outros) e clínica (dispensação ou fornecimento de medicamentos).

Neste contexto, temos os seguintes componentes principais:

  • Aplicação WEB (Frontend)
  • API (Back-end)
  • Banco de Dados
  • Serviço de cache

Aplicação WEB (Frontend)

A interface Web é um dos corações da aplicação e é responsável por viabilizar a interação do usuário da aplicação com o sistema. Este componente foi desenvolvido em React.js.
De forma geral, poucas configurações são necessárias e apenas algumas variáveis de ambiente devem ser configuradas para o correto funcionamento deste componente.

# Exemplo de configuração de variáveis de ambiente para o frontend

# Define a URL base do componente de API do e-SUS AF.
VAR__API_URL=https://example.com/api

# Define a URL de logout conforme documentação GOV.BR
VAR__GOV_BR_LOGOUT_URL=https://sso.acesso.gov.br/logout

# Define a URL de callback do e-SUS AF, corresponde a rota de frontend /auth/callback/govbrlogout.
VAR__GOV_BR_LOGOUT_CALLBACK_ROUTE=/auth/callback/govbrlogout

Note

Durante o processo de build, as variáveis de ambiente são substituídas. Isso permite criar uma imagem Docker flexível e reutilizável para diferentes ambientes. Em código, as variáveis possuem o prefixo VITE_APP_ substituido em tempo de build pelo prefixo VAR__.

API (Back-end)

O Back-end do e-SUS AF carrega toda a lógica de negócio e é responsável por interagir com a camada de persistência. Contruído em Node.JS usando o framework Nest.JS, trata-se de um componente extremamente flexível e poderoso.
Para configurá-lo corretamente, deverão ser aplicadas variáveis de ambiente. Há uma grande gama de configurações que devem ser realizadas conforme o ambiente e características específicas a serem gerenciadas. Abaixo, uma descrição detalhada de cada uma delas.

# Exemplo de configuração de variáveis de ambiente para o backend

#CONFIGURAÇÕES GERAIS DA API

# Porta onde a API é exposta
PORT=5000

# Modo da API (development ou production)
NODE_ENV=production

# Tempo para expiração do token de acesso JWT
JWT_EXPIRES_IN=15m

# Tempo para expiração do Refresh Token
JWT_REFRESH_EXPIRES_IN=1h

# Material usado para criptografia de senhas, chaves e outros recursos da aplicação
SECRET_KEY=vOVH6sdmpNWjRRIqCc7rdxs01lwHzfr3

# Define a localização do conjunto de chaves pública e privada usadas para criptografia do token JWT
# Caso nenhum PATH seja informado, a aplicação criará as chaves e adicionará em um diretório defaul
KEY_PATH=

# Define o idioma default e de fallback da aplicação
DEFAULT_LANGUAGE=pt-br
I18N_FALLBACK_LANGUAGE=pt-br

# URL onde a API é exposta
API_URL=http://localhost:5000/api

# URL de login da aplicação no frontend
CLIENT_LOGIN_ROUTE=http://localhost:3000

# CONFIGURAÇÃO DE CLIENTE SMTP PARA ENVIO DE EMAILS
MAIL_HOST=
MAIL_PORT=
MAIL_USER=
MAIL_PASS=
MAIL_FROM=

# CONFIGURAÇÃO DE ACESSO AO BANCO DE DADOS
DB_DIALECT=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE=dbesusaf
DB_SCHEMA=esusaf

# CONFIGURAÇÃO DE ACESSO AO SERVIDOR DE CACHE
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=

# CONFIGURAÇÕES DE TELEMETRIA
# URL para coletor de traces
TELEMETRY_COLLECTOR_URL=http://localhost:4318/v1/traces

# URL para coletor de telemetria
OTLP_ENDPOINT=http://localhost:4318

# Porta onde fica exposta a API de métricas
METRICS_EXPORTER_PORT=8081

# Se adicionado um valor para a Variável LOG_DIR, a aplicação passará a escrever logs em um arquivo
LOG_DIR=/tmp

# Níveis de log conforme RFC 5424 (error, warn, info, http, verbose, debug, silly)
LOG_LEVEL=silly

# Habilita o uso do logger JSON
USE_JSON_LOGGER="true"

# VARIÁVEIS DE AMBIENTE PARA INTEGRAÇÕES
BIAF_URL=BIAF_URL
BIAF_CLIENT_ID=BIAF_CLIENT_ID
BIAF_APIKEY=BIAF_APIKEY
BIAF_STATUS=BIAF_STATUS

# CONFIGURAÇÕES PARA O GOV.BR
GOV_BR_PROVIDER=https://sso.staging.acesso.gov.br
GOV_BR_SERVICE=https://api.staging.acesso.gov.br
GOVBR_AUTH_URL=https://sso.acesso.gov.br/authorize
GOVBR_TOKEN_URL=https://sso.acesso.gov.br/token
GOV_BR_SCOPE=openid+email+profile+govbr_confiabilidades
GOV_BR_CODE_CHALLENGE_METHOD=S256
# Secret ID informado durante o processo de adesão ao GOV.BR
GOV_BR_CLIENT_ID=
# Client Secret informado durante o processo de adesão ao GOV.BR
GOV_BR_CLIENT_SECRET=
# URL de callback informado durante o processo de adesão ao GOV.BR
GOV_BR_CALLBACK_URL={{https://sua_url}}/api/auth/govbr/callback
# URL de login da aplicação no frontend, recebe o token e access token
GOV_BR_LOGIN_ROUTE={{https://sua_url}}/authCallback
# URL de logout da aplicação no frontend
GOV_BR_SSO_LOGOUT_URL={{https://sua_url}}/auth/callback/govbrlogout