Repository navigation
v0.9.0
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_tablesnow merges imported tables with physical tables from authorized schemas (imported metadata wins, deduped by schema+name, capped bydati.mcp.list-tables.max-physical-tables-per-datasource). Tables created through the schema scope are auto-registered intotable_info/column_infowith 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
createdTimeacross 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), explicitAUTH002/AUTH009error bodies withWWW-Authenticatefor unauthenticated requests, andJWT_SECRETis 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_SCHEMASrenamed toschema_scope.- Legacy term-relation delete route (with the
'_'sentinel) removed; delete by relation id only.
Upgrade
docker pull ghcr.io/yimindev/dati:0.9.0Full Changelog: v0.8.1...v0.9.0