-
v7.12.0 Stable
released this
2026-07-28 10:15:56 +00:00 | 0 commits to main since this release7.12.0 (2026-07-28)
Release Notes
This is a big update and relevant for all installs of DC!
Highlights
This release adds regular-expression validation rules, enforces data-loading safety rules, fixes viewbox filter isolation, and brings the dependency stack to zero known vulnerabilities.
New Features
Regex validation rules: HARDREGEX and SOFTREGEX (#273)
Two new data-quality rule types are available in
MPE_VALIDATIONS, applying regular expressions to cell values:- HARDREGEX — non-matching values block submission (cell renders red), consistent with existing
CASE,MINVAL,MAXVAL, andNOTNULLrules. - SOFTREGEX — non-matching values show a yellow warning (new
dc-warning-cellstyling) but submission is still allowed. Warnings also appear in the edit-record modal.
Behaviour details:
- Pattern validation on save — patterns are validated with
PRXPARSEin a new post-edit hook, and invalid patterns are rejected with the offending columns listed. Both SAS PRX/pattern/flagssyntax and bare patterns are supported. - Evaluation — patterns are used as authored (not auto-anchored); write
^...$for a full-value match. Malformed browser-side patterns fail open (logged, not blocking). - Exemptions — blank values and plain numeric missing (
.) are exempt; special missings (.A–.Z,._) are validated. Rows marked for deletion are skipped (except primary-key columns). - One regex per column — if both rules exist on a column, SOFTREGEX is ignored. The applied pattern is shown in the column-header info dropdown and cell tooltip.
- Demo columns (
REGEX_HARD_COL,REGEX_SOFT_COL) added toMPE_X_TEST/MPE_X_NEW, plus new documentation indocs/dcc-validations.mdanddocs/tables/mpe_validations.md.
MPE_SECURITY shows all libraries (#279)
The LIBREF validation dropdown in
MPE_SECURITYnow lists all assigned libraries, not just those containing editable tables.Improvements & Fixes
RLS / REPLACE loadtype validation (#211)
Row-level security with EDIT (or ALL) scope is incompatible with the
REPLACEloadtype. This is now enforced in both directions: EDIT-scope RLS rules cannot be saved against REPLACE-loadtype tables, and a table cannot be switched to REPLACE while EDIT-scope RLS rules exist.Viewbox filter isolation (#239)
Fixed viewbox filter state leaking into (and from) the base table's filters — each viewbox now maintains its own isolated filters. The previously flaky
viewbox.cy.tsCypress tests have been fixed and added to CI.Dependency upgrades & security (#276)
- Upgraded Angular 19 → 20 and Clarity, with a crypto/browserify shim for sheetJS.
- Bumped
@sasjs/coreand patched audit vulnerabilities acrossclientandsaslockfiles —npm auditnow reports 0 vulnerabilities, enforced by a strict CI check. - Fixed lockfile peer-dependency drift so
npm ciworks reliably in the pipeline. - Removed all externally fetched assets (including
og:meta links), keeping Data Controller fully offline/on-prem capable.
Testing
- Unit tests green, including new suites for regex parsing, warning rendering, exemptions, and validator behaviour.
- TypeScript, linting, and production build all clean.
- CI build + Cypress green, including new HARDREGEX/SOFTREGEX editor cases and viewbox tests.
- SAS test suite updated with new stagedata and RLS/validations hook tests.
Bug Fixes
- adding REGEX validations to mpe_x_test (bd798b4)
- default value for label (a3e46a9)
- deps: retarget Angular upgrade to 20, not 21 (CI install was broken) (cac9244)
- ensure only one REGEX applies at a time (8fb58eb)
- ensure that no assets (including og links) ever fetch from external sources (33dcb98)
- include peer dependencies in package-lock for npm ci in pipeline (b51c770)
- licensecheker (f60bcef)
- lint: remove redundant optional chaining (d881290)
- optimisation, renamed values for DDTYPE to save space (cfb60e5)
- patch npm audit vulnerabilities in sas and client dependencies (e22edf7)
- query: isolate viewbox filter state from the base table's (7a35cf4)
- regenerate client lockfile to resolve Angular peer-dependency drift breaking npm ci (05fe474)
- regex: special missing handling (180c247)
- removing low severity warning in npm audit (2a771bb)
- removing thousand seperator from plain numerics in EDIT mode (0392a81)
- validations: parse SAS PRX /pattern/flags syntax in HARDREGEX/SOFTREGEX (7ed3730)
Features
- docs: adding agents.md and docs for RLS (359d833)
- editor: add HARDREGEX/SOFTREGEX validation rules (17e4802)
- editor: evaluate HARDREGEX/SOFTREGEX independently instead of hard-wins precedence (57db117)
- editor: show applied HARDREGEX/SOFTREGEX pattern in column info dropdown (39c8855)
- regex: backend validations on regex strings (d2c93a4)
- using ALL libraries as validation in MPE_SECURITY. Closes #279 (62ff0ae)
- validation checks to prevent incompatible RLS rules (eg REPLACE load type). Closes #211 (ea00c5a)
- validation on RLS for REPLACE, + docs + tests. Closes #211 (7378f3b)
For installation instructions, please visit https://docs.datacontroller.io/
Downloads
- HARDREGEX — non-matching values block submission (cell renders red), consistent with existing