Pular para o conteúdo principal

Overview

Introdução ao documento

Este documento é um inventário técnico do repositório, construído apenas com base em evidências versionadas no workspace analisado. Sempre que um item depender de leitura contextual do código, ele será marcado como Inferência controlada; quando houver comprovação direta em arquivo versionado, ele será marcado como Fato observado.

Critério desta leitura

  • Fato observado: há arquivo e linha que sustentam a afirmação.
  • Inferência controlada: a conclusão deriva da composição dos arquivos lidos e permanece sujeita a validação do time.
  • Pendência: ponto relevante para o inventário sem prova suficiente para fechamento.

Evidências:

Versionamento

Fato observado

  • O repositório possui uma esteira de governança de documentação que valida docs/overview.md, demais documentos em docs/, e seções obrigatórias em README.md.
  • O versionamento operacional do software acontece em GitHub Actions, com build em qualquer branch e deploy condicionado a main e release.

Inferência controlada

  • A expectativa de manutenção deste documento é “docs as code”: mudanças técnicas relevantes devem atualizar a documentação no mesmo fluxo de pull request.

Evidências:

Referencial teórico

Fato observado

  • O repositório já adota OpenAPI, ADR e documentação arquitetural em docs/.
  • Storybook está configurado com autodocs.

Inferência controlada

  • O inventário abaixo usa como base conceitual C4 Model para visão estrutural, OpenAPI para contratos HTTP, ADR para decisões arquiteturais e runbooks para operação.

Evidências:

Propósito do repo

Fato observado

  • O README.md identifica o projeto como “Dhedalos - Frontend de Cadastros”.
  • O fluxo principal exposto em app/ cobre detalhe de curso, inscrição, confirmação por OTP, confirmação de cadastro, escolha de turma, manutenção e redirecionamento para grupo.
  • A autenticação do fluxo de inscrição combina NextAuth com provider de credenciais cpf e uma integração opcional AMEI/Keycloak via @dhedalos/auth.

Inferência controlada

  • O propósito operacional do repositório é servir como frontend de onboarding/cadastro de participantes, atuando também como uma camada fina de API interna para integrar WordPress, WhatsApp, Datadog, Meta e AMEI.

Evidências:

Entrypoints

Fato observado

  • Entrypoint web raiz: / retorna um componente vazio.
  • Entrypoint global da aplicação: app/layout.tsx injeta sessão, providers, Datadog, Meta Pixel, favicon e configuração runtime.
  • Entrypoints de páginas: /{slug}, /{slug}/inscricao, /{slug}/inscricao/codigo, /{slug}/inscricao/confirmacao, /{slug}/inscricao/turma, /grupo/{uid} e /maintenance.
  • Entrypoints HTTP internos via pages/api/: /api/health, /api/liveness, /api/readiness, /api/auth/[...nextauth], /api/config/keycloak, /api/v1/cursos/{slug}, /api/v1/participantes/{cpf}, /api/v1/otp/send, /api/v1/otp/confirm, /api/v1/flow/resend.
  • Entrypoints HTTP internos via app/api/: /api/envs e /api/meta-conversion.
  • Entrypoint transversal: middleware.ts intercepta rotas não-API para aplicar modo manutenção.
  • Entrypoints de runtime em contêiner: node server.js no Dockerfile principal e npm start no Dockerfile.prod.
  • Entrypoint de subida local por Compose: docker-compose up --build -d.

Inferência controlada

  • O repositório mantém duas superfícies HTTP internas, pages/api e app/api, indicando uma coexistência entre padrões de roteamento do Next.js 14/15.

Evidências:

Principais pastas e responsabilidades

PastaLeituraResponsabilidade inventariadaEvidências
app/Fato observadoRotas App Router, layout global, páginas de produto e app/api.../app/layout.tsx#L32-L67, ../app/%5Bslug%5D/page.tsx#L16-L50, ../app/api/envs/route.ts#L4-L20
pages/api/Fato observadoHandlers HTTP no padrão Pages Router, incluindo health, auth e APIs v1.../pages/api/health.ts#L20-L107, ../pages/api/auth/%5B...nextauth%5D.ts#L25-L155
src/common/Inferência controladaCamada compartilhada de providers, tema, tipos, constantes e utilitários.../src/common/components/providers/Providers.component.tsx#L41-L189, ../src/common/constants/config.ts#L1-L7, ../src/common/theme/index.ts#L1
src/features/Inferência controladaComponentes e adapters orientados às jornadas de curso, inscrição, OTP e confirmação.../src/features/components/CourseDetails/CourseDetails.component.tsx#L1-L9, ../src/features/api/getCourseDetails/index.ts#L1-L2
public/Fato observadoAssets estáticos consumidos pelo app e pelo Storybook, além do mockServiceWorker.js.../.storybook/main.ts#L25-L29, ../Dockerfile#L37-L39, ../public/mockServiceWorker.js#L4-L9
.storybook/Fato observadoConfiguração do Storybook, addons, stories e integração com public/.../.storybook/main.ts#L3-L30, ../.storybook/preview.ts#L1-L18
helm/Fato observadoTemplates Helm de deployment, service, ingress, secret e probes.../helm/templates/deployment.yaml#L35-L78, ../helm/templates/secret.yaml#L12-L60
kubernetes/Fato observadoValues por cluster/namespace para ambientes de deploy.../kubernetes/oke-we-001/essencia-ecosystem/values.yaml#L1-L13, ../kubernetes/oke-we-002/piloto-dhedalos-ecosystem/values.yaml#L1-L11
.github/workflows/Fato observadoPipeline de CI/CD e governança de documentação.../.github/workflows/ci-cd-pipeline.yaml#L13-L153, ../.github/workflows/docs-governance.yml#L10-L77
docs/Fato observadoBaseline de documentação arquitetural, API, dados, operação e ADRs../architecture/c4-component.md, ./api/openapi.yaml, ./adr/0001-architecture-overview.md

Evidências:

Storybook e testes

Fato observado

  • O repositório possui Storybook configurado com @storybook/nextjs, autodocs: true, staticDirs: ["../public"] e stories carregadas de src/**/*.stories.*.
  • O repositório possui Jest configurado com next/jest, testEnvironment: "jsdom", setup em jest.setup.ts e script npm run test:unit.
  • Há evidência versionada de stories em componentes de formulário e de jornadas centrais.
  • Há evidência versionada de testes unitários, mas ela é pontual neste workspace: foram encontrados testes para validateCpf e CourseDetails.

Inferência controlada

  • Storybook hoje é a prática de documentação visual mais madura do repositório.
  • A cobertura automatizada com Jest existe, mas ainda não aparece distribuída de forma ampla pelas features centrais.
  • Não há, neste inventário, evidência versionada de Cypress, Playwright ou outro runner E2E como prática ativa do projeto.

Evidências:

Integrações externas (URL, SDK, credenciais por env)

IntegraçãoFato observadoURL ou padrão de URL observadoSDK/mecanismo observadoCredenciais/config por env observadasEvidências
WordPress backendSim${API_WP_BACKEND_URL}/api/dhedalos/v1/...fetchWithTimeout, sem SDK dedicado observadoAPI_WP_BACKEND_URL, API_WP_BACKEND_TOKEN../src/common/constants/config.ts#L4-L5, ../src/features/api/external/wp/getCustomization/getCustomization.ts#L27-L34, ../src/features/api/external/wp/getUserByCpf/getUserByCpf.ts#L18-L21, ../src/features/api/external/wp/getCourseStatus/getCourseStatus.ts#L17-L20, ../src/features/api/external/wp/getUserEnrollStatus/getUserEnrollStatus.ts#L19-L22, ../src/features/api/external/wp/getGroupLink/getGroupLink.ts#L17-L20, ../src/features/api/external/wp/getMaintenanceMode/getMaintenanceMode.ts#L17-L19
WhatsApp backendSim${API_WHATS_BASE_URL}/otp, /otp/confirmation, /sendtemplatefetchWithTimeout, sem SDK dedicado observadoAPI_WHATS_BASE_URL, API_WHATS_TOKEN../src/common/constants/config.ts#L6-L7, ../src/features/api/external/whats/otpSend/otpSend.ts#L21-L23, ../src/features/api/external/whats/otpConfirm/otpConfirm.ts#L21-L24, ../src/features/api/external/whats/sendFlowTemplate/sendFlowTemplate.ts#L25-L27
Registration backendSim${API_REGISTRATION_BACKEND_URL}/api/v1/person/...fetchWithTimeout, sem SDK dedicado observadoAPI_REGISTRATION_BACKEND_URL, API_REGISTRATION_TOKEN../src/common/constants/config.ts#L2-L3, ../src/features/api/external/registrations/getUserByCpf/getUserByCpf.ts#L22-L24, ../src/features/api/external/registrations/createUser/createUser.ts#L34-L36, ../src/features/api/external/registrations/updateUserById/updateUserById.ts#L40-L42
AMEI/KeycloakSim/api/config/keycloak entrega configuração; .env.example traz https://amei.sebrae.com.br/auth@dhedalos/auth, keycloak-js, UserAuthProviderTOGGLE_AMEI_INTEGRATION, NEXT_AMEI_URL, NEXT_AMEI_REALM, NEXT_AMEI_CLIENT_ID, NEXT_AMEI_SCOPE../package.json#L16-L17, ../package.json#L33-L38, ../pages/api/config/keycloak.ts#L23-L61, ../src/common/components/providers/Providers.component.tsx#L165-L185, ../.env.example#L29-L33
NextAuthSimBase URL local em NEXTAUTH_URLnext-auth, next-auth/reactNEXTAUTH_URL, NEXTAUTH_SECRET../package.json#L38-L38, ../pages/api/auth/%5B...nextauth%5D.ts#L25-L38, ../src/common/components/providers/SessionProvider/SessionProvider.component.tsx#L3-L10
Datadog RUMSimsite: datadoghq.com@datadog/browser-rumNEXT_APP_VERSION, NEXT_DATADOG_APP_ID, NEXT_DATADOG_CLIENT_TOKEN, NEXT_DATADOG_SERVICE_NAME, NEXT_DATADOG_ENV, NEXT_DATADOG_SESSION_SAMPLE_RATE, NEXT_DATADOG_SESSION_REPLAY_SAMPLE_RATE../package.json#L15-L15, ../app/components/DatadogInit.tsx#L12-L25, ../app/api/envs/route.ts#L4-L19
Meta Pixel / Conversions APISimhttps://connect.facebook.net/en_US/fbevents.js, https://www.facebook.com/tr?..., https://graph.facebook.com/v20.0/...next/script + fetch, sem SDK dedicado observadoMETA_PIXEL_ID, META_ACCESS_TOKEN../app/components/MetaPixel.tsx#L22-L44, ../app/api/meta-conversion/route.ts#L4-L10, ../app/api/meta-conversion/route.ts#L35-L43
GitHub PackagesSimhttps://npm.pkg.github.comnpm login + pacotes privados @dhedalos/*build usa NPM_TOKEN como ARG; README pede PAT com read:packages../README.md#L47-L55, ../pnpm-lock.yaml#L847-L857, ../Dockerfile#L4-L16
Registry DockerSimregistry.nuvem.online/weconcept/dhedalos-app-onboarding-nextjsdocker build, docker push, Helm deploycredenciais injetadas no workflow (DOCKER_USERNAME, DOCKER_PASSWORD)../helm/values.yaml#L7-L11, ../.github/workflows/ci-cd-pipeline.yaml#L42-L57

Evidências:

Jobs/cron/queues/workers

Fato observado

  • Há jobs versionados de GitHub Actions para build, deploy-piloto, deploy-essencia, deploy-prod e docs-governance.
  • Há infraestrutura de mock server-side com msw/node, ativada no app/layout.tsx quando NEXT_ENABLE_API_MOCKS=true e NEXT_RUNTIME==="nodejs".
  • Há infraestrutura de mock browser-side com msw/browser e public/mockServiceWorker.js.
  • O MockProvider de browser existe, mas está comentado no Providers, então sua presença no código não prova que ele esteja ativo no fluxo padrão atual.

Inferência controlada

  • Não há evidência versionada local, neste repositório, de cron de aplicação, fila assíncrona, consumer dedicado ou worker server-side além do mecanismo de mocks MSW.

Evidências:

Storage/caches

Fato observado

  • O repositório mantém assets estáticos em public/, copiados para a imagem final e expostos também ao Storybook.
  • O frontend usa sessionStorage com a chave amei_auth para coordenar o fallback de autenticação AMEI no browser.
  • O app usa AppRouterCacheProvider do MUI.
  • Chamadas HTTP compartilhadas usam cache: 'no-store'; a busca de participante por CPF também usa cache: 'no-store' e revalidate: 0.
  • Há estado em memória de processo para métricas/health (requestCount, healthCheckCount, etc.) e para controle de concorrência de autenticação (activeAuthRequests).

Inferência controlada

  • O desenho observado favorece comportamento stateless nas integrações HTTP e mantém apenas estado efêmero em memória de processo e no sessionStorage do browser.
  • Não há, neste repositório, evidência versionada de banco de dados, Redis, Memcached, fila persistente ou object storage dedicado de aplicação.

Evidências:

Variáveis de ambiente encontradas

Aplicação, metadata e toggles

VariávelFato observadoUso observadoEvidências
NEXT_APP_VERSIONDeclarada em .env.example e consumida em /api/envs.Versão exposta ao frontend para Datadog/envs.../.env.example#L1-L1, ../app/api/envs/route.ts#L5-L6
NEXT_ENABLE_API_MOCKSDeclarada em .env.example e consumida no layout.Liga mock server-side MSW em runtime Node.../.env.example#L4-L4, ../app/layout.tsx#L12-L20
TOGGLE_AMEI_INTEGRATIONDeclarada em .env.example, consumida em rota/config e utilitário.Habilita integração AMEI/Keycloak.../.env.example#L35-L36, ../pages/api/config/keycloak.ts#L23-L25, ../src/common/util/toggles/toggleAmeiIntegration.ts#L1-L3
TOGGLE_INSCRIPTION_FALLBACKDeclarada em .env.example e consumida em utilitário.Permite fallback por query param fallback.../.env.example#L36-L37, ../src/common/util/inscriptionFallback/inscriptionFallback.ts#L1-L4
METADATA_SITE_NAMEDeclarada e consumida.Título do app.../.env.example#L39-L40, ../app/layout.tsx#L23-L28
METADATA_SITE_DESCRIPTIONDeclarada e consumida.Descrição do app.../.env.example#L40-L41, ../app/layout.tsx#L25-L28
METADATA_SHOW_COMPANY_BRANDDeclarada e consumida.Injeta flag em globalThis.../.env.example#L41-L42, ../app/layout.tsx#L33-L38, ../app/layout.tsx#L48-L57
METADATA_SUPPORT_URLDeclarada e consumida.Injeta URL de suporte em globalThis.../.env.example#L42-L43, ../app/layout.tsx#L34-L35, ../app/layout.tsx#L52-L56
METADATA_PRIVACY_POLICY_URLDeclarada e consumida.Injeta URL de privacidade em globalThis.../.env.example#L43-L44, ../app/layout.tsx#L35-L35, ../app/layout.tsx#L52-L56
METADATA_FAVICON_URLDeclarada e consumida.URL base para favicon dinâmico.../.env.example#L44-L45, ../app/layout.tsx#L38-L45

Evidências:

Autenticação e integrações

VariávelFato observadoUso observadoEvidências
NEXTAUTH_URLDeclarada em .env.example, usada em readiness e Helm secret.Base URL para NextAuth/readiness/deploy.../.env.example#L17-L19, ../pages/api/readiness.ts#L25-L32, ../helm/templates/secret.yaml#L13-L19
NEXTAUTH_SECRETDeclarada em .env.example, usada em auth/readiness/Helm.Segredo de sessão JWT.../.env.example#L18-L19, ../pages/api/auth/%5B...nextauth%5D.ts#L25-L27, ../pages/api/readiness.ts#L25-L32, ../helm/templates/secret.yaml#L19-L19
NEXT_AMEI_URLDeclarada em .env.example, lida por /api/config/keycloak, referida no provider/Helm.URL do Keycloak/AMEI.../.env.example#L29-L33, ../pages/api/config/keycloak.ts#L36-L49, ../src/common/components/providers/Providers.component.tsx#L97-L99, ../helm/templates/secret.yaml#L53-L58
NEXT_AMEI_REALMDeclarada e lida.Realm do Keycloak.../.env.example#L30-L33, ../pages/api/config/keycloak.ts#L37-L49, ../helm/templates/secret.yaml#L55-L58
NEXT_AMEI_CLIENT_IDDeclarada e lida.Client ID do Keycloak.../.env.example#L31-L33, ../pages/api/config/keycloak.ts#L38-L49, ../helm/templates/secret.yaml#L55-L58
NEXT_AMEI_SCOPEDeclarada em .env.example e no Helm secret.Configuração declarada; não há uso explícito localizado no código lido para este inventário.../.env.example#L32-L33, ../helm/templates/secret.yaml#L55-L58
API_WP_BACKEND_URLDeclarada e consumida.Base URL do backend WordPress.../.env.example#L9-L11, ../src/common/constants/config.ts#L4-L5
API_WP_BACKEND_TOKENDeclarada e consumida.Token Svc para WordPress.../.env.example#L9-L11, ../src/common/constants/config.ts#L4-L5, ../src/features/api/external/wp/getUserByCpf/getUserByCpf.ts#L8-L12
API_WHATS_BASE_URLDeclarada e consumida.Base URL do backend WhatsApp.../.env.example#L13-L15, ../src/common/constants/config.ts#L6-L7
API_WHATS_TOKENDeclarada e consumida.Token Bearer para APIs de OTP/template.../.env.example#L13-L15, ../src/common/constants/config.ts#L6-L7, ../src/features/api/external/whats/otpSend/otpSend.ts#L10-L15
API_REGISTRATION_BACKEND_URLDeclarada em .env.example, Helm secret e consumida por adapters.Base URL do backend de registration.../.env.example#L5-L7, ../helm/templates/secret.yaml#L28-L31, ../src/common/constants/config.ts#L2-L3
API_REGISTRATION_TOKENDeclarada em .env.example, Helm secret e consumida por adapters.Token Bearer para registration backend.../.env.example#L5-L7, ../helm/templates/secret.yaml#L28-L31, ../src/common/constants/config.ts#L2-L3
API_CLASSES_BACKEND_URLDeclarada em .env.example, Helm secret e exposta em config compartilhada.Disponível em config.ts; nenhuma chamada direta foi aberta neste inventário.../.env.example#L5-L6, ../helm/templates/secret.yaml#L25-L27, ../src/common/constants/config.ts#L1-L1

Evidências:

Observabilidade, tracking e infraestrutura de processo

VariávelFato observadoUso observadoEvidências
NEXT_DATADOG_ENVDeclarada e consumida.Ambiente do Datadog RUM.../.env.example#L21-L27, ../app/api/envs/route.ts#L7-L18
NEXT_DATADOG_APP_IDDeclarada e consumida.applicationId do Datadog RUM.../.env.example#L21-L27, ../app/api/envs/route.ts#L7-L9, ../app/components/DatadogInit.tsx#L12-L19
NEXT_DATADOG_CLIENT_IDDeclarada apenas em .env.example.Nome declarado no exemplo; o código não lê essa chave, e sim NEXT_DATADOG_CLIENT_TOKEN.../.env.example#L22-L24, ../app/api/envs/route.ts#L8-L10
NEXT_DATADOG_CLIENT_TOKENDeclarada no Helm secret e consumida no código.Token cliente do Datadog RUM.../helm/templates/secret.yaml#L45-L51, ../app/api/envs/route.ts#L8-L10, ../app/components/DatadogInit.tsx#L12-L16
NEXT_DATADOG_SERVICE_NAMEDeclarada e consumida.Nome do serviço Datadog.../.env.example#L21-L27, ../app/api/envs/route.ts#L9-L11
NEXT_DATADOG_SESSION_SAMPLE_RATEDeclarada e consumida.Sample rate Datadog.../.env.example#L21-L27, ../app/api/envs/route.ts#L11-L14
NEXT_DATADOG_SESSION_REPLAY_SAMPLE_RATEDeclarada e consumida.Replay sample rate Datadog.../.env.example#L21-L27, ../app/api/envs/route.ts#L15-L17
META_PIXEL_IDConsumida no layout e em /api/meta-conversion; não consta em .env.example.Ativa Meta Pixel e compõe chamada à Conversions API.../app/layout.tsx#L36-L47, ../app/api/meta-conversion/route.ts#L4-L9
META_ACCESS_TOKENConsumida em /api/meta-conversion; não consta em .env.example.Token da Meta Conversions API.../app/api/meta-conversion/route.ts#L4-L10
NODE_ENVConsumida no auth, health, layout e definida nos Dockerfiles.Alterna modo debug/produção e entra em readiness/metadata.../pages/api/auth/%5B...nextauth%5D.ts#L25-L27, ../pages/api/health.ts#L60-L64, ../app/layout.tsx#L36-L37, ../Dockerfile#L41-L42, ../Dockerfile.prod#L38-L40
NEXT_RUNTIMEConsumida no layout.Condiciona ativação do MSW node server.../app/layout.tsx#L12-L20
PORTDefinida nos Dockerfiles.Porta do runtime do contêiner.../Dockerfile#L42-L43, ../Dockerfile.prod#L38-L40
HOSTNAMEDefinida no Dockerfile.Hostname para conexões externas.../Dockerfile#L50-L51
NODE_OPTIONSDefinida no Dockerfile.Ajustes de memória, header size e GC.../Dockerfile#L44-L49
UV_THREADPOOL_SIZEDefinida no Dockerfile.Limita thread pool do Node.../Dockerfile#L48-L49

Evidências:

Variáveis presentes apenas em templates de deploy

VariávelFato observadoUso observado no repositório lidoEvidências
API_REGISTRATION_METHODPresente no Helm secret.Placeholder de deploy; não foi encontrado consumo explícito nos arquivos lidos para este inventário.../helm/templates/secret.yaml#L28-L31
API_LARAVEL_BACKEND_URLPresente no Helm secret.Placeholder de deploy; não foi encontrado consumo explícito nos arquivos lidos para este inventário.../helm/templates/secret.yaml#L41-L43
API_LARAVEL_BACKEND_TOKENPresente no Helm secret.Placeholder de deploy; não foi encontrado consumo explícito nos arquivos lidos para este inventário.../helm/templates/secret.yaml#L41-L43

Evidências:

Comandos de run/test/build

Fato observado

  • Scripts NPM disponíveis: dev, build, start, lint, start:storybook, build:storybook, test:unit.
  • Build principal de imagem: pnpm run build no Dockerfile.
  • Build alternativo de imagem: npm run build no Dockerfile.prod.
  • Subida local por Compose: docker-compose up --build -d.
  • No CI/CD, o workflow executa docker build, docker push e helm upgrade --install.

Inferência controlada

  • O fluxo de desenvolvimento local mais provável é npm run dev; o fluxo de validação local mais explícito no repositório é npm run test:unit.

Evidências:

Pendências

Evidências:

Achados x Evidências

AchadoEvidências
O repositório é um frontend Next.js de onboarding/cadastro com UI em app/ e APIs internas em pages/api/ e app/api/.../app/layout.tsx#L32-L67, ../app/%5Bslug%5D/page.tsx#L16-L50, ../pages/api/health.ts#L20-L107, ../app/api/envs/route.ts#L4-L20
O fluxo principal cobre detalhe do curso, inscrição, OTP, confirmação, turma, grupo e manutenção.../app/%5Bslug%5D/page.tsx#L16-L50, ../app/%5Bslug%5D/inscricao/page.tsx#L12-L29, ../app/%5Bslug%5D/inscricao/codigo/page.tsx#L8-L19, ../app/%5Bslug%5D/inscricao/confirmacao/page.tsx#L8-L19, ../app/%5Bslug%5D/inscricao/turma/page.tsx#L1-L16, ../app/grupo/%5Buid%5D/page.tsx#L12-L44, ../app/maintenance/page.tsx#L17-L50
A autenticação combina NextAuth e AMEI/Keycloak opcional.../pages/api/auth/%5B...nextauth%5D.ts#L25-L155, ../pages/api/config/keycloak.ts#L23-L61, ../src/common/components/providers/Providers.component.tsx#L165-L185
As integrações runtime comprovadas são WordPress, WhatsApp, Registration backend, Datadog, Meta e AMEI/Keycloak.../src/common/constants/config.ts#L1-L7, ../src/features/api/external/wp/getCustomization/getCustomization.ts#L27-L34, ../src/features/api/external/whats/otpSend/otpSend.ts#L21-L23, ../src/features/api/external/registrations/getUserByCpf/getUserByCpf.ts#L22-L24, ../app/components/DatadogInit.tsx#L12-L25, ../app/api/meta-conversion/route.ts#L35-L43
A operação usa Docker, Helm, Kubernetes e GitHub Actions.../Dockerfile#L1-L58, ../docker-compose.yml#L1-L24, ../helm/templates/deployment.yaml#L35-L78, ../kubernetes/oke-we-001/essencia-ecosystem/values.yaml#L1-L13, ../.github/workflows/ci-cd-pipeline.yaml#L13-L153
Há jobs de CI/CD e uma camada de mocks MSW; não há prova local equivalente para cron/fila de aplicação.../.github/workflows/ci-cd-pipeline.yaml#L13-L153, ../.github/workflows/docs-governance.yml#L10-L77, ../app/layout.tsx#L12-L20, ../src/common/components/providers/MockProvider/util/node.ts#L1-L4, ../src/common/components/providers/MockProvider/util/browser.ts#L1-L4
O armazenamento explícito observado é estático (public/), memória de processo, sessionStorage e cache de UI do MUI; as requisições de dados privilegiam no-store.../.storybook/main.ts#L25-L29, ../Dockerfile#L37-L39, ../pages/api/health.ts#L3-L7, ../pages/api/auth/%5B...nextauth%5D.ts#L11-L23, ../src/common/components/AuthProtected/AuthProtected.component.tsx#L14-L20, ../src/common/util/fetchWithTimeout.ts#L31-L39
Há divergência material nas variáveis de Datadog e lacunas no .env.example para Meta.../.env.example#L21-L27, ../app/api/envs/route.ts#L8-L10, ../helm/templates/secret.yaml#L45-L51, ../app/api/meta-conversion/route.ts#L4-L10