-
v7.13.0 Stable
released this
2026-09-03 14:48:53 +00:00 | 152 commits to main since this releaseData Controller for SAS — v7.13.0
Released 3 September 2026.
This release brings a major upgrade to the Data Editor: live spreadsheet-style formulas powered by HyperFormula, four new validation rules, native date/time pickers, a paste-validation overlay, and a long list of editor robustness fixes. It also delivers significant Viya deployment and configurator improvements, expanded CAS support, a new SAS VA embed mode, resizable viewboxes, and enhanced licensing handling.
For installation / upgrade instructions, visit https://docs.datacontroller.io/
Highlights
Live Formulas in the Editor
The Data Editor now supports live, spreadsheet-style formulas. Configure a column with a HARDFORMULA or SOFTFORMULA validation rule and the editor will evaluate the formula in real time using HyperFormula, showing the computed value in each cell. Formula-aware behaviour has been extended across the editor:
- Live formulas are now evaluated for any character column, not just those with explicit HARDFORMULA / SOFTFORMULA rules.
- When you paste a formula, column names are automatically translated to the correct cell references.
- A cell overwritten by a formula is flagged so you can revert it; cell revert has been generalised to any overwritten value, not just formulas.
- The primary key and numeric columns now resolve a live formula to its computed value (not the raw formula text) when submitted.
- A dedicated DC.ROW_STATUS column is now driven live by formulas, and has been hardened against collisions with real columns of that name.
- Formula-looking values pasted from Excel are auto-escaped so they are treated as data, not evaluated as formulas, unless you explicitly choose "Apply as formula".
New Validation Rules
Four new validation rules have been added (issue #241), with a migration script to introduce them:
- READONLY — the rule value becomes the default inserted when adding a row; the column is marked read-only in the editor.
- HIDDEN — the rule value is the default on row insert; the column is invisible in the editor but still submitted on save.
- ROUND — rounds a numeric value to a given number of digits (like the Excel ROUND function). This changes the stored value.
- NUMBER_FORMAT — a display-only format applied via the Intl.NumberFormat object.
Editor Experience
- Native date / time / datetime pickers when editing a cell, replacing the previous input handling.
- Date / time / datetime columns migrated to Handsontable 17 Intl cell types for consistent, locale-aware editing.
- A paste-validation overlay now appears on paste, letting you cancel or confirm before changes are applied; autofilled cells are validated too.
- Row-header status cells are colour-coded, and the "modified" symbol is now ± for clearer visual feedback.
- The column-info dropdown text can now be selected and copied.
- Table-header buttons and titles are sized to their content instead of fixed grid thirds.
- Multi-column sort has been restored and now issues a single call instead of a loop.
SAS VA Embed Mode
A new embed mode lets you surface Data Controller inside a SAS Visual Analytics data-driven content object. Append ?embed=va to the URL. Filter modes and a pending-changes UX are included.
Resizable Viewboxes
Viewboxes can now be resized by dragging on any of the four edges or corners.
Licensing Improvements
- Combined-key paste support: paste a multi-field licence key in one go.
- Object-format feature flags and a live key preview are now supported.
- The app now warns and blocks applying a licence key generated for the wrong protocol (http vs https).
Viya Deployment & Configurator
- The Viya configurator tab has been overhauled (issue #303): the Groups dropdown starts with the logged-in user's groups; the Contexts dropdown is grouped by batch user id (contexts without batch ids appear last); and a new "verify" button calls the startup service to confirm it is running before switching to the regular flow.
- The automatic deploy flow now shows an abort modal when the getAdminGroup response is missing items, instead of failing silently (issue #200).
- The login page UX has been improved (issue #125): better input contrast and validation so submitting empty fields no longer produces an infinite spinner.
- Deploy now includes Viya deploy checks, startup diagnostics, and a chunked deploy script for reliability on larger Viya installations.
- The compute context is auto-fixed on deploy, and ComputeContextDetails has been extended with Viya response fields. A note clarifies that the debug comment added during deploy is permanent.
CAS Support
- The REPLACE load type is now supported on CAS tables, with accompanying documentation.
- Temporary casuser tables are now cleaned up correctly in error conditions.
Stage Page
- A Formatted / Unformatted toggle has been added to the staging page, so you can view staged data either way.
Bug Fixes
Editor & Formulas
- Fixed formula $-substitution corruption and a desync between sorted grids, rows, and formulas.
- Fixed missing columns being turned into undefined, and corrected column lookup for sparse rows.
- A reverted cell is now re-marked as auto-escaped so "Apply as formula" works again.
- The internal dc.row_status marker is no longer submitted to the backend.
- Sort state is now cleared before reading cells, preserving the original order on cancel.
- EDIT_STATUS no longer collides with a real column of that name.
Backend / SAS
- Formats now arrive from the backend in getstagetable.sas.
- Regex metacharacters in a context name are escaped before prxchange.
- A utility macro is now used for webout.
Security & Dependencies
- Pinned fast-uri to 3.1.7 to close high-severity SSRF / host-confusion advisories.
- Resolved npm audit vulnerabilities across production dependencies via targeted lockfile patches (including a scoped brace-expansion override and a nanoid override to 3.3.18).
- Aligned all @angular/* packages to a single lockstep version; pinned @handsontable/angular-wrapper and Handsontable to 18.0.0; pinned babel-loader to resolve a peer conflict; regenerated the lockfile under Node 24 with strict peer-dep resolution to fix npm ci in CI.
Core
- The bundled SASjs core has been bumped to v5 (a breaking change for anyone consuming core directly). The bump includes an mp_validate fix.
Upgrade Notes
- This release ships SASjs core v5. If you maintain a custom build pipeline that references core directly, review the core v5 changes before upgrading.
- The new validation rules (READONLY, HIDDEN, ROUND, NUMBER_FORMAT) ship with a migration script; run it to register the rules in MPE_VALIDATIONS.
- Handsontable and @handsontable/angular-wrapper are now pinned to 18.0.0.
Full commit-level changelog: https://git.datacontroller.io/dc/dc/compare/v7.12.0...v7.13.0
Downloads