template-saas/docs/03-integraciones/INT-004-push.md
Adrian Flores Cortes 806612a4db
Some checks are pending
CI / Backend CI (push) Waiting to run
CI / Frontend CI (push) Waiting to run
CI / Security Scan (push) Waiting to run
CI / CI Summary (push) Blocked by required conditions
[REESTRUCTURA-DOCS] refactor: Corregir estructura docs/ segun SIMCO-DOCUMENTACION-PROYECTO
- Renombrar 02-integraciones/ → 03-integraciones/ (resolver prefijo duplicado)
- Renombrar 02-devops/ → 04-devops/ (resolver prefijo duplicado)
- Renombrar architecture/ → 97-adr/ (agregar prefijo numerico)
- Actualizar _MAP.md con nueva estructura y version 2.1.0

Estructura final:
- 00-vision-general/
- 01-modulos/
- 02-especificaciones/
- 03-integraciones/
- 04-devops/
- 97-adr/

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:34:14 -06:00

128 lines
3.0 KiB
Markdown

---
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