--- id: "INT-004" title: "Integracion Push Notifications" type: "Integration" status: "Implemented" priority: "P1" provider: "Web Push API (VAPID)" category: "Notifications" multi_tenant: true version: "1.0.0" created_date: "2026-01-07" updated_date: "2026-01-10" --- # INT-004: Push Notifications ## Metadata | Campo | Valor | |-------|-------| | Codigo | INT-004 | | Proveedor | Web Push API (VAPID) | | Tipo | Notificaciones | | Estado | Implementado | | Multi-tenant | Si | | Fecha integracion | 2026-01-10 | --- **Documentacion completa:** Ver [SAAS-007-notifications.md](../01-modulos/SAAS-007-notifications.md) ## Resumen Web Push API para notificaciones push en navegadores. ## Tecnologia - Web Push API (VAPID) - Service Worker para recepcion - Almacenamiento de dispositivos en user_devices ## Caracteristicas - Suscripcion desde navegador - Notificaciones background - Soporte Chrome, Firefox, Edge - Tracking de delivery ## Configuracion ```env VAPID_PUBLIC_KEY=... VAPID_PRIVATE_KEY=... VAPID_SUBJECT=mailto:admin@example.com ``` ## Rate Limits | Limite | Valor | Accion si excede | |--------|-------|------------------| | Requests/min | 1000 | Retry con backoff exponencial | ## Manejo de Errores | Codigo | Descripcion | Accion | |--------|-------------|--------| | 400 | Bad Request | Log + no retry | | 401 | Unauthorized | Renovar credenciales | | 410 | Subscription Gone | Eliminar suscripcion de BD | | 429 | Rate Limited | Backoff exponencial | | 500 | Server Error | Retry con backoff | ## Fallbacks ### Estrategia Push Fallback | Escenario | Estrategia | |-----------|------------| | Push service no disponible | Encolar y reintentar en 5 minutos | | Subscription expirada (410) | Eliminar device de BD, no retry | | Token invalido | Solicitar re-suscripcion al usuario | | Rate limit excedido | Backoff exponencial (1s, 2s, 4s...) | ### Fallback a Otros Canales - Si push falla 3 veces consecutivas: Enviar por email como respaldo - Si notificacion es critica (P0): SMS como ultimo recurso - Notificaciones no criticas: Solo log, no escalamiento ### Retry Strategy ```typescript { attempts: 3, backoff: { type: 'exponential', delay: 1000 // 1s, 2s, 4s }, removeOnComplete: true, removeOnFail: false // Mantener para debugging } ``` ## Multi-tenant - Credenciales: Por tenant (claves VAPID por tenant) - Configuracion: Por tenant via tenant_config - Aislamiento: Prefijo tenant_id en todas las operaciones ## Testing ### Sandbox/Test Mode - Usar claves VAPID de desarrollo - Chrome DevTools para simular notificaciones - Fixtures disponibles para testing unitario ## Monitoreo | Metrica | Descripcion | Alerta | |---------|-------------|--------| | Latencia | Tiempo de respuesta | >2s | | Errores | Tasa de errores | >1% | | Disponibilidad | Uptime del servicio | <99.9% | ## Referencias - Modulo relacionado: SAAS-007-notifications.md - Especificacion v2.0: ET-SAAS-007-notifications-v2.md --- **Ultima actualizacion:** 2026-01-10 **Version:** 1.0.0