Documentação do projeto
Índice da documentação técnica do default-crm-backend.
Início rápido
- README.md — instalação, variáveis de ambiente, arquitetura, CI/CD
- db/README.md — scripts SQL PostgreSQL e ordem de execução
API
| Documento | Conteúdo |
|---|---|
| api-endpoints.md | Referência de endpoints por módulo (rotas, permissões, WebSocket) |
| google-drive-media.md | Mídia de utilizador no Google Drive (upload, metadata, pastas) |
| GDRIVE_IMPLEMENTACAO_PHP.md | Guia completo da implementação GDrive para replicar num PHP monolítico (sem API) |
| arquitetura.drawio | Diagramas de arquitetura (NestJS + fluxo Google Drive) — abrir em draw.io |
| autentique-api.md | Integração Autentique — configuração por empresa, documentos, webhooks e SSE |
| Swagger UI | http://localhost:3000/api/docs (com a app a correr) |
| Postman | postman/CRM_Backend_API.postman_collection.json |
Integração frontend
| Documento | Público | Conteúdo |
|---|---|---|
| FRONTEND_AUTH_PERMISSIONS.md | Frontend | Login (POST /api/auth/login), permissões hierárquicas no JWT |
| FRONTEND_EMAIL_TEMPLATES.md | Frontend | Templates de e-mail — leitura, edição e renderização (/api/companies/.../email-templates, /api/global-config/email-templates) |
| FRONTEND_GOVERNANCE_TARGET_USER_PERMISSIONS.md | Frontend | Permissões metadata de utilizador alvo (/api/governance/users/{uuid}/...) |
| FRONTEND_USER_MEDIA_DRIVE.md | Frontend | Icon/banner/perfil via Google Drive — contrato HTTP e breaking changes |
| FRONTEND_GDRIVE_ALTERACOES_CONTRATO.md | Frontend | Alterações de contrato (tenants/users/documentos) após migração GDrive — guia para o time frontend |
Dados e domínio de negócio
| Documento | Conteúdo |
|---|---|
| api-dados-fontes-tabelas.md | Mapeamento de tabelas legadas (EC, propostas, TPV, comissões, aluguel) para implementação de APIs |
Autorização (resumo)
O backend aplica três guards globais:
- JWT — autenticação e sessão
- Chaves granulares —
permissoes[]no token (ex.:integracao.cep); bypass em N0/N1/admin - Metadata
perm-*— flags emcompany/userJSONB; bypass em N0/admin
Escopo de dados N0–N3 é aplicado nos repositórios, não nos guards. Detalhes em README.md.
Código
npm run docs # Compodoc — servidor local
npm run docs:build # Build estático em dist/docs