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:
../app/layout.tsx#L1-L67../package.json#L1-L81../.github/workflows/ci-cd-pipeline.yaml#L1-L153../.github/workflows/docs-governance.yml#L1-L77
Versionamento
Fato observado
- O repositório possui uma esteira de governança de documentação que valida
docs/overview.md, demais documentos emdocs/, e seções obrigatórias emREADME.md. - O versionamento operacional do software acontece em GitHub Actions, com build em qualquer branch e deploy condicionado a
mainerelease.
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:
../.github/workflows/docs-governance.yml#L17-L77../.github/workflows/ci-cd-pipeline.yaml#L3-L12../.github/workflows/ci-cd-pipeline.yaml#L59-L153
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:
../docs/api/openapi.yaml../docs/adr/0001-architecture-overview.md../docs/architecture/c4-component.md../.storybook/main.ts#L3-L29
Propósito do repo
Fato observado
- O
README.mdidentifica 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
NextAuthcom provider de credenciaiscpfe 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:
../README.md#L1-L5../app/%5Bslug%5D/page.tsx#L16-L47../app/%5Bslug%5D/inscricao/page.tsx#L12-L27../app/%5Bslug%5D/inscricao/codigo/page.tsx#L8-L17../app/%5Bslug%5D/inscricao/confirmacao/page.tsx#L8-L17../app/%5Bslug%5D/inscricao/turma/page.tsx#L1-L16../app/grupo/%5Buid%5D/page.tsx#L12-L41../app/maintenance/page.tsx#L17-L50../pages/api/auth/%5B...nextauth%5D.ts#L25-L155../src/common/components/providers/Providers.component.tsx#L13-L19../src/features/components/CourseRegistration/CourseRegistration.component.tsx#L23-L31
Entrypoints
Fato observado
- Entrypoint web raiz:
/retorna um componente vazio. - Entrypoint global da aplicação:
app/layout.tsxinjeta 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/envse/api/meta-conversion. - Entrypoint transversal:
middleware.tsintercepta rotas não-API para aplicar modo manutenção. - Entrypoints de runtime em contêiner:
node server.jsnoDockerfileprincipal enpm startnoDockerfile.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/apieapp/api, indicando uma coexistência entre padrões de roteamento do Next.js 14/15.
Evidências:
../app/page.tsx#L1-L7../app/layout.tsx#L12-L67../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../pages/api/health.ts#L20-L107../pages/api/liveness.ts#L8-L30../pages/api/readiness.ts#L8-L82../pages/api/auth/%5B...nextauth%5D.ts#L25-L155../pages/api/config/keycloak.ts#L14-L65../pages/api/v1/cursos/%5Bslug%5D.ts#L5-L29../pages/api/v1/participantes/%5Bcpf%5D.ts#L6-L54../pages/api/v1/otp/send.ts#L6-L39../pages/api/v1/otp/confirm.ts#L8-L58../pages/api/v1/flow/resend.ts#L7-L45../app/api/envs/route.ts#L4-L20../app/api/meta-conversion/route.ts#L7-L47../middleware.ts#L4-L41../Dockerfile#L57-L58../Dockerfile.prod#L45-L46../compose.sh#L1-L4
Principais pastas e responsabilidades
| Pasta | Leitura | Responsabilidade inventariada | Evidências |
|---|---|---|---|
app/ | Fato observado | Rotas 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 observado | Handlers 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 controlada | Camada 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 controlada | Componentes 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 observado | Assets 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 observado | Configuração do Storybook, addons, stories e integração com public/. | ../.storybook/main.ts#L3-L30, ../.storybook/preview.ts#L1-L18 |
helm/ | Fato observado | Templates Helm de deployment, service, ingress, secret e probes. | ../helm/templates/deployment.yaml#L35-L78, ../helm/templates/secret.yaml#L12-L60 |
kubernetes/ | Fato observado | Values 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 observado | Pipeline 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 observado | Baseline de documentação arquitetural, API, dados, operação e ADRs. | ./architecture/c4-component.md, ./api/openapi.yaml, ./adr/0001-architecture-overview.md |
Evidências:
../src/common/components/providers/Providers.component.tsx#L41-L189../src/features/components/CourseDetails/CourseDetails.component.tsx#L1-L9../.storybook/main.ts#L3-L30../helm/templates/deployment.yaml#L35-L78
Storybook e testes
Fato observado
- O repositório possui Storybook configurado com
@storybook/nextjs,autodocs: true,staticDirs: ["../public"]e stories carregadas desrc/**/*.stories.*. - O repositório possui Jest configurado com
next/jest,testEnvironment: "jsdom", setup emjest.setup.tse scriptnpm 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
validateCpfeCourseDetails.
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:
../package.json#L5-L12../package.json#L45-L70../.storybook/main.ts#L3-L30../.storybook/preview.ts#L1-L19../jest.config.ts#L9-L32../jest.setup.ts#L1-L1../src/common/components/formik/SelectField/SelectField.stories.tsx#L1-L1../src/common/components/formik/TextField/TextField.stories.tsx#L1-L1../src/features/components/ClassRegistration/ClassRegistration.stories.tsx#L1-L1../src/features/components/CourseDetails/CourseDetails.stories.tsx#L1-L1../src/features/components/CourseRegistration/CourseRegistration.stories.tsx#L1-L1../src/features/components/OTPConfirmation/OTPConfirmation.stories.tsx#L1-L1../src/features/components/SignupConfirmation/SignupConfirmation.stories.tsx#L1-L1../src/common/util/person/document/validateCpf/validateCpf.spec.ts#L1-L1../src/features/components/CourseDetails/CourseDetails.spec.tsx#L1-L1
Integrações externas (URL, SDK, credenciais por env)
| Integração | Fato observado | URL ou padrão de URL observado | SDK/mecanismo observado | Credenciais/config por env observadas | Evidências |
|---|---|---|---|---|---|
| WordPress backend | Sim | ${API_WP_BACKEND_URL}/api/dhedalos/v1/... | fetchWithTimeout, sem SDK dedicado observado | API_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 backend | Sim | ${API_WHATS_BASE_URL}/otp, /otp/confirmation, /sendtemplate | fetchWithTimeout, sem SDK dedicado observado | API_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 backend | Sim | ${API_REGISTRATION_BACKEND_URL}/api/v1/person/... | fetchWithTimeout, sem SDK dedicado observado | API_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/Keycloak | Sim | /api/config/keycloak entrega configuração; .env.example traz https://amei.sebrae.com.br/auth | @dhedalos/auth, keycloak-js, UserAuthProvider | TOGGLE_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 |
| NextAuth | Sim | Base URL local em NEXTAUTH_URL | next-auth, next-auth/react | NEXTAUTH_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 RUM | Sim | site: datadoghq.com | @datadog/browser-rum | NEXT_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 API | Sim | https://connect.facebook.net/en_US/fbevents.js, https://www.facebook.com/tr?..., https://graph.facebook.com/v20.0/... | next/script + fetch, sem SDK dedicado observado | META_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 Packages | Sim | https://npm.pkg.github.com | npm 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 Docker | Sim | registry.nuvem.online/weconcept/dhedalos-app-onboarding-nextjs | docker build, docker push, Helm deploy | credenciais injetadas no workflow (DOCKER_USERNAME, DOCKER_PASSWORD) | ../helm/values.yaml#L7-L11, ../.github/workflows/ci-cd-pipeline.yaml#L42-L57 |
Evidências:
../src/common/constants/config.ts#L1-L7../app/components/DatadogInit.tsx#L12-L25../app/api/meta-conversion/route.ts#L35-L43../Dockerfile#L4-L16
Jobs/cron/queues/workers
Fato observado
- Há jobs versionados de GitHub Actions para
build,deploy-piloto,deploy-essencia,deploy-prodedocs-governance. - Há infraestrutura de mock server-side com
msw/node, ativada noapp/layout.tsxquandoNEXT_ENABLE_API_MOCKS=trueeNEXT_RUNTIME==="nodejs". - Há infraestrutura de mock browser-side com
msw/browserepublic/mockServiceWorker.js. - O
MockProviderde browser existe, mas está comentado noProviders, 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:
../.github/workflows/ci-cd-pipeline.yaml#L13-L153../.github/workflows/docs-governance.yml#L10-L77../app/layout.tsx#L12-L21../src/common/components/providers/MockProvider/util/node.ts#L1-L4../src/common/components/providers/MockProvider/MockProvider.component.tsx#L6-L27../src/common/components/providers/MockProvider/util/browser.ts#L1-L4../public/mockServiceWorker.js#L4-L9../src/common/components/providers/Providers.component.tsx#L5-L11../src/common/components/providers/Providers.component.tsx#L124-L136../src/common/components/providers/Providers.component.tsx#L167-L187
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
sessionStoragecom a chaveamei_authpara coordenar o fallback de autenticação AMEI no browser. - O app usa
AppRouterCacheProviderdo MUI. - Chamadas HTTP compartilhadas usam
cache: 'no-store'; a busca de participante por CPF também usacache: 'no-store'erevalidate: 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
sessionStoragedo 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:
../.storybook/main.ts#L25-L29../Dockerfile#L37-L39../src/common/components/AuthProtected/AuthProtected.component.tsx#L14-L20../src/features/components/CourseRegistration/CourseRegistration.component.tsx#L62-L64../src/features/components/CourseRegistration/CourseRegistration.component.tsx#L99-L101../src/features/components/CourseRegistration/CourseRegistration.component.tsx#L127-L129../src/features/components/SignupConfirmation/SignupConfirmation.component.tsx#L23-L27../src/common/components/providers/Providers.component.tsx#L126-L133../src/common/components/providers/Providers.component.tsx#L177-L184../src/common/util/fetchWithTimeout.ts#L31-L39../src/features/api/getParticipantDetailsByCpf/getParticipantDetailsByCpf.api.ts#L4-L8../pages/api/health.ts#L3-L7../pages/api/auth/%5B...nextauth%5D.ts#L11-L23
Variáveis de ambiente encontradas
Aplicação, metadata e toggles
| Variável | Fato observado | Uso observado | Evidências |
|---|---|---|---|
NEXT_APP_VERSION | Declarada 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_MOCKS | Declarada 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_INTEGRATION | Declarada 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_FALLBACK | Declarada 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_NAME | Declarada e consumida. | Título do app. | ../.env.example#L39-L40, ../app/layout.tsx#L23-L28 |
METADATA_SITE_DESCRIPTION | Declarada e consumida. | Descrição do app. | ../.env.example#L40-L41, ../app/layout.tsx#L25-L28 |
METADATA_SHOW_COMPANY_BRAND | Declarada e consumida. | Injeta flag em globalThis. | ../.env.example#L41-L42, ../app/layout.tsx#L33-L38, ../app/layout.tsx#L48-L57 |
METADATA_SUPPORT_URL | Declarada 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_URL | Declarada e consumida. | Injeta URL de privacidade em globalThis. | ../.env.example#L43-L44, ../app/layout.tsx#L35-L35, ../app/layout.tsx#L52-L56 |
METADATA_FAVICON_URL | Declarada 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ável | Fato observado | Uso observado | Evidências |
|---|---|---|---|
NEXTAUTH_URL | Declarada 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_SECRET | Declarada 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_URL | Declarada 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_REALM | Declarada 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_ID | Declarada 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_SCOPE | Declarada 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_URL | Declarada e consumida. | Base URL do backend WordPress. | ../.env.example#L9-L11, ../src/common/constants/config.ts#L4-L5 |
API_WP_BACKEND_TOKEN | Declarada 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_URL | Declarada e consumida. | Base URL do backend WhatsApp. | ../.env.example#L13-L15, ../src/common/constants/config.ts#L6-L7 |
API_WHATS_TOKEN | Declarada 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_URL | Declarada 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_TOKEN | Declarada 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_URL | Declarada 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:
../src/common/constants/config.ts#L1-L7../pages/api/config/keycloak.ts#L23-L61../helm/templates/secret.yaml#L21-L58
Observabilidade, tracking e infraestrutura de processo
| Variável | Fato observado | Uso observado | Evidências |
|---|---|---|---|
NEXT_DATADOG_ENV | Declarada e consumida. | Ambiente do Datadog RUM. | ../.env.example#L21-L27, ../app/api/envs/route.ts#L7-L18 |
NEXT_DATADOG_APP_ID | Declarada 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_ID | Declarada 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_TOKEN | Declarada 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_NAME | Declarada e consumida. | Nome do serviço Datadog. | ../.env.example#L21-L27, ../app/api/envs/route.ts#L9-L11 |
NEXT_DATADOG_SESSION_SAMPLE_RATE | Declarada e consumida. | Sample rate Datadog. | ../.env.example#L21-L27, ../app/api/envs/route.ts#L11-L14 |
NEXT_DATADOG_SESSION_REPLAY_SAMPLE_RATE | Declarada e consumida. | Replay sample rate Datadog. | ../.env.example#L21-L27, ../app/api/envs/route.ts#L15-L17 |
META_PIXEL_ID | Consumida 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_TOKEN | Consumida em /api/meta-conversion; não consta em .env.example. | Token da Meta Conversions API. | ../app/api/meta-conversion/route.ts#L4-L10 |
NODE_ENV | Consumida 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_RUNTIME | Consumida no layout. | Condiciona ativação do MSW node server. | ../app/layout.tsx#L12-L20 |
PORT | Definida nos Dockerfiles. | Porta do runtime do contêiner. | ../Dockerfile#L42-L43, ../Dockerfile.prod#L38-L40 |
HOSTNAME | Definida no Dockerfile. | Hostname para conexões externas. | ../Dockerfile#L50-L51 |
NODE_OPTIONS | Definida no Dockerfile. | Ajustes de memória, header size e GC. | ../Dockerfile#L44-L49 |
UV_THREADPOOL_SIZE | Definida no Dockerfile. | Limita thread pool do Node. | ../Dockerfile#L48-L49 |
Evidências:
Variáveis presentes apenas em templates de deploy
| Variável | Fato observado | Uso observado no repositório lido | Evidências |
|---|---|---|---|
API_REGISTRATION_METHOD | Presente 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_URL | Presente 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_TOKEN | Presente 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 buildnoDockerfile. - Build alternativo de imagem:
npm run buildnoDockerfile.prod. - Subida local por Compose:
docker-compose up --build -d. - No CI/CD, o workflow executa
docker build,docker pushehelm 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:
../package.json#L5-L13../Dockerfile#L15-L26../Dockerfile.prod#L8-L17../compose.sh#L1-L4../.github/workflows/ci-cd-pipeline.yaml#L49-L57../.github/workflows/ci-cd-pipeline.yaml#L84-L90../.github/workflows/ci-cd-pipeline.yaml#L116-L121../.github/workflows/ci-cd-pipeline.yaml#L148-L153
Pendências
- Resolver a divergência entre
NEXT_DATADOG_CLIENT_IDem.env.example#L21-L27eNEXT_DATADOG_CLIENT_TOKENusado em../app/api/envs/route.ts#L8-L10e../helm/templates/secret.yaml#L45-L51. - Confirmar se
META_PIXEL_IDeMETA_ACCESS_TOKENdevem ser incluídas em.env.example, já que hoje são usadas em../app/layout.tsx#L36-L47e../app/api/meta-conversion/route.ts#L4-L10, mas não aparecem no exemplo de ambiente. - Confirmar o papel atual de
API_CLASSES_BACKEND_URL, pois há declaração em.env.example#L5-L6,../helm/templates/secret.yaml#L25-L27e../src/common/constants/config.ts#L1-L1, mas este inventário não abriu adapters que a consumam. - Validar se o backend de registration em
src/features/api/external/registrations/permanece ativo no produto ou se convive com o backend WordPress por legado/alternância técnica. - Confirmar se a coexistência entre
pages/api/eapp/api/é decisão estável ou etapa de transição. - Confirmar se o
MockProviderde browser deve voltar a ser ligado, já que a infraestrutura existe, mas os hooks estão comentados em../src/common/components/providers/Providers.component.tsx#L5-L11e../src/common/components/providers/Providers.component.tsx#L124-L136. - Mapear os repositórios-fonte de
@dhedalos/authe@dhedalos/ui-component.
Evidências:
../.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../src/common/constants/config.ts#L1-L3../src/features/api/external/registrations/index.ts#L1-L3../src/common/components/providers/Providers.component.tsx#L5-L11../src/common/components/providers/Providers.component.tsx#L124-L136