Saltar a contenido

Notificaciones

El subsistema de notificaciones guarda eventos en base de datos y después los entrega por WebSocket y Web Push cuando está configurado.

sequenceDiagram
    participant S as Servicio
    participant DB as PostgreSQL
    participant C as Channels/Redis
    participant B as Navegador

    S->>DB: crea Notificacion
    S-->>S: transaction.on_commit
    S->>C: publica evento
    C->>B: WebSocket

Modelos

Modelo Uso
Notificacion Evento persistente por usuario.
PreferenciaNotificacion Preferencias por tipo/canal.
SuscripcionWebPush Endpoint y claves del navegador.

Entrega

Si Redis o Web Push fallan, la notificación persistente queda guardada. La bandeja del panel lee desde base de datos y el contador no leído se calcula por usuario.

Configuración Web Push

VAPID_PUBLIC_KEY=
VAPID_PRIVATE_KEY=
VAPID_ADMIN_EMAIL=

Generación local:

python manage.py generate_vapid_keys

La clave privada debe permanecer fuera del repositorio.