57 lines
2.4 KiB
Markdown
57 lines
2.4 KiB
Markdown
# 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.
|
|
- **Traduções:** Adicionadas chaves `HEADERS`, `ADD_HEADER`, etc., em `en/integrations.json` e `pt_BR/integrations.json`.
|
|
|
|
### 2. Backend (Ruby on Rails)
|
|
|
|
- O backend (`Enterprise::Concerns::Toolable#build_auth_headers`) já estava preparado para ler `auth_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`
|
|
|
|
```bash
|
|
# Como rodar no terminal do servidor/container
|
|
bundle exec rails runner scripts/debug_status_suites.rb
|
|
```
|
|
|
|
O script:
|
|
|
|
1. Busca a ferramenta por nome/url ("Status Suites").
|
|
2. Verifica se `PLUG-PLAY-ID` e `PLUG-PLAY-TOKEN` estão faltando.
|
|
3. Solicita os valores interativamente.
|
|
4. Salva e executa um teste de conexão.
|
|
|
|
---
|
|
|
|
## ✅ Como Validar
|
|
|
|
1. Acessar **Captain > Ferramentas**.
|
|
2. Editar a ferramenta desejada.
|
|
3. Na seção **Headers Personalizados**, adicionar as chaves necessárias.
|
|
4. Salvar.
|
|
5. Clicar no botão **Testar** (ícone de play).
|
|
6. O resultado deve ser **200 OK** com o JSON de resposta esperado.
|