• v7.12.0 Stable

    gitea-actions released this 2026-07-28 10:15:56 +00:00 | 0 commits to main since this release

    7.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, and NOTNULL rules.
    • SOFTREGEX — non-matching values show a yellow warning (new dc-warning-cell styling) but submission is still allowed. Warnings also appear in the edit-record modal.

    Behaviour details:

    • Pattern validation on save — patterns are validated with PRXPARSE in a new post-edit hook, and invalid patterns are rejected with the offending columns listed. Both SAS PRX /pattern/flags syntax 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 to MPE_X_TEST / MPE_X_NEW, plus new documentation in docs/dcc-validations.md and docs/tables/mpe_validations.md.

    MPE_SECURITY shows all libraries (#279)

    The LIBREF validation dropdown in MPE_SECURITY now 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 REPLACE loadtype. 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.ts Cypress 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/core and patched audit vulnerabilities across client and sas lockfiles — npm audit now reports 0 vulnerabilities, enforced by a strict CI check.
    • Fixed lockfile peer-dependency drift so npm ci works 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