You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace per-tool Python handlers with a single generic HTTP executor engine,
enabling new REST-backed bioinformatics tools to be added by editing tools.example.yaml only — no Python code required.
Motivation
Currently adding a new tool requires:
A new toolserver/tools/<tool>.py handler
Manual registration in toolserver/tools/__init__.py
A YAML entry in tools.example.yaml
With 100+ bioinformatics REST APIs planned (UniProt, NCBI, STRING, KEGG,
Reactome, GO, Europe PMC, ClinVar, gnomAD, etc.), this per-tool overhead
is unsustainable.
Update toolserver/tools/__init__.py
Auto-register all tools with an http: block from YAML via a single loop
No per-tool Python files needed for HTTP tools
Summary
Replace per-tool Python handlers with a single generic HTTP executor engine,
enabling new REST-backed bioinformatics tools to be added by editing
tools.example.yamlonly — no Python code required.Motivation
Currently adding a new tool requires:
toolserver/tools/<tool>.pyhandlertoolserver/tools/__init__.pytools.example.yamlWith 100+ bioinformatics REST APIs planned (UniProt, NCBI, STRING, KEGG,
Reactome, GO, Europe PMC, ClinVar, gnomAD, etc.), this per-tool overhead
is unsustainable.
Proposed Changes
omnibioai-toolservertoolserver/adapters/http_tool_executor.pyGeneric HTTP executor — resolves URL path params, query params,
headers, GET/POST (form + JSON), response dot-path mapping, secret masking
toolserver/tools/__init__.pyAuto-register all tools with an
http:block from YAML via a single loopNo per-tool Python files needed for HTTP tools
omnibioai-tes(no adapter changes needed)configs/tools.example.yamlAdd 100 declarative tool definitions across categories:
Sequence, Structure, Pathways, Interactions, Variants, Expression,
Ontology, Literature, Compounds, Disease, Gene Annotation
configs/servers.example.yamlRegister ToolServer with auto-discovery (TES already calls /capabilities)
New YAML Tool Schema
Tool Categories (100 tools total)
Acceptance Criteria
GET /capabilitieson ToolServer advertises all YAML-defined toolssecret: true) are masked in all logsenrichr_pathwaytool continues to work unchanged