- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Actualizaciones de configuracion Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
128 lines
3.0 KiB
Markdown
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
|