Version 7.13 Release #294

Open
allan wants to merge 49 commits from version7-13 into main
Owner

Highlights

Formula-based data quality rules

A major new capability: HARDFORMULA / SOFTFORMULA DQ rule types, backed by Handsontable's formulas plugin (HyperFormula).

  • Formula rules substitute column names with row-relative cell references and resolve DC.USER_NAME / DC.ORIG_VALUE to literal values; HARDFORMULA reuses the existing READONLY mechanism.
  • Live DC.ROW_STATUS via a hidden EDIT_STATUS column, so formulas can react to a row's edit state; the row-header +/-/~ indicator translates visual→physical row index so it stays correct when the grid is sorted.
  • Inserting rows uses hot.alter() so formula values realign instead of going stale.
  • UserService is now providedIn: 'root', fixing DC.USER_NAME (and other lazy-module readers) always seeing an unset user.
  • The column-info dropdown shows the applied formula.
  • Formula-overwritten cells are flagged and can be reverted; saveTable() submits the live computed value rather than the raw =... string.
  • Guards against EDIT_STATUS / dc.row_status colliding with a real column of the same name, and stops the client-only EDIT_STATUS column from being submitted to the backend during dynamic cell validation.

Cell revert

Revert one cells (or range of cells) to their original (current) value

Formatted / Unformatted toggle on the staging page

Mirrors the review page's toggle. getstagetable.sas now also returns SAS-formatted data (fmt_stagetable), and the UI picks between formatted and raw, falling back to raw when formatted data is absent. Added e2e coverage.

Viewbox resize on all edges

Viewboxes can now be dragged to resize from all four edges and corners (previously only the bottom-right corner). Resize handles sit above Handsontable's frozen header clones so clicks reach the handle rather than the table underneath.

Licence-key protocol mismatch warning

A licence key generated for one connection type (http/https) always fails to decrypt on the other. The mismatch is now detected client-side from the raw key text before submission, with a warning and the apply button disabled, instead of surfacing only as a generic "invalid key" error after a backend round trip.

Bug fixes

  • stage: ensure formats arrive from the backend in getstagetable.sas.
  • validations: bump core for the mp_validate fix.
  • CAS: support the REPLACE load type (plus docs).
  • startup: show the real startup-service response text when Viya returns a plain-text "Job error" body instead of JSON, instead of reporting every expected field as "not present".
  • editor: the column-info dropdown text can now be selected and copied.
  • editor: table-header buttons and title size to their content rather than fixed grid thirds, so the dataset name/row-count no longer wraps unnecessarily.
  • editor: dc.row_status / EDIT_STATUS is no longer submitted to the backend.

Dependencies / security

  • Resolved npm audit vulnerabilities in production dependencies (Angular HttpTransferCache cache-key ambiguity and i18n XSS advisories).
  • Aligned all @angular/* packages to the same lockstep version (20.3.27) so CI's strict npm ci passes.
  • Scoped the brace-expansion override to its actual vulnerable chain (fixes license-checker breakage).
  • Pinned babel-loader to resolve an unresolvable peer conflict; regenerated/patched the lockfile to fix npm ci sync errors.
  • Overrode nanoid to 3.3.18 in sas/ directly (rather than relying on @sasjs/cli's override, which doesn't propagate to consumers) so it survives future npm install runs.
## Highlights ### Formula-based data quality rules A major new capability: `HARDFORMULA` / `SOFTFORMULA` DQ rule types, backed by Handsontable's formulas plugin (HyperFormula). - Formula rules substitute column names with row-relative cell references and resolve `DC.USER_NAME` / `DC.ORIG_VALUE` to literal values; `HARDFORMULA` reuses the existing READONLY mechanism. - Live `DC.ROW_STATUS` via a hidden `EDIT_STATUS` column, so formulas can react to a row's edit state; the row-header +/-/~ indicator translates visual→physical row index so it stays correct when the grid is sorted. - Inserting rows uses `hot.alter()` so formula values realign instead of going stale. - `UserService` is now `providedIn: 'root'`, fixing `DC.USER_NAME` (and other lazy-module readers) always seeing an unset user. - The column-info dropdown shows the applied formula. - Formula-overwritten cells are flagged and can be reverted; `saveTable()` submits the live computed value rather than the raw `=...` string. - Guards against `EDIT_STATUS` / `dc.row_status` colliding with a real column of the same name, and stops the client-only `EDIT_STATUS` column from being submitted to the backend during dynamic cell validation. ### Cell revert Revert one cells (or range of cells) to their original (current) value ### Formatted / Unformatted toggle on the staging page Mirrors the review page's toggle. `getstagetable.sas` now also returns SAS-formatted data (`fmt_stagetable`), and the UI picks between formatted and raw, falling back to raw when formatted data is absent. Added e2e coverage. ### Viewbox resize on all edges Viewboxes can now be dragged to resize from all four edges and corners (previously only the bottom-right corner). Resize handles sit above Handsontable's frozen header clones so clicks reach the handle rather than the table underneath. ### Licence-key protocol mismatch warning A licence key generated for one connection type (http/https) always fails to decrypt on the other. The mismatch is now detected client-side from the raw key text before submission, with a warning and the apply button disabled, instead of surfacing only as a generic "invalid key" error after a backend round trip. ## Bug fixes - **stage:** ensure formats arrive from the backend in `getstagetable.sas`. - **validations:** bump core for the `mp_validate` fix. - **CAS:** support the REPLACE load type (plus docs). - **startup:** show the real startup-service response text when Viya returns a plain-text "Job error" body instead of JSON, instead of reporting every expected field as "not present". - **editor:** the column-info dropdown text can now be selected and copied. - **editor:** table-header buttons and title size to their content rather than fixed grid thirds, so the dataset name/row-count no longer wraps unnecessarily. - **editor:** `dc.row_status` / `EDIT_STATUS` is no longer submitted to the backend. ## Dependencies / security - Resolved npm audit vulnerabilities in production dependencies (Angular HttpTransferCache cache-key ambiguity and i18n XSS advisories). - Aligned all `@angular/*` packages to the same lockstep version (20.3.27) so CI's strict `npm ci` passes. - Scoped the `brace-expansion` override to its actual vulnerable chain (fixes license-checker breakage). - Pinned `babel-loader` to resolve an unresolvable peer conflict; regenerated/patched the lockfile to fix `npm ci` sync errors. - Overrode `nanoid` to 3.3.18 in `sas/` directly (rather than relying on `@sasjs/cli`'s override, which doesn't propagate to consumers) so it survives future `npm install` runs.
allan added 19 commits 2026-08-05 08:46:57 +00:00
Adds HARDFORMULA/SOFTFORMULA DQ rule types, backed by Handsontable's
formulas plugin (gated per-table via hasFormulaRules). parseFormulaRule
substitutes column names with row-relative cell references (quote-aware,
blank-boundary matching per spec) and resolves DC.USER_NAME/DC.ORIG_VALUE
to literal values; applyFormulaRules injects the computed formula per row,
reusing the existing READONLY mechanism for HARDFORMULA.

DC.ROW_STATUS/EDIT_STATUS deliberately deferred - would require prepending
COLHEADERS, which headerColumns has undocumented positional coupling to
elsewhere in editor.component.ts.
feat(formulas): live DC.ROW_STATUS, insert-row formula fixes, UserService singleton fix
Build / Build-and-ng-test (pull_request) Successful in 5m13s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m31s
Build / Build-and-test-development (pull_request) Successful in 21m56s
4a8c39b4c0
- addRow()/insertRowAtPosition() use hot.alter() so HARDFORMULA/SOFTFORMULA
  values realign on insert instead of going stale
- New hidden EDIT_STATUS column gives DC.ROW_STATUS a real, live cell
  reference; row-header +/-/~ indicator now translates visual->physical
  row index so it stays correct when the grid is sorted
- UserService is now providedIn: 'root' instead of module-scoped, fixing
  DC.USER_NAME (and any other lazy-module reader) always seeing an unset user
- Column-info dropdown shows the applied formula ("√x=<formula>")
chore: merge remote-tracking branch 'origin/main' into additional-validations-formulae
Build / Build-and-ng-test (pull_request) Successful in 5m7s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m44s
Build / Build-and-test-development (pull_request) Successful in 21m54s
bb808617f4
fix(formulas): avoid EDIT_STATUS colliding with a real column of that name
Build / Build-and-ng-test (pull_request) Successful in 5m15s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m48s
Build / Build-and-test-development (pull_request) Successful in 21m38s
acb97f4bfb
fix: CAS support for REPLACE type plus docs
Build / Build-and-test-development (pull_request) Successful in 22m24s
Build / Build-and-ng-test (pull_request) Successful in 5m50s
Lighthouse Checks / lighthouse (pull_request) Successful in 20m39s
ea05f07180
chore(test): test for mpe_targetloader update
Build / Build-and-ng-test (pull_request) Successful in 5m9s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m27s
Build / Build-and-test-development (pull_request) Successful in 22m4s
28104f83e1
feat(formulas): flag formula-overwritten cells with revert, harden dc.row_status against SAS name collisions
Build / Build-and-ng-test (pull_request) Failing after 1m49s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Successful in 21m51s
a8237b2881
- Formulas' HyperFormula sync resolves a dotted `data` key differently
  than getDataAtRowProp/datamap.get() - dataDotNotation: false is needed
  for the renamed dc.row_status column to work as a live cell reference
- saveTable() now submits the live computed value for a formula cell, not
  the raw '=...' string still sitting in dataSource
Merge branch 'version7-13' into additional-validations-formulae
Build / Build-and-ng-test (pull_request) Failing after 2m2s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Successful in 21m21s
b88b22684a
fix(deps): resolve npm audit vulnerabilities in production dependencies
Build / Build-and-ng-test (pull_request) Failing after 44s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Failing after 1m4s
257f69ccc6
- Angular packages resolve within their existing ^20.3.26 range up to
  20.3.27, which patches two advisories (HttpTransferCache cache-key
  ambiguity, i18n XSS via event-handler attributes)
- brace-expansion (via exceljs -> archiver -> readdir-glob -> minimatch)
  needed an override to ^5.0.9 - npm's resolver won't proactively bump a
  nested transitive dep that already satisfies its declared semver range,
  even when a patched version exists inside that same range
fix(deps): align @angular/* packages to the same lockstep version
Build / Build-and-ng-test (pull_request) Failing after 43s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Failing after 1m6s
24e6297187
npm audit fix only bumped @angular/core/common/compiler to 20.3.27 (the
packages with a direct advisory), leaving animations/forms/platform-browser*/
router at 20.3.26 - each peer-depends on the others' exact version, so the
mismatch passed a lenient `npm install` locally but failed CI's strict
`npm ci`. All seven now resolve to 20.3.27.
fix(deps): resolve npm audit findings and align @angular/* to the same lockstep version
Build / Build-and-ng-test (pull_request) Failing after 46s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Failing after 1m6s
b9e4b2733f
- Angular packages (core/common/compiler/animations/forms/
  platform-browser*/router/compiler-cli) all peer-depend on each other's
  exact version - npm audit fix only bumped the three with a direct
  advisory, leaving the rest mismatched; a plain `npm install` tolerated
  it but CI's strict `npm ci` didn't. All now resolve to 20.3.27.
- undici/fast-uri updated via npm audit fix; brace-expansion pinned to
  ^5.0.9 via overrides (npm's resolver wasn't proactively bumping a
  nested transitive dep that already satisfied its declared range)
fix(deps): regenerate package-lock.json to resolve npm ci sync errors
Build / Build-and-ng-test (pull_request) Failing after 49s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Failing after 1m6s
a501903e6d
Incremental `npm install <pkg>@version` patches left the lockfile
internally inconsistent enough that CI's `npm ci` rejected it as out of
sync with package.json (a long list of unrelated nested deps reported
missing). Regenerated from scratch instead of patching further; verified
with a clean `npm ci`, matching the resolved versions from the prior fix.
fix(deps): pin babel-loader to resolve an unresolvable peer conflict
Build / Build-and-ng-test (pull_request) Failing after 46s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Failing after 1m11s
3bf3bf0dde
chore: regenerated package-lock.json with correct env
Build / Build-and-ng-test (pull_request) Failing after 48s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Failing after 1m6s
44aac556b9
chore: trying package.json and package-lock.json from the main branch
Build / Build-and-ng-test (pull_request) Failing after 2m2s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Successful in 20m44s
d841163dd0
fix(deps): resolve npm audit findings via direct lockfile patch, not regeneration
Build / Build-and-ng-test (pull_request) Failing after 2m0s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Failing after 2m12s
4d1bfa6343
Fixed by patching only the 12 needed entries directly (9 @angular/*
packages to 20.3.27, brace-expansion to 5.0.9, fast-uri to 3.1.5, undici to 6.28.0) with exact registry resolved/integrity metadata, leaving the other 1925 packages untouched.
fix(deps): scope the brace-expansion override to its actual vulnerable chain
Build / Build-and-ng-test (pull_request) Successful in 5m39s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m16s
Build / Build-and-test-development (pull_request) Successful in 22m18s
f9d061c489
An unscoped "brace-expansion": "^5.0.9" override applies to every
occurrence in the tree, not just the vulnerable one - it was silently
replacing the 1.1.16 that glob's bundled minimatch@3.x actually needs,
breaking license-checker with "TypeError: expand is not a function".
Scoped it to the readdir-glob chain (exceljs -> archiver -> readdir-glob
-> minimatch@10.x), the same nested-override pattern already used here
for exceljs's own archiver/unzipper pins.
Merge pull request 'Additional validations formulae' (#290) from additional-validations-formulae into version7-13
Build / Build-and-ng-test (pull_request) Successful in 5m30s
Lighthouse Checks / lighthouse (pull_request) Successful in 22m11s
Build / Build-and-test-development (pull_request) Successful in 23m19s
7d6dc652be
Reviewed-on: #290
allan added 4 commits 2026-08-05 14:36:27 +00:00
feat(stage): add Formatted/Unformatted toggle to the staging page
Build / Build-and-ng-test (pull_request) Successful in 4m53s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m0s
Build / Build-and-test-development (pull_request) Successful in 20m17s
74c38e1641
- Mirrors the review page's toggle: getstagetable.sas now also webouts
  fmt_stagetable (SAS-formatted), selectFormattedRows() picks between it
  and the raw stagetable, falling back to raw if fmt data is absent
- Adds stage.cy.ts e2e coverage and wires it into both build.yaml and
  release.yaml's cypress --spec lists (previously out of sync with
  each other on viewbox.cy.ts too)
Merge branch 'version7-13' into issue-148
Lighthouse Checks / lighthouse (pull_request) Successful in 21m27s
Build / Build-and-ng-test (pull_request) Failing after 1m48s
Build / Build-and-test-development (pull_request) Skipped
fc6c9f844f
Merge branch 'version7-13' into issue-148
Build / Build-and-ng-test (pull_request) Successful in 5m57s
Lighthouse Checks / lighthouse (pull_request) Successful in 25m2s
Build / Build-and-test-development (pull_request) Successful in 23m12s
48d06ec6a7
Merge pull request 'feat(stage): add Formatted/Unformatted toggle to the staging page' (#293) from issue-148 into version7-13
Build / Build-and-ng-test (pull_request) Successful in 5m35s
Lighthouse Checks / lighthouse (pull_request) Successful in 24m55s
Build / Build-and-test-development (pull_request) Successful in 23m59s
3c9eba4df4
Reviewed-on: #293
allan added 4 commits 2026-08-07 08:54:34 +00:00
Merge branch 'version7-13' into issue289
Build / Build-and-ng-test (pull_request) Successful in 6m35s
Lighthouse Checks / lighthouse (pull_request) Canceled after 15m33s
Build / Build-and-test-development (pull_request) Failing after 1m43s
ff8f10d533
Merge branch 'version7-13' into issue289
Build / Build-and-ng-test (pull_request) Successful in 5m27s
Lighthouse Checks / lighthouse (pull_request) Successful in 22m8s
Build / Build-and-test-development (pull_request) Successful in 22m32s
93a513a15f
fix: adding formula types
Build / Build-and-test-development (pull_request) Canceled after 0s
Build / Build-and-ng-test (pull_request) Canceled after 2m17s
Lighthouse Checks / lighthouse (pull_request) Canceled after 4s
c07a01a38d
Merge pull request 'fix: CAS support for REPLACE type plus docs' (#291) from issue289 into version7-13
Build / Build-and-ng-test (pull_request) Canceled after 0s
Build / Build-and-test-development (pull_request) Canceled after 0s
Lighthouse Checks / lighthouse (pull_request) Canceled after 0s
0815fcea2c
Reviewed-on: #291
allan added 6 commits 2026-08-07 08:54:58 +00:00
feat(editor): generalize cell revert to any overwritten value, not just formulas
Build / Build-and-ng-test (pull_request) Successful in 5m7s
Lighthouse Checks / lighthouse (pull_request) Successful in 22m7s
Build / Build-and-test-development (pull_request) Successful in 23m29s
07d586da52
fix(editor): size table-header buttons and title to content, not fixed grid thirds
Build / Build-and-ng-test (pull_request) Successful in 7m24s
Lighthouse Checks / lighthouse (pull_request) Successful in 23m26s
Build / Build-and-test-development (pull_request) Successful in 22m52s
d0a7561f1a
The Filter/Edit/Upload buttons used btn-block (width: 100%), stretching
them wider than the Cancel/Add Row/Submit buttons shown during edit.
The back/viewboxes, title, and action-button columns were also locked to
equal 12-col grid thirds regardless of actual content, so the dataset
name/row-count wrapped even with visible free space on either side.
Switched the outer columns to size to their content (clr-col-*-auto) and
let the title column flex-grow into whatever space is left.
fix(editor): let the column info dropdown's text be selected and copied
Build / Build-and-ng-test (pull_request) Successful in 5m24s
Lighthouse Checks / lighthouse (pull_request) Successful in 23m1s
Build / Build-and-test-development (pull_request) Successful in 23m23s
1e516f4012
Handsontable's Menu widget closes on any mouseup inside an item and
unconditionally preventDefault()s contextmenu, even for the info item,
which has no callback and exists purely to show read-only column details.
That made its text impossible to select or right-click-copy. Marked the
item isCommand: false and stop mousedown/mouseup/contextmenu/selectstart
from bubbling past its rendered content to the menu's own listeners.
Merge branch 'version7-13' into editor-improvements
Build / Build-and-ng-test (pull_request) Successful in 5m9s
Build / Build-and-test-development (pull_request) Canceled after 4m18s
Lighthouse Checks / lighthouse (pull_request) Canceled after 9m32s
eea9fbd938
Merge branch 'version7-13' into editor-improvements
Lighthouse Checks / lighthouse (pull_request) Canceled after 0s
Build / Build-and-ng-test (pull_request) Canceled after 0s
Build / Build-and-test-development (pull_request) Canceled after 0s
72cae704df
Merge pull request 'Revert any overwritten cell' (#296) from editor-improvements into version7-13
Build / Build-and-ng-test (pull_request) Canceled after 0s
Build / Build-and-test-development (pull_request) Canceled after 0s
Lighthouse Checks / lighthouse (pull_request) Canceled after 0s
aa4b3b94cd
Reviewed-on: #296
allan added 3 commits 2026-08-07 08:57:03 +00:00
fix(startup): show the real startupservice response text on a malformed reply
Build / Build-and-ng-test (pull_request) Successful in 5m17s
Lighthouse Checks / lighthouse (pull_request) Successful in 22m4s
Build / Build-and-test-development (pull_request) Successful in 22m42s
9a1b7d0f52
A misconfigured Viya computeTasks deployment makes the Compute service
return a plain-text "Job error" body instead of JSON. @sasjs/adapter can't
parse it and resolves with that raw text as adapterResponse, so both
startup and manual deploy validation reported every expected field as
"not present" without ever showing the actual cause. Added
getMalformedAdapterResponseMessage to detect a non-object adapterResponse
and surface its real text instead.
Merge branch 'version7-13' into issue-277
Build / Build-and-test-development (pull_request) Canceled after 0s
Build / Build-and-ng-test (pull_request) Canceled after 4s
Lighthouse Checks / lighthouse (pull_request) Canceled after 0s
84cce5eb0f
Merge pull request 'Show the real startupservice response text on a malformed reply' (#297) from issue-277 into version7-13
Build / Build-and-ng-test (pull_request) Successful in 5m15s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m18s
Build / Build-and-test-development (pull_request) Successful in 23m14s
1807d66ea1
Reviewed-on: #297
allan added 1 commit 2026-08-07 11:45:39 +00:00
fix: ensuring formats arrive from backend in getstagetable.sas
Build / Build-and-ng-test (pull_request) Successful in 5m4s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m34s
Build / Build-and-test-development (pull_request) Successful in 23m26s
daacb49c8a
allan added 1 commit 2026-08-07 13:38:25 +00:00
fix: bump core for mp_validate fix
Build / Build-and-ng-test (pull_request) Successful in 5m8s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m43s
Build / Build-and-test-development (pull_request) Successful in 23m34s
5a44b2804f
allan added 1 commit 2026-08-09 18:56:09 +00:00
chore: updated release docs
Build / Build-and-ng-test (pull_request) Failing after 1m46s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Successful in 20m35s
76bb83d860
allan added 5 commits 2026-08-11 08:08:10 +00:00
feat(viewboxes): add drag-to-resize on all four edges and corners
Build / Build-and-ng-test (pull_request) Failing after 1m41s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Successful in 20m36s
e5a5bf2144
Adds right, left, bottom, and bottom-left-corner resize handles
alongside the existing bottom-right corner, and raises resize handle
z-index above Handsontable's frozen header clones so clicks reach the
handle instead of the table underneath it.
fix: fixed npm vuln
Build / Build-and-ng-test (pull_request) Successful in 5m16s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m7s
Build / Build-and-test-development (pull_request) Successful in 23m55s
26b55b1bde
chore: merge remote-tracking branch 'origin/version7-13' into issue-190
Build / Build-and-ng-test (pull_request) Failing after 2m17s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Successful in 21m8s
7c33839b99
fix(deps): override nanoid to 3.3.18 in sas/
Build / Build-and-ng-test (pull_request) Successful in 5m8s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m12s
Build / Build-and-test-development (pull_request) Successful in 24m44s
d57ae03fc4
@sasjs/cli's own nanoid override doesn't propagate to consumers - npm
only reads overrides from the root project being installed. Adding it
here directly, rather than a raw lockfile patch, so it survives future
npm install runs instead of silently reverting again.
Merge pull request 'feat(viewboxes): add drag-to-resize on all four edges and corners' (#298) from issue-190 into version7-13
Build / Build-and-ng-test (pull_request) Successful in 5m6s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m33s
Build / Build-and-test-development (pull_request) Successful in 25m28s
fabb9e5bfd
Reviewed-on: #298
allan added 3 commits 2026-08-11 09:34:35 +00:00
fix(editor): stop dc.row_status from being submitted to the backend
Build / Build-and-ng-test (pull_request) Failing after 1m54s
Build / Build-and-test-development (pull_request) Skipped
Lighthouse Checks / lighthouse (pull_request) Successful in 22m34s
dc0f6a7baa
dynamicCellValidation() built its editors/getdynamiccolvals payload
from a raw dataSource row clone, which always carries the client-only
EDIT_STATUS column - unlike saveTable()'s submit path, nothing
stripped it before the request went out. Extracted the strip logic
(previously private to classifyRow) into a shared withoutEditStatus
util and applied it here too.
chore: merge remote-tracking branch 'origin/version7-13' into formula-status-fix
Build / Build-and-ng-test (pull_request) Successful in 5m30s
Lighthouse Checks / lighthouse (pull_request) Successful in 22m5s
Build / Build-and-test-development (pull_request) Successful in 25m18s
5615e6b0db
Merge pull request 'fix(editor): stop dc.row_status from being submitted to the backend' (#299) from formula-status-fix into version7-13
Build / Build-and-ng-test (pull_request) Successful in 5m11s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m7s
Build / Build-and-test-development (pull_request) Successful in 25m0s
20a007622c
Reviewed-on: #299
allan added 2 commits 2026-08-11 17:33:05 +00:00
feat(licensing): warn and block applying a licence key generated for the wrong protocol
Build / Build-and-ng-test (pull_request) Successful in 5m16s
Lighthouse Checks / lighthouse (pull_request) Successful in 22m18s
Build / Build-and-test-development (pull_request) Successful in 25m0s
41680e2ecc
A key generated for one connection type (http/https) always fails to
decrypt on the other, surfacing only as a generic "invalid key" error
after a round trip to the backend. Detects the mismatch client-side
from the raw key text before the user submits, and disables the apply
button while it's showing.
Merge pull request 'feat(licensing): warn and block applying a licence key generated for the wrong protocol' (#300) from issue-133 into version7-13
Build / Build-and-ng-test (pull_request) Successful in 5m22s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m23s
Build / Build-and-test-development (pull_request) Successful in 24m54s
c0fec25c4d
Reviewed-on: #300
All checks were successful
Build / Build-and-ng-test (pull_request) Successful in 5m22s
Lighthouse Checks / lighthouse (pull_request) Successful in 21m23s
Build / Build-and-test-development (pull_request) Successful in 24m54s
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin version7-13:version7-13
git checkout version7-13
Sign in to join this conversation.