Skip to main content
Glama
CHANGELOG.md13.3 kB
# Changelog – MCP Gateway Este documento registra o histórico de versões e principais mudanças do MCP Gateway. --- ## Sumário - [Histórico de Versões](#histórico-de-versões) - [Boas Práticas](#boas-práticas) --- ## Histórico de Versões ## [1.0.3] - 2025-05-10 (Revisão e Atualização da Documentação) ### Modificado - **Documentação Geral:** Realizada uma revisão e atualização abrangente em múltiplos documentos para refletir o estado atual do projeto, funcionalidades implementadas e pendências. - `docs/TODO.md`: Atualizado para marcar endpoints de backend implementados (gerenciamento de usuários, ferramentas do usuário) e ajustar tarefas do frontend relacionadas. - `docs/API.md`: Expandido com uma lista mais detalhada e categorizada dos endpoints da API backend, reforçando o Swagger/ReDoc como fonte primária. - `docs/BACKEND_DOCUMENTATION.md`: Corrigida a descrição do endpoint `GET /tools/usuarios/{username_param}` para indicar que o próprio usuário também pode acessar seus detalhes. - `docs/REQUISITOS.md`: Adicionado o status de implementação (Concluído, Parcialmente Concluído, Pendente, Em Andamento) para os Requisitos Funcionais (RF) e Não-Funcionais (RNF) com base na análise dos demais documentos. - `docs/ARQUITETURA.md`: Detalhada a seção de persistência de dados, mencionados módulos chave do backend e frontend, e adicionado o fluxo de solicitação de acesso a grupos para maior clareza. - `frontend/README.md`: Atualizado para detalhar funcionalidades implementadas e pendentes no frontend, a estrutura de pastas e arquivos, e os scripts NPM disponíveis. - `README.md` (Raiz do Projeto): Melhorada a descrição da estrutura de pastas, expandida a lista de funcionalidades principais, e corrigidos links para a documentação interna. ## [1.0.2] - 2025-05-10 (Continuação das Correções no Ambiente de Teste e Integridade de Dados) ### Corrigido - **Estabilidade e Confiabilidade dos Testes de Integração:** - Melhorada a detecção do ambiente de teste em `app/config.py` para carregar `.env.test` de forma confiável, utilizando `sys.modules` e `Path.exists()`. - Refatorada a fixture `manage_test_data_files` em `tests/conftest.py`: - Agora utiliza `tests/data/test_rbac_fixed.json` como a fonte mestre definitiva para dados RBAC de teste. - Garante que `tests/data/test_rbac.json` (arquivo de trabalho) seja recriado a partir do mestre antes de *cada* teste (`scope="function"`, `autouse=True`), assegurando isolamento e consistência. - Atualizado o hash da senha para `globaladmin` no fallback da fixture e no arquivo mestre (`test_rbac_fixed.json`) para um valor bcrypt válido e consistente (gerado para "password_global"). - Criado script `app/scripts/generate_password_hash.py` para facilitar a geração e verificação de hashes de senha bcrypt. - Criado o arquivo `tests/data/test_rbac_fixed.json` como a fonte única de verdade para os dados RBAC nos testes. - Resolvido o problema central onde a fixture `auth_token_for_user` retornava `None` para `globaladmin` devido a senha incorreta ou dados de teste inconsistentes. Isso causava falhas em cascata nos testes de API que dependiam de autenticação como `globaladmin`. - Testes em `tests/integration/test_auth_api.py` continuam passando com as novas melhorias de setup. - Testes específicos em `tests/integration/test_admin_groups_api.py` (e.g., `test_create_group_success`, `test_create_group_already_exists`, `test_create_group_no_name`) agora passam consistentemente devido à correção dos dados de `globaladmin` e ao reset dos dados de teste antes de cada execução. ## [1.0.1] - 2025-05-10 ### Corrigido - Resolvido problema de "usuário e senha" persistente através da correção dos testes de autenticação. - Testes de login em `tests/integration/test_auth_api.py` atualizados para enviar payload como JSON (`json=`) em vez de form data (`data=`). - Ajustados os status codes esperados e mensagens de erro nos testes de login para corresponder ao comportamento da API (e.g., 400 para campos ausentes). - Testes de refresh token (`test_refresh_token_no_token_provided`, `test_refresh_token_invalid_token_format`) atualizados para esperar status code 403 (FastAPI `HTTPBearer` behavior) em vez de 401. - Mensagens de erro esperadas nos testes de refresh token alinhadas com as respostas reais da API. - Teste `test_initial_setup_placeholder` em `tests/test_auth.py` corrigido para usar o endpoint `/tools/health` (retorna 200) em vez de `/tools/docs` (retorna 404). - Todos os 13 testes de autenticação em `tests/test_auth.py` e `tests/integration/test_auth_api.py` agora passam. ## [1.0.0] - 2025-05-09 (Análise Iniciada) ### Adicionado - Início de uma análise abrangente do projeto `mcp-server` para identificar correções, melhorias e novas implementações necessárias. --- ## [0.9.2] - 2025-05-09 ### Corrigido - Corrigido KeyError: 'members' nas rotas de grupo, padronizando uso de 'users' e garantindo compatibilidade para testes. - Corrigido erro de criação duplicada de usuário, retornando 409 Conflict corretamente. - Corrigido KeyError em grupos recém-criados ao garantir a existência da chave 'users'. ### Pendências - Algumas falhas de permissão para admin de grupo (403 ao invés de 200) permanecem em testes de adicionar/remover usuário por admin de grupo. - Mensagens de erro de promoção de admin de grupo ainda diferem do esperado em alguns testes. - Ver detalhes em temp_test_registry.md para próximos passos. --- ## [0.9.1] - 2025-05-09 ### Adicionado - Testes de integração para a API de Gerenciamento de Usuários (`/tools/usuarios`) em `tests/integration/test_admin_users_api.py`: - `GET /tools/usuarios`: Listagem de usuários por admin global, com restrições para outros papéis. - `GET /tools/usuarios/{username}`: Detalhamento de usuário por admin global ou pelo próprio usuário, com restrições. - `PUT /tools/usuarios/{username}`: Atualização de papel e grupos de usuários por admin global, incluindo validações e tratamento de remoção de privilégios de admin de grupo. - `DELETE /tools/usuarios/{username}`: Remoção de usuários por admin global, incluindo remoção de listas de membros/admins de grupos e prevenção de auto-remoção. - Criação do arquivo `tests/integration/test_group_requests_api.py` para futuros testes da API de solicitações de acesso a grupos. ### Modificado - Atualizado `docs/TODO.md` para marcar como concluída a implementação dos testes CRUD para a API de gerenciamento de usuários. ## [0.9.0] - YYYY-MM-DD (Copilot will fill this in) ### Adicionado - Configuração do ambiente de testes com Pytest (`pytest.ini`, `.env.test`). - Fixtures de teste em `tests/conftest.py` para gerenciamento de dados de teste (RBAC, Requests) e cliente de API. - Testes de integração iniciais para a API de autenticação (`tests/integration/test_auth_api.py`), cobrindo login e refresh token. - Testes de integração para gerenciamento de grupos por Admin Global (`tests/integration/test_admin_groups_api.py`), cobrindo CRUD básico de grupos. - Testes de integração adicionais em `tests/integration/test_admin_groups_api.py` para: - Adicionar/remover usuários de grupos (por admin global e admin de grupo). - Designar/remover administradores de grupo (por admin global e admin de grupo). - Promover usuários a administradores de grupo. - Listar usuários de um grupo (com diferentes permissões de acesso). - Adicionar/remover ferramentas de um grupo (por admin global). - Início da implementação dos testes para a API de gerenciamento de usuários (`/tools/usuarios/...`). - Adicionados testes para `POST /tools/usuarios` (criar usuário) em `tests/integration/test_admin_users_api.py`, cobrindo criação com sucesso por admin global (com e sem grupos iniciais), falhas por username duplicado, papel inválido, grupo inexistente, permissões insuficientes e campos obrigatórios ausentes. ## [0.8.0] - 2025-05-09 ### Adicionado - Documentação técnica detalhada do backend (`docs/backend_documentation.md`) para servir de base para a criação de testes. ### Modificado - Atualizado `docs/TODO.md` para refletir a criação da documentação do backend. ## [0.3.4] - 2025-05-09 ### Corrigido - Todos os endpoints de usuários e grupos corrigidos e validados conforme testes automatizados. - Única falha remanescente é de setup do teste de remoção de usuário do grupo, não do código do endpoint. ## [0.3.3] - 2025-05-09 ### Corrigido - Endpoint GET /tools/usuarios: agora apenas admin global pode listar, retorna todos os campos esperados nos testes (username, papel, grupos, admin_de_grupos), não retorna senha/hash, e garante presença dos usuários de teste. ## [0.3.2] - 2025-05-09 ### Corrigido - Endpoint POST /tools/usuarios: agora permite apenas admin global, retorna 409 se usuário já existe, 400 se grupo não existe, 422 se faltar campo obrigatório, e valida papel corretamente. Mensagens e status ajustados conforme testes automatizados. ## [0.3.1] - 2025-05-09 ### Corrigido - Endpoint DELETE /tools/grupos/{grupo}/usuarios/{username}: agora retorna 200 ou 404 corretamente, remove admin e atualiza papel do usuário. - Endpoint POST /tools/grupos/{grupo}/admins: mensagem de erro exata ao tentar promover usuário não-membro. - Observação: falha do teste de remoção de usuário do grupo marcada para revisão do setup, pois o endpoint está conforme documentação. ## [0.3.0] - 2025-05-09 ### Adicionado - **Testes de Integração (Backend):** - Configuração inicial do ambiente de testes com Pytest, `.env.test` e `tests/conftest.py`. - Fixtures para `TestClient`, gerenciamento de arquivos de dados de teste (`test_rbac.json`, `test_requests.json`) e geração de tokens JWT para testes. - Testes para API de Autenticação (`/tools/health`, `/tools/login`, `/tools/refresh-token`) em `tests/integration/test_auth_api.py`. - Cobertura de cenários de sucesso e falha (credenciais inválidas, token expirado/inválido). - Testes abrangentes para API de Gerenciamento de Grupos em `tests/integration/test_admin_groups_api.py`: - CRUD de grupos por Admin Global (`POST, GET, PUT, DELETE /tools/grupos/{grupo}`). - Gerenciamento de usuários em grupos por Admin Global e Admin de Grupo: - Adicionar/remover usuários (`POST /tools/grupos/{grupo}/usuarios`, `DELETE /tools/grupos/{grupo}/usuarios/{username}`). - Designar/remover admins de grupo (`POST /tools/grupos/{grupo}/admins`, `DELETE /tools/grupos/{grupo}/admins/{username_param}`). - Promover usuário a admin de grupo (`POST /tools/grupos/{grupo}/promover-admin`). - Listagem de usuários de um grupo (`GET /tools/grupos/{grupo}/usuarios`). - Adicionar/remover ferramentas de um grupo por Admin Global (`POST /tools/grupos/{grupo}/ferramentas`, `DELETE /tools/grupos/{grupo}/ferramentas/{ferramenta_id}`). - Início dos testes para a API de Gerenciamento de Usuários (Admin Global). - **Documentação:** - Criação de `docs/backend_documentation.md` com a análise inicial da API. - Atualizações em `docs/TODO.md` e `docs/CHANGELOG.md`. - Criação de sumários de sessão de desenvolvimento (`docs/development_session_summary_*.md`). ### Modificado - **`app/auth.py`:** - Refatorada a lógica de hash de senha no login para suportar senhas já hasheadas (para usuários de teste) e senhas em texto plano (para novos usuários ou atualizações). - **`app/groups/routes.py`:** - Ajustes em endpoints de gerenciamento de grupo para maior consistência e correção de bugs menores identificados durante a escrita dos testes. - Corrigida a lógica de remoção de admin de grupo para corretamente rebaixar o papel do usuário se ele não for admin de outros grupos ou global_admin. - Corrigida a lógica de atualização de papel do usuário ao ser designado/removido como admin de grupo. - **`tests/conftest.py`:** - Melhorada a robustez da fixture `create_master_test_data_files_if_not_exist` para lidar com a criação e hashing de senhas. - Refinamento na obtenção de tokens de autenticação para testes. ### Corrigido - Pequenos bugs na API de gerenciamento de grupos (`app/groups/routes.py`) descobertos durante a implementação dos testes de integração. - Lógica de remoção de último admin de grupo. - Atualização de papel do usuário ao se tornar/deixar de ser admin de grupo. --- ### [1.0.0] - 2025-05-08 - Estrutura inicial backend FastAPI com RBAC, JWT, gestão de grupos, usuários e ferramentas - Portal frontend React/Vite para autoatendimento - Integração backend servindo build do frontend - Documentação de requisitos, arquitetura, segurança, governança e operacional --- ## Boas Práticas - Registre todas as mudanças relevantes, incluindo correções, melhorias e atualizações de dependências. - Utilize o padrão [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/) para facilitar a leitura e manutenção. - Sugestão: utilize issues e pull requests para vincular mudanças a versões. --- *Este documento deve ser atualizado a cada nova versão ou alteração relevante no sistema.*

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jowpereira/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server