Imagem de capa do projeto: NEXUS Discord EM ANDAMENTO

Resumo técnico

O NEXUS Discord integra o painel à plataforma Discord por meio de Webhooks de Entrada e Bot API v10, permitindo enviar mensagens, embeds e notificações operacionais para canais e servidores. O plugin oferece configuração dupla (webhook ou bot), auditoria de disparos com cache de canais, comandos slash /discord e notificação automática de tarefas, com mascaramento de credenciais e teste de conexão integrado.

Escopo executado

  • Registro do plugin em plugin.php: registerTab('discord', tab.php) com ícone message-square (categoria Comunicação), registerDoc('discord', doc.md) e 11 ações de API via registerApiAction.
  • Banco de dados: tabelas MySQL discord_history (id, type, target, message_preview, status, http_code, response_data, task_id, created_at) e discord_cache (kind, query_key, data, status, updated_at com UNIQUE uk_kind_key) — criadas com CREATE TABLE IF NOT EXISTS em discord_install(); sem install.sql.
  • Configuração centralizada em discord_settings (via DB::getConfig): webhook_url, bot_token, application_id, default_channel_id, guild_id, bot_username, bot_avatar_url e toggles auto_notify_tasks/auto_notify_alerts; discord_public_config() expõe apenas valores mascarados (discord_mask_secret).
  • Envio via Webhook (discord_send_webhook): POST com ?wait=true, payload content + embeds, username/avatar_url custom por disparo, timeouts cURL (5s connect / 12s total) e registro completo no histórico.
  • Envio via Bot API v10 (discord_send_bot_message): POST em /channels/{id}/messages com Authorization: Bot, modo híbrido em discord_send_message (modo auto usa bot quando channel_id + token estão configurados).
  • Consultas do Bot: discord_get_bot_info() (/users/@me) e discord_get_channels() (/guilds/{id}/channels filtrando tipos 0, 5 e 15) com cache TTL de 1 hora (DISCORD_CACHE_TTL) para evitar rate-limits.
  • Teste de conexão (discord_test_connection): valida webhook (embed Blurple de teste) e/ou autenticação do bot, retornando detalhes por modo.
  • Status e histórico: discord_status (totais, sucessos, erros e modo — Webhook, Bot API v10 ou Híbrido), discord_history (limite 1–100) e discord_history_clear (TRUNCATE).
  • Fast Responses: manifesto fastr.json com /discord (status, ping/test, send <mensagem>) e discord_fastr_suggest para sugestões.
  • Intel Hub: nx_intel_register_enricher('discord', ['_text'], 'discord_intel_enrich', 50) — expõe o canal de notificação como configurado/desconfigurado.
  • Interface (tab.php, 731 linhas): 4 abas (Enviar, Histórico, Bot/Canais, Configurações) com 4 KPIs (Disparos Totais, Sucessos, Erros, Modo) e indicador online/desconectado.
  • Auto-Dispatch de tarefas: discord_handle_task_event() conectado ao core via webhook_async.php — embeds automáticos para task.created, task.updated (início, revisão e conclusão) e task.deleted, com cor por estado, destaque de prioridade crítica (🚨 vermelho), link direto para a tarefa (SITE_URL + /index.php?view=) e respeito aos toggles auto_notify_tasks/auto_notify_alerts.
  • Gerador de convite OAuth2: action discord_invite_url + discord_generate_invite_url() — URL de autorização com permissões 277025507392 (mensagens, embeds, threads, histórico, menções, reações) e scopes bot + applications.commands, atualizada em tempo real na aba Bot/Canais.
  • Tool MCP nexus_discord_send_message: exposta no nexus-mcp-server (schema content/title/description/color/channel_id/task_id) chamando a action discord_send via Bearer — agentes de IA enviam alertas operacionais diretamente.
  • Presets rápidos na aba Enviar: modelos prontos (Incidente de Segurança, Deploy/Release, Standup Diário, Manutenção e Teste de Tarefa) que preenchem o formulário com um clique.
  • Alertas críticos de segurança do CI podem usar webhook Discord via notify.php (notifications.discord_webhook_url).

Stack e ferramentas

  • PHP 8 backend (sem framework) + MySQL (discord_history, discord_cache)
  • Discord API v10 (Bot) + Webhooks de Entrada
  • Alpine.js + Tailwind CSS (aba com 4 abas, KPIs e formulários)
  • Plugin API interno: PluginManager tabs/docs/actions + fastr.json + intel enricher
  • cURL com timeouts e autenticação via Bearer token da API NEXUS

Tags operacionais

  • Discord
  • Notificações
  • Webhooks
  • Bot API
  • Mensagens
  • Alertas
  • Comunicação
  • Plugin NEXUS

Resultado operacional

  • Dois modos de envio: Webhook de entrada (rápido, sem bot) ou Bot API v10 (canais de servidores), com modo híbrido automático.
  • Auditoria completa: cada disparo registra código HTTP, preview, payload de resposta e task_id opcional em discord_history.
  • Histórico operacional: consulta com limite e limpeza via API, sem acúmulo de dados.
  • Comandos slash: /discord status, /discord ping e /discord send <mensagem> direto no terminal Fastr.
  • Segurança: credenciais mascaradas na UI e nas respostas da API; timeouts cURL curtos; cache TTL para evitar rate-limits.
  • Prontidão verificável: teste de conexão integrado valida webhook e bot antes de uso em produção.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

O NEXUS Discord integra o painel à plataforma Discord por meio de Webhooks de Entrada e Bot API v10, permitindo enviar mensagens, embeds e notificações operacionais para canais e servidores. O plugin oferece configuração dupla (webhook ou bot), auditoria de disparos com cache de canais, comandos slash /discord e notificação automática de tarefas, com mascaramento de credenciais e teste de conexão integrado.

Arquitetura e organização

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.