obsidian-vault/ligbox-ops-platform/specs/007-mobile-push-notifications/tasks.md
2026-06-19 17:26:42 +00:00

1.9 KiB

Tasks — Spec 007 Mobile Push Notifications

Status: 📋 Backlog (draft)
Prioridade: P1
API alvo: 0.9.0-desk-push-ntfy0.9.1-desk-push-pwa


Fase A — ntfy por usuário (MVP)

  • T001 Schema: desk_users.ntfy_topic estável + push_ntfy_enabled
  • T002 Migrar lógica de ntfy_topic de registration-only para user profile
  • T003 GET /api/v1/push/settings
  • T004 POST /api/v1/push/ntfy/enable · disable
  • T005 POST /api/v1/push/test (notificação teste)
  • T006 UI Minha conta — seção Notificações (toggle + link + QR)
  • T007 push_service.pynotify_user(), notify_role()
  • T008 Hook: ticket Wazuh criado → push noc + ops_lead + root
  • T009 Hook: pedido cadastro → push root
  • T010 Rate limit push · logs · falha silenciosa
  • T011 Testes manuais Android/iOS ntfy
  • T012 Docs quickstart + env DESK_NTFY_BASE_URL

Fase B — Web Push PWA

  • T020 manifest.json + ícones Ligbox Ops
  • T021 Service Worker sw.js (push + notificationclick)
  • T022 Tabela push_subscriptions
  • T023 VAPID keys (env) + pywebpush no requirements
  • T024 POST /api/v1/push/subscribe · DELETE
  • T025 UI «Ativar notificações neste dispositivo»
  • T026 Integrar push_service dual-channel (ntfy + webpush)
  • T027 Teste iOS Safari PWA + Android Chrome

Fase C — Futuro (fora MVP 007)

  • T030 Preferências por tipo de evento
  • T031 FCM para app nativo
  • T032 ntfy self-hosted (VM122 ou VM108)
  • T033 OneSignal avaliação (se FCM complexo demais)

Dependências

  • Spec 003 auth JWT
  • Spec 004 Minha conta UI · ntfy OTP base

Env vars (previstas)

DESK_NTFY_BASE_URL=https://ntfy.sh
DESK_VAPID_PUBLIC_KEY=
DESK_VAPID_PRIVATE_KEY=
DESK_VAPID_MAILTO=ligbox-ops@ligbox.com.br
DESK_PUSH_ENABLED=true