- π¦ [5.7.101] - 2026-09-09
- π¦ [5.7.100] - 2026-09-02
- π¦ [5.7.99] - 2026-08-28
- π¦ [5.7.98] - 2026-08-11
- π¦ [5.7.97] - 2026-08-04
- π¦ [5.7.96] - 2026-07-31
- π¦ [5.7.95] - 2026-07-31
- π¦ [5.7.94] - 2026-07-29
- π¦ [5.7.93] - 2026-07-23
- π¦ [5.7.92] - 2026-07-21
- [5.7.91] - 2026-07-07
- [5.7.90] - 2026-06-23
- π¦ [5.7.89] - 2026-06-08
- π¦ [5.7.88] - 2026-06-08
- π¦ [5.7.87] - 2026-06-02
- π¦ [5.7.86] - 2026-05-29
- π¦ [5.7.85] - 2026-05-27
- π¦ [5.7.84] - 2026-05-26
- π¦ [5.7.83] - 2026-05-22
- π¦ [5.7.82] - 2026-05-20
- π¦ [5.7.81] - 2026-05-18
- π¦ [5.7.80] - fill-in
- π¦ [5.7.79] - 2026-05-15
- π¦ [5.7.78] - 2026-05-15
- π¦ [5.7.77] - 2026-05-12
- π¦ [5.7.76] - 2026-05-12
- π¦ [5.7.75] - 2026-05-06
- π¦ [5.7.74] - 2026-04-14
- π¦ [5.7.73] - 2026-03-30
- π¦ [5.7.72] - 2026-03-26
- π¦ [5.7.71] - 2025-XX-XXas-2612 add curl api as deprecated to calculationValidation
π v5.7
- π¦ [5.7.101] - 2026-09-09
- π¦ [5.7.100] - 2026-09-02
- π¦ [5.7.99] - 2026-08-28
- π¦ [5.7.98] - 2026-08-11
- π¦ [5.7.97] - 2026-08-04
- π¦ [5.7.96] - 2026-07-31
- π¦ [5.7.95] - 2026-07-31
- π¦ [5.7.94] - 2026-07-29
- π¦ [5.7.93] - 2026-07-23
- π¦ [5.7.92] - 2026-07-21
- [5.7.91] - 2026-07-07
- [5.7.90] - 2026-06-23
- π¦ [5.7.89] - 2026-06-08
- π¦ [5.7.88] - 2026-06-08
- π¦ [5.7.87] - 2026-06-02
- π¦ [5.7.86] - 2026-05-29
- π¦ [5.7.85] - 2026-05-27
- π¦ [5.7.84] - 2026-05-26
- π¦ [5.7.83] - 2026-05-22
- π¦ [5.7.82] - 2026-05-20
- π¦ [5.7.81] - 2026-05-18
- π¦ [5.7.80] - fill-in
- π¦ [5.7.79] - 2026-05-15
- π¦ [5.7.78] - 2026-05-15
- π¦ [5.7.77] - 2026-05-12
- π¦ [5.7.76] - 2026-05-12
- π¦ [5.7.75] - 2026-05-06
- π¦ [5.7.74] - 2026-04-14
- π¦ [5.7.73] - 2026-03-30
- π¦ [5.7.72] - 2026-03-26
- π¦ [5.7.71] - 2025-XX-XXas-2612 add curl api as deprecated to calculationValidation
This changelog provides a detailed overview of technical changes, including new features, bug fixes, and maintenance updates. It is intended for developers, DevOps engineers, and technical teams to track system improvements and API modifications.
Each update is categorized into:
- β¨ Added β New features and functionality improvements
- π οΈ Fixed β Bug fixes and stability enhancements
- π§ Chore β Code refactoring, performance optimizations, and internal updates
- β οΈ Breaking change β Changes that modify existing system behavior or require adjustments in configuration, calculations, templates, or integrations
π¦ [5.7.101] - 2026-09-09
π οΈ Fixed
-
tas-3808 Overviews β a share removed in the expert mode no longer reappears after the overview is saved again from the configuration mode.
-
tas-3843 [AD] DTRoleSync cron β the
sync1to1DTsstep no longer takes hours on a large directory π οΈ
Note: on a directory of 9000 users, 45 groups each, 350 cascade rows and 12All-DTSyncrows the step runs in 2.7 s instead of 233 s, with identical output. Every run now logs async1to1DTs detailentry with its phase timings and the input sizes that drive them, so a slow run can be traced back to the configuration that caused it. -
tas-3843 [AD] DTRoleSync cron β an edit to the
All-DTCascadeSynctable takes effect on the next run instead of after a restart of the cron worker π οΈ
Note: both cascade steps were affected β the roles assigned throughcascadeRole()as well as the tables generated bysync1to1DTs. -
tas-3856 HR agenda β the task count on a user's card no longer includes rows nobody is assigned to solve β οΈ Breaking change:
Note: subprocess placeholders and event waits were counted as agenda items, so a user could show a non-zero badge over an empty task grid. The count, the list and the handover now agree on what a task is. A card's count drops for users whose agenda holds such rows, and a handover leaves them with their original solver. Case and variable counts are unchanged. -
tas-3856 HR agenda β the user modal opens on the category being browsed instead of always on Task owner, leads with Cases | Tasks | Variables, and moves Task owner / Case owner into a three-dots menu
-
tas-3856 HR agenda β By agenda renamed to By variable and Inactive users to Locked users in all eleven locales, with matching icons and tooltips π οΈ
Note: the route and the endpoint keep theirinactivesegment, so existing links still work. User cards are now sorted by the display name they actually show. -
tas-3856 HR agenda β the by-variable grid's
Variable - <lang>column is filled again and no longer breaks the load or the export when used for ordering -
tas-3856 HR agenda β filtering the logs grid by case id matches whole ids instead of substrings (a search for
12no longer also answers120and512), and theChanged whencolumn got the width it needs for the formatted timestamp
π§ Chore
- tas-3878 Frontend β the
overview-componentspackage (CaseOverview components used in case prints) upgraded from 1.0.1 to 1.1.187, aligning 5.7 with the newer release lines
π¦ [5.7.100] - 2026-09-02
β¨ Added
-
tas-3804 Dynamic rows β table-level
minColWidthsetting in thetablesection of the tableDefinition, overriding the default 70px column minimum β¨
Note: applies to every column and to every place the 70px constant was used β width clamping, the percentage-to-pixel conversion on mobile, the scroll wrapper and the drag-resize limit β and can be changed at runtime viachangeDef(). A missing or invalid value falls back to 70, so existing tables are untouched. Documented in the dynamic rows help (cs/en) and in the definition IDE hints. -
tas-3215 Template variables β aliases (
TVAR_ALIAS) can be managed by an administrator directly from the template variables tab β¨
Note: an administrator can assign a free alias to a variable that has none, remove an alias, or take the alias of another variable of the same kind. A new "Alias candidates" analysis in the tab's "more" menu lists, per alias kind (text / number / date), the variables holding an alias ordered by how unused they are, based on how many cases hold a value, how many historical changes exist and how many overviews reference the variable. Removing or taking an alias is refused while the variable is used by a custom view column or its filter. After an alias is moved, overviews on the receiving variable show empty values until the values are written again. New endpointsPUT/DELETE /template-processes/:tprocId/template-variables/:id/aliasandGET /template-processes/:tprocId/alias-candidates/:kind. No schema changes, no migration.
π οΈ Fixed
-
tas-2816 Service operations β the Roles section loads again for users whose saved column selection still contains
role_is_deletedπ οΈ
Note: the column was dropped in 5.x, but a selection saved back in 4.15 kept requesting it, so every request failed withInvalid column name 'ROLE_IS_DELETED'until the user removed the column from the picker by hand. A data migration removes the entry from every stored selection and leaves the other sections untouched. -
tas-3804 Dynamic rows β tablets no longer get the phone rendering; the mobile variant switches at a 900px viewport width and is re-evaluated on resize and rotation β οΈ Breaking change:
Note: a desktop browser window narrower than 900px now renders the mobile variant, and portrait tablets keep it. On the mobile variant, percentage column widths keep their authored ratio and never drop below the column minimum, so percentage-width tables render wider than before (scrollable) instead of squashed. -
tas-3835 Export β exporting an overview to XLSX or CSV no longer fails with Too many parameters were provided in this RPC request (SQL Server error 8003) when the view holds a big-value, dynamic-list or multi-select column π οΈ
Note: a failed export now also reports which export failed and why, instead of handing back whatever the inner request produced. -
tas-3835 Export β the configured export row limits are enforced β οΈ Breaking change:
Note:tas.maxExcelExportedRows(50000 by default) andtas.maxCsvExportedRows(100000) were never actually applied. An over-limit export is refused withEXPORT_LIMIT_EXCEEDEDnaming both numbers rather than silently truncated, and both grids warn before the export is even sent. An instance that relies on exporting more rows has to raise the setting. A limit that is not a positive whole number falls back to the shipped default and logs a warning naming the key. -
tas-3645 DataGrid β an overview with a value typed into a column's header filter can be scrolled horizontally again instead of jumping back to the filtered column
-
tas-3785 [API] Service operations β changing a date variable no longer fails on Oracle with ORA-01861: literal does not match format string π οΈ
Note: covers every service-operation change endpoint that can write a date column (instance variables, cases, tasks, users, user parameters) and the workflow queue worker. An unparsable value is rejected with 400 instead of reaching the database;nullor an empty string clears the column. 4.15 contains the same defect and needs its own fix.
π§ Chore
- tas-3800 Migration CLI β
npm run migruns node with--max-old-space-size=8192, so an upgrade migration no longer dies withFATAL ERROR: Reached heap limiton the default heap π§
Note: the flag is a ceiling, nothing is reserved up front. On a container whose memory limit is below 8 GB the process can be OOM-killed by the runtime instead, so the migration container should be sized accordingly. Running node directly stays the way to pick a different value.
π¦ [5.7.99] - 2026-08-28
π οΈ Fixed
-
tas-2601 Crons β the cron worker creates the tmp folder structure at bootstrap like every other backend, so a cron on a fresh instance no longer fails with
ENOENTbefore a regular backend has booted π οΈ
Note: cleaning the tmp folders on boot stays limited to non-cron processes, so the cron worker still never deletes files a running backend may be using. 5.7 only β from 5.12 on the structure is created ininitContainer. -
tas-3823 AsyncAwaitTranspiler β a calculation that names an inherited
Object.prototypemember (toString,valueOf,constructor, β¦) inside afilter/find/some/reduce/ β¦ callback no longer fails to transpile withUnknown node type nullπ οΈ
Note: the failure was never limited to the calculation being edited β every variable update re-transpiles all calculations of the template process, so a single old script blocked all variable edits there. Only scripts saved before tas-3563 can carry such a shape; nothing has to be re-saved after the fix. -
tas-3767 [Crons][AD] DTRoleSync β a user belonging to exactly one AD group is no longer silently skipped π οΈ
Note: such a user got no role from theAll-Synctable and no row in theAll-DTSyncdynamic tables, while users in two or more groups synced correctly. Nothing else about the sync changes β same regexes, same role assignments and dynamic table writes, only now reached for the affected users. -
tas-3771 Roles β the migration that drops
ROLES.ROLE_IS_DELETEDnow also removes the roles that were flagged as deleted, instead of letting them come back as ordinary active roles β οΈ Breaking change:
Note: 5.7 only, and only for environments that have not upgraded yet β a migration recorded asokis never re-run, so where the column is already gone the affected roles have to be identified and removed by hand. The cleanup removes the assignments inUSER_ROLES(noUSERSrow is ever deleted) and the records inHEADER_ROLES,ROLE_ACCESS_RIGHTS,COMPETENCE_ROLES,COMPETENCE_RULE_ROLES,TEMPLATE_FOLDER_ROLES,DMS_ACCESS_SUBJECTand the role shares inCUSTOM_VIEW_SHARE/REPORT_GRAPH_SHARE; foreign-key columns are repointed to$Administratorso the access stays restricted. Roles with a negative id are never removed. Users lose the assignments those roles gave them, so an unfinished task assigned through such a role has to be reassigned. The number of removed roles is logged and kept inMIGRATION_STEP_HISTORY. -
tas-3593 Dashboard β favourite item labels in the favourites container wrap up to three lines before truncating
-
tas-3743 Logging β authentication failures are logged as
warninginstead oferrorπ οΈ
Note: an ordinary unauthenticated request or a mistyped password no longer fills the error log. A hard failure of the authentication backend itself (LDAP or Azure AD unreachable) is still logged aserror. Response bodies, status codes and the authentication behaviour are unchanged. -
tas-3709 Roles β removing a user from the role's user multibox while the search filter is active no longer unassigns every user that does not match the filter π οΈ
Note: adding a user with an active filter had the mirror image of the problem and could create a duplicate; fixed the same way. Only the role detail page renders the search field, so no other multibox screen changes behaviour. -
tas-3242 HR agenda β the users tab is split by agenda kind (cases / tasks / variables) and each user card shows a single count for the selected category
Note: the count comes from one grouped query over the whole page instead of three queries per user plus a photo lookup, which is what made the tab slow to open on installations with many users. Response-shape change on/hr-users/all,/hr-users/activeand/hr-users/inactive: each item carries a numericitem_countand no longer carries theuser_processes/user_tasks/business_variablesarrays oruser_full_name, so the per-user tooltips listing the first ten items are gone. An unknowncategoryis rejected withBAD_INPUT. -
tas-3242 HR agenda β the users tab keeps its selection in the URL (
/administration/hr-agenda/users/:subTabName/:categoryTabName), so a view can be bookmarked or linked to, the back button steps through it and a reload no longer drops back to the default -
tas-3241 HR agenda β handing over a large agenda no longer fails on a request timeout or on The incoming request has too many parameters (2100 on MSSQL); all three handovers run as bulk operations, chunked to stay under the parameter limit of the dialect
-
tas-3241 HR agenda β selecting a large number of rows for handover no longer fails with HTTP 414 (URI Too Long) π οΈ
Note: request-shape change for allchange-userendpoints. They accept aselectionobject in the body β{ mode: "ids"; ids },{ mode: "all" }or{ mode: "filter"; filter; limit? }. A request withoutselectionkeeps reading?filter=/?limit=exactly as before, so existing API clients are unaffected.mode: "all"requirescurrentUserIdin the body. -
tas-3241 HR agenda β removing case-owner rights when the owner changes no longer removes rights for the cross product of all affected owners and cases; only the (case, its own former owner) pairs are removed
-
tas-3533 HR agenda β the handover modal's radio label named the wrong category for cases and variables
-
tas-3692 HR agenda β the count badge, the agenda list and the ownership handover use the same conditions, so a fully handed-over agenda no longer shows a number in the bubble β οΈ Breaking change:
Note:/tasks/solversis also the source of the main Tasks view and of task search, so those lists change scope too β tasks in suspended cases appear, done tasks no longer do. The cases badge and list intentionally include done cases, because the handover transfers ownership of them as well. The variables badge counts only single-value dynamic-list variables. No migration. -
tas-3764 Mobile app β a locked user no longer receives mobile push notifications π οΈ
Note: applies to every push path, deputies included, and the badge counter is no longer raised either. Device rows and FCM tokens are left in place, so unlocking an account restores notifications without re-pairing the device. -
tas-3806 DataGrid β better message about an empty grid
π§ Chore
- tas-3772 Logging β a failed dynamic table CSV import logs the import context (table, file name, delimiter, headers, row count) and the duplicated values under the codeNames
EMPTY_CSVandDUPLICATE_CSV_INDEXES, instead of only the message - tas-3767 Tests β the DTRoleSync cron is covered by unit tests, one file per sync step
- tas-2385 KSeF plugin β update to comply with API 2.0 (update of development files)
π¦ [5.7.98] - 2026-08-11
π οΈ Fixed
-
tas-3663 [Calculations] ISDOC invoices embedded in a PDF π οΈ
Note:lib.isIsdocPdfFilereported that a PDF contains no ISDOC even when the invoice was clearly there, andlib.parseIsdocPdfFileContentreturned nothing for such files. Attachment detection now takes the file name from the attachment definition itself instead of from the internal name-tree key (a supplier using a placeholder key such asUnnamedmade the.isdocsuffix never match), searches the whole attachment tree instead of its first branch only, recognises an attachment referenced directly or through aFileAttachmentannotation, skips an attachment without content instead of failing the whole document, survives a damaged page tree, and matches the.isdocsuffix case-insensitively. If the extracted invoice does not strictly conform to the ISDOC XSD (for example a repeated invoice-line id), it is now read without validation instead of being lost or throwing an error β real suppliers do ship invoices that are readable but not strictly conforming. Signatures and return shapes of all fourlib.*functions are unchanged:parseIsdocPdfFileContentstill returns one slot per input file withnullwhere no invoice was found,parseIsdocPdfFileContentByPathstill returns a single invoice ornull, and a non-ISDOC attachment still yieldsnullrather than an exception. Theis-docplugin contains its own copy of the same code and received the same fix, plus a repair of its calculation API βisDoc.isIsdocPdfFileandisDoc.parseIsdocPdfFileContentfailed with aTypeErrorbefore they even opened the document.
The plugin is bumped to 1.1.0 and has to be rebuilt and reinstalled for the fix to reach it; thelib.*functions require no action beyond the upgrade. Unlikelib.parseIsdocPdfFileContent, the plugin'sisDoc.parseIsdocPdfFileContentreturns a flat list of invoices rather than one slot per file β this matches the already released plugin build, and since the function failed for every input before this fix, no calculation can depend on the previous shape. Extraction from.isdocxcontainers, the unifiedisDoc.extract()entry point and the IsDoc smart event are 5.20 features and are deliberately not part of this backport. -
tas-3704 Force types migration CLI β data transfer paired columns by position π οΈ
Note: The copy-and-swap transfer (ft:table,ft:tables:all) copied rows by physical column position instead of by column name. The physical order of columns in a live table is historical β language mutation columns in particular used to be created "as needed" per configuredTAS_LANGUAGESbefore 5.7 β while theNEW_tables are scripted in one fixed order. Columns of the same type therefore swallowed each other's data without reporting a single error: Slovak texts landing inIVAR_NAME_CS, Czech ones inIVAR_NAME_DEand so on. This affectsINSTANCE_VARIABLES,INSTANCE_TASKS,INSTANCE_TASK_EMAIL_NOTIFSandINSTANCE_VARIABLE_LOV, which carry translation columns; any other difference in column order corrupted the remaining tables in the same way, or aborted the transfer with a confusing column-count error. The transfer now resolves the column list by name once per run and prints it β a source column with no matching destination column stops the transfer with an error listing the offending columns before anything is copied (previously silent data loss), destination-only columns are reported and stay NULL (the usual case, since the scripts ship all eleven standard language columns while an environment normally uses a subset). The row-count check before the swap is unchanged.
β οΈ Environments that already ranft:table/ft:tables:allwith the previous procedure should verify the language mutation columns of the migrated tables against a backup β the swap drops the original table, so the misassignment cannot be recovered from the database alone (BatchTransferLogshows when each transfer ran).npm run ft:procedureupdates the procedure in place; the log table and its history are kept. ANEW_table left behind by an interrupted transfer must be dropped, not resumed, so that the whole table is re-copied by name. Theft:alterpath for small tables is unaffected β it changes column types in place and never moves rows. -
tas-3640 Organizational structure import π οΈ
Note: Importing an organizational structure was broken β the hierarchy preview crashed while building the visualization tree and blocked the whole import. The preview tree/visualization has been removed on both ends:/org-units/import-previewnow returns onlyheadersandcheckedEntities, and the import screen no longer renders the tree, so the review tables use the full width. The existence check in the preview now uses exactly the same matching as the import itself (exact match instead of a case-insensitiveLIKE, which broke on names containing an apostrophe and could match the wrong unit), duplicate rows in the imported file are reported to the user instead of silently disappearing from the preview, and the type and external-id mapping selects are now required in the GUI. In addition, the organizational structure tree (GET /org-units/tree) could display only a small fragment instead of the real structure when orphaned root-level rows existed β the tree is now anchored on the real root unit. -
tas-3739 [Crons] GenerateAcquaitanceProcesses π οΈ
Note: The dry run of the cron crashed instead of reporting what it would do β withdebug: truein the cron parameters the run ended withTypeError: this.tasLogger.warn is not a functionright after the candidates had been found and logged. Configurations completely missingvariablesMappingLevelTwo/variablesMappingLevelThreenow fail with a clearly named error instead ofCannot convert undefined or null to object.
π§ Chore
- tas-3739 [Crons] GenerateAcquaitanceProcesses β typing and tests
Note: The cron no longer opts out of typechecking. Cron parameters (templateIds,variablesMappingLevelTwo,variablesMappingLevelThree,variablesToCopy,headerId,limit,debug), the candidate rows returned by the search query, theINSTANCE_VARIABLESrows and every method signature are now typed, which is what surfaced the crash described above. Two further latent problems were fixed along the way: the per-instance ORM assignment wrote to a property that does not exist on the cron (it is a local variable now, as in the other crons that create instances inside a transaction), and two repositories were addressed by an undeclared key that only worked thanks to internal lowercasing. The cron is now covered by unit tests (parameter validation, the debug dry run, variable-type rewriting, the candidate query compiled for both dialects) and integration tests (candidate search against a real organizational structure including blacklist and the distribution/state/newcomer filters, generation of the level three instance with its copied variables and parent link, and the deduplication that prevents a second run from repeating an acquaintance). No change to what the cron does on a normal (non-debug) run β the generated instances, the copied variables and the SQL are untouched.
π¦ [5.7.97] - 2026-08-04
π§ Chore
- tas-3724 Logging β per-cycle workflow tracing moved behind
logger.extendedLogging
Note: The workflow engine logged its internal per-cycle tracing unconditionally. Lines reporting that a check was about to happen or that nothing had changed yet were emitted for every task, link and process on every workflow pass and every cron tick, so a single case activation produced dozens ofinforecords (Check completition.,Check canceling.,Checking whole process completition.,Testing finish,Waiting for new event.,Saving history...,Possible usersand similar). InPostponedTaskCronthe per-itemSkipping task/eventandAcquired lock for task/eventlines are guarded the same way β they carried the full task/event object per row, while the run already logs the activated/skipped totals unconditionally. TheCurlApi is deprecated and will be removed in version 5.12warning was emitted on every singleperform()call, so a calculation looping over HTTP requests filled the log with it; it is now logged once per process, which keeps the deprecation visible without the repetition.
logger.extendedLogging("Extended logs for pdf printing, auth handling and more.") is an existing administration setting, off by default, so these lines disappear from a default installation and can be switched back on without a restart when a workflow needs tracing β note that it also enables extended pdf/auth logging. Outcome-level workflow logging is untouched and stays unconditional: activating and finishing a task, activating a process or event, the link routing decisions, solver selection, and every warning and error. Thelogger.ignoreTasksWithoutConditionsoption still gates theCheck completition./Check canceling.lines, now in addition to theextendedLoggingswitch.
π¦ [5.7.96] - 2026-07-31
π οΈ Fixed
- tas-3710 icon-fonts β hotfix for 5.7 π οΈ
π¦ [5.7.95] - 2026-07-31
β¨ Added
-
tas-3646 [Calculations]
lib.getUsers/lib.getRoles/lib.getOrgUnitsβ¨
Note: New calculation functions for structured querying of system dimensions. They accept a{ filters, sort, page }query with the operatorseq, ne, in, nin, contains, startsWith, endsWith, gt, gte, lt, lte, isNull, isNotNull, cursor paging and an optional total count, which makes partial-match lookups possible (for example finding a user by part of their name). Each function mirrors its REST list endpoint, including its permission scope: GET /users enumeration restrictions and theUSER_FULL_NAMEfilter/sort, GET /roles visibility scope includingROLE_NAME_ACCESS, and the GET /org-units core columns.USER_PASSWORDis never returned. Backported from version 5.20. -
tas-3694 Force types migration CLI β¨
Note: The MSSQL force-types / DATETIME2 precision migration, previously a set of SQL scripts run by hand in SSMS, is now driven from the TAS CLI as a separate set of commands:ft:analyzeandft:checkreport row counts and the columns that still differ fromFORCED_TYPES,ft:alterruns theALTER+DBCC CLEANTABLEpass for tables under--max-rows,ft:procedurecreates the batch transfer procedure,ft:table/ft:tables:allrun the copy-and-swap script for the 18 bundled large tables,ft:verifyandft:verify:defaultscheck the result, andft:cleanupdrops the helper objects. Runnpm run ftfor the full command list.
None of these commands run as part ofnpm run migβ each step stays explicit, because a pass over a large table can take hours. The commands are MSSQL-only and refuse to start on Oracle. They run on a dedicated single connection with no request timeout, so the scripts keep their#temptables acrossGObatches and longALTERs are not cut off.ft:cleanupkeeps theFORCED_TYPEStable unless--include-forced-typesis passed: the always-run migrationmssql-sync-force_typesselects from it, so dropping it makesnpm run migfail. -
tas-3694 Force types migration CLI β schema resolution β¨
Note: The schema the force-types commands work on is taken from the TAS configuration (db.schema/TAS_DB_SCHEMA), can be overridden per run with--schema NAME, and falls back to the default schema of the connecting user β the same lookup TAS does during bootstrap β when the configuration leaves it unset. The resolved schema and where it came from are logged at startup.
A schema given in the configuration or on the command line must be a plain SQL identifier and must exist in the database, because it is used as an identifier rather than bound as a parameter. Be aware that the rest of TAS 5.7 still derives its schema from the connecting user and ignoresdb.schema, so setting it to anything else means the commands migrate a schema the running application does not use. -
tas-3694 Force types migration CLI β
ft:sqland statement output β¨
Note:ft:sqlruns ad-hoc SQL on the same dedicated connection as the rest of the force-types commands, either from--query "SELECT ..."or from a--file path.sqlscript (including:setvar,$(schemaName)andGObatches). Every statement any of the commands run is now printed in full before it is sent, together with its duration and row count, and the commands that change the database list what they are about to run and ask for confirmation first β--yesskips the prompt and is required when running them without a terminal.
The output always reaches the console during a force types run.tasLoggeronly writes to stdout whenlogger.enableStdoutLog(TAS_LOGGER_STDOUT_ENABLE) is enabled, so the commands print anything it would not print themselves β the run is visible to the operator whatever the logging configuration is, without duplicated lines. The log file, Elastic and Arango keep receiving everything as before.
π οΈ Fixed
- tas-3710 icon-fonts β broken icons in frontend images π οΈ
Note: Every frontend image built on or after 2026-07-28 shipped with broken icons β wrong pictograms (Windows fallback glyphs) or literal letters on legacy screens β while all font requests returned 200. An unpinned transitive dependency (postcss 8.5.24, "Preserve the BOM after the processing") stopped stripping the byte order mark that dart-sass prepends to every compressed SCSS module containing non-ASCII characters (the iconcontentcharacters). The BOMs landed in the middle ofappStyles.cssdirectly before thetas-5/general-tas@font-facerules, and because browsers drop the rule following a stray BOM, the icon fonts never registered. The production build path now tells sass not to emit the BOM at all, regardless of the resolved postcss version.
Images already built stay broken until they are rebuilt with this fix. An emergency stopgap without rebuilding on the fix is to pin"postcss": "8.5.23"in the frontendoverrides.
π¦ [5.7.94] - 2026-07-29
β¨ Added
- tas-3633 [Calculations] Migration validation β more deprecated APIs detected β¨
Note:sys.validateTemplates()/sys.validateGlobalScripts()now also detect deprecated calculation APIs that are removed on the way to 5.17:lib.getAresData(),lib.setList(),lib.getPublicKey()/getSecret()/setSecret(),docx.generate()/docx.docxTemplater(),lib.getCertificatePath(), hardcoded certificate directory paths, POST/dms/downloadand/dms/archived/download, and public/assets/URLs. This lets 5.7 environments estimate the upgrade effort before updating.
π οΈ Fixed
-
tas-3656 Error handling β a broken Elasticsearch connection logged the user out π οΈ
Note: A wrong or missing Elasticsearch password in the fulltext / logging integration logged the user out of TAS: the Elasticsearch client rethrows its401 Unauthorizedas an error carrying that status code, the central error handler passed the status straight through, and so opening the Documents or the Logs page answered 401 and the frontend redirected to the login page. The response status is now taken only from TAS exceptions and from Fastify's own errors (schema validation, upload limits and similar); every other failure is reported as 500 together with the sanitized message the handler already sent.
This applies to any third-party error carrying a status code, not only Elasticsearch β such a failure now surfaces as 500 instead of leaking the upstream status. Genuine authentication and session failures are unaffected, because they set the configured unauthorized status explicitly. -
tas-3393 [Calculations] axios β default timeout π οΈ
Note: Calculations usingaxios.getAxios()now default to a 120-second timeout if none is configured, which prevents a calculation from freezing indefinitely on a hanging request while still allowing enough time for longer-running queries such as ERP synchronizations. Custom timeouts are preserved if provided. -
tas-3678 [Crons][AD] DTRoleSync β LDAP connection URL composition π οΈ
-
tas-3408 utilSanitizeHtml β allowed formatting tags π οΈ
Note: Thefonttag (withcolor,faceandsize) and thes,u,subandsuptags are now allowed, so CKEditor formatting in task Instructions renders as formatted text instead of escaped raw HTML.
π¦ [5.7.93] - 2026-07-23
π οΈ Fixed
- tas-3669 [Crons] DTRoleSync β alias naming π οΈ
π¦ [5.7.92] - 2026-07-21
β¨ Added
- tas-1951
storage.moveDmsFilesToCase/storage.moveDmsFilesFromCaseβ¨
Note: New calculation functions for moving DMS documents between cases. Documents can be selected by file ID, file name, attachment variable, or by taking all documents of the case. Selectors only match current, non-deleted documents owned by the source case. The move carries the whole revision chain, recalculates main/sub-process visibility from the target case, detaches the task binding, rewrites the case and template DMS tags and refreshes the fulltext index. Every move is traceable β aMOVE_FILEentry is written into the DMS access log and a record is added to the case history of both the source and the target case. Backported from version 5.20.
π οΈ Fixed
-
tas-3103 Backend input sanitization π οΈ
-
tas-2840 LogEditModule - missing time-range filter and Elasticsearch offset overflow in log download π οΈ
Note: Thefrom/todate range parameters were silently ignored when filtering Elastic logs. Both the offset and the page size are now capped atmax_result_window(10 000) to prevent Elasticsearch from rejecting requests that exceed the default window. -
tas-3487 Overviews - incorrect
TVAR_ALIASπ οΈ
Note: Fixed loss of variable mapping after sharing a view on a template that contains multipledb.views. -
tas-3297
lib.generateAsymmeticKeyPair- EC key generation silently failing π οΈ
Note: For EC key types the function now correctly passesnamedCurveinstead ofmodulusLength. -
tas-1538
updateDTFromCsvremoved data when an error was caught in try/catch π οΈ
Note: Data in the dynamic table is no longer deleted when the import fails and the error is handled by atry/catchblock. -
tas-2797 HR Agenda - filtering and sorting by certain columns caused an error
[5.7.91] - 2026-07-07
π οΈ Fixed
- tas-3534 [Calculations] White screen in template task calculations - a global script that acorn could not parse (syntax newer than ES2020 or a syntax error) threw an uncaught SyntaxError while building editor hints; parse errors are now caught per script (only that script's hints are skipped), parser accepts latest ECMAScript syntax, and a missing null guard on
editor.getContentHeight()was added - tas-3557 [Crons] MsGraphCheckUnprocessedMailsCron - default configuration fix
- tas-3525 DR β number: fix cursor jumping before the first digit when overwriting a selection that spans a formatting space (digits were entered in reverse order, e.g.
135became351); cursor position after reformatting is now derived from the meaningful characters left of the caret - tas-3563 [Calculations] the async/await transpiler now handles every Array iteration method correctly. An async callback (e.g. one awaiting a TAS API) inside
filter/find/findIndex/findLast/findLastIndex/some/every/reduce/reduceRight/sortused to be left synchronous, so the callback returned a Promise β a filter/predicate kept everything,sortcompared Promise objects,reduceaccumulated Promises. These are now rewritten into sequential async loops (likemap/forEach) so the callback is awaited and results are correct. Only inline function callbacks are rewritten, so same-named non-array API methods (e.g.tas.find("task")) are untouched. Lodash collection methods are also no longer mangled:lodash.map/_.mapwas rewritten into an invalid Array.prototype for-loop and_.forEachinto a silent no-op, and lodash iteratees (_.sortBy,_.groupBy,_.remove, ...) were turnedasync; lodash calls (including chains like_(arr).map(fn).value()) are now left intact with a synchronous iteratee and simply awaited
[5.7.90] - 2026-06-23
π οΈ Fixed
- tas-3428 [Emails] MailUsageStatisticsCron: monthly report date range now shows the last day of the previous month (e.g.
01. 04. 2026 - 30. 04. 2026) instead of the first day of the current month; display-only fix, gathered data unchanged - tas-3486 [Calculations] Transpilation - change
Array.map()transpilation fromPromise.all()to a sequential for-loop so calculation scripts run their async callbacks in deterministic order; the callback is now invoked directly, preserving the element, index and array parameters as well as destructuring patterns and function references
Note: Callbacks now run sequentially instead of in parallel, which is intentional but may run slower for scripts that relied on parallelism. Existing transpiled calculations keep the oldPromise.allpattern until they are re-transpiled; use the system console commandssys.retranspileCalculationsByProcessId(tprocId),sys.retranspileCalculationsByTaskId(ttaskId)orsys.retranspileGlobalScripts()to re-transpile them. - tas-3509 firebase startup validation improved
π¦ [5.7.89] - 2026-06-08
π οΈ Fixed
- tas-3459 NFC reader permission prompt shown on mobile (Android/Edge) even when nfcReaderEnabled config is false
π¦ [5.7.88] - 2026-06-08
π οΈ Fixed
- tas-3411 Add userId/username logging to cron run controllers (CronRunController and CronRestartCronController) to audit who initiated manual cron execution
- tas-3347 [AD] LDAP sync - add
ldap.groupSearchBasesorecursiveMemberOfgroup resolution can search outsideldap.peoplein multi-domain AD setups - tas-3431 Custom OrgStrCsv cron - incorrectly assigning manager seats; previous run affects result of subsequent run
π¦ [5.7.87] - 2026-06-02
π οΈ Fixed
-
tas-3349 [Templates] Template process import (REWRITE mode) β incorrect parameter when creating a task π οΈ
Note: When importing a template in REWRITE mode, newly created tasks could be created with incorrect parameters. Fixed. -
[Settings] Tooltip for the "Name" field in overview settings was not displayed π οΈ
Note: Minor visual issue β the help icon next to the "Name" field in the overview settings was not visible. Fixed. -
tas-3384 URL encoding fix for CSV/Excel export π οΈ
Note: When exporting an overview to CSV or Excel, the export could fail if the filters contained special characters (e.g. spaces, diacritics,%). Fixed.
π¦ [5.7.86] - 2026-05-29
π οΈ Fixed
-
tas-3333 [AD] Cron
DTRoleSyncβ DB transaction fix π οΈ
Note: Under certain conditions, Active Directory role synchronization could end in an inconsistent state (some changes saved, some not). All DB operations now run correctly within a single transaction with automatic rollback on error. -
tas-3323 [Mobile app] Disabling "pull-to-refresh" did not work π οΈ
Note: The configuration flagmobileApp.disablePullToRefreshwas not evaluated correctly, so the "pull to refresh" gesture could not be disabled. Fixed β the flag now works reliably. -
tas-3350 Custom Cron
CompanyOrgStrCsvβ update of the user display name π οΈ
Note: The cron for synchronizing the organizational structure from CSV updated records but did not write the current user display name (USER_DISPLAY_NAME). Fixed.
π¦ [5.7.85] - 2026-05-27
β¨ Added
- tas-3323 [Mobile app] Configurable disabling of pull-to-refresh in the browser β¨
Note: A new configuration flagmobileApp.disablePullToRefresh(defaultN) allows disabling the "pull to refresh" gesture in the mobile browser β especially useful where users accidentally refresh the page instead of scrolling.
π οΈ Fixed
- tas-3331 [Templates] Template process import (REWRITE mode) β missing version π οΈ
Note: When importing a template in REWRITE mode, the process version (tproc_version) was not passed to the imported entities. This could cause inconsistencies when working with template versions. Fixed.
π¦ [5.7.84] - 2026-05-26
π οΈ Fixed
- tas-3322 [Templates] Template import (TPL) β "Version must be defined" error when overwriting an existing template π οΈ
Note: When importing a template where the target template already existed and the import was meant to overwrite it, the process failed with a missing version error. Fixed β the version is now correctly resolved even when overwriting.
π§ Chore
- tas-3301 Fix and review of E2E tests in the 5.7 branch
π¦ [5.7.83] - 2026-05-22
π οΈ Fixed
-
tas-3286 Cron
PostponedTaskCronβ query compatibility with Oracle DB π οΈ
Note: The SQL query in the postponed task cron was not compatible with the Oracle database. Fixed β the cron now works correctly on all supported databases. -
tas-3296 White screen when working with competencies β adding regex, switching tabs π οΈ
Note: In the competencies section, an empty/white screen could appear under certain conditions (adding a regular expression, switching tabs). Fixed.
π¦ [5.7.82] - 2026-05-20
β¨ Added
- tas-3274 CaseOverview components - NFC reader β¨
Note: A new component for reading NFC chips has been added to the case overview. Users can now tap a chip directly from the case overview β same as previously from the dashboard. Administrators can add the component and optionally configure instruction texts for multiple languages.
π οΈ Fixed
- tas-3126 Datagrid export - fix
URIError: URI malformed
Note: Data export did not work in any datagrid when a filter was applied β export without a filter worked correctly. The issue affected, for example, the HR agenda but also other sections. After the fix, export works correctly even with an active filter.
π¦ [5.7.81] - 2026-05-18
π οΈ Fixed
- tas-3280 Cron - customized crons - usage of DI logger and auth service π οΈ
π¦ [5.7.80] - fill-in
π οΈ Fixed
- Promise recognition in dynamic conditions
π¦ [5.7.79] - 2026-05-15
β¨ Added
- Database utility functions -
nvlParametrizedandlobSubstr
π οΈ Fixed
MigSeznameniCUSTOM cron - correct auth function call
π¦ [5.7.78] - 2026-05-15
β¨ Added
- tas-3140 Adding "Change entity" option to task history β¨
Note: The "Change entity" action is again available in task history (same as in TAS4). It is accessible via the three-dot menu on the right side of each history record and is visible only to administrators. After opening, the relevant task is automatically pre-filtered.
π οΈ Fixed
-
tas-3240 Process history - add
featureFlag.processHistory.createTechnicalCaseHistoryEntryto suppress technical case-history entries from vars API and sharedVars writes π οΈ
Note: Since version 5.7.28, technical variable changes (via API or sharedVars) were being written to the process history of a case. On busy environments this generated hundreds of records and slowed down loading. These technical records are now separated and their logging can be controlled via the feature flagfeatureFlag.processHistory.createTechnicalCaseHistoryEntry. For administrators: case history is again clean and loads quickly. -
tas-3127 Lost focus in datagrid filter input π οΈ
Note: After opening a case in a new window and returning back, the first click on the filter field lost focus β the user could unintentionally press Enter and put the case to sleep / archive / delete it. Focus now works correctly on the first click. -
tas-3275 Crons - custom crons fix
MigSeznameniandGenerateAcquaitanceProcessesπ οΈ
π§ Chore
- tas-3183 firebase-admin and protobufjs update
- auth test - clean cache record
π¦ [5.7.77] - 2026-05-12
π οΈ Fixed
- Crypto - uncaught stream errors during encryption/decryption π οΈ
Note: Fixed uncaught exceptions from stream errors during encryption/decryption that were crashing the cron process. (No ticket number for this fix.)
π¦ [5.7.76] - 2026-05-12
β¨ Added
- tas-3243
GenerateThumbnailsCron- new batch control parameters β¨
Note: Addedoffset,startFromNewest,continueOnItemError, andsuppressItemErrorLogsparameters to give finer control over how the cron processes batches.
π οΈ Fixed
- tas-3243
GenerateThumbnailsCron- skip missing physical files π οΈ
Note: The cron now skips records whose physical files are missing instead of getting permanently stuck on corrupted records. Log level for missing files was reduced fromerrortowarning. - tas-3243
ImageMagickConnector- memory and disk limits per call π οΈ
Note: Per-call memory and disk limits were added to prevent resource exhaustion when processing large batches. lib.convertDmsFile()returningundefinedπ οΈ
Note:.idwas being accessed on an unresolved Promise instead of on the awaited result, causing the function to returnundefined. (No ticket number for this fix.)- tas-3208 HTML in task variable tooltips π οΈ
Note: Fixed rendering of HTML content inside task variable tooltips. - tas-3165
usage-statistics- user email in report π οΈ
Note: User email is now included in the usage statistics report and in the admin table at/usage-statistics/users. - tas-3106 Task detail - admin task takeover π οΈ
Note: Fixed an issue with administrators being unable to correctly take over tasks from the task detail view.
π¦ [5.7.75] - 2026-05-06
β¨ Added
- tas-3075 NFC - backport 5.7 β¨
Note: NFC functionality backported to the 5.7 branch. - tas-2927
apiExtensionsplugin - process creation, variable updates and workflow start (backport 5.7) β¨
Note: TheapiExtensionsplugin now supports creating processes, updating variables, and triggering workflows. Backported to 5.7.
π οΈ Fixed
- tas-3135 Unhandled promise rejection in
IdentityApi.setOrganizationπ οΈ
Note: Fixed a missingawaitthat caused an unhandled promise rejection inIdentityApi.setOrganization. - tas-3135 Timer leak in cron π οΈ
Note:clearTimeoutis now called afterPromise.raceresolves or rejects, preventing timer leaks in the cron. - tas-3135 False heartbeat crash detection π οΈ
Note: The initial heartbeat is now sent before theCRON_RUNS INSERT, eliminating false crash detections. - tas-3073 Dynamic table description edit π οΈ
Note: Editing the description of a dynamic table no longer unnecessarily updates all linked instance variables. - tas-3157 Mobile app -
shouldActivatePushNotificationsflag π οΈ
Note:getDomainWhitelistnow returns theshouldActivatePushNotificationsflag for the mobile app. - Paginated page width on small screens π οΈ
Note: Fixed layout issue with paginated page width on small screens. (No ticket number for this fix.) - tas-3124 Archivation - legacy tables - foreign key from
INSTANCE_GRAPHtoINSTANCE_TASK_LINKSπ οΈ
Note: Added missing foreign key constraint in the legacy archivation tables. - tas-3124 Process instance deletion - missing legacy tables π οΈ
Note: Process instance deletion now also cleans up records in previously missing legacy tables. - tas-2986 Update - pdfjs π οΈ
Note: Frontendpdfjswas patched. - tas-3003
AsyncAwaitTranspiler- arrow callback without parameters inforEachπ οΈ
Note:AsyncAwaitTranspilernow supports arrow function callbacks without explicit parameters insideforEach. - tas-3063 Service operations - cases - header selection π οΈ
Note: Fixed header selection in service operation cases. - tas-3218
ExposeDbplugin - default database connection π οΈ
Note: Fixed passing of the default database connection to theExposeDbplugin.
π¦ [5.7.74] - 2026-04-14
π οΈ Fixed
-
tas-2962 Checkbox in task - display as checkbox in readonly π οΈ
Note: The checkbox in a task now displays correctly as a checkbox even in read-only mode, not only during editing. -
tas-1484 Dynamic rows - default value in the template π οΈ
Note: Fixed an issue in dynamic row templates where default values were not applied correctly. -
tas-2673 Invalidate old access token on refresh request π οΈ
Note: When an access token is refreshed, the previous token is now invalidated immediately. This reduces the risk of misuse if an old token is stolen. -
tas-1726 Unable to finish task on process with many attachments π οΈ
Note: Fixed an issue that prevented users from completing tasks in processes with a large number of attachments, more than 2000. -
tas-2433 MS Graph email attachment processing fix π οΈ
Note: Improved Microsoft Graph email attachment processing. Attachments that cannot be processed successfully β for example due to an excessively long filename or another file-related issue β are now logged instead of failing silently. This makes these cases visible and allows them to be handled in the workflow. More details are available in the MS Graph cron settings. -
tas-2670 userSettings change validation in /user-parameters π οΈ
Note: The/user-parametersendpoint now correctly validates changes in user settings and prevents invalid values from being saved.
β¨ Added
- tas-2438 Firebase runtime config validation β¨
Note: Added validation of Firebase runtime configuration during application startup. The system now warns about missing or incorrect configuration earlier, instead of failing later at runtime.
π¦ [5.7.73] - 2026-03-30
π οΈ Fixed
-
tas-3014 Certificates parsing improvements π οΈ
Note: Fixed parsing issues for certain certificate formats that were causing errors when loading certificates in the GUI. Also corrected the default certificate path in version 5.7 so it now matches the behavior of other versions. -
tas-2943 Horizontal scroll bar π οΈ
Note: Fixed an issue where horizontal scrolling in list views would unexpectedly snap back to the default position after the user stopped scrolling. -
hotfix: Transaction deadlock in heartbeat π οΈ
Note: Added a hotfix for a database transaction deadlock during the heartbeat process, which could cause service instability.
π¦ [5.7.72] - 2026-03-26
π οΈ Fixed
-
tas-2452 Chunking email sending in
MailCustomviewsCronπ οΈ
Note: Mail servers have connection and concurrency limits.MailCustomviewsCronnow sends emails in chunks to respect these limits, which helps prevent delivery failures for views with a large number of subscribers. Retry logic was also improved. -
tas-2521
userDisplayNamein notifications π οΈ
Note: Fixed a bug where email notifications for tasks assigned through delegation were showingundefinedinstead of the actual name of the represented user. -
tas-2844 Correct log message search behavior in Elastic π οΈ
Note: Fixed log message filtering in the Elastic log viewer. Searching in the "Message" field now correctly returns results and allows filtering by message content or keywords. -
XML import cron migration π οΈ
Note: Added an untracked migration fix related to the XML import cron job. -
tas-2906 Cron administration - add live running state and fix last run timestamp display π οΈ
Note: Fixed misleading information in cron administration. The "Currently running" indicator now works correctly, the "Last run" timestamp is now accurate, and the redundant Restart button related to heartbeat was removed. -
tas-3011 Archivation - legacy table support π οΈ
Note: Extended the archivation process to include additional legacy instance tables such asinstance_task_var_usage,instance_task_js_calculations, andinstance_task_links. This improves database hygiene and performance, especially for clients with large datasets.
β¨ Added
-
tas-2704 Document thumbnail β¨
Note: Added thumbnail generation for documents stored in the system. The first phase supports image files. Support for PDF, DOCX, TXT, and XLSX is planned later. Thumbnails are stored as a secondary file next to the original with a_thumbnailsuffix. -
tas-2724 Usage statistics new metrics β¨
Note: Extended usage statistics with new licence-related metrics, including the number of users with a paired device per month. This information is also included in licence notification emails and helps better distinguish between light and heavy users for licence model optimisation.
π¦ [5.7.71] - 2025-XX-XXas-2612 add curl api as deprecated to calculationValidation
- tas-2750 deprecated notification log CurlApi.perform()
- tas-2781 Complete mobile view left menu expansion
- tas-2693 ignore certificate error
π§ Chore
- XmlImport test refactoring
- tas-2662 Upgrade Node.js to 20.19 and Alpine base image (LibreOffice compatibility)
Updated
by Frantisek Brych