Shell orquestrador da plataforma Vyracare, responsavel por autenticacao, navegacao principal e carregamento dos micro-frontends via Module Federation.
O vyracare-app-shell centraliza:
- fluxo de login, registro, primeiro acesso e recuperacao de senha
- protecao de rotas autenticadas
- layout principal da aplicacao com
vc-navbarevc-sidebar - carregamento dos MFEs remotos
- configuracao dos endpoints de autenticacao e dos
remoteEntry.js
O shell e uma aplicacao Angular standalone que atua como host dos micro-frontends.
Hoje ele carrega os seguintes remotos:
dashboardcaminho:/dashboardremote entry:dashboardRemoteEntrycadastro de pacientescaminho:/cadastro/pacientesremote entry:userRemoteEntrycadastro de funcionarioscaminho:/cadastro/funcionariosremote entry:profileRemoteEntrycadastro de procedimentoscaminho:/cadastro/procedimentosremote entry:proceedingsRemoteEntry
As rotas estao definidas em app.routes.ts.
src/app/pagestelas locais do shell, principalmente autenticacao e tela de errosrc/app/components/wrappercasca principal da aplicacao autenticadasrc/app/guardsguardas de autenticacaosrc/app/services/authintegracao com login e sessaosrc/environmentsURLs da API de autenticacao e dos micro-frontends
O shell utiliza @vyracare/design-system como base visual.
Os componentes principais do layout sao:
vc-navbarvc-sidebarvc-buttonvc-headingvc-text
O wrapper tambem monta a sidebar dinamicamente com base nas rotas realmente disponiveis no shell, evitando exibir itens sem rota correspondente.
Arquivo principal do wrapper:
- wrapper.component.ts
Os arquivos de ambiente concentram:
- URL base da API de autenticacao
remoteEntryde cada MFE
Valores atuais da API de autenticacao:
dev:https://axswteu0u1.execute-api.us-east-1.amazonaws.com/api/authhml:https://jkvfvgsw4l.execute-api.us-east-1.amazonaws.com/api/authprod:https://bj6riwfeni.execute-api.us-east-1.amazonaws.com/api/auth
Arquivos:
- environments.ts
- environments.dev.ts
- environments.hml.ts
- environments.prod.ts
Em desenvolvimento local, os remotos apontam para localhost.
No environment.dev.ts, os remotos e a API apontam para os endpoints publicados do ambiente dev.
Em hml e prod, os remotos apontam para dominios CloudFront publicados por cada MFE.
Antes de instalar dependencias, autentique no CodeArtifact:
npm run codeartifact:loginDepois:
npm install
npm startAplicacao local:
http://localhost:4200
Para o shell funcionar completamente em desenvolvimento, os remotos esperados sao:
dashboardemhttp://localhost:4201useremhttp://localhost:4202profileemhttp://localhost:4203proceedingsemhttp://localhost:4204
Se algum remoto nao estiver disponivel, o shell trata a falha e redireciona para a tela local de erro.
npm start
npm run build
npm test
npm run watchScript adicional:
npm run run:allEsse comando pode ser usado quando o ecossistema local estiver preparado para subir host e remotos em conjunto.
Os testes unitarios usam Jest.
npm testO projeto publica a partir da branch develop, utilizando a esteira Angular reutilizavel do repositorio vyracare-infra-pipes-angular.
O deploy de producao depende de:
- build Angular
- bucket S3
- distribuicao CloudFront
- atualizacao dos artefatos publicados
Quando um novo MFE precisar ser incorporado ao shell, o fluxo esperado e:
- publicar o novo
remoteEntry.js - adicionar a nova propriedade no
environment - mapear a nova rota em
app.routes.ts - incluir o item correspondente na navegacao do wrapper, se necessario
No fluxo mais recente do template Angular, a propria esteira do MFE pode atualizar automaticamente o remoteEntry no shell consumidor quando o repositorio do orquestrador estiver configurado.
Os commits deste repositorio devem ser escritos em portugues.
Padrao recomendado:
feat: adiciona carregamento do mfe de perfilfix: corrige url de autenticacao no ambiente de homologacaodocs: atualiza explicacao do fluxo de deploy