v0.42.0

twentyhq/twentyv0.42.0Feb 14, 2025by prastoin

AI Summary

This release focuses on major workflow enhancements including cron triggers and a visualizer, expanded internationalization with Japanese language support, and a new roles/permissions system with a settings page. Additional improvements include custom domain support, command menu navigation enhancements, and continued REST API to TwentyORM migration.

Key Highlights

  • Workflow system major upgrade with cron triggers backend/frontend implementation and new workflow run visualizer
  • Internationalization expansion - Japanese language added, extensive translation improvements, and localization CI optimizations
  • New Roles & Permissions system - settings roles page, role assignment page, and permission gates on API/Webhooks
  • Custom domain support - enable custom domain usage with UI and status toggle
  • Command menu improvements - navigation stack, context chips compact version, and navigation hotkeys

New Features

  • Japanese language support
  • Workflow cron triggers (scheduled workflows)
  • Workflow run visualizer
  • Settings roles page and role assignment page
  • Custom domain support with UI
  • Command menu navigation stack and context chips
  • Add object name inside search
  • Search records as fallback when no results
  • Environment variables in admin panel (read-only)
  • RICH_TEXT_V2 frontend and upgrade command
  • Destroy many record actions
  • Microsoft signup sync
  • Folders organization feature
  • Permission gates on API & Webhooks + Security settings

Full Release Notes

## What's Changed
* clean code and normalize billing eventNames by @anamarn in https://github.com/twentyhq/twenty/pull/9928
* Implement parallel code path for fieldMetadataItem instead of filterDefinition by @lucasbordeau in https://github.com/twentyhq/twenty/pull/9931
* Add settings roles page by @Weiko in https://github.com/twentyhq/twenty/pull/9940
* Fix refetch on workflow status update  by @thomtrp in https://github.com/twentyhq/twenty/pull/9946
* Disable the fields of all CRUD workflow actions on readonly mode by @Devessier in https://github.com/twentyhq/twenty/pull/9939
* fix slow search resolver without searchTerm input by @etiennejouan in https://github.com/twentyhq/twenty/pull/9947
* Remove demo from readme as users can create free trial on production by @charlesBochet in https://github.com/twentyhq/twenty/pull/9952
* refacto(auth): improve type + remove complexity by @AMoreaux in https://github.com/twentyhq/twenty/pull/9949
* More progress on translations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/9951
* [1/n]: Migrate `deleteOne` Rest API to use TwentyORM directly by @pacyL2K19 in https://github.com/twentyhq/twenty/pull/9784
* fix(icon): update Microsoft Outlook icon import by @AMoreaux in https://github.com/twentyhq/twenty/pull/9953
* Serverless function follow up by @martmull in https://github.com/twentyhq/twenty/pull/9924
* Fix composite type update migration builder by @charlesBochet in https://github.com/twentyhq/twenty/pull/9959
* Make variable nodes undeletable in a readonly tiptap editor by @Devessier in https://github.com/twentyhq/twenty/pull/9950
* [Permissions] Add userWorkspaceId to JWT token by @ijreilly in https://github.com/twentyhq/twenty/pull/9954
* 323 add object name inside the search by @bosiraphael in https://github.com/twentyhq/twenty/pull/9962
* [CHORE] Avoid `isDefined` duplicated reference, move it to `twenty-shared` by @prastoin in https://github.com/twentyhq/twenty/pull/9967
* Add instructions to upgrade to 0.41 in docs by @guillim in https://github.com/twentyhq/twenty/pull/9964
* Add Japanese language by @yhayano-ponotech in https://github.com/twentyhq/twenty/pull/9956
* setup localization for twenty-emails by @DeepaPrasanna in https://github.com/twentyhq/twenty/pull/9806
* preparing version  0.42-caanry by @guillim in https://github.com/twentyhq/twenty/pull/9938
* Sort active workspaces by @guillim in https://github.com/twentyhq/twenty/pull/9973
* refactor(auth): update SSO provider selection logic by @AMoreaux in https://github.com/twentyhq/twenty/pull/9975
* 324 add search records as a fallback action in case of no results by @bosiraphael in https://github.com/twentyhq/twenty/pull/9976
* Environment variables in admin panel (read only) - backend by @ehconitin in https://github.com/twentyhq/twenty/pull/9943
* Removed availableFilterDefinitions as a state but kept its usage as a derived state of objectMetadataItems by @lucasbordeau in https://github.com/twentyhq/twenty/pull/9972
* fix: prevent updating isCustom on object and field metadata by @chandraguptgosavi in https://github.com/twentyhq/twenty/pull/9968
* feat(sso): fix saml + allow to use public invite with sso + fix invite page with multiple sso provider by @AMoreaux in https://github.com/twentyhq/twenty/pull/9963
* allow people to connect their mailbox by @guillim in https://github.com/twentyhq/twenty/pull/9982
* [Permissions] Implement getRoles by @ijreilly in https://github.com/twentyhq/twenty/pull/9955
* Add logged out translations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/9983
* hotfix for lab by @ehconitin in https://github.com/twentyhq/twenty/pull/9981
* optimize feature flag query in Lab by @ehconitin in https://github.com/twentyhq/twenty/pull/9987
* add createMany fields to fieldMetadataService to batch field creation by @Weiko in https://github.com/twentyhq/twenty/pull/9957
* [2/n]: Rest API -> TwentyORM migration `POST rest/*` by @pacyL2K19 in https://github.com/twentyhq/twenty/pull/9986
* Improve translations with gpt by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10000
* Fix-issue-370 by @guillim in https://github.com/twentyhq/twenty/pull/9996
* Enable workflow in lab by @thomtrp in https://github.com/twentyhq/twenty/pull/9997
* Fixed cannot close record table cell header filter by @lucasbordeau in https://github.com/twentyhq/twenty/pull/9998
* 361 create a navigation stack for the command menu by @bosiraphael in https://github.com/twentyhq/twenty/pull/9995
* Update cleaning suspended workspace job by @etiennejouan in https://github.com/twentyhq/twenty/pull/9999
* 0.41 release note -> Introducing Lab Tab by @Bonapara in https://github.com/twentyhq/twenty/pull/9989
* Fix:Empty link in record details isn't deleted by default by @Lucifer4255 in https://github.com/twentyhq/twenty/pull/9840
* Dockerfile update by @guillim in https://github.com/twentyhq/twenty/pull/10007
* Fix send email error when empty connected account by @thomtrp in https://github.com/twentyhq/twenty/pull/10005
* [3/n]: Migrate the `PUT rest/*` and `PATCH rest/*` to use TwentyORM by @pacyL2K19 in https://github.com/twentyhq/twenty/pull/10002
* Create variants for workflow visualizer nodes by @Devessier in https://github.com/twentyhq/twenty/pull/10006
* [FIX] Nx project's scope build dependency management by @prastoin in https://github.com/twentyhq/twenty/pull/10010
* [CHORE] Twenty emails deps to twenty-shared lockfile update by @prastoin in https://github.com/twentyhq/twenty/pull/10013
* [FEAT] RecordAction destroy many record by @prastoin in https://github.com/twentyhq/twenty/pull/9991
* Implement query variables in useCombinedFindManyRecords by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10015
* 335 workflow implement workflow cron triggers backend by @martmull in https://github.com/twentyhq/twenty/pull/9988
* [BUG][PROD] Fix `ViewGroup` creation optimistic cache by @prastoin in https://github.com/twentyhq/twenty/pull/10014
* Fetch roles in roles settings page by @Weiko in https://github.com/twentyhq/twenty/pull/10001
* 320 new command menu navigation bar buttons by @bosiraphael in https://github.com/twentyhq/twenty/pull/10018
* Post #10014 merged nitpicks followup by @prastoin in https://github.com/twentyhq/twenty/pull/10021
* `BaseObjectRecord` and`__typename` naming updates by @prastoin in https://github.com/twentyhq/twenty/pull/10024
* [FEAT] Destroy many Workflow actions by @prastoin in https://github.com/twentyhq/twenty/pull/10028
* [NITPICK] Avoid duplicated action position index in `DefaultActionsConfigV2` by @prastoin in https://github.com/twentyhq/twenty/pull/10031
* Lab image cover by @Bonapara in https://github.com/twentyhq/twenty/pull/10027
* Implement updateRole by @ijreilly in https://github.com/twentyhq/twenty/pull/10009
* 10004 tasks will not delete in people view by @bosiraphael in https://github.com/twentyhq/twenty/pull/10039
* Add the new workflow `not executed` node type by @Devessier in https://github.com/twentyhq/twenty/pull/10030
* refactor(security): extend SAML prefix handling by @AMoreaux in https://github.com/twentyhq/twenty/pull/10047
* 259 add navigation hotkeys for command menu level 2 by @bosiraphael in https://github.com/twentyhq/twenty/pull/10043
* Simplify the component layers for workflow nodes by @Devessier in https://github.com/twentyhq/twenty/pull/10042
* Record filters - Introduced fieldMetadataItemUsedInDropdown instead of filterDefinitionUsedInDropdown by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10044
* [permissions] Avoid N+1 on roles by @ijreilly in https://github.com/twentyhq/twenty/pull/10041
* Add role edit page container by @Weiko in https://github.com/twentyhq/twenty/pull/10037
* fix(signin): allow to signin in pending creation workspace by @AMoreaux in https://github.com/twentyhq/twenty/pull/10052
* signup sync with microsoft by @guillim in https://github.com/twentyhq/twenty/pull/10008
* Deprecate message queue type by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10040
* fix(auth): update error message in sign-in-up service test by @AMoreaux in https://github.com/twentyhq/twenty/pull/10056
* fix(settings routing): handle trailing slashes in base paths by @AMoreaux in https://github.com/twentyhq/twenty/pull/10055
* Environment variables in admin panel (read only) - front by @ehconitin in https://github.com/twentyhq/twenty/pull/10011
* Make the e2e ci pass by @Devessier in https://github.com/twentyhq/twenty/pull/10059
* fix(auth): reset signInUp state when email change by @AMoreaux in https://github.com/twentyhq/twenty/pull/9990
* Update billing to EE by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10060
* Lingui working with NODE ENV=production again by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10067
* fix(auth): prevent infinite redirect by @AMoreaux in https://github.com/twentyhq/twenty/pull/10065
* refactor(auth): simplify continueWithEmail and remove useCallback by @AMoreaux in https://github.com/twentyhq/twenty/pull/10068
* Refactor duplication of hard coded soft delete filter logic by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10058
* Remove the source handle for leaf nodes by @Devessier in https://github.com/twentyhq/twenty/pull/10057
* feat(): enable custom domain usage by @AMoreaux in https://github.com/twentyhq/twenty/pull/9911
* 321 command menu context chips compact version by @bosiraphael in https://github.com/twentyhq/twenty/pull/10072
* Remove session store secret by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10074
* [BUG] Avoid backfilling record position on update one by @prastoin in https://github.com/twentyhq/twenty/pull/10069
* Do not display back button at the root level of the command menu by @bosiraphael in https://github.com/twentyhq/twenty/pull/10073
* [permissions] Add settingsPermissions to getCurrentUser by @ijreilly in https://github.com/twentyhq/twenty/pull/10054
* [permissions] Add SettingsPermissionGuard on data model and roles features by @ijreilly in https://github.com/twentyhq/twenty/pull/10063
* Command menu list design updates by @bosiraphael in https://github.com/twentyhq/twenty/pull/10075
* 360 workflow implement workflow cron triggers frontend 2 by @martmull in https://github.com/twentyhq/twenty/pull/10051
* Fix soft delete filter hook bug with actions by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10077
* Updates in the workflow actions config by @bosiraphael in https://github.com/twentyhq/twenty/pull/10080
* Reset search bar when clicking on search action by @bosiraphael in https://github.com/twentyhq/twenty/pull/10076
* Focus on the input on command menu page change by @bosiraphael in https://github.com/twentyhq/twenty/pull/10082
* Translations - Crowdin, Set workspace member locale on signup, and optimizations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10091
* I18n CI and small type improvement by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10092
* Iterations on i18n CI by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10093
* feat(custom-domain): enable UI for custom domain by @AMoreaux in https://github.com/twentyhq/twenty/pull/10062
* chore: add translations by @github-actions in https://github.com/twentyhq/twenty/pull/10098
* Fix doc by @martmull in https://github.com/twentyhq/twenty/pull/10102
* Store output step by step by @thomtrp in https://github.com/twentyhq/twenty/pull/10101
* add invalid captcha and messageChannel sync status health monitoring by @etiennejouan in https://github.com/twentyhq/twenty/pull/10029
* hide inactive objects by @mdrazak2001 in https://github.com/twentyhq/twenty/pull/10099
* Fix issue with pr-PT and pt-BR casing by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10106
* Hide inactive objects and fields by @akakiplimo in https://github.com/twentyhq/twenty/pull/10104
* refacto(*): rename hostname to custom domain by @AMoreaux in https://github.com/twentyhq/twenty/pull/10100
* Simplify webhook creation flow by @martmull in https://github.com/twentyhq/twenty/pull/10107
* Fix: Get rid of subgroups in admin/env-variables by @ehconitin in https://github.com/twentyhq/twenty/pull/10105
* chore: add translations by @github-actions in https://github.com/twentyhq/twenty/pull/10112
* we don't create companies for personal domain emails anylonger by @guillim in https://github.com/twentyhq/twenty/pull/10110
* Fix workflow activation optimistic rendering in Cmd+K by @thomtrp in https://github.com/twentyhq/twenty/pull/10109
* fix log + add 3 indexes on fielMetadata and indexFieldMetadata by @etiennejouan in https://github.com/twentyhq/twenty/pull/10113
* Update docker-compose.mdx by @titouan13 in https://github.com/twentyhq/twenty/pull/10118
* chore(twenty-server): remove eslint warn + add maxWarning 0 by @AMoreaux in https://github.com/twentyhq/twenty/pull/10103
* RICH_TEXT_V2 frontend by @eliasylonen in https://github.com/twentyhq/twenty/pull/10083
* Add workflow success edge by @Devessier in https://github.com/twentyhq/twenty/pull/10120
* add role assignment page  by @Weiko in https://github.com/twentyhq/twenty/pull/10115
* Fix readonly in some steps by @thomtrp in https://github.com/twentyhq/twenty/pull/10121
* Translations cleaning / workflows by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10125
* Update i18n-push.yaml by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10127
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10126
* I18n CI by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10129
* [REFACTOR][BUG] Dynamically compute field to write in cache `UPDATE` & `DELETE` by @prastoin in https://github.com/twentyhq/twenty/pull/10079
* fix: many fields in an object by @magrinj in https://github.com/twentyhq/twenty/pull/10061
* Update i18n-compile.yaml by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10132
* folders  by @guillim in https://github.com/twentyhq/twenty/pull/10081
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10131
* Webhook follow up by @martmull in https://github.com/twentyhq/twenty/pull/10124
* Admin panel refactor by @ehconitin in https://github.com/twentyhq/twenty/pull/10119
* Fix bug where aggregate resets record filters by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10136
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10137
* minor env tab description font color fix by @ehconitin in https://github.com/twentyhq/twenty/pull/10139
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10140
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10141
* Prevent data visualizer from fetching workflows when not enabled by @thomtrp in https://github.com/twentyhq/twenty/pull/10116
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10143
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10144
* Progress on translations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10142
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10145
* [permissions] Add permission gates on API & Webhooks + Security settings by @ijreilly in https://github.com/twentyhq/twenty/pull/10133
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10149
* Create base search record action by @thomtrp in https://github.com/twentyhq/twenty/pull/10135
* RICH_TEXT_V2 upgrade command by @eliasylonen in https://github.com/twentyhq/twenty/pull/10094
* consistent background color in notes by @mdrazak2001 in https://github.com/twentyhq/twenty/pull/10097
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10157
* HandleAlias by @guillim in https://github.com/twentyhq/twenty/pull/10156
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10160
* Add log by @martmull in https://github.com/twentyhq/twenty/pull/10162
* Remove log to fix serverless function by @martmull in https://github.com/twentyhq/twenty/pull/10166
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10168
* replace log by throw by @martmull in https://github.com/twentyhq/twenty/pull/10167
* add WorkspaceDuplicateCriteria decorator + update duplicate resolver logic by @etiennejouan in https://github.com/twentyhq/twenty/pull/10128
* Fix relation creation by @Weiko in https://github.com/twentyhq/twenty/pull/10171
* add object settings permission tab by @Weiko in https://github.com/twentyhq/twenty/pull/10159
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10172
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/10174
* Fix latest visited view by @charlesBochet in https://github.com/twentyhq/twenty/pull/10158
* Feature flag  IS_MICROSOFT_SYNC_ENABLED removal by @guillim in https://github.com/twentyhq/twenty/pull/10170
* Remove filterDefinition.type usage by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10164
* withDelete option to TypeOrm by @guillim in https://github.com/twentyhq/twenty/pull/10161
* Fix CI after SettingsFeature enum update by @Weiko in https://github.com/twentyhq/twenty/pull/10178
* refactor(auth/sso): rename GetAuthorizationUrl for clarity by @AMoreaux in https://github.com/twentyhq/twenty/pull/10173
* Fixed context menu bug with new record filters refactor by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10181
* chore: update eslint configuration and clean up index file by @AMoreaux in https://github.com/twentyhq/twenty/pull/10185
* Add sync metadata to migrate command by @charlesBochet in https://github.com/twentyhq/twenty/pull/10182
* Fix table content missing when navigating to previously browsed page by @charlesBochet in https://github.com/twentyhq/twenty/pull/10188
* feat(workspace): add support for custom domain status toggle by @AMoreaux in https://github.com/twentyhq/twenty/pull/10114
* [settings/security] Prevent toggle if only 1 authentication option by @guillim in https://github.com/twentyhq/twenty/pull/10169
* [REFACTOR][BUG] Dynamically compute field to write in cache CREATE by @prastoin in https://github.com/twentyhq/twenty/pull/10130
* Fix bug with table aggregate footer when switching object by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10198
* Add workflow run visualizer by @Devessier in https://github.com/twentyhq/twenty/pull/10146
* Fix number null value forced to 0 by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10202
* Poc lambda subhosting by @martmull in https://github.com/twentyhq/twenty/pull/10192
* Remove localization feature flag and improve CI workflow by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10208
* Improve i18n ci by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10209
* refactor(server): rename PORT to NODE_PORT by @AMoreaux in https://github.com/twentyhq/twenty/pull/10193
* refactor(ui/settings): update styles and improve structure by @AMoreaux in https://github.com/twentyhq/twenty/pull/10201
* Fix custom exceptions not propagating error code by @Weiko in https://github.com/twentyhq/twenty/pull/10210
* Fix bug visibility table by @charlesBochet in https://github.com/twentyhq/twenty/pull/10214
* refactor(domain-manager): simplify frontend URL configuration by @AMoreaux in https://github.com/twentyhq/twenty/pull/10194
* fix(auth): Invite with public url and social sso. by @AMoreaux in https://github.com/twentyhq/twenty/pull/10216
* 384 update the input of the record show page inside the command menu by @bosiraphael in https://github.com/twentyhq/twenty/pull/10213
* Imrove I18n ci by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10219
* Fix upgrade-0-42 command to migrate RICH_TEXT field metadata to RICH_TEXT_V2 by @charlesBochet in https://github.com/twentyhq/twenty/pull/10218

## New Contributors
* @yhayano-ponotech made their first contribution in https://github.com/twentyhq/twenty/pull/9956
* @github-actions made their first contribution in https://github.com/twentyhq/twenty/pull/10098
* @akakiplimo made their first contribution in https://github.com/twentyhq/twenty/pull/10104
* @titouan13 made their first contribution in https://github.com/twentyhq/twenty/pull/10118

**Full Changelog**: https://github.com/twentyhq/twenty/compare/v0.41.0...v0.42.0