- Neues GraphModule mit GraphService + GraphController
- GET /crm/contacts/:id/emails → MS Graph Emails (Search nach Kontakt-E-Mail)
- GET /crm/contacts/:id/calendar → Kalender-Termine (naechste 90 Tage)
- GET /crm/contacts/:id/tasks → Microsoft To Do Listen + Aufgaben
- GraphService: JWT an Core-Service weiterleiten, M365-Token holen, Graph aufrufen
- Redis-Cache 5 Minuten fuer alle Graph-Responses
- CORE_SERVICE_URL env var + docker-compose.crm.yml Eintrag
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New PATCH /pipelines/:id/stages/:stageId endpoint to update
stage name, color, and sortOrder
- Added HTTPS (websecure) Traefik router for CRM service
- Both requested by frontend developer via INSIGHT-CRM.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Core-api router with Host+PathPrefix(/api) was catching CRM requests.
Added Host rule and priority=100 to ensure CRM router takes precedence
for /api/v1/crm/* paths.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PgBouncer in transaction pool mode strips the search_path startup
parameter, which Prisma needs for the app_crm schema. CRM now
connects directly to PostgreSQL.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>