2.4 KiB
Fix: Erro 401 em Custom Tools (Headers Customizados)
Data: 11/01/2026
Autor: Antigravity
Contexto:
A ferramenta custom_status_suites (usada pelo sub-agente jamile_disponibilidade_imediata) estava retornando erro 401 Unauthorized.
Motivo: A API externa exigia headers específicos (PLUG-PLAY-ID, PLUG-PLAY-TOKEN), mas a interface do Chatwoot só permitia configurar autenticação do tipo Bearer, Basic ou uma única API Key. Não havia suporte para múltiplos headers arbitrários.
🚀 Solução
Implementamos uma nova seção no formulário de Custom Tools para permitir a adição de Headers Personalizados (Key-Value) ilimitados. Esses headers são anexados a todas as requisições da ferramenta.
1. Alterações no Frontend (Vue.js)
- Novo Componente:
app/javascript/dashboard/components-next/captain/pageComponents/customTool/HeaderRow.vue- Gerencia uma linha de input (Chave e Valor) com validação.
- Update no Formulário:
app/javascript/dashboard/components-next/captain/pageComponents/customTool/CustomToolForm.vue- Adicionada lista de
customHeaders. - Lógica para converter o array visual em Hash
auth_config['headers']no submit. - Lógica para popular o formulário ao editar uma tool existente.
- Adicionada lista de
- Traduções: Adicionadas chaves
HEADERS,ADD_HEADER, etc., emen/integrations.jsonept_BR/integrations.json.
2. Backend (Ruby on Rails)
- O backend (
Enterprise::Concerns::Toolable#build_auth_headers) já estava preparado para lerauth_config['headers']. Nenhuma alteração lógica foi necessária, apenas habilitar a entrada de dados via UI.
3. Script de Correção (Produção)
Para corrigir ferramentas em produção sem precisar redeployar o frontend imediatamente, ou para ajustes em massa:
Script: scripts/debug_status_suites.rb
# Como rodar no terminal do servidor/container
bundle exec rails runner scripts/debug_status_suites.rb
O script:
- Busca a ferramenta por nome/url ("Status Suites").
- Verifica se
PLUG-PLAY-IDePLUG-PLAY-TOKENestão faltando. - Solicita os valores interativamente.
- Salva e executa um teste de conexão.
✅ Como Validar
- Acessar Captain > Ferramentas.
- Editar a ferramenta desejada.
- Na seção Headers Personalizados, adicionar as chaves necessárias.
- Salvar.
- Clicar no botão Testar (ícone de play).
- O resultado deve ser 200 OK com o JSON de resposta esperado.