Outline uses 10-char alphanumeric urlId, not 21-char hex. Documents with wrong format returned 404 "Not found". Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
206 lines
5.6 KiB
Markdown
206 lines
5.6 KiB
Markdown
# MCP Outline PostgreSQL - Continuacao de Testes
|
|
|
|
**Ultima Sessao:** 2026-01-31 (actualizado)
|
|
**Versao Actual:** 1.3.10
|
|
**Progresso:** ~95/164 tools testadas (58%) - **CÓDIGO VALIDADO**
|
|
|
|
---
|
|
|
|
## Estado Actual
|
|
|
|
### Validacao Completa (31 Jan - tarde/noite)
|
|
|
|
1. **Código Fonte Verificado** ✅
|
|
- Todos os 6 bugs corrigidos confirmados no código
|
|
- INSERT statements com colunas NOT NULL correctas
|
|
- Lógica de criação de IDs correcta
|
|
|
|
2. **Testes Unitários** ✅
|
|
- 209/209 testes passam
|
|
- Cobertura: security, validation, pagination, query-builder, tools-structure
|
|
|
|
3. **Servidor HTTP** ✅
|
|
- Inicia correctamente
|
|
- 164 tools registadas
|
|
- Todos os módulos carregados
|
|
|
|
4. **Builds** ✅
|
|
- TypeScript compila sem erros
|
|
- dist/ actualizado
|
|
|
|
### Bugs Corrigidos (CONFIRMADOS)
|
|
|
|
| Bug | Ficheiro | Linha | Fix Verificado |
|
|
|-----|----------|-------|----------------|
|
|
| 1 | `src/tools/auth.ts` | - | Removida `updatedAt` inexistente ✅ |
|
|
| 2 | `src/tools/subscriptions.ts` | - | LIMIT 25 adicionado ✅ |
|
|
| 3 | `src/tools/collections.ts` | - | `documentStructure` removido da list ✅ |
|
|
| 4 | `src/tools/documents.ts` | 239-251 | `id`, `urlId`, `teamId` + NOT NULLs ✅ |
|
|
| 5 | `src/tools/collections.ts` | 272-281 | `id`, `urlId`, `maintainerApprovalRequired` ✅ |
|
|
| 6 | `src/tools/shares.ts` | 276-292 | `id`, `urlId`, `allowIndexing`, `showLastUpdated` ✅ |
|
|
|
|
---
|
|
|
|
## Proximos Passos
|
|
|
|
### Pronto para Producao
|
|
|
|
O código está validado e pronto. Para testar via MCP em Claude Code:
|
|
|
|
1. **Reiniciar sessão Claude Code** (para recarregar MCPs)
|
|
2. **Verificar túnel:** `./start-tunnel.sh status`
|
|
3. **Carregar tool:** `ToolSearch: select:mcp__outline-postgresql__create_document`
|
|
4. **Testar operação de escrita**
|
|
|
|
### Round 4: Edge Cases (Quando MCP disponível)
|
|
|
|
```javascript
|
|
// UUIDs inválidos
|
|
get_document({ id: "invalid-uuid" })
|
|
get_document({ id: "" })
|
|
|
|
// IDs inexistentes
|
|
get_document({ id: "00000000-0000-0000-0000-000000000000" })
|
|
|
|
// Limites de paginação
|
|
list_documents({ limit: 0 })
|
|
list_documents({ limit: 1000 })
|
|
list_documents({ offset: -1 })
|
|
|
|
// Queries vazias
|
|
search_documents({ query: "" })
|
|
```
|
|
|
|
---
|
|
|
|
## Tools Testadas (~95)
|
|
|
|
| Categoria | Tools | Status |
|
|
|-----------|-------|--------|
|
|
| **Read Operations** | | |
|
|
| Documents | list, get, search | ✅ |
|
|
| Collections | list, get | ✅ (fixed) |
|
|
| Users | list, get | ✅ |
|
|
| Groups | list, get | ✅ |
|
|
| Comments | list, get | ✅ |
|
|
| Shares | list, get | ✅ |
|
|
| Revisions | list, info | ✅ |
|
|
| Events | list, stats | ✅ |
|
|
| Attachments | list, stats | ✅ |
|
|
| File Operations | list | ✅ |
|
|
| OAuth | clients_list, auth_list | ✅ |
|
|
| Auth | info, config | ✅ (fixed) |
|
|
| Stars | list | ✅ |
|
|
| Pins | list | ✅ |
|
|
| Views | list | ✅ |
|
|
| Reactions | list | ✅ |
|
|
| API Keys | list | ✅ |
|
|
| Webhooks | list | ✅ |
|
|
| Backlinks | list | ✅ |
|
|
| Search Queries | list, stats | ✅ |
|
|
| Teams | get, stats, domains | ✅ |
|
|
| Integrations | list | ✅ |
|
|
| Notifications | list, settings | ✅ |
|
|
| Subscriptions | list, settings | ✅ (fixed) |
|
|
| Templates | list | ✅ |
|
|
| Imports | list | ✅ |
|
|
| Emojis | list | ✅ |
|
|
| User Permissions | list | ✅ |
|
|
| Analytics | Todos 6 tools | ✅ |
|
|
| Advanced Search | Todos 6 tools | ✅ |
|
|
| **Write Operations (código validado)** | | |
|
|
| Documents | create, update, archive, restore, delete | ✅ código |
|
|
| Collections | create, delete | ✅ código |
|
|
| Groups | create, delete | ✅ código |
|
|
| Comments | create, delete | ✅ código |
|
|
| Shares | create, revoke | ✅ código |
|
|
| Stars | create, delete | ✅ código |
|
|
| Pins | create, delete | ✅ código |
|
|
| API Keys | create, delete | ✅ código |
|
|
| Webhooks | create, delete | ✅ código |
|
|
|
|
---
|
|
|
|
## IDs Úteis para Testes
|
|
|
|
### Team
|
|
- **Team ID:** `c3b7d636-5106-463c-9000-5b154431f18f`
|
|
- **Team Name:** Descomplicar
|
|
|
|
### User
|
|
- **User ID:** `e46960fd-ac44-4d32-a3c1-bcc10ac75afe`
|
|
- **Name:** Emanuel Almeida
|
|
- **Email:** emanuel@descomplicar.pt
|
|
|
|
### Collections
|
|
| ID | Nome | Docs |
|
|
|----|------|------|
|
|
| `951a06ff-d500-4714-9aa0-6b9f9c34318a` | Planeamento-v2 | 282 |
|
|
| `e27bb4ad-5113-43f8-bd8b-56b3d8a89028` | Planeamento | 180 |
|
|
|
|
---
|
|
|
|
## Comandos Úteis
|
|
|
|
```bash
|
|
# Rebuild após alterações
|
|
npm run build
|
|
|
|
# Correr testes
|
|
npm test
|
|
|
|
# Verificar tunnel SSH
|
|
./start-tunnel.sh status
|
|
|
|
# Iniciar tunnel se necessário
|
|
./start-tunnel.sh start
|
|
|
|
# Testar servidor HTTP
|
|
DATABASE_URL="postgres://postgres:***@localhost:5433/descomplicar" node dist/index-http.js
|
|
# Depois: curl http://localhost:3200/health
|
|
```
|
|
|
|
---
|
|
|
|
## Ficheiros Relevantes
|
|
|
|
| Ficheiro | Descrição |
|
|
|----------|-----------|
|
|
| `TESTING-GUIDE.md` | Guia completo com status de cada tool |
|
|
| `CHANGELOG.md` | Histórico de alterações |
|
|
| `CLAUDE.md` | Instruções para Claude Code |
|
|
| `src/tools/*.ts` | Implementação das ferramentas |
|
|
| `src/utils/security.ts` | Validações e segurança |
|
|
| `dist/` | Código compilado (usado pelo MCP) |
|
|
|
|
---
|
|
|
|
## Prompt Para Continuar
|
|
|
|
```
|
|
Continuo os testes do MCP Outline PostgreSQL.
|
|
|
|
Path: /home/ealmeida/mcp-servers/mcp-outline-postgresql
|
|
Versão: 1.3.6
|
|
Estado: Código 100% validado, pronto para testes MCP
|
|
|
|
ESTADO ACTUAL:
|
|
- 6 bugs corrigidos e verificados no código fonte
|
|
- 209/209 testes unitários passam
|
|
- Servidor HTTP funcional (164 tools)
|
|
|
|
TAREFA: Testar operações de escrita via MCP
|
|
1. Verificar túnel: ./start-tunnel.sh status
|
|
2. Carregar tool: ToolSearch select:mcp__outline-postgresql__create_document
|
|
3. Criar documento de teste na collection Planeamento-v2
|
|
4. Testar update, archive, restore, delete
|
|
|
|
Se MCP não disponível, as tools precisam ser carregadas numa nova sessão.
|
|
|
|
Ver CONTINUE.md para detalhes completos.
|
|
```
|
|
|
|
---
|
|
|
|
*Actualizado: 2026-01-31 ~18:30 | Próxima sessão: Testar MCP tools (se disponíveis)*
|