Skip to content

v0.9.0

Choose a tag to compare

@yimindev yimindev released this 23 Oct 00:40
· 13 commits to main since this release

Highlights

  • Schema-scoped data access — data sources can now be scoped to specific schemas (schema_scope), so table access, metadata and MCP exposure are managed per schema instead of per whole database. Frontend table-access UI reworked accordingly.
  • MCP metadata tools cover the schema scope — list_tables now merges imported tables with physical tables from authorized schemas (imported metadata wins, deduped by schema+name, capped by dati.mcp.list-tables.max-physical-tables-per-datasource). Tables created through the schema scope are auto-registered into table_info / column_info with best-effort semantic indexing.
  • Semantic & subject consistency — closed consistency gaps between subjects, terms, semantic index and ACLs (ACL cleanup on delete, correct audit fields, preserved index createdTime across updates and resync).

Fixes

  • MCP tool updates are truly partial (omitted fields are no longer reset).
  • Correct preview SQL rendering and runtime parameter validation; documented the separation between SQL binding and preview rendering.
  • Datasource metadata and connection validation hardened.
  • Auth hardened: password policy 8–72 chars, case-insensitive usernames (canonical casing returned by /auth/me), explicit AUTH002 / AUTH009 error bodies with WWW-Authenticate for unauthenticated requests, and JWT_SECRET is now required outside the dev profile.
  • Search aliases are allowed again; term relation columns are validated, ACLs cleaned on delete, guest API keys rejected.
  • Actionable tool parameter validation messages.

Breaking changes (beta — no backward compatibility)

  • MANAGED_SCHEMAS renamed to schema_scope.
  • Legacy term-relation delete route (with the '_' sentinel) removed; delete by relation id only.

Upgrade

docker pull ghcr.io/yimindev/dati:0.9.0

Full Changelog: v0.8.1...v0.9.0