Releases: databricks-solutions/genie-api-cache-queue
Releases · databricks-solutions/genie-api-cache-queue
v1.6.0 — Settings persistence & LLM model overrides
Highlights
- Global settings persisted to Lakebase — configuration now survives redeploys and restarts (previously ephemeral in
/tmp). Session-scoped credentials (lakebase_service_token) remain memory-only with boundary-matched sensitive-key detection. - Dynamic gateway defaults — gateway create stores
NULLfor unset numeric/model fields and resolves them at runtime against current global settings. Changing a global threshold now applies to existing gateways that kept defaults. - Per-gateway LLM model overrides —
normalization_model,validation_model, andintent_split_modelare now selectable per gateway, with fallback to global → module default when blank. - Falsy-value fixes — replaced
or-based coalescing withis not Nonechecks sosimilarity_threshold=0andmax_queries_per_minute=0are preserved. - Playground conversation persistence — user-scoped
localStoragewith schema versioning; in-flight queries marked as failed on restore; persists on visibility/unmount. - UI clarity — Settings page banner explaining precedence ("defaults for new gateways, runtime fallback when unset"); per-gateway Settings tab shows current global value alongside overridable fields.
Changelog
Closes #26.
v1.5.1
v1.5.0
What's Changed
- fix: graceful Lakebase fallback to local storage by @hiydavid in #29
- fix: revert local fallback, harden install script by @Rampim in #30
- feat: RBAC + graceful degradation when token passthrough is disabled by @Rampim in #28
- fix(install): reorder DB config before deploy; handle SP rotation by @hiydavid in #31
New Contributors
Full Changelog: v1.4.0...v1.5.0
v1.4.0 — Lakebase schema & SP ownership
Fixes
- SP schema auto-ownership (#24): The app now runs
CREATE SCHEMA IF NOT EXISTSon startup when using a customLAKEBASE_SCHEMA. The service principal owns the schema it creates, eliminating the need for manualGRANTstatements. Falls back gracefully if the schema already exists under a different owner. - Query log schema alignment (#25):
query_logstable now derives its schema from the configuredLAKEBASE_SCHEMA, matching the existing behavior ofcached_queriesandgateway_configs. Previously it always defaulted to thepublicschema. - New gateway defaults:
question_normalization_enabledandcache_validation_enablednow default tofalsefor newly created gateways, reducing friction for initial setup.
Docs
- Updated Lakebase setup section in README: custom schema (auto-created, no GRANTs) vs
publicschema (manual GRANTs with full list includingSEQUENCES).
v1.3.3
Fixes
- Normalization empty content bug: Send original user query to Genie API instead of normalized form, which could be empty for non-analytical questions (e.g. greetings). Normalized text is now only used for cache key generation. Added empty-canonical fallback in the normalizer.
- Gateway delete confirmation: Replaced browser
confirm()dialog with custom Modal matching the cache-clear dialog style. - Dark mode input fields: Added
bg-dbx-bgto all input fields across gateway creation, gateway settings, and global settings pages.
v1.3.2
Fixes
- Lakebase SP auth on Azure — Create PG role for the app's service principal to enable Lakebase Autoscaling connection
- OAuth scopes documentation — Document required
user_api_scopes(dashboards.genie,serving.serving-endpoints) as post-deploy step in README and CLAUDE.md - Revert SDK to >=0.40.0 — SDK >=0.55.0 incorrectly used SP credentials for embedding calls instead of user OBO token
- Dark mode playground — Fix textarea background and error state colors using theme variables
- Notebooks — Remove hardcoded app URL defaults from demo notebooks
- Cleanup — Remove obsolete TECHNICAL_GUIDE.pdf
v1.3.1
v1.3.0 — Exponential backoff & message locks
What's new
- Exponential backoff with jitter — replaces fixed retry delays for both rate-limit queue (base=5s, cap=10s) and general errors (base=2s, cap=30s)
- Per-message async locks — prevents TOCTOU race conditions on
_synthetic_messagesduring concurrent polls - GenieConfigError fail-fast — 401/403/404 errors are never retried
- Bounded 429 retries — rate-limit errors now count against the retry budget to prevent infinite loops
Notebooks
- MCP notebook: strips
strictfield from tool definitions (Databricks model serving compatibility), 7-question parallel demo scenarios, OAuth token support - API notebook: updated secret name to
oauth_token, fixed markdown rendering
v1.2.0 — Dark Mode
What's New
Dark mode that syncs with your Databricks workspace theme.
Features
- Three theme modes: Light, Dark, or Follow Databricks workspace
- Auto-detection: reads workspace appearance preference via the Settings API using user OAuth
- 22 components migrated to semantic
dbx-*CSS tokens for instant theme switching - Persistence: theme choice saved in localStorage and restored on reload
Improvements
- 10s overall deadline on
/api/workspace-appearanceto prevent stalled requests - Depth-bounded
_extract_themeto safely parse nested API responses asyncio.get_running_loop()for Python 3.12+ compatibility- Hoisted module-level imports, restored Settings default to General section
Fixes
- Race condition in ThemeContext cleanup (three-state sentinel: undefined/null/string)
- Auth model: workspace-appearance uses only user OBO token, no SP fallback
- Stale docstring and hover flash on accordion buttons
- Portuguese string replaced with English
Closes #8
v1.1.3
What's Changed
- Move demo notebooks to
notebooks/directory - Add
dbutils.widgets.text()with defaults (fixesInputWidgetNotDefined) - Normalize variable names and markdown style across both notebooks
- Rename:
demo_notebook→api_gateway_demo,test_mcp_agent→mcp_gateway_agent_demo