C4 - Nível 3 (Componentes Backend)¶
Objetivo¶
Detalhar os componentes internos do backend no estado atual, com ênfase em composição de rotas, middlewares e contextos de domínio.
Composição principal¶
Bootstrap HTTP¶
Arquivo central: internal/http/bootstrap/routes.go
- rotas públicas de infra:
/health,/metrics,/docs*(docs/métricas protegidas para admin) - rotas públicas de negócio: auth, planos públicos e webhooks
- grupos protegidos:
/api,/api/v1,/api/v2
Cadeia de middleware por grupo protegido¶
AuthMiddleware(todos os grupos protegidos)ObservationContextMiddleware+ObservationReadOnlyMiddlewareResolveMiddleware(public_id)apenas em/api/v2
Módulos registrados¶
general-
sync, accounts, subscriptions, cycles, cycle_comments, symbols, billings_data, observations, messages, appointments, notifications, work_schedule, module_access (geral)
-
client - profile/health-info, professionals, vínculo com profissional, daily-register (MOOP), cycle-analysis, payments, courses
-
com enforcement de módulo por
RequireModule(...) -
professional - profile/upload, disponibilidade, gestão de consultas
- camada
approvedcomProfileApprovalMiddlewarepara rotas que exigem perfil aprovado -
financeiro, crm, pacientes, cursos, unread chat count
-
admin - billings catálogos (
appearances,sensations,symbols,day-based-rules) - dashboard drilldown
- observação de usuários (admin observe)
- module access admin (
/admin/modules/*, overrides por usuário) -
operação admin do marketplace de cursos
-
auth - login/register/refresh/password/email
- OAuth público e OAuth protegido (associate/disassociate)
Componentes transversais relevantes¶
Module Access¶
- catálogo canônico em
internal/modules/module_access/catalog.go - snapshot efetivo por usuário em
GET /users/me/modules - endpoints admin para global settings e user overrides
- aliases legados mapeados para chaves canônicas
Feature flags¶
- avaliadas por
internal/config/feature_flags.go - exemplo em uso: habilitação de CRM profissional
Observabilidade¶
- middleware Prometheus global
- endpoint
/metricsprotegido por middleware admin
Dependências críticas¶
database.DB(GORM/Postgres)- storage R2 (
internal/infra/storage) - providers de e-mail e OAuth
Riscos técnicos¶
- manutenção de 3 prefixos de API simultâneos aumenta superfície de compatibilidade.
- mudanças de chave canônica de módulo exigem migração cuidadosa (legado + novo).