Repository navigation
Releases
v1.2.1
v1.2.1 — Security hardening & dependency patches
A security-focused patch release. No new user-facing features; existing flows (Assess / Plan / Learn) are unchanged.
🔒 Security hardening (#45, supersedes #33)
- Genie test endpoints fail closed —
GENIE_ALLOW_SP_FALLBACKnow defaults tofalse, so a user who cannot reach a Genie space no longer silently falls back to the app service principal. OBO-only rejections return 403 (GENIE_IDENTITY_REQUIRED) instead of a generic 500. (Assessment SP-based signals are a separate path and are unaffected.) - Error-text sanitization (CWE-209) — failed probes and API errors now return a generic message plus a reference id; raw SQL, exception text, and stack details are no longer leaked to the client.
- PDF export LFI/SSRF hardening (CWE-22/918) —
/api/plan/pdfsanitizes the HTML fragment and blocks external /file://resource loads during rendering. - Header-spoof ownership (CWE-269/863) —
resolve_principalverifies the forwarded token against SCIM/Me; per-user history can no longer be spoofed via headers. - Log redaction (CWE-532) — redaction filter now also attaches to uvicorn / gunicorn loggers.
- SQL identifier/literal quoting (CWE-89) —
quote_ident/quote_literalescape backslashes before quotes across probes and the AI-comments accelerator. starlette==1.6.0pin to clear the advisory affecting the transitive range.
🐛 Fixes
- PDF plan export (#44) — plan title now renders once, with executive-ready polish.
⬆️ Dependency advisories (Dependabot)
- fastapi
~=0.141.1(#35), aiohttp~=3.14.3(#40), uvicorn~=0.52.4(#37), xhtml2pdf>=0.2.18(#38), asyncpg~=0.31.0(#42), react-markdown10.1.0(#41), lucide-react1.45.0(#43), autoprefixer10.5.6(#34).
🙏 Thanks
Security hardening based on a coordinated disclosure and PR from @Vivek-Kommareddy — thank you.
Full changelog: v1.2.0...v1.2.1
v1.2.0
Makes an assessment scopeable, explainable, and exportable, and tightens the surrounding UX.
Highlights
- Workspace scoping — assessments scope to the deployed workspace (a read-only "Scoped to …" label), so activity signals aren't counted account-wide on a shared metastore. Adds a pre-run catalog filter for the metadata pillars.
- Drill-down + explainability — every attributable pillar gets a sortable drill-down table (slice by workspace / catalog / schema, Export CSV) and a View SQL overlay showing the exact query behind each score; plus Export all to CSV (a ZIP with a summary + one CSV per pillar).
- Availability reasons — unreadable pillars report an explicit reason (insufficient permission / not enabled / scan failed) instead of a confident 0.
- Plan & UX — the generated plan leads with a deterministic score summary (renders as a table in-app and in the PDF); a grouped model picker organizes models by Proprietary / Open source and family; the assessment-score card was restructured.
Full changes in #27.
v1.1.1
Patch release — field-reliability fixes for the optional history path and the Genie Agents pillar, since v1.1.0.
Fixes
- Lakebase Autoscaling history — mint per-user history credentials for Autoscaling Lakebase endpoints (
POST /api/2.0/postgres/credentialsvia a newLAKEBASE_ENDPOINT_NAME), so assessment/plan history persists on the Lakebase shape new workspaces get, not just Provisioned instances. The Provisioned path is unchanged. (#18, closes #16) - Bounded Genie Agents audit scan — bound the pillar-5
system.access.audit(aibiGenie) scan to a 30-day window, plus an optional workspace filter whenWORKSPACE_IDis set, so/api/assess/streamcompletes before the Databricks Apps SSE gateway timeout on large accounts. Graceful degradation on a warehouse timeout is preserved. (#19, closes #17)
Full Changelog: v1.1.0...v1.1.1
v1.1.0
Minor release — features and fixes since v1.0.0.
Features
- OBO-first identity — all signals default to OBO (on-behalf-of user) with SP fallback + a
FORCE_SPoverride; each signal is attributed to the identity that served it (#5) - Plan without saved history — generate a plan from the in-session assessment when Lakebase history isn't available; live streaming + inline validation (#6)
- Product naming refresh — Genie Spaces→Agents, Semantic Layer→Metrics, Glossary→Pages (#3)
Fixes
- Wide-metastore scan — chunk + parallelize the metadata scan to fix the hang/network-error on very large metastores (#9)
- Omit unsupported
temperatureparam → fixes HTTP 400 on newer Claude models (#8) - Resolve assessment sources per-request when an OBO user token is present (#1)
Full Changelog: v1.0.0...v1.1.0
v1.0.0
First public release of Genie Ontology Readiness — a self-contained, customer-deployable Databricks App.
- Assess — read-only 7-pillar readiness scorecard (Unity Catalog, metadata, relationships, semantic layer, Genie Spaces, domains & stewardship, adoption) → overall 0–100 score + maturity stage.
- Plan — a tailored, prioritized action plan generated via the workspace's own Foundation Model API, naming the public Databricks accelerators that close each gap.
- Learn — per-capability enablement (technical + business), best practices, and a downloadable AI-ready-semantics methodology handbook.
Deployed as a Databricks App via Asset Bundles; optional Lakebase history (runs stateless otherwise). See README for install and the permissions it needs.