EM ANDAMENTO
Resumo técnico
Integração com o Novu (hub multi-canal de notificações) para disparar workflows por email, SMS, push, in-app, Discord, Telegram, Slack e Teams — com gerenciamento de workflows, subscribers e integrações remotas, histórico local em novu_events, bridge com notify.php e comando /novu no chat.
Escopo executado
plugin.json: v1.0.0, slugnovu(semlegacy_slugs), name "Novu", categoria "Notifications",is_core: false, author_url e website públicos (perciocastelo.com.br).- Schema lazy (
novu_install(),CREATE TABLE IF NOT EXISTScomstatic $doneetry/catch) —novu_events(id PK,transaction_id,workflow,subscriber_id,statusdefaultqueued,channel_hint,payload_json/response_jsonMEDIUMTEXT,error,sourcedefaultui,created_at; índicesidx_novu_created/idx_novu_workflow/idx_novu_status; InnoDButf8mb4_general_ci). - Config (
plugin.novu) —enabled,api_key,base_url(api.novu.co/v1),region(us|eu|custom),default_workflow(security-critical),default_subscriber,log_events. - Bridge com Admin —
novu_get_config()preenche o plugin a partir denotifications.novu_*quando vazio;novu_save_config()espelha emsystem_settings.notifications.novu_*(integração comnotify.php). - Segredo protegido —
novu_public_config()devolve a API Key mascarada (XXXX…XXXXou••••) enovu_save_config()ignora placeholders mascarados (com suporte aclear_api_key). - HTTP (
novu_request) — REST via cURL comAuthorization: ApiKey, timeout 30s / connect 8s, SSL conforme constanteSSL_VERIFYe extração de erros (message/error/errorMessage/errors). - Trigger (
novu_trigger) —POST /events/trigger(name,to.subscriberId, payload,transactionIdopcional); subscriber fallbacknotifications.admin_emailounexus-admin;forceignoraenabled; loga emnovu_events. - Gestão remota — workflows (limit 1–100 com fallback
notification-templates), subscribers (listar/criar, paginação), integrações (canais/provedores ativos) e teste de conexão (cascata/workflows→/notification-templates→/integrations). - Dashboard (
novu_dashboard) — stats locais (total/ok/errorviaGROUP BY status) + status online + workflows remotos (20) + integrações ativas. - Histórico local (
novu_local_history) — últimos eventos comstatus,channel_hint,sourcee erro. - Fastr —
/novu(sem argumento → resumo em markdown; comworkflow subscriber key=val&k2=v2→ trigger com payload viaparse_str); sugestões do default + workflows remotos (até 8). - Intel Hub — enricher
novu(campo_text, prioridade 58): detectanovu://workflow-idem descrições/comentários → signalnovu_workflow(info) com hint/novu <workflow> <subscriber>. - API: 13 actions —
novu_dashboard,novu_settings_get,novu_settings_save,novu_test_connection,novu_trigger(source: ui,force: true),novu_workflows,novu_subscribers,novu_subscriber_create,novu_integrations,novu_history,novu_fastr,novu_fastr_suggest. - UI (
tab.php, 18 KB, tema slate + blue-600, grupo "Comunicação") — sub-abas Trigger / Workflows / Subscribers / Config: card "Disparar notificação" (workflow, subscriber, payload) com botão "Disparar" e estado "Enviando…", status online/offline, workflows remotos com "Recarregar", criação de subscriber, config com API Key mascarada e teste de conexão. - Sem cron e sem migrations.
- Bridge
notify.php—notify_novu_trigger()delega paranovu_trigger()(alertassecurity-critical) quando o plugin está carregado.
Stack e ferramentas
- PHP 8 (sem framework,
strict_types) - MySQL 8 (
novu_events) - Alpine.js + Tailwind CSS (premium light, slate/blue)
- cURL + REST API Novu (
ApiKeyauth) - Plugin NEXUS (PluginManager: tabs, docs, API actions, Fastr, Intel enrichers)
Tags operacionais
- Notificações
- Multi-canal
- Novu
- Workflows
- Subscribers
- Eventos
- SMS
- Plugin NEXUS
Resultado operacional
- Hub multi-canal: um trigger dispara email, SMS, push, in-app, Discord, Telegram, Slack e Teams (canais configurados no dashboard Novu).
- Segredo nunca exposto: a API Key aparece mascarada na UI/API pública; placeholders mascarados não sobrescrevem a secret ao salvar.
- Rastreabilidade local: todo trigger é registrado em
novu_events(payload, resposta, erro, source e transaction_id). - Config centralizada: aba do plugin e Admin → Notificações ficam em sincronia (bridge bidirecional).
- Alertas do NEXUS integrados:
notify.phpdelega alertassecurity-criticalpara o Novu quando o plugin está ativo. - Chat operacional:
/novudispara workflows direto do Fastr com sugestões de workflows remotos. - Inteligência integrada:
novu://workflow-idcitado em tarefas/comentários vira signal no Intel Hub. - Comando
/novu <workflow> <subscriber> [payload]no chat.
Andamento no GitHub (issues)
Painel em tempo real com as issues mais recentes do repositório.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
Resultados reais
Hub unificado de notificações multicanal integrado à plataforma Novu. Gerencia e despacha alertas críticos, e-mails transacionais, mensagens no Discord/Slack e notificações in-app a partir de eventos centralizados do NEXUS.
Arquitetura e organização
- PHP 8
- MySQL 8
- Alpine.js
- Tailwind CSS
- cURL
- REST API
- Novu
- Plugin NEXUS
Execução e operação
O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.
Screenshots
Falar sobre este projeto
Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.