Esta página estabelece as diretrizes arquiteturais a serem adotadas pelas equipes de desenvolvimento de software sob responsabilidade do Datasus, bem como nos projetos que venham a ser por ele internalizados.
A definição baseou-se nas normas governamentais e ministeriais relacionadas ao tema, nas melhores práticas de mercado e no planejamento estratégico do Datasus.
O escopo abarca os seguintes tópicos:
Portabilidade de SGBDs: Deverá ser utilizado framework de mapeamento objeto-relacional (ORM) na camada de persistência para a abstração do acesso ao banco de dados, exceto em situações excepcionais, a serem avaliadas em conjunto com a equipe da COATIC.
Reuso de componentes: Todos os componentes deverão ser construídos prevendo alto grau de desacoplamento, visando a garantir seu reuso em outros projetos.
Portabilidade de código: O desenvolvimento de aplicações para dispositivos móveis deverá produzir código multiplataforma, permitindo a publicação sem alterações nas principais lojas de aplicativos, bem como no conceito PWA (Progressive Web App).
Utilização de padrões arquiteturais agnósticos: A concepção de novas soluções deverá ser agnóstica com relação à infraestrutura de produção, ou seja, não pode estar vinculada a produtos específicos de provedores nem fornecedores de soluções externas ao Datasus. Além disso, deverá, preferencialmente, seguir a a arquitetura de microsserviços.
Controle de inatividade: O sistema deverá ter controle de tempo para expiração do token de acesso quando o usuário do sistema não executar operações que gerem a comunicação com o servidor de aplicação. Quando expirado, o usuário deverá autenticar-se novamente.
Interfaces de usuário amigáveis e dinâmicas: A interface de usuário deve contemplar a usabilidade e acessibilidade da aplicação, seguindo os padrões visuais adotados pelo Governo Federal, baseados no Modelo de Acessibilidade em Governo Eletrônico (eMAG).
Envio de e-mail: Será́ utilizada a estrutura de servidores SMTP do Datasus para o envio de e-mail.
Paginação de dados: Sempre que possível, deverá adotada a estratégia de paginação sob demanda, visando a evitar a sobrecarga do banco de dados e do tráfego de rede.
Processamento em lote: Rotinas de processamento em lote devem ser implementadas em módulos independentes nos projetos e sua execução deverá suportar agendamento.
Processamento assíncrono: Requisições com duração acima de 10 segundos deverão deverá fazer uso de fila de processamento, executada de forma assíncrona.
Exclusão lógica de dados: Por restrições legais, informações não serão excluídas do banco de dados e, em função disso, deverá ser aplicada a exclusão lógica de dado. Cada tabela terá um atributo para indicar se o registro está́ ativo ou não, conforme Metodologia de Administração de Dados do Datasus (disponível em https://datasus.saude.gov.br/metodologia-de-administracao-de-dados-mad/), Caso exista um mecanismo de registro de trilhas de auditoria na tabela, a exclusão logica é opcional.
Trilhas de auditoria: O registro de trilhas de auditoria será́ feito automaticamente por meio de mecanismos internos do banco de dados.
A aplicação deverá integrar-se ao framework comum do Datasus para gravar os dados e endereço IP do usuário, a cada operação de inclusão, alteração e exclusão de registros.
Armazenamento de arquivos: O armazenamento de arquivos nas aplicações deverá usar a API corporativa provida pelo Datasus.
Serviço de descoberta: Todo serviço web deverá ser publicado utilizando Serviço de Descoberta, visando a manter lista atualizada das instâncias dos serviços e não entregar tráfego em servidores indisponíveis.
Exportação massiva de dados: A exportação de grande volume de dados deverá ser previamente analisada, caso a caso, em conjunto com a equipe de arquitetura do Datasus.
Indexação e pesquisa textual: As aplicações que envolvam indexação e pesquisa textual deverão ter as finalidades prioritárias de registro de logs e de pesquisa de textos.
As ferramentas de indexação e pesquisa textual não poderão ser acessadas diretamente por código front-end. Além disso, não devem ser usadas para réplica de banco (relacional, noSQL), ainda que a finalidade seja a construção de BI.
Segurança dos sistemas: Os sistemas deverão seguir as políticas de segurança do Ministério da Saúde, implementando autenticação baseada em OAuth e adotando soluções de segurança para tratar os dez maiores riscos em aplicações Web publicados pela comunidade OWASP.
A publicação de código em ambiente de produção será precedida de validação da sua qualidade, bem como de verificação do seu ambiente operacional e das suas dependências.
Logs: Os sistemas deverão registrar as principais ocorrências relevantes à aplicação, abrangendo obrigatoriamente: login e logout de usuário (nome de usuário, data, hora e endereço IP); erros e exceções não programados.
Trilhas de auditoria: Operações de escrita registradas em trilhas de auditoria, com identificação do usuário, operação executada e data/hora.
A adoção de novas tecnologias pelo Datasus, tais como ferramentas de inteligência artificial, de ciência de dados, de automação de processos de negócios, de processamento de linguagem natural etc., será precedida de análise prévia em conjunto com a equipe de arquitetura do Datasus, com vistas à definição dos padrões mínimos a serem adotados.