2022.9

With Corteza 2022.9, we continue to improve system stability, security, performance, as well as focusing on features to help organizations conform to data privacy policies and regulations.

Corteza Privacy

Corteza privacy provides features to help organizations conform to data privacy policies and regulations. With Corteza privacy, we aim to streamline the process of handling different data privacy regulations for low-code applications built with Corteza.

We introduce sensitivity levels which allow the administrators to classify what data is sensitive and on what level it should be treated as. We also introduced two new web applications; the privacy console, which allows the users to overview their data and request modifications and the data officer privacy console, which allows the data privacy officers to manage user-submitted privacy requests.

Redefined record storage

Corteza 2022.9 redefines how data is stored internally to improve performance, scalability, and flexibility. Corteza now supports the administrators to define external databases and configure dedicated, stand-alone data storage locations for modules.

Duplicate detection

Along the redefined record storage, we introduce tools to help prevent duplicate data. Corteza now allows administrators to specify rules to determine if a record entry exists and how the system should handle the duplicate. Currently, the system can either warn about the duplicate record or reject the record creation altogether.

Record revisions

Corteza now supports the administrators configuring Low Code modules to keep track of the changes in their records. The changes are tracked by introducing a revision number and providing a complete history of modifications for each record.

Only changes done from the 2022.9.0 version onwards are tracked. The pre-defined records are considered to be the first revision.

Permission debugging

To simplify the access control configuration process for different user roles, we introduced a new permission debugger, which allows the administrators to check if the resulting access control equals the expected one. The permission debugger is available in all of the permission configuration modal windows, and the Corteza Admin’s general component permissions.

  • The Corteza Reporter’s Group step changed to Aggregate, the old Join step changed to Link and a new Join step was added.

  • The Corteza Reporter’s date() expression function changed to return the entire date without time (the previous version returned the day number), and added a new day() function to retrieve the day number.

2022.9.9

Released on: 2023.04.05

  • Added pagination on inline record lists when in view mode. The change was added to have consistency and better user experience when using inline record editing (e0ae508).

  • Changed record import modal to allow users to map values to record and user fields. The change was made to allow users to map values to record and user fields when importing records. The change was made by removing the code that was preventing the users from mapping values to record and user fields (0cf81dc).

  • Changed workflow triggers to not automatically add constraints after an event type is selected. The change was made to prevent users from getting a console error when fetching workflow triggers without provided constraints (7a9802a).

  • Fixed Cannot read properties of undefined error when trying to fetch workflow triggers without providing constraints. The fix was made by adding a check to determine if a constant has a name Also, the automatic addition of constraints after an event type was selected is now removed (7a9802a).

  • Fixed missing support for the STD aggregation function on MySQL databases. The STD function was present in past versions. The fix was made by adding an expression handler for the function and only allowing it for MySQL databases (3ec7d19).

  • Fixed record lists raising Could not load record list: can not change module on a record when interacting with an imported namespace. The issue was caused because the import logic didn’t define any model constraints. The fix was made by making the import logic apply model constraints when defining the model, as well as defining the record revisions model (a554e28).

  • Fixed future/past values not being selectable if DateTime field has future/past only values option applied. The fix was made by disabling the future/past only option on record list filter (24a3197, ffbaba2).

  • Fixed Admin user view not showing any data when 'Confirm email address' was clicked. The fix was made by refetching the user again on Admin when the user is confirming the email address (e76fb09).

  • Fixed field kind not being updated in modules after being selected. The fix was made by updating the module field kind after it is selected (1018, 1018).

  • Fixed users not being able to update their records due to the “Could not update record: failed to complete transaction: Error 1366: Incorrect decimal value: updated for column operation at row 1” error. The fix was made by changing the datatype and also by doing a rearrange of the columns of the record revisions table for consistency (b585dfb).

2022.9.8

Released on: 2023.03.01

  • Added configuration option that hides record list filtering. The change was added to enable configurators to hide filtering on record lists (8ebd25c).

  • Added the link to the reminder record, it was added in the reminder sidebar list/edit. Enabled the ability to un-dismiss reminders. Added a date input field to set the date and time of the reminder. General UI/UX improvements for reminders. The change was added to make reminders more user friendly and easier to use by having the option to set reminder in more than 24h and to have the option to link a record to a reminder and also to un-dismiss a reminder if needed (abc8ad4, 899, 899, 885, 885, 885).

  • Fixed multi-value date time filtering using contains and not contains (903).

  • Fixed select field translations not being shown unless the module is saved. The fix was made by configuring the initial state to show select field translations even when the module is not saved (1706e52).

  • Fixed gauge charts not showing correct results when metrics functions were used. The fix was made by setting the dimension field to deletedBy which produces at most one dataset, since the gauge only shows one value (883).

  • Fixed the permissions on system pages showing invalid roles. If you selected one or more roles, then dropped your database and re-provisioned it, the previous selection was still active (because it’s in local storage), but it was showing deny for all. The fix was made by filtering out the invalid role IDs from the local storage (886).

  • Fixed datasources not being saved when pressing the save datasources button in the datasources modal. The fix was made by applying the save when the save button is pressed on the datasource modal (889).

  • Fixed the record list filter not working when field name was having hyphen in the field name. The fix was made by adding hyphen to allowed list while parsing the query (897).

2022.9.7

Released on: 2023.02.10

  • Added support for casting numbers to float inside workflow expressions via the float function. The change was added to simplify type casting by using a function instead of an intermediate workflow expression variable (38b6cb3).

  • Added ability to toggle block border. The change was added to make better distinction between blocks when they are not shown as a cards (860).

  • Added general UI/UX improvements. The change was added to make some invalid configurations impossible, better overview of some resources and prepare styles and layouts for future releases (80117c0, ef7e864, 9acc109).

  • Changed making the name property required when creating templates, dal connections, workflows, auth clients, and sensitivity levels. The change was made because we were able to create a resource without any data entered, and with this change now we have a requirement and you cannot create a resource without data entered. The change was made by adding validations to prevent creating one of the listed resources without adding a name (38a02d5).

  • Changed the usage of chart.js on admin dashboard with e-charts. The change was made to remove all places where we used to use chart.js since we transitioned to apache e-charts. The change was made by replacing the chart on admin dashboard with e-charts (7daafa1).

  • Fixed not being able to use a record organizer on a record page. The fix was made by properly fetching once the record object becomes available and providing the reference record so values can be prefilled (2398499).

  • Fixed PSQL ID column datatype from BIGINT to numeric to enable support for Corteza ID uint64 data type. The fix was made by changing the datatype for CortezaID in the PostgreSQL database from bigint to numeric (830).

  • Fixed authenticated role being overwritten on server restart if the role was being modified. The fix was made by adding a check in the provision logic to skip base roles & RBAC rules if they were already provisioned (88204f7).

  • Fixed integration gateway filter table not showing all the available data when fetched. The fix was made by adding a processing flag to integration gateway filter table so it properly triggered the refresh when filters change (cfe7e50).

  • Fixed discovery settings field picker not parsing saved values. The fix was made by migrating discovery settings to support multi-language, and updated module discovery config struct to support multi lang result (724804c, e020f74).

  • Fixed record list filter for date not showing any records if you have date only field, and you set the filter to be equal to the correct day. Also, when configuring time only and past values filer, the configuration was only taking the hour in consideration, because even if the minutes were set in the past it was saying invalid form as long as the hour was not changed too. Fixed the error Could not load record list: pq: cannot cast type time with time zone to timestamp with time zone when having time only value and when you tried to filter with a time filter. The fix was made by updating the record list filter builder with the correct query entry for time only and date only (847).

  • Fixed the record revision date-time type being shown as kind.datetime.label. The fix was made by updating the type section translation on the record revision configurator to display the fields as camel case, which is the case for the date-time on the translation itself (863).

  • Fixed exporting a workflow without a handle resulting in having a name json.json The fix was made by falling back to workflow name and sanitizing the file name for any illegal characters before saving it (96f8bc5).

2022.9.6

Released on: 2023.01.18

  • Changed workflow iterators to iterate all entries when the limit is set to 0. The change was made to make workflow iterators more consistent with other resource searching operations. The change was made by changing the internal logic to rely on parameter presence rather then value (fc259ca).

  • Changed error message when trying to delete a sensitivity level that’s in use to be more informative on what is wrong. The change was made to make error messages more consistent and user friendly. The change was made by adding additional validation before the sensitivity level is deleted (56e5543).

  • Changed the requirement to provide a handle when creating a role is now removed and the handle is now optional. The change was made because providing a handle shouldn’t be a necessity and resources can be created without it (fd55cce).

  • Fixed invalid record revision history for multi value fields. The first value appeared duplicated, the last value was omitted, and when a value was removed the value was no longer visible in the old version. The fix was made by converting the delta into a table correctly (b203224).

  • Fixed the attachment modal not being visible in the admin area of compose. The fix was made by moving the attachment modal from Public/Pages/View to Namespace/View (ea1c1fa).

  • Fixed missing error exception for change password handler. The fix was made by properly handling and serving the error message (82c70b3).

  • Fixed being unable to export an user that had a suspended or deleted role assigned to it. The fix was made the export logic was resolving unresolved resources on the fly and it was not excluded and this edge case caused the server to panic (1432671).

  • Fixed missing support for filtering, sorting, and paging over federation nodes. The fix was made by enabling filtering, sorting, and paging for federation nodes (22f49b0).

  • Fixed hiding of calendar in calendar block when switching from page builder to view page and vice versa. When we had couple calendars with records or events configured, the event configured calendars were hidden and no info was displayed. The fix was made by replacing throttle with async/await in the CalendarBase component (4124f8f).

  • Fixed querying record list not showing any result if the record list does not have any fields selected in the block configuration. The fix was made by making sure a record list with default fields uses those instead of the selected ones to search from (0f03f9c).

  • Fixed filtering for multi-value number field with contains or not contains criteria which was not retuning any values back. The fix was made by making sure to convert numbers into string format while building a query for the selected filter (7185611).

  • Fixed when record list records per page was set to 0, the pagination information was not displayed properly. The fix was made by adding a check for this case where the pagination information is generated (045da2e).

  • Fixed not being able to filter checkbox module fields from the record list filter interface. The fix was made by adding custom val handler for bool type to convert it properly while parsing the query to MySQL driver (1febba3).

  • Fixed the import modal not being properly closed once an item was imported. The fix was made by making sure that the modal is closed as soon as an import is finished (735).

Unresolved include directive in modules/ROOT/pages/changelog/202209/index.adoc - include::05.gen.adoc[]

Unresolved include directive in modules/ROOT/pages/changelog/202209/index.adoc - include::04.gen.adoc[]

2022.9.3

Released on: 2022.11.25

  • Added a new label position option for charts with y-axis. It enables you to position the label at the bottom, middle or top of the y-axis. The change was added because the y-axis label was overlapping with the values if they were bigger (18248a2).

  • Added new multi value filter operators (IN and NOT IN) to the pre-filter in the reporter UI. This why users have the ability to filter records using multi value fields. The change was added to bring back the support to filter records using their multi value fields inside reports (560).

  • Added additional configuration for pie, bar, line, and doughnut charts. Three new sections were added - tooltip, legend and offset as well as the options to rotate x and y axis labels (only for bar and line charts). The change was added to give the users more freedom to customize charts (a8d3b83, b2c9de5).

  • Added support to set the minimum value and default value (value, min, and max) for progress bar module fields and page blocks. The change was added to provide the user with more customization and easier use of the progress bar in Corteza (f367836).

  • Changed the resource list now uses the same component, item count and pagination and it is also enabled for resource lists that support it. Now almost on every resource we show the total item count and we have the ability to go to the next page if there are items. The change was made because the look and feel of lists across Corteza needed to be unified. Also for better user experience and to always know the correct number of how many records/items we have. The change was made by updating and using the reusable CResourceList component in corteza-vue That means we can control the look of all lists from one place (030109b, 229bf12, c67daa7, 06c07d8, 6033433).

  • Changed the requirement to provide a handle when creating a resource is removed and handles are now optional. The change is applied in compose, admin, reporter, and workflow. The change was made because providing a handle shouldn’t be a necessity and resources should have the option to omit it. The change was made by removing the strict handle existence validation (cd86e85, cf21c47, 456c896, 9b88af0, 24b0dda, 34f261a, 3a90a10).

  • Changed the color of the button for confirming the action to accept a privacy request. The change was made to match the colors with the ones when confirming/denying the action to reject a privacy request. The change was made by changing the color to dark blue (d4ed9ff).

  • Fixed the avatar not being clickable on the auth screens on mobile devices due to the login form overlapping the top bar. The fix was made by adjusting the styling of the auth screens and the Corteza top bar (541, 541, 541).

2022.9.2

Released on: 2022.11.08

  • There is a known bug where multi-value fields crash the server or produce unexpected results in reports. If your configuration uses reports which utilize multi-value fields, skip this patch version..

  • Changed the workflow step configuration results section when no results are present for execute workflow, function, prompt, and iterator steps. The change was made because the results section was present even if no results were listed for the specified workflow steps The change was made by hiding the results section if no results are present (2b4619a).

  • Changed the uninformative RBAC rule import error messages reported by the provisioning system. The error was uninformative because RBAC rules, in this context, don’t use identifiers. The change was made because the error in question was uninformative and looked like this: failed to complete transaction: store encoder encode rbac-rule []: unsupported resource type '' for RBAC store encode. The change was made by allowing custom error reporting logic for specific resources such as RBAC rules (e2ac9c4).

  • Changed password constraints which saved their values as strings to save them as numbers. Additionally, the labels of the two fields were reworded to match the style of the other inputs in the password constraints section. The change was made because the password constraints were saved as strings; with this change, the constraints will be saved as numbers (aad919f, 703516c, a248000).

  • Changed the documentation about sanitizers and fixed the example links in module field validation tab to now point to the correct anchors. The change was made because the documentation was lacking information about field value sanitization. The change was made by updating the documentation with a new important section describing this behavior and changing the documentation links in the module field configuration to point to validators/sanitizers (9af28f2).

  • Changed record pages to reflect the operation (creating, editing, viewing) in the title of the public page. The change was made because the previous titles didn’t match the consistency of the other page titles. When you were editing a record instead of saying Editing a record page the title was saying Viewing record page, which was wrong. The change was made by changing the translation message of a record in the create, view and edit components (b3ded1b, f7a520f).

  • Fixed incorrect user count from the system metrics report due to system-defined users. The fix was made by excluding system users from the metric report We didn’t exclude them from the total, but they were excluded from the per-day aggregation (fd6465d).

  • Fixed the timestamp in the details of an action log being different as the one in search results. The fix was made by applying a custom formatting to the timestamp (a4596fb).

  • Fixed strict record value duplicate detection, which was preventing record creation with same values for fields for strict duplicate detection validation. The fix was made by validating duplication only for selected field (eac2f07).

  • Fixed sub workflows being unavailable in the workflow execution step after the server was restarted. The issue was caused by the initialization logic excluding sub-workflows from the filter. The fix was made by including the sub-workflows in the initial load, thus resolving the issue (d64b732).

  • Fixed action log search results not showing the correct outputs. The fix was made by fixing the lapsus where the from timestamp was used for both the from and to date range which resulted in no matches (1fa5f39, c63df82).

  • Fixed Low Code namespace export where the name contained characters like /, . broke the export because they broke the URL. The same issue was addressed for record export but with module name. The fix was made by URI encoding the filename and replacing dots with - as that caused the URL to be broken (1f0ea56, 920cc5a).

  • Fixed JSON codecs ident getting set to the field’s name instead of values, when editing a module/configuring field mapping. The JSON codec requires you to specify where the JSON object is located, not the name of the value. Since values are stored in values, the value has to be values (where the JSON is). The bug told Corteza to look for the column with the field name which probably never existed. The fix was made By correctly defaulting the values (580db32).

  • Fixed DAL connection configuration displaying the default DSN connection parameters instead of the configured one. The fix was made by properly merging the default values and user-provided configurations, as well as fixing edge-cases where the configuration was made available after the page had loaded In the later case, the user-provided configuration was never displayed instead of the default values (0b41074, f9f7e92).

  • Fixed using workflowID parameter in workflowList not working because the returning value was getting corrupted in JavaScript due to unsupported uint64. The fix was made by replacing []uint64 with []string for filterworkflowID that corrupted the input value for JavaScript (uint64 vs int64) In addition, the filtering was moved to the store level (ca7d4b0).

  • Fixed DAL code ignoring module ID when doing record lookup. If you wanted to select a record you were receiving the error message: Could not create record: check error messages on the form, and on the form it was saying: record not found This fix ensures proper module ID is used (one from the module field options)when doing lookup. The fix was made By using module-id from module field options and not field’s module ID (a8d2fef).

  • Fixed broken filter and codegen definition for workflow filters which resulted in generating broken filter functionality. Filtering subworkflows with subWorkflow 2 flag in workflowList was not returning any subworkflows. The fix was made by properly applying conditions when sub-workflow filter was used (5b2ba54).

  • Fixed missing dal connection translation by converting its error meta key reference to kebab-case. The fix was made by adding missing credentials translations to the locale under system/credentials (434, 9021d1b, baff7b7).

  • Fixed broken translation due to incompatible fileName case in locale. The fix was made by renaming the file name for resources as per expected format (kebab-case) (b2ad8c2).

  • Fixed record search endpoints needlessly degrading performance by computing totals and paging cursors even when not required. The performance hit was noticeable on larger datasets. The fix was made by short-circuiting processing sooner when totals and page cursor navigation was not required This doesn’t change external behavior as those parameters were not included even tho they were computed (24b5d7c).

  • Fixed data aggregation count function crashing the server when no arguments were provided (count()). The old version allowed this format while the new one did not and it crashed the server. The fix was made by adjusting validations and adding additional exceptions for this specific case (fd3552e).

  • Fixed action log search results did not change if you reset the filter parameters. The filter parameters are reflected in the URL. The fix was made by properly updating the search parameters in the URL (ca14671).

  • Fixed geometry values not being saved when changed manually in inputs. The fix was made by correctly detecting changes on the geometry value since it uses a more complex structure then the rest of the inputs (893e644).

  • Fixed record export filter not interpolating placeholders such as ${userID} which lead to non functional exports. The fix was made by adding evaluation to the record export filter to correctly evaluate and interpolate placeholders (9e9898b).

  • Fixed privacy web apps not being enabled in the default Corteza configuration. The fix was made by adding the privacy web applications to the HTTP_WEBAPP_LIST env variable (c8508f4).

  • Fixed Data Privacy Officer role unable to see or review requests in the privacy web application due to invalid permission configuration. The fix was made by updating provision YAML files with search and read on corteza::compose, corteza::compose:namespace, corteza::compose:module and corteza::system resources Additionally, Data privacy officer permissions were changed to be able to view and edit a privacy request (1d390f9, 69f33fa, 2b35b98, a5e192f, 18a687a).

  • Fixed missing translations for gateway, auth, dal sensitivity, and data privacy. The fix was made by adding the missing translations to corteza-locale (bb29fe2, 56046e9, e64befa).

  • Fixed errors on reports not being captured. The fix was made by properly capturing and displaying errors (8926c04).

  • Fixed required module field flag is not reflected on the corresponding model attribute on the nullable flag. The fix was made by explicitly setting the nullable flag on all attributes when generating models where fields set the required flag (eb89992).

  • Fixed incorrect type encoding for Low Code charts where numbers were represented as strings and references (IDs) as numbers instead of strings. The fix was made by adding a hotfix to assure that these exceptions are properly encoded and presented to Low Code charts The initial issue is on the database level but the exact solution is still up for debate and will be addressed later (55702ec).

  • Fixed Email, File, Number, String, and URL fields not showing validation errors. The error under the field now also indicates the duplicated value. You still need the field on the record itself in order to see the validation error. The fix was made by adding the missing errors component to field viewers that didn’t have it (that is shown for expression fields on record edit) (1cf316c, 6bebd21).

  • Fixed the suspended and revoke access buttons being shown even when creating a new user. The fix was made by only showing those buttons when editing a user (2c35552).

  • Fixed users unable to press the submit button when trying to edit a user and the submit button remaining enabled even if an invalid (or missing) email was provided. The fix was made by properly applying the permissions obtained from the API user object in the webapp User class and correctly updating the form’s state based on the email validation (d585399, 99775e1).

  • Fixed external auth providers not being re-fetched after updating user password. The fix was made by refetching the external auth providers after updating (07de6a6).

  • Fixed gauge chart step name not displaying when value was larger than the largest step. The fix was made by setting the default step name to the largest, since if we find another step where the value currently is, we will use that one instead (808e438).

  • Fixed extra whitespace disappearing when using a rich text editor for the String field. The fix was made by tweaking the configuration for the viewer (adding 'white-space': 'pre-wrap') and the editor (adding preserveWhitespace: 'full' to CRichTextInput parse options) (854e6c8, db1ace1).

  • Fixed being able to submit a federation node form even if URL and name were not defined. The fix was made by correctly validating the form and disabling the buttons as needed (0f5170d, b8a49fd).

  • Fixed ownership information not being displayed on the connection. The fix was made by using the correct value for the field ownership (by switching the value from connectionownership to connectionmetaownership) (d585399, 6e2e2b2).

  • Fixed unable to save auth clients when setting either the valid from or expires at. The fix was made correctly parsing date-time values we get from the API (04c8c4e).

  • Fixed incorrectly displayed error message when un-deleting messaging queue; it was displaying the error message Queue deleted instead of Queue restored. The fix was made Translations were added in locale and applied in admin (7af6c9e, e00a3da).

  • Fixed deleted messaging queues being un-deleted if they were edited. The fix was made by correctly preserving the deleted state when updating the messaging queue (90b5414).

  • Fixed incorrectly passed translations to Results/Namespace, Record and User. The fix was made by correctly passing translations via props and interpolation Previously, part of the translations were passed without using interpolation and the other translations were passed as attributes causing the texts to not be properly translated (bed2dfa).

  • Fixed the Corteza crashing when adding additional DAL connections. The issue was caused by improperly handled initial and empty states for the DAL connection resource. The fix was made adding exceptions to reject default configuration options (no connection params) and properly handling the default state on the web application’s connection editor (55636d9, f5297d3).

  • Fixed file uploads being rejected when specifying what MIME types are allowed or not. The issue occurred due to additional meta tags provided by the files or the underlying libraries. The fix was made by reworking how MIME types are validated by switching from comparing MIME type labels to a more robust library which was already used for detecting MIME types (ab987cc).

  • Fixed disappearing white spaces when using a rich text editor in the String field. The fix was made by adding 'white-space': 'pre-wrap' to String viewer and preserveWhitespace: 'full' to CRichTextInput parse options (a89208f, 854e6c8).

  • Fixed automation button resource translations not preserving between page refreshes. The issue was caused due to improper indexing as well as missing code to apply resource translations to record list selection buttons. The fix was made correcting resource translation indexing to start with 0 instead of 1 as well as adding missing code to correctly apply resource translations to record list selection buttons (7a5e839, 6d58bf4).

  • Fixed record page navigation and sorting issue. The fix was made by improving record iterator implementation for page navigation and sorting and also fixing store drivers to be consistent respective to their query language for dateTime, number, boolean data types (6f04666).

  • Fixed simple equality operator = in the filter query that checks for all values in multi-value fields but only the first one due to the changed encoding of record values. The fix was made by introducing new operators IN and NOT IN and should be used when filtering records containing value inside multi value field (f6e3035).

2022.9.1

Released on: 2022-10-13

  • Added support for DAL aggregation on the RDBMS level to improve performance on larder datasets by utilizing existing technology (1215511e2).

  • Changed privacy request comment loading indicator by introducing a spinner (46da70e).

  • Changed Corredor server to use a newer Pino version to the same version as elsewhere to avoid interface collisions (8893f33).

  • Changed Corredor server to no longer start if the provided configuration is invalid. The Corredor server now checks for validity and errors out if invalid (8893f33).

  • Changed JSON handling within the Corteza’s DAL package. We made the change to improve performance when processing a lot of JSON objects by switching to the valyala/fastjson package (ce6d7d02e).

  • Changed multi-value geometry field editor and viewer (32703e4, 46378d8).

  • Changed the API docs to be up to date and include automation endpoints (b03a09812).

  • Fixed memory leaks caused by DAL when running reports. The reporting logic didn’t close the open data sources (5d476dcfa).

  • Fixed invalid resource retrieval, which led to missing logos and fav icons on instances where the server and webapp are split. We resolved the issue by properly determining the URL for this scenario (1079236).

  • Fixed UI/UX issues in regards to the report builder’s tooltip and button sizes (bcf2b36), properly displaying page block headers and footers on plain page blocks (7e8fb2f).

  • Fixed duplicated result argument display on workflow function configuration. The issue occurred due to improper rendering condition (945f287).

  • Fixed expression values not being visible in the configuration sidebar when configuring workflows.

  • Fixed expression values not showing in the sidebar (2bae1bd).

  • Fixed failing namespace export when using namespace with characters such as / and .. The names are encoded before being sent over to avoid these issues (1d2fe47).

  • Fixed record edit/clone button not appearing on all records if no record page is present (71af271).

  • Fixed using ${ownerID} in filters, now properly uses the ownedBy value instead of the currently logged in user (like userID for its value does) (93f7ebc).

  • Fixed the process of undeleting auth clients (e69b0ef, 9ccdcae, 38626bd).

  • Fixed record export when the record count was 0 by preventing the export (2d7a1f6).

  • Fixed performance issues on integration gateway route reloading caused by re-registering all of the endpoints when one was updated (269cdb1ba, 955c4d9b9).

  • Fixed data corruption which was caused by an improper Low Code record value migration (7e4e4d3b5).

  • Fixed exporting records to a specific timezone by encoding the URI params (362ddca).

  • Fix workflow function errors caused by fetching an array of resources. The error was caused by a change in how expression types are determined and is temporarily patched with an edge-case exception (b581fe86a).

  • Improved error reporting on new user sign-up (57721291b).

  • Prevented stored XSS attacks in the logout back link by implying additional sanitation steps to the value (f1f4f4bd1).