gtm-fabric
Worker plane de Crimoo. Procesa eventos de tagging y orquesta contenedores Docker GTM.
Es stateless en cuanto a persistencia de dominio/config: no tiene base de datos propia para dominios ni certificados. Consulta configuración a node-api al arrancar, mantiene cache en memoria, y reporta cambios de vuelta a node-api. Escribe eventos de tagging en ClickHouse.
Stack
- Framework: Spring Boot 3.1 + Java 17
- HTTP: Spring WebFlux (Reactor, non-blocking)
- Arquitectura: Hexagonal (ports & adapters)
- Mensajería: Google Cloud Pub/Sub
- Storage: ClickHouse (eventos de tagging + logs de containers)
- Containers: Docker Java API
- DNS/SSL: Cloudflare API + Let's Encrypt (ACME4j)
- Geolocation: MaxMind GeoLite2
- Rate Limiting: Resilience4j
Stateless — cómo obtiene configuración
Responsabilidades
Ver CAPI Gateway para el flujo completo.
Endpoints
| Método | Path | Descripción |
|---|---|---|
| DELETE | /api/v1/gtm/:id | Eliminar GTM |
| GET | /api/diagnostic/health | Health check del container |
| GET | /api/v1/gtm/:id/logs | Logs históricos |
| GET | /api/v1/gtm/:id/logs/stream | SSE logs en vivo |
| POST | /api/v1/gtm/:id/domains/update | Cambiar dominio primario |
| POST | /api/v1/gtm/:id/domains/add | Añadir dominio custom |
| DELETE | /api/v1/gtm/:id/domains/remove | Remover dominio |
| POST | /api/v1/gtm/:id/domains/verify | Verificar DNS + generar cert para dominio PENDING |
| POST | /api/v1/gtm/:id/certificates/renew | Renovar cert (llamado por node-api scheduler) |
| PUT | /api/v1/gtm/:id/custom-loader | Habilitar custom loader |
| GET | /api/capture-config/:gtmId | Config pública de captura (sin auth) |
| POST | /api/i | Identity resolution + first-party cookies |
| GET/POST/DELETE | /api/admin/crm/fields/:gtmId | Field definitions |
| GET/POST/PUT/DELETE | /api/admin/crm/rules/:gtmId | Capture rules |
| POST | /capi/meta/v{ver}/{pixelId}/events | Gateway hacia Meta Conversions API (forwarding desde sGTM) |
| POST | /capi/tiktok/v{ver}/event/track | Gateway hacia TikTok Events API |
Event Parser Chain
Provisioning de un GTM
Schedulers
| Scheduler | Frecuencia | Qué hace |
|---|---|---|
| Domain Verification (backup) | Cada 1h | Busca dominios PENDING en node-api, verifica DNS (CNAME → track-name.crimoo.com), genera cert si resuelve, marca FAILED si > 48h |
Nota: La renovación de certificados la orquesta node-api (scheduler diario 2 AM). fabric solo ejecuta el ACME cuando node-api lo llama via
POST /certificates/renew.