5.9.4
Features
- ui: add flagged status to test definitions (TG-976 Phase 1) (07a5a0f)
- ui: add notes dialog, review column, and sorting improvements (TG-980) (84b0ad1)
- mcp: add MCP server foundation with JWT auth and ping tool (c123552)
- mcp: add P0 tools, resources, prompts and model extensions (8f69936)
- projects: add a project membership to handle user role in a project (6533624)
- plugins: support multiple pages per plugin spec (6c232ef)
- auth: scope sidebar projects to user memberships (e654258)
- ui: add Dialog component; fix Portal stacking context (b0c96a3)
- ui: add disabled prop to Toggle; add notIn form validator (356ba70)
- mcp: polish inspector output and add validation (2761ffa)
- catalog: add CSV import/export for metadata (62e490b)
- mcp: enforce project-level permission scoping on all tools (f4e876a)
- support oauth for databricks (cffe34c)
- add support for Oracle 12c+ (085e45d)
- add support for SAP HANA (4b993b5)
- add safe_rerun to prevent data loss on Streamlit rerun (a0be715)
- mcp: sanitize errors at tool/resource/prompt boundary (8e5e7b2)
- pii masking, xde, hash fingerprints (8bdaa83)
- test suites: add search filter (ffb41a9)
- wizards: make steppers clickable (14f5e8c)
Bug Fixes
- resolve ruff linting issues (import sorting, dict literals, unused import) (b57e70f)
- improve upgrade commands to update revision after each script (0db6fdb)
- ui: misc JS fixes (08a6a8a)
- ui: mirror utils.js JSDoc type improvement to static copy (9b4e120)
- ui: visual inconsistencies and navigation bug (e2e95df)
- ui: hide portal when main content scrolls (3100ae7)
- navigation: add project/permission checks and redirects (f1d29e1)
- ui: address MR review feedback for CSV metadata import (TG-988) (cb1c9dc)
- ui: skip entire row on CDE error, not just the field (TG-988) (e694400)
- ui: fix auth base class kwarg, review column spacing, and grants (e3b0581)
- ui: address MR review feedback for notes dialog (TG-976) (1f2a5f8)
- discrepancies between flavors in hygiene issues and test types (e13a7f5)
- sql server: make Dupe Rows test case sensitive (0e6be25)
- discrepancies in Weekly Record Count test (911f81a)
- edit-monitors: bugs in form - validate required fields (24e6299)
- data catalog: remove test suite links for catalog role (351d54d)
- update doc links (8e68494)
- monitors: generate freshness monitors when profiling data already exists (8b39bbb)
- use database_session() context manager for schedule query (de20ee0)
- always clear cache in safe_rerun (671e702)
- TG-1005: correct Daily_Record_Ct operator and Email_Format lookup regexes (adc7883)
- TG-1005: make MSSQL calendar gap lookups consistent with other flavors (5b2d69d)
- TG-1005: fix cross-flavor test type bugs found by validation suite (b1100e0)
- ui: render portals/tooltips on top of Streamlit dialogs (3b18a69)
- ui: add support for caption in select options (9e7ce46)
- monitor: use excluded days from schedule if active (31c0361)
- remove summary from edit table group dialog (36aa858)
- data catalog: add help text (a326e67)
- updates to pii masking and xdes (0146128)
- scheduler shutdown race — check _stopping before blocking on _reload_event (4cdb3f2)
- database urls detected as emails (592ce63)
- data catalog: improve flag styling (39c82cf)
- monitor generation fails to find test suite (8d3667b)
- edge case in column history dialog (6c82a06)
- schedules dialog: bug in pausing/deleting (7f105d5)
- run tests: hide button in dialog after clicking link (2ead7ac)
- table group: remove stepper from edit dialog (62e1b4c)
- truncate timestamps to date in Daily_Record_Ct measure formula (1019526)
- cast timestamps to date in Daily_Record_Ct source data lookup (Databricks) (25636ca)
- ui: portals were closing when a nested portal opened (f5747aa)
- emails: move app links to left (2512c9e)
- update error text to be consistent (8d461c3)
- test definitions: handle empty suite (04dbd1b)
- scorecard: error on adding notification (b94c506)
- copy/move tests: unique key constraints (1dfbfd9)
- data catalog: prefix icons disappear after saving (104e0b8)
- missing imports (66f244e)
Refactors
- remove pydantic and streamlit-pydantic dependencies (002d5da)
- hide MCP behind feature flag and standardize boolean settings (87f7205)
- decouple RBAC from enterprise plugin via PluginHook (67749e4)
- mcp: rewrite server instructions and handle plugin load errors (c73dfcc)
- mcp: hide internal test_type codes from user-facing output (cacab09)
- mcp: replace global admin bypass with role-based permissions (99e8781)
- profiling: replace yaml files with TG- conditional SQL templates (f50b454)
- flavor: make FlavorService stateless with explicit params (094a15b)
- introduce database_session context manager (f82e34c)
- replace st.rerun with safe_rerun in UI code (e43a3ab)
- track writes via after_flush, clear cache in safe_rerun (292f1ab)
- remove cache-clearing side effects from model mutations (ff7917f)
- remove redundant cache clears from view callsites (df62103)
- remove explicit commits from model mutations (5732304)
Miscellaneous
Docker Image
datakitchen/dataops-testgen:v5.9.4