Commit 3a16ffe
Fix Tool Edit Screen: Field Mapping Consistency and Custom Tool Naming Implementation (IBM#786)
* db.py update
Signed-off-by: RAKHI DUTTA <[email protected]>
* edit-tool
Signed-off-by: RAKHI DUTTA <[email protected]>
* edit-tool
Signed-off-by: RAKHI DUTTA <[email protected]>
* edit-tool
Signed-off-by: RAKHI DUTTA <[email protected]>
* edit-tool
Signed-off-by: RAKHI DUTTA <[email protected]>
* edit-tool
Signed-off-by: RAKHI DUTTA <[email protected]>
* edit-tool
Signed-off-by: RAKHI DUTTA <[email protected]>
* doc test
Signed-off-by: RAKHI DUTTA <[email protected]>
* pytest
Signed-off-by: RAKHI DUTTA <[email protected]>
* pytest
Signed-off-by: RAKHI DUTTA <[email protected]>
* revert alembic with main version
Signed-off-by: RAKHI DUTTA <[email protected]>
* 138 view realtime logs in UI and export logs (CSV, JSON) (IBM#747)
* Add logging UI
Signed-off-by: Mihai Criveti <[email protected]>
* Add logging UI
Signed-off-by: Mihai Criveti <[email protected]>
* Add logging UI
Signed-off-by: Mihai Criveti <[email protected]>
* Add logging UI readme
Signed-off-by: Mihai Criveti <[email protected]>
* Update logging flake8
Signed-off-by: Mihai Criveti <[email protected]>
* Update logging flake8
Signed-off-by: Mihai Criveti <[email protected]>
* test coverage
Signed-off-by: Mihai Criveti <[email protected]>
* test coverage
Signed-off-by: Mihai Criveti <[email protected]>
* Fix download
Signed-off-by: Mihai Criveti <[email protected]>
* Fix test
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
* 749 reverse proxy (IBM#750)
* Fix download
Signed-off-by: Mihai Criveti <[email protected]>
* Reverse proxy
Signed-off-by: Mihai Criveti <[email protected]>
* Reverse proxy
Signed-off-by: Mihai Criveti <[email protected]>
* Reverse proxy
Signed-off-by: Mihai Criveti <[email protected]>
* doctest improvements
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
* (fix) Added missing prompts/get (IBM#748)
Signed-off-by: Ian Molloy <[email protected]>
* Adds RPC endpoints and updates RPC response and error handling (IBM#746)
* Fix rpc endpoints
Signed-off-by: Madhav Kandukuri <[email protected]>
* Remove commented code
Signed-off-by: Madhav Kandukuri <[email protected]>
* remove duplicate code in session registry
Signed-off-by: Madhav Kandukuri <[email protected]>
* Linting fixes
Signed-off-by: Madhav Kandukuri <[email protected]>
* Fix tests
Signed-off-by: Madhav Kandukuri <[email protected]>
---------
Signed-off-by: Madhav Kandukuri <[email protected]>
* 753 fix tool invocation invalid method (IBM#754)
* Fix tool invocation 'Invalid method' error with backward compatibility (IBM#753)
- Add backward compatibility for direct tool invocation (pre-PR IBM#746 format)
- Support both old format (method=tool_name) and new format (method=tools/call)
- Add comprehensive test coverage for RPC tool invocation scenarios
- Ensure graceful fallback to gateway forwarding when method is not a tool
The RPC endpoint now handles tool invocations in both formats:
1. New format: method='tools/call' with name and arguments in params
2. Old format: method='tool_name' with params as arguments (backward compat)
This maintains compatibility with existing clients while supporting the new
standardized RPC method structure introduced in PR IBM#746.
Signed-off-by: Mihai Criveti <[email protected]>
* Fix flake8 E722: Replace bare except with Exception
Signed-off-by: Mihai Criveti <[email protected]>
* lint
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
* fix: suppress bandit security warnings with appropriate nosec comments (IBM#755)
- Added nosec B105 for ENV_TOKEN as it's an environment variable name, not a hardcoded secret
- Added nosec B110 for intentional exception swallowing in cleanup/error handling paths
- Both cases are legitimate uses where errors should be silently ignored to prevent cascading failures
Signed-off-by: Mihai Criveti <[email protected]>
* Add agents file
Signed-off-by: Mihai Criveti <[email protected]>
* pylint (IBM#759)
Signed-off-by: Mihai Criveti <[email protected]>
* Remove redundant title in readme. (IBM#757)
Signed-off-by: Vinod Muthusamy <[email protected]>
Co-authored-by: Vinod Muthusamy <[email protected]>
* Update documentation with fixed image tag
Signed-off-by: Mihai Criveti <[email protected]>
* 256 fuzz testing (IBM#760)
* Implement comprehensive fuzz testing automation (IBM#256)
- Add property-based testing with Hypothesis for JSON-RPC, JSONPath, and schema validation
- Add coverage-guided fuzzing with Atheris for deep code path exploration
- Add API endpoint fuzzing with Schemathesis for contract validation
- Add security-focused testing for vulnerability discovery (SQL injection, XSS, etc.)
- Add complete Makefile automation with fuzz-all, fuzz-quick, fuzz-extended targets
- Add optional [fuzz] dependency group in pyproject.toml for clean installation
- Add comprehensive reporting with JSON/Markdown outputs and executive summaries
- Add complete developer documentation with examples and troubleshooting guides
- Exclude fuzz tests from main test suite to prevent auth failures
- Found multiple real bugs in JSON-RPC validation during development
Signed-off-by: Mihai Criveti <[email protected]>
* Update fuzz testing
Signed-off-by: Mihai Criveti <[email protected]>
* Update fuzz testing
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
* 344 cors security headers (IBM#761)
* Update CORS
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS ADRs
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS
Signed-off-by: Mihai Criveti <[email protected]>
* Fix compose
Signed-off-by: Mihai Criveti <[email protected]>
* Update helm chart
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS docs
Signed-off-by: Mihai Criveti <[email protected]>
* Update test
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
* feat: Bulk Import Tools modal wiring IBM#737 (IBM#739)
* feat: Bulk Import Tools modal wiring and backend implementation
- Add modal UI in admin.html with bulk import button and dialog
- Implement modal open/close/ESC functionality in admin.js
- Add POST /admin/tools/import endpoint with rate limiting
- Support both JSON textarea and file upload inputs
- Validate JSON structure and enforce 200 tool limit
- Return detailed success/failure information per tool
- Include loading states and comprehensive error handling
Refs IBM#737
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Remove duplicate admin_import_tools function and fix HTML formatting
- Remove duplicate admin_import_tools function definition
- Fix HTML placeholder attribute to use double quotes
- Add missing closing div tag
- Fix flake8 blank line issues
Signed-off-by: Mihai Criveti <[email protected]>
* feat: Complete bulk import backend with file upload support and enhanced docs
- Add file upload support to admin_import_tools endpoint
- Fix response format to match frontend expectations
- Add UI usage documentation with modal instructions
- Update API docs to show all three input methods
- Enhance bulk import guide with UI and API examples
Backend improvements:
- Support tools_file form field for JSON file uploads
- Proper file content parsing with error handling
- Response includes imported/failed counts and details
- Frontend-compatible response format for UI display
Signed-off-by: Mihai Criveti <[email protected]>
* Bulk import
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Remove conflicting inline script and fix bulk import functionality
- Remove conflicting inline JavaScript that was preventing form submission
- Fix indentation in setupBulkImportModal function
- Ensure bulk import modal uses proper admin.js implementation
- Restore proper form submission handling for bulk import
This fixes the issue where bulk import appeared to do nothing.
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Integrate bulk import setup with main initialization
- Add setupBulkImportModal() to main initialization sequence
- Remove duplicate DOMContentLoaded listener
- Ensure bulk import doesn't interfere with other tab functionality
Signed-off-by: Mihai Criveti <[email protected]>
* fix: JavaScript formatting issues in bulk import modal
- Fix multiline querySelector formatting
- Fix multiline Error constructor formatting
- Ensure prettier compliance for web linting
Signed-off-by: Mihai Criveti <[email protected]>
* debug: Temporarily disable bulk import setup to test tabs
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Remove duplicate setupFormValidation call and delay bulk import setup
- Remove duplicate setupFormValidation() call that could cause conflicts
- Use setTimeout to delay bulk import modal setup after other initialization
- Add better null safety to form element queries
- This should fix tab switching issues
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Restore proper initialization sequence for tab functionality
- Remove setTimeout delay for bulk import setup
- Keep bulk import setup in main initialization but with error handling
- Ensure tab navigation isn't affected by bulk import modal setup
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Correct HTML structure and restore tab navigation
- Move bulk import modal to correct location after tools panel
- Remove extra closing div that was breaking HTML structure
- Ensure proper page-level modal placement
- Restore tab navigation functionality for all tabs
This fixes the broken Global Resources, Prompts, Gateways, Roots, and Metrics tabs.
Signed-off-by: Mihai Criveti <[email protected]>
* feat: Add configurable bulk import settings
Configuration additions:
- MCPGATEWAY_BULK_IMPORT_MAX_TOOLS (default: 200)
- MCPGATEWAY_BULK_IMPORT_RATE_LIMIT (default: 10)
Implementation:
- config.py: Add new settings with defaults
- admin.py: Use configurable rate limit and batch size
- .env.example: Document all bulk import environment variables
- admin.html: Use dynamic max tools value in UI text
- CLAUDE.md: Document configuration options for developers
- docs: Update bulk import guide with configuration details
This makes bulk import fully configurable for different deployment scenarios.
Signed-off-by: Mihai Criveti <[email protected]>
* Update docs
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
Co-authored-by: Mihai Criveti <[email protected]>
* Implemented configuration export (IBM#764)
Signed-off-by: Mihai Criveti <[email protected]>
* 185 186 import export (IBM#769)
* Import export
Signed-off-by: Mihai Criveti <[email protected]>
* Import export
Signed-off-by: Mihai Criveti <[email protected]>
* Import export
Signed-off-by: Mihai Criveti <[email protected]>
* Import export
Signed-off-by: Mihai Criveti <[email protected]>
* Import export
Signed-off-by: Mihai Criveti <[email protected]>
* Import export
Signed-off-by: Mihai Criveti <[email protected]>
* Import export
Signed-off-by: Mihai Criveti <[email protected]>
* Import export
Signed-off-by: Mihai Criveti <[email protected]>
* Import export testing
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
* fix: local network address translation in discovery module (IBM#767)
Signed-off-by: Frederico Araujo <[email protected]>
* Well known (IBM#770)
Signed-off-by: Mihai Criveti <[email protected]>
* Update docs with jsonrpc tutorial (IBM#772)
Signed-off-by: Mihai Criveti <[email protected]>
* 137 metadata timestamps (IBM#776)
* Metadata / creation dates
Signed-off-by: Mihai Criveti <[email protected]>
* Metadata / creation dates
Signed-off-by: Mihai Criveti <[email protected]>
* Metadata / creation dates
Signed-off-by: Mihai Criveti <[email protected]>
* Security headers CSP
Signed-off-by: Mihai Criveti <[email protected]>
* Display metadata for resources
Signed-off-by: Madhav Kandukuri <[email protected]>
* eslint fix
Signed-off-by: Madhav Kandukuri <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
Co-authored-by: Madhav Kandukuri <[email protected]>
* feat IBM#262: MCP Langchain Agent (IBM#781)
* feat: Add bulk import UI modal for tools
Signed-off-by: Vicky <[email protected]>
* feat: Add Langchain agent with OpenAI & A2A endpoints (refs IBM#262)
Signed-off-by: Vicky <[email protected]>
* lint: prettier fix at ~L8090 (insert newline)
Signed-off-by: Vicky <[email protected]>
---------
Signed-off-by: Vicky <[email protected]>
Co-authored-by: Vicky <[email protected]>
* Cleanup pr
Signed-off-by: Mihai Criveti <[email protected]>
* Cleanup pr
Signed-off-by: Mihai Criveti <[email protected]>
* Issue 587/rest tool error (IBM#778)
* added params extraction from url logic
Signed-off-by: Veeresh K <[email protected]>
* added params extraction from url logic
Signed-off-by: Veeresh K <[email protected]>
* Rebase and lint / test
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Veeresh K <[email protected]>
Signed-off-by: Mihai Criveti <[email protected]>
Co-authored-by: Mihai Criveti <[email protected]>
* edit column header (IBM#777)
Signed-off-by: Shoumi <[email protected]>
* Test case update (IBM#775)
* session_registry test case updates
Signed-off-by: Mohan Lakshmaiah <[email protected]>
* test case update for routers/reverse_proxy
Signed-off-by: Mohan Lakshmaiah <[email protected]>
* test case update to mcpgateway/reverse_proxy.py
Signed-off-by: Mohan Lakshmaiah <[email protected]>
* Fix formatting issues from pre-commit hooks
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mohan Lakshmaiah <[email protected]>
Signed-off-by: Mihai Criveti <[email protected]>
Co-authored-by: Mohan Lakshmaiah <[email protected]>
Co-authored-by: Mihai Criveti <[email protected]>
* feat: add plugins cli, external plugin support, plugin template (IBM#722)
* feat: add support for external plugins
Signed-off-by: Teryl Taylor <[email protected]>
* feat(plugins): add external mcp server and associated test cases.
Signed-off-by: Teryl Taylor <[email protected]>
* fix(lint): fixed yamllint issues
Signed-off-by: Teryl Taylor <[email protected]>
* fix(lint): fixed flake8 issue.
Signed-off-by: Teryl Taylor <[email protected]>
* feat: define plugins cli and implement bootstrap command
Signed-off-by: Frederico Araujo <[email protected]>
* fix: implement install and package CLI commands
Signed-off-by: Frederico Araujo <[email protected]>
* fix: remote avoid insecure shell=True in subprocess invocation
Signed-off-by: Frederico Araujo <[email protected]>
* feat: add external plugin template
Signed-off-by: Frederico Araujo <[email protected]>
* feat: move copier config to repository root
Signed-off-by: Frederico Araujo <[email protected]>
* feat: update copier template
Signed-off-by: Frederico Araujo <[email protected]>
* feat: get default author from git config
Signed-off-by: Frederico Araujo <[email protected]>
* feat: update copier settings
Signed-off-by: Frederico Araujo <[email protected]>
* fix: copier config syntax
Signed-off-by: Frederico Araujo <[email protected]>
* feat: add external plugin template modules
Signed-off-by: Frederico Araujo <[email protected]>
* fix: template syntax
Signed-off-by: Frederico Araujo <[email protected]>
* fix: template syntax
Signed-off-by: Frederico Araujo <[email protected]>
* fix: make template
Signed-off-by: Frederico Araujo <[email protected]>
* feat: fix template issue
Signed-off-by: Frederico Araujo <[email protected]>
* fix: toml template
Signed-off-by: Frederico Araujo <[email protected]>
* fix: plugin mcp server initialization
Signed-off-by: Frederico Araujo <[email protected]>
* feat: init module for plugin framework
Signed-off-by: Frederico Araujo <[email protected]>
* feat: add chuck runtime and container wrapping
Signed-off-by: Frederico Araujo <[email protected]>
* fix: makefile template
Signed-off-by: Frederico Araujo <[email protected]>
* fix: plugins config path
Signed-off-by: Frederico Araujo <[email protected]>
* feat: add .env.template
Signed-off-by: Frederico Araujo <[email protected]>
* feat: add tools and resources support
Signed-off-by: Frederico Araujo <[email protected]>
* fix: lint yaml
Signed-off-by: Frederico Araujo <[email protected]>
* chore: cleanups
Signed-off-by: Frederico Araujo <[email protected]>
* feat: update manifest.in
Signed-off-by: Frederico Araujo <[email protected]>
* chore: linting
Signed-off-by: Frederico Araujo <[email protected]>
* fix: plugin config variable
Signed-off-by: Frederico Araujo <[email protected]>
* fix(tests): fixed doctests for plugins.
Signed-off-by: Teryl Taylor <[email protected]>
* refactor: external plugin server and plugin external API
Signed-off-by: Frederico Araujo <[email protected]>
* docs(plugins): removed subpackages from examples
Signed-off-by: Teryl Taylor <[email protected]>
* docs: update plugin docs to use public framework API
Signed-off-by: Frederico Araujo <[email protected]>
* fix(plugin): added resource payloads to base plugin.
Signed-off-by: Teryl Taylor <[email protected]>
* feat: udpate test templates
Signed-off-by: Frederico Araujo <[email protected]>
* feat: update test templates
Signed-off-by: Frederico Araujo <[email protected]>
* feat: update plugin template
Signed-off-by: Frederico Araujo <[email protected]>
* feat: update plugin template
Signed-off-by: Frederico Araujo <[email protected]>
* feat: update tempalte makefile
Signed-off-by: Frederico Araujo <[email protected]>
* feat: add template for native plugin
Signed-off-by: Frederico Araujo <[email protected]>
* feat: add readme for native template
Signed-off-by: Frederico Araujo <[email protected]>
* feat: force boostrap to be a subcommnand
Signed-off-by: Frederico Araujo <[email protected]>
* tests(plugin): added http streamable and error tests.
Signed-off-by: Teryl Taylor <[email protected]>
* tests: add tests for plugins CLI
Signed-off-by: Frederico Araujo <[email protected]>
* fix: deprecation warning
Signed-off-by: Frederico Araujo <[email protected]>
* tests: add CLI tests
Signed-off-by: Frederico Araujo <[email protected]>
* tests: update plugin cli
Signed-off-by: Frederico Araujo <[email protected]>
* tests(plugins): added client hook tests for external plugins.
Signed-off-by: Teryl Taylor <[email protected]>
* chore: update template readmes
Signed-off-by: Frederico Araujo <[email protected]>
* fix: lint docstrings in cli
Signed-off-by: Frederico Araujo <[email protected]>
* chore: fix lint errors in docstrings
Signed-off-by: Frederico Araujo <[email protected]>
* chore: fix lint errors
Signed-off-by: Frederico Araujo <[email protected]>
* tests: add external plugin server tests
Signed-off-by: Frederico Araujo <[email protected]>
* chore: cleanup
Signed-off-by: Frederico Araujo <[email protected]>
* chore: add missing docstrings
Signed-off-by: Frederico Araujo <[email protected]>
* chore: add missing docstrings
Signed-off-by: Frederico Araujo <[email protected]>
* tests: fix cli dryrun test
Signed-off-by: Frederico Araujo <[email protected]>
* chore: fix lint issues
Signed-off-by: Frederico Araujo <[email protected]>
* tests: fix teardown of client http tests
Signed-off-by: Frederico Araujo <[email protected]>
* tests: skipping flaky tests
Signed-off-by: Frederico Araujo <[email protected]>
* docs: plugin lifecycle tools
Signed-off-by: Frederico Araujo <[email protected]>
* docs: add missing plugin lifecycle doc
Signed-off-by: Frederico Araujo <[email protected]>
* Review, rebase and lint
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Teryl Taylor <[email protected]>
Signed-off-by: Frederico Araujo <[email protected]>
Signed-off-by: Mihai Criveti <[email protected]>
Co-authored-by: Teryl Taylor <[email protected]>
Co-authored-by: Mihai Criveti <[email protected]>
* feat: Experimental Oauth 2.0 support in gateway (IBM#768)
* Oauth 2.1 design
Signed-off-by: Shamsul Arefin <[email protected]>
* oauth 2.0 design
Signed-off-by: Shamsul Arefin <[email protected]>
* Support for oauth auth type in gateway
Signed-off-by: Shamsul Arefin <[email protected]>
* Decrypt client secret
Signed-off-by: Shamsul Arefin <[email protected]>
* authorization code flow, token storage, tool fetching, tool calling with Oauth2.0
Signed-off-by: Shamsul Arefin <[email protected]>
* test fixes
Signed-off-by: Shamsul Arefin <[email protected]>
* 256 fuzz testing (IBM#760)
* Implement comprehensive fuzz testing automation (IBM#256)
- Add property-based testing with Hypothesis for JSON-RPC, JSONPath, and schema validation
- Add coverage-guided fuzzing with Atheris for deep code path exploration
- Add API endpoint fuzzing with Schemathesis for contract validation
- Add security-focused testing for vulnerability discovery (SQL injection, XSS, etc.)
- Add complete Makefile automation with fuzz-all, fuzz-quick, fuzz-extended targets
- Add optional [fuzz] dependency group in pyproject.toml for clean installation
- Add comprehensive reporting with JSON/Markdown outputs and executive summaries
- Add complete developer documentation with examples and troubleshooting guides
- Exclude fuzz tests from main test suite to prevent auth failures
- Found multiple real bugs in JSON-RPC validation during development
Signed-off-by: Mihai Criveti <[email protected]>
* Update fuzz testing
Signed-off-by: Mihai Criveti <[email protected]>
* Update fuzz testing
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
* 344 cors security headers (IBM#761)
* Update CORS
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS ADRs
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS
Signed-off-by: Mihai Criveti <[email protected]>
* Fix compose
Signed-off-by: Mihai Criveti <[email protected]>
* Update helm chart
Signed-off-by: Mihai Criveti <[email protected]>
* Update CORS docs
Signed-off-by: Mihai Criveti <[email protected]>
* Update test
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
Signed-off-by: Shamsul Arefin <[email protected]>
* feat: Bulk Import Tools modal wiring IBM#737 (IBM#739)
* feat: Bulk Import Tools modal wiring and backend implementation
- Add modal UI in admin.html with bulk import button and dialog
- Implement modal open/close/ESC functionality in admin.js
- Add POST /admin/tools/import endpoint with rate limiting
- Support both JSON textarea and file upload inputs
- Validate JSON structure and enforce 200 tool limit
- Return detailed success/failure information per tool
- Include loading states and comprehensive error handling
Refs IBM#737
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Remove duplicate admin_import_tools function and fix HTML formatting
- Remove duplicate admin_import_tools function definition
- Fix HTML placeholder attribute to use double quotes
- Add missing closing div tag
- Fix flake8 blank line issues
Signed-off-by: Mihai Criveti <[email protected]>
* feat: Complete bulk import backend with file upload support and enhanced docs
- Add file upload support to admin_import_tools endpoint
- Fix response format to match frontend expectations
- Add UI usage documentation with modal instructions
- Update API docs to show all three input methods
- Enhance bulk import guide with UI and API examples
Backend improvements:
- Support tools_file form field for JSON file uploads
- Proper file content parsing with error handling
- Response includes imported/failed counts and details
- Frontend-compatible response format for UI display
Signed-off-by: Mihai Criveti <[email protected]>
* Bulk import
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Remove conflicting inline script and fix bulk import functionality
- Remove conflicting inline JavaScript that was preventing form submission
- Fix indentation in setupBulkImportModal function
- Ensure bulk import modal uses proper admin.js implementation
- Restore proper form submission handling for bulk import
This fixes the issue where bulk import appeared to do nothing.
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Integrate bulk import setup with main initialization
- Add setupBulkImportModal() to main initialization sequence
- Remove duplicate DOMContentLoaded listener
- Ensure bulk import doesn't interfere with other tab functionality
Signed-off-by: Mihai Criveti <[email protected]>
* fix: JavaScript formatting issues in bulk import modal
- Fix multiline querySelector formatting
- Fix multiline Error constructor formatting
- Ensure prettier compliance for web linting
Signed-off-by: Mihai Criveti <[email protected]>
* debug: Temporarily disable bulk import setup to test tabs
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Remove duplicate setupFormValidation call and delay bulk import setup
- Remove duplicate setupFormValidation() call that could cause conflicts
- Use setTimeout to delay bulk import modal setup after other initialization
- Add better null safety to form element queries
- This should fix tab switching issues
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Restore proper initialization sequence for tab functionality
- Remove setTimeout delay for bulk import setup
- Keep bulk import setup in main initialization but with error handling
- Ensure tab navigation isn't affected by bulk import modal setup
Signed-off-by: Mihai Criveti <[email protected]>
* fix: Correct HTML structure and restore tab navigation
- Move bulk import modal to correct location after tools panel
- Remove extra closing div that was breaking HTML structure
- Ensure proper page-level modal placement
- Restore tab navigation functionality for all tabs
This fixes the broken Global Resources, Prompts, Gateways, Roots, and Metrics tabs.
Signed-off-by: Mihai Criveti <[email protected]>
* feat: Add configurable bulk import settings
Configuration additions:
- MCPGATEWAY_BULK_IMPORT_MAX_TOOLS (default: 200)
- MCPGATEWAY_BULK_IMPORT_RATE_LIMIT (default: 10)
Implementation:
- config.py: Add new settings with defaults
- admin.py: Use configurable rate limit and batch size
- .env.example: Document all bulk import environment variables
- admin.html: Use dynamic max tools value in UI text
- CLAUDE.md: Document configuration options for developers
- docs: Update bulk import guide with configuration details
This makes bulk import fully configurable for different deployment scenarios.
Signed-off-by: Mihai Criveti <[email protected]>
* Update docs
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
Co-authored-by: Mihai Criveti <[email protected]>
Signed-off-by: Shamsul Arefin <[email protected]>
* Implemented configuration export (IBM#764)
Signed-off-by: Mihai Criveti <[email protected]>
Signed-off-by: Shamsul Arefin <[email protected]>
* cleanup
Signed-off-by: Shamsul Arefin <[email protected]>
* cleanup
Signed-off-by: Shamsul Arefin <[email protected]>
* fixes
Signed-off-by: Shamsul Arefin <[email protected]>
* ruff fixes
Signed-off-by: Shamsul Arefin <[email protected]>
* fix flake8 errors
Signed-off-by: Shamsul Arefin <[email protected]>
* fix eslint errors
Signed-off-by: Shamsul Arefin <[email protected]>
* aiohttp added in the main dependencies section of pyproject.toml
Signed-off-by: Shamsul Arefin <[email protected]>
* Review, rebase and lint
Signed-off-by: Mihai Criveti <[email protected]>
* Fix Alembic multiple heads issue
Create merge migration to resolve parallel migration chains:
- Main branch migrations (34492f99a0c4)
- OAuth branch migrations (add_oauth_tokens_table)
This resolves CI/CD test failures caused by Alembic not knowing
which migration head to follow during 'alembic upgrade head'.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
Signed-off-by: Mihai Criveti <[email protected]>
* Fix Alembic migration chain - remove merge migration hack
- Remove unnecessary merge migration file (813b45a70b53)
- Fix OAuth config migration to follow proper chain (f8c9d3e2a1b4 → 34492f99a0c4)
- OAuth tokens migration already correctly follows (add_oauth_tokens_table → f8c9d3e2a1b4)
- Now single migration head without parallel branches
This eliminates the 'Multiple heads are present' error in CI/CD tests
by ensuring migrations follow a linear chain instead of creating
parallel migration branches that need artificial merge migrations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
Signed-off-by: Mihai Criveti <[email protected]>
* Review, rebase and lint
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Shamsul Arefin <[email protected]>
Signed-off-by: Mihai Criveti <[email protected]>
Co-authored-by: Shamsul Arefin <[email protected]>
Co-authored-by: Mihai Criveti <[email protected]>
Co-authored-by: VK <[email protected]>
Co-authored-by: Claude <[email protected]>
* Fix pre-commit hooks
Signed-off-by: Mihai Criveti <[email protected]>
* 744 annotations (IBM#784)
* Fix annotations edit
Signed-off-by: Mihai Criveti <[email protected]>
* Fix annotations edit
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: Mihai Criveti <[email protected]>
* fix: plugins template (IBM#783)
* feat: update context forge target in template's project dependencies
Signed-off-by: Frederico Araujo <[email protected]>
* fix: exclude jinja files from reformatting tabs
Signed-off-by: Frederico Araujo <[email protected]>
* fix: plugins cli defaults
Signed-off-by: Frederico Araujo <[email protected]>
* fix: revert formatted Makefile template
Signed-off-by: Frederico Araujo <[email protected]>
* feat: add optional packages
Signed-off-by: Frederico Araujo <[email protected]>
* docs: update plugin template docs
Signed-off-by: Frederico Araujo <[email protected]>
* docs: update template readme
Signed-off-by: Frederico Araujo <[email protected]>
---------
Signed-off-by: Frederico Araujo <[email protected]>
* edit-tool
Signed-off-by: RAKHI DUTTA <[email protected]>
* edit-tool
Signed-off-by: RAKHI DUTTA <[email protected]>
* doc test
Signed-off-by: RAKHI DUTTA <[email protected]>
* edit-tool
Signed-off-by: RAKHI DUTTA <[email protected]>
* web lint
Signed-off-by: RAKHI DUTTA <[email protected]>
* flake8 fix
Signed-off-by: RAKHI DUTTA <[email protected]>
* pytest fix
Signed-off-by: RAKHI DUTTA <[email protected]>
* revert with main
Signed-off-by: RAKHI DUTTA <[email protected]>
* flake fix
Signed-off-by: RAKHI DUTTA <[email protected]>
* revert with main
Signed-off-by: RAKHI DUTTA <[email protected]>
* alembic
Signed-off-by: RAKHI DUTTA <[email protected]>
* alembic change
Signed-off-by: RAKHI DUTTA <[email protected]>
* flake8 fix
Signed-off-by: RAKHI DUTTA <[email protected]>
* remove addtional line
Signed-off-by: RAKHI DUTTA <[email protected]>
* alembic
Signed-off-by: RAKHI DUTTA <[email protected]>
* Rebase and fix
Signed-off-by: Mihai Criveti <[email protected]>
---------
Signed-off-by: RAKHI DUTTA <[email protected]>
Signed-off-by: Mihai Criveti <[email protected]>
Signed-off-by: Ian Molloy <[email protected]>
Signed-off-by: Madhav Kandukuri <[email protected]>
Signed-off-by: Vinod Muthusamy <[email protected]>
Signed-off-by: Frederico Araujo <[email protected]>
Signed-off-by: Vicky <[email protected]>
Signed-off-by: Veeresh K <[email protected]>
Signed-off-by: Shoumi <[email protected]>
Signed-off-by: Mohan Lakshmaiah <[email protected]>
Signed-off-by: Teryl Taylor <[email protected]>
Signed-off-by: Shamsul Arefin <[email protected]>
Co-authored-by: RAKHI DUTTA <[email protected]>
Co-authored-by: Mihai Criveti <[email protected]>
Co-authored-by: Ian Molloy <[email protected]>
Co-authored-by: Madhav Kandukuri <[email protected]>
Co-authored-by: Vinod Muthusamy <[email protected]>
Co-authored-by: Vinod Muthusamy <[email protected]>
Co-authored-by: VK <[email protected]>
Co-authored-by: Frederico Araujo <[email protected]>
Co-authored-by: Madhav Kandukuri <[email protected]>
Co-authored-by: Vicky <[email protected]>
Co-authored-by: Veeresh K <[email protected]>
Co-authored-by: Shoumi M <[email protected]>
Co-authored-by: Mohan Lakshmaiah <[email protected]>
Co-authored-by: Mohan Lakshmaiah <[email protected]>
Co-authored-by: Teryl Taylor <[email protected]>
Co-authored-by: Shamsul Arefin <[email protected]>
Co-authored-by: Shamsul Arefin <[email protected]>
Co-authored-by: Claude <[email protected]>1 parent 78bb433 commit 3a16ffe
File tree
15 files changed
+352
-86
lines changed- mcpgateway
- alembic/versions
- services
- static
- templates
- tests
- integration
- unit/mcpgateway
- services
15 files changed
+352
-86
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1512 | 1512 | | |
1513 | 1513 | | |
1514 | 1514 | | |
1515 | | - | |
| 1515 | + | |
1516 | 1516 | | |
1517 | 1517 | | |
1518 | 1518 | | |
| |||
1521 | 1521 | | |
1522 | 1522 | | |
1523 | 1523 | | |
| 1524 | + | |
1524 | 1525 | | |
1525 | 1526 | | |
1526 | 1527 | | |
| |||
1633 | 1634 | | |
1634 | 1635 | | |
1635 | 1636 | | |
1636 | | - | |
1637 | | - | |
1638 | | - | |
1639 | | - | |
1640 | | - | |
1641 | | - | |
1642 | | - | |
1643 | | - | |
1644 | | - | |
1645 | | - | |
1646 | | - | |
1647 | | - | |
1648 | | - | |
1649 | | - | |
1650 | | - | |
1651 | | - | |
1652 | | - | |
1653 | | - | |
1654 | | - | |
1655 | | - | |
1656 | | - | |
1657 | | - | |
1658 | | - | |
1659 | | - | |
1660 | | - | |
1661 | | - | |
1662 | | - | |
1663 | | - | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
| 1655 | + | |
| 1656 | + | |
| 1657 | + | |
| 1658 | + | |
| 1659 | + | |
| 1660 | + | |
| 1661 | + | |
| 1662 | + | |
| 1663 | + | |
| 1664 | + | |
| 1665 | + | |
1664 | 1666 | | |
1665 | 1667 | | |
1666 | 1668 | | |
| |||
1686 | 1688 | | |
1687 | 1689 | | |
1688 | 1690 | | |
1689 | | - | |
| 1691 | + | |
| 1692 | + | |
1690 | 1693 | | |
1691 | 1694 | | |
1692 | 1695 | | |
| |||
1772 | 1775 | | |
1773 | 1776 | | |
1774 | 1777 | | |
1775 | | - | |
| 1778 | + | |
| 1779 | + | |
1776 | 1780 | | |
1777 | 1781 | | |
1778 | 1782 | | |
| |||
2088 | 2092 | | |
2089 | 2093 | | |
2090 | 2094 | | |
| 2095 | + | |
2091 | 2096 | | |
2092 | 2097 | | |
2093 | 2098 | | |
| |||
2110 | 2115 | | |
2111 | 2116 | | |
2112 | 2117 | | |
| 2118 | + | |
2113 | 2119 | | |
2114 | 2120 | | |
2115 | 2121 | | |
| |||
2128 | 2134 | | |
2129 | 2135 | | |
2130 | 2136 | | |
| 2137 | + | |
2131 | 2138 | | |
2132 | 2139 | | |
2133 | 2140 | | |
| |||
2146 | 2153 | | |
2147 | 2154 | | |
2148 | 2155 | | |
| 2156 | + | |
2149 | 2157 | | |
2150 | 2158 | | |
2151 | 2159 | | |
| |||
2164 | 2172 | | |
2165 | 2173 | | |
2166 | 2174 | | |
| 2175 | + | |
2167 | 2176 | | |
2168 | 2177 | | |
2169 | 2178 | | |
| |||
2181 | 2190 | | |
2182 | 2191 | | |
2183 | 2192 | | |
| 2193 | + | |
2184 | 2194 | | |
2185 | 2195 | | |
2186 | 2196 | | |
| |||
2202 | 2212 | | |
2203 | 2213 | | |
2204 | 2214 | | |
2205 | | - | |
2206 | 2215 | | |
2207 | 2216 | | |
2208 | 2217 | | |
2209 | 2218 | | |
2210 | 2219 | | |
2211 | 2220 | | |
| 2221 | + | |
2212 | 2222 | | |
2213 | 2223 | | |
2214 | 2224 | | |
| |||
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
Lines changed: 42 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
369 | 369 | | |
370 | 370 | | |
371 | 371 | | |
372 | | - | |
373 | 372 | | |
374 | 373 | | |
375 | 374 | | |
| |||
403 | 402 | | |
404 | 403 | | |
405 | 404 | | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
406 | 409 | | |
407 | 410 | | |
408 | 411 | | |
| |||
431 | 434 | | |
432 | 435 | | |
433 | 436 | | |
434 | | - | |
| 437 | + | |
435 | 438 | | |
436 | 439 | | |
437 | 440 | | |
438 | 441 | | |
439 | | - | |
| 442 | + | |
440 | 443 | | |
441 | 444 | | |
442 | | - | |
| 445 | + | |
443 | 446 | | |
444 | 447 | | |
445 | 448 | | |
| |||
1123 | 1126 | | |
1124 | 1127 | | |
1125 | 1128 | | |
1126 | | - | |
| 1129 | + | |
1127 | 1130 | | |
1128 | 1131 | | |
1129 | 1132 | | |
| |||
1285 | 1288 | | |
1286 | 1289 | | |
1287 | 1290 | | |
1288 | | - | |
| 1291 | + | |
1289 | 1292 | | |
1290 | 1293 | | |
1291 | 1294 | | |
| |||
1617 | 1620 | | |
1618 | 1621 | | |
1619 | 1622 | | |
1620 | | - | |
1621 | | - | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
| 1626 | + | |
| 1627 | + | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
1622 | 1631 | | |
1623 | 1632 | | |
1624 | | - | |
1625 | | - | |
1626 | | - | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
1627 | 1636 | | |
1628 | | - | |
1629 | | - | |
1630 | | - | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
1631 | 1644 | | |
1632 | | - | |
| 1645 | + | |
| 1646 | + | |
1633 | 1647 | | |
1634 | | - | |
| 1648 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
628 | 628 | | |
629 | 629 | | |
630 | 630 | | |
| 631 | + | |
631 | 632 | | |
632 | 633 | | |
633 | 634 | | |
| |||
668 | 669 | | |
669 | 670 | | |
670 | 671 | | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
671 | 685 | | |
672 | 686 | | |
673 | 687 | | |
| |||
864 | 878 | | |
865 | 879 | | |
866 | 880 | | |
867 | | - | |
| 881 | + | |
| 882 | + | |
868 | 883 | | |
869 | 884 | | |
870 | 885 | | |
| |||
0 commit comments