v1.5.3
Changed
- Constrained MCP tool string parameters at the input boundary. Enumerated parameters now use
Literaltypes (db_type,cache_type,artifact_type,source,chart_type,chart_style,sort_order,output_format,element_type), free-text and identifier parameters carrymax_lengthbounds, and filename/model-name parameters reject path separators — so invalid, oversized, or path-traversing arguments are rejected before reaching a handler, and the constraints are published in each tool's JSON schema. Handlers keep their existing runtime validation as defense-in-depth.save_semantic_modeladditionally reducesmodel_nameto a bare filename component so it can never escape the models directory.
Fixed
- Aligned all documentation with the registered tool set. Removed references to four tools that were advertised but never registered (
validate_sql_syntax,download_ontology,list_tables_sparql,diagnose_connection_issue) across the README,docs/, Claude skills, and all 8 integration guides, replacing them with registered equivalents (execute_sql_query's built-in validation,download_artifact,query_sparql). Completeddocs/tools-reference.mdto cover all 23 tools (was 16). Corrected stale tool counts (README 32, startup banner 22 → 23). - Resolved all pre-existing lint findings (ruff: unused imports, f-strings without placeholders, unused locals, redundant imports; intentional late imports annotated with
# noqa: E402).ruff check .is now clean.
Added
scripts/bump-version.sh— bumps the version across all files, inserts a CHANGELOG stub, and runsuv lockin one step.scripts/publish-docker.shaccepts a genericDOCKERHUB_PAT(legacyDOCKERHUB_RALFORION_PATstill works).
📦 PyPI: https://pypi.org/project/orionbelt-analytics/1.5.3/
🐳 Docker: ralforion/orionbelt-analytics:1.5.3 (multi-arch)