v0.43.0

twentyhq/twentyv0.43.0Mar 4, 2025by Weiko

AI Summary

This release (v0.43.0) of Twenty introduces significant improvements to the permissions system with new role-based access controls, adds file previewer functionality, and delivers a new Tasks assigned to me view. The release also includes major work on record filtering/sorting with filter groups, workflow enhancements, and completes the migration from rich text v1 to v2.

Key Highlights

  • Major permissions system overhaul with role-based access controls, workspace permission gates, and object-level record permissions
  • New file previewer feature and Tasks assigned to me view for improved user experience
  • Implemented record filter groups and record sort states/CRUD operations
  • Workflow improvements including form action, submit form step endpoint, and run output visualizer
  • Completed rich text v2 migration by removing the isRichTextV2Enabled feature flag

Breaking Changes

  • Rich text v2 migration completed - isRichTextV2Enabled feature flag removed, workspaces migrated from v1 to v2

New Features

  • File previewer for viewing files in-app
  • Tasks assigned to me view (#9567)
  • Record filter group states and context with full CRUD operations
  • Record sort states and new sort CRUD implementation
  • Workflow form action and submit form step endpoint
  • Approval domain UI for settings
  • See deleted records action
  • Custom domain review in settings
  • Add fields for admin panel access and workspace version
  • New globalSearch resolver
  • Trusted domain backend CRUD
  • Parallel code path for record sorts state
  • Actor composite type refactor
  • Add all object level read-only behavior

Full Release Notes

## What's Changed
* Add side panel in lab by @thomtrp in https://github.com/twentyhq/twenty/pull/10183
* Add flow to run output by @thomtrp in https://github.com/twentyhq/twenty/pull/10220
* update seeding views to seed the new bodyV2 field on workspace creation by @charlesBochet in https://github.com/twentyhq/twenty/pull/10221
* [NITPICK] From args list to record args `RecordPositionFactory` by @prastoin in https://github.com/twentyhq/twenty/pull/10215
* Update suspended cleaning command by @etiennejouan in https://github.com/twentyhq/twenty/pull/10195
* [permissions] Add workspace + security settings permission gates by @ijreilly in https://github.com/twentyhq/twenty/pull/10204
* (fix) throw if Access JWT does not have a userWorkspaceId by @ijreilly in https://github.com/twentyhq/twenty/pull/10225
* Remove filter definition by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10227
* Fixing unhandled exception for microsoft driver by @guillim in https://github.com/twentyhq/twenty/pull/10223
* [0.42][FIX] Seeder activate rich text v2 feature flag by @prastoin in https://github.com/twentyhq/twenty/pull/10229
* [WEBSITE] Upgrade guide 0.41.0 -> 0.42.0 by @prastoin in https://github.com/twentyhq/twenty/pull/10231
* Delay loading support chat by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10234
* Cloudflare name typo by @JarWarren in https://github.com/twentyhq/twenty/pull/10239
* Display object name plural instead of object by @bosiraphael in https://github.com/twentyhq/twenty/pull/10228
* Leave old body field on task and note object by @charlesBochet in https://github.com/twentyhq/twenty/pull/10243
* Fix autogrowing input glitch by @bosiraphael in https://github.com/twentyhq/twenty/pull/10224
* Tasks assigned to me view (#9567) by @eliasylonen in https://github.com/twentyhq/twenty/pull/9568
* Fix i18n ci by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10246
* I18n ci 5 by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10247
* Fix integration test ci by @Weiko in https://github.com/twentyhq/twenty/pull/10226
* Skip ref checkout in 18n by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10249
* Fix command menu selection by @bosiraphael in https://github.com/twentyhq/twenty/pull/10248
* Fix: Ensure First Click on Spreadsheet Import 'Select File' Button Triggers File picker by @mdrazak2001 in https://github.com/twentyhq/twenty/pull/10205
* Fix search fallback action by @bosiraphael in https://github.com/twentyhq/twenty/pull/10256
* Simplify last visited by @charlesBochet in https://github.com/twentyhq/twenty/pull/10259
* [permissions] Add object records permissions to role entity  by @ijreilly in https://github.com/twentyhq/twenty/pull/10255
* [NITPICK] call `closeDropdown` before `openModal` import spreadsheet by @prastoin in https://github.com/twentyhq/twenty/pull/10254
* Fix command menu context chip display on show page by @bosiraphael in https://github.com/twentyhq/twenty/pull/10267
* File previewer by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10260
* Refacto views by @charlesBochet in https://github.com/twentyhq/twenty/pull/10272
* Fix e2e tests by @Devessier in https://github.com/twentyhq/twenty/pull/10289
* Fix featureFlag N+1 queries by @Weiko in https://github.com/twentyhq/twenty/pull/10261
* Add settingsPermission gate on the frontend by @Weiko in https://github.com/twentyhq/twenty/pull/10179
* Health monitor status for admin panel by @ehconitin in https://github.com/twentyhq/twenty/pull/10186
* fix server ci integration by @Weiko in https://github.com/twentyhq/twenty/pull/10296
* 406 animate the command menu button by @bosiraphael in https://github.com/twentyhq/twenty/pull/10305
* Update searchVector on new richTextV2 note and task entities + migration command by @etiennejouan in https://github.com/twentyhq/twenty/pull/10303
* 0.42 changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/10298
* Bring back raw workflow run output visualizer by @Devessier in https://github.com/twentyhq/twenty/pull/10294
* [permissions] Fix db reset leads to broken state if env var permission is not true  by @ijreilly in https://github.com/twentyhq/twenty/pull/10309
* fix the missing createdBy icon for Companies by @guillim in https://github.com/twentyhq/twenty/pull/10307
* feedback from Thomas by @guillim in https://github.com/twentyhq/twenty/pull/10297
* Stop showing lines on translation files by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10313
* I18n ci 6 by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10320
* i18n CI 7 by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10321
* [BUGFIX] Reply button opens google  by @guillim in https://github.com/twentyhq/twenty/pull/10269
* refactor(domain-manager): improve default workspace resolution by @AMoreaux in https://github.com/twentyhq/twenty/pull/10282
* Fix queryRunnerArgsFactory for updateMany resolver by @ijreilly in https://github.com/twentyhq/twenty/pull/10322
* Fix sorts on table and board by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10311
* [permissions] Enforce object-records permission checks in resolvers by @ijreilly in https://github.com/twentyhq/twenty/pull/10304
* impersonate regression fix by @ehconitin in https://github.com/twentyhq/twenty/pull/10306
* Remove status check when ending workflow by @thomtrp in https://github.com/twentyhq/twenty/pull/10299
* fixing test mainly by @charlesBochet by @guillim in https://github.com/twentyhq/twenty/pull/10325
* typo by @guillim in https://github.com/twentyhq/twenty/pull/10327
* internal-messages-backend-and-frontend by @guillim in https://github.com/twentyhq/twenty/pull/10291
* Fix workflow run ouput format by @Devessier in https://github.com/twentyhq/twenty/pull/10302
* Improve i18n CI - 8 by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10330
* I18n ci 9 by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10331
* Display confirmation dialog on connected account deletion by @alexmotoc in https://github.com/twentyhq/twenty/pull/10323
* Implement record sort states and record sort context by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10257
* refactor(sso): standardize SSO identity provider query names by @AMoreaux in https://github.com/twentyhq/twenty/pull/10335
* following emails logic with intertnal conversaiotn by @guillim in https://github.com/twentyhq/twenty/pull/10333
* Remove no-single-variables-to-translate eslint rule by @Weiko in https://github.com/twentyhq/twenty/pull/10341
* remove lingui no single variables to translate #2 by @Weiko in https://github.com/twentyhq/twenty/pull/10342
* Role permissions tab should display object permissions from API result by @Weiko in https://github.com/twentyhq/twenty/pull/10344
* add not found redirection logic if object in url param not exists by @etiennejouan in https://github.com/twentyhq/twenty/pull/10339
* [BUGFIX][PROD] RICH_TEXT_V2 command handle `{}` body col value by @prastoin in https://github.com/twentyhq/twenty/pull/10324
* Add files deletion when destroying attachment, workspace or workspaceMember by @etiennejouan in https://github.com/twentyhq/twenty/pull/10222
* Added parallel code path to set new record sorts state by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10345
* Poc lambda deployment duration by @martmull in https://github.com/twentyhq/twenty/pull/10340
* [BUG] Refactor actor composite type by @mdrazak2001 in https://github.com/twentyhq/twenty/pull/10232
* move deletion limit on hard deletion by @etiennejouan in https://github.com/twentyhq/twenty/pull/10353
* Deduplicate-emails by @guillim in https://github.com/twentyhq/twenty/pull/10355
* replyto-microsoft-fix by @guillim in https://github.com/twentyhq/twenty/pull/10360
* Add initialization of new record sorts state and added remove record sorts util by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10358
* [permissions] Place lab + billing behind settings/workspace permission gates by @ijreilly in https://github.com/twentyhq/twenty/pull/10354
* Deduplicate-emails by @guillim in https://github.com/twentyhq/twenty/pull/10361
* [BUGFIX] Call and await `destroyDataSourceForWorkspace` to avoid killing poor pod by @prastoin in https://github.com/twentyhq/twenty/pull/10364
* fix deleteCurrentWorkspace resolver output by @etiennejouan in https://github.com/twentyhq/twenty/pull/10365
* Store the current flow definition in a state to not depend on a specific workflow version by @Devessier in https://github.com/twentyhq/twenty/pull/10352
* Fix N+1 featureFlags by @Weiko in https://github.com/twentyhq/twenty/pull/10371
* Fix upgrade command 0.42 by @charlesBochet in https://github.com/twentyhq/twenty/pull/10373
* refactor + new account sync metrics + isolating health status inside folder admin-panel > health-status by @ehconitin in https://github.com/twentyhq/twenty/pull/10314
* Add all object level read-only behavior by @Weiko in https://github.com/twentyhq/twenty/pull/10356
* 410 open in side panel by @bosiraphael in https://github.com/twentyhq/twenty/pull/10363
* health status refactor followup fix by @ehconitin in https://github.com/twentyhq/twenty/pull/10379
* Enhance ActiveWorkspaceCommand to order, limit and startFrom workspaceId by @charlesBochet in https://github.com/twentyhq/twenty/pull/10378
* Fix open record in setting for command menu v1 by @bosiraphael in https://github.com/twentyhq/twenty/pull/10383
* [FE] Improve Read-only field behavior by @Weiko in https://github.com/twentyhq/twenty/pull/10382
* cleaning workspace job - fix on soft delete condition by @etiennejouan in https://github.com/twentyhq/twenty/pull/10380
* Only display record actions inside the RecordIndexActionMenuDropdown by @bosiraphael in https://github.com/twentyhq/twenty/pull/10384
* [permissions] Add conditional permission gate on billing's checkoutSession by @ijreilly in https://github.com/twentyhq/twenty/pull/10387
* Fix autogrow input whitespace bug by @bosiraphael in https://github.com/twentyhq/twenty/pull/10388
* Improve i18n CI by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10390
* Fix command menu selectable items ordering by @bosiraphael in https://github.com/twentyhq/twenty/pull/10392
* Provide a wrapper to execute command on workspace with easier devXP by @charlesBochet in https://github.com/twentyhq/twenty/pull/10391
* Removed sort definitions by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10368
* feat(twenty-server): add trusted domain - backend crud by @AMoreaux in https://github.com/twentyhq/twenty/pull/10290
* [permissions] Rename enum SettingsFeatures --> SettingsPermissions by @ijreilly in https://github.com/twentyhq/twenty/pull/10389
* [permissions] Add permission gates on workspace-invitations by @ijreilly in https://github.com/twentyhq/twenty/pull/10394
* [permission] (fix ) use SettingsPermissions and not SettingsFeatures by @ijreilly in https://github.com/twentyhq/twenty/pull/10398
* Fix error messages on sign up by @charlesBochet in https://github.com/twentyhq/twenty/pull/10399
* Email translation and snackbar translation by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10395
* Add missing translations by @BOHEUS in https://github.com/twentyhq/twenty/pull/10414
* Add error management to the Billing Package by @anamarn in https://github.com/twentyhq/twenty/pull/10343
* Better cursor rules by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10431
* feat(settings): review custom domain by @AMoreaux in https://github.com/twentyhq/twenty/pull/10393
* [permissions] Move SettingsPermissions from twenty-shared to twenty-server by @ijreilly in https://github.com/twentyhq/twenty/pull/10430
* Migrate workflow actions to executors by @thomtrp in https://github.com/twentyhq/twenty/pull/10432
* Minor design fixes in date picker by @Devessier in https://github.com/twentyhq/twenty/pull/10443
* Implements new record sort CRUD by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10448
* [permissions] Add permission gates on workspaceMember by @ijreilly in https://github.com/twentyhq/twenty/pull/10447
* Fix hover on table cells when the command menu is opened by @bosiraphael in https://github.com/twentyhq/twenty/pull/10446
* Data changes to prepare for workspaceMember page by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10439
* Migrate url tooling to twenty-shared by @charlesBochet in https://github.com/twentyhq/twenty/pull/10440
* [permissions] Add tests on role resolver by @ijreilly in https://github.com/twentyhq/twenty/pull/10452
* Add fields for admin panel access and workspace version by @FelixMalfait in https://github.com/twentyhq/twenty/pull/10451
* feat: populate relation join column by @magrinj in https://github.com/twentyhq/twenty/pull/10212
* Add default role to workspace by @Weiko in https://github.com/twentyhq/twenty/pull/10444
* refactor(forms): simplify form handling and button behavior by @AMoreaux in https://github.com/twentyhq/twenty/pull/10441
* Add non root user for twenty website docker file by @bosiraphael in https://github.com/twentyhq/twenty/pull/10470
* Clean record filter and record sort by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10466
* [permissions] Update updateRole logic + disallow self role-assignment by @ijreilly in https://github.com/twentyhq/twenty/pull/10476
* [BUGFIX] Account owner should not be clickable & [Refactor] `Chip.tsx` links by @prastoin in https://github.com/twentyhq/twenty/pull/10359
* Fix graphql conflict between role custom object and role dto by @Weiko in https://github.com/twentyhq/twenty/pull/10479
* Refactor RecordSingleSelect and RecordMultiSelect to be synchronous by @charlesBochet in https://github.com/twentyhq/twenty/pull/10469
* 322 compact command chips dropdown by @bosiraphael in https://github.com/twentyhq/twenty/pull/10456
* feat(approval-domain): add UI for approval domains by @AMoreaux in https://github.com/twentyhq/twenty/pull/10480
* add new globalSearch resolver + update useSearchRecords hook by @etiennejouan in https://github.com/twentyhq/twenty/pull/10457
* Remove current workspace member from role assignment picker by @Weiko in https://github.com/twentyhq/twenty/pull/10482
* Fix thread pagination by @bosiraphael in https://github.com/twentyhq/twenty/pull/10485
* update twenty team members danger by @Weiko in https://github.com/twentyhq/twenty/pull/10491
* Implement record filter group states and context by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10490
* [BUGFIX] Create optimistic cache generate `recordGqlFields` from prefilled record by @prastoin in https://github.com/twentyhq/twenty/pull/10493
* [Refactor] `generateDepthOneRecordGqlFieldsFromRecord` by @prastoin in https://github.com/twentyhq/twenty/pull/10499
* Refactor RecordPicker part 2 by @charlesBochet in https://github.com/twentyhq/twenty/pull/10502
* Create Workflow Form action by @thomtrp in https://github.com/twentyhq/twenty/pull/10509
* Fix record page context store instance id by @bosiraphael in https://github.com/twentyhq/twenty/pull/10508
* Implements record filter group upsert and remove by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10514
* Create a right drawer for viewing steps in workflow runs by @Devessier in https://github.com/twentyhq/twenty/pull/10366
* Fix command menu closing and opening by @bosiraphael in https://github.com/twentyhq/twenty/pull/10497
* Fixed record sort on kanban by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10515
* [FIX] Optimistically compute `position` only for `objectMetadataItem` that has the field by @prastoin in https://github.com/twentyhq/twenty/pull/10510
* Fix REST API not using metadata cache by @Weiko in https://github.com/twentyhq/twenty/pull/10521
* add stories to roles components by @Weiko in https://github.com/twentyhq/twenty/pull/10503
* Remove export action from the view options menu by @bosiraphael in https://github.com/twentyhq/twenty/pull/10517
* [REFACTOR] remove `isRemote` assertion from `hasFieldPosition` util by @prastoin in https://github.com/twentyhq/twenty/pull/10519
* 62 create see deleted records action by @bosiraphael in https://github.com/twentyhq/twenty/pull/10525
* RecordPicker refactoring part 3: remove effects by @charlesBochet in https://github.com/twentyhq/twenty/pull/10505
* Fix field empty value check for Person standard object by @charlesBochet in https://github.com/twentyhq/twenty/pull/10533
* Implemented record filter group initialization from view by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10527
* Make the frontend resilient to old workflow run output formats by @Devessier in https://github.com/twentyhq/twenty/pull/10522
* Move workflow versions and steps building to workflow-builder folder by @thomtrp in https://github.com/twentyhq/twenty/pull/10523
* Fix filter rest api by @Weiko in https://github.com/twentyhq/twenty/pull/10537
* Fix contact creation by @bosiraphael in https://github.com/twentyhq/twenty/pull/10540
* Disable drag select when the command menu is opened by @bosiraphael in https://github.com/twentyhq/twenty/pull/10541
* Fix command menu list item overflow by @bosiraphael in https://github.com/twentyhq/twenty/pull/10544
* [permissions] forbid deletion of last admin user by @ijreilly in https://github.com/twentyhq/twenty/pull/10504
* add new @WorkspaceIsSearchable decorator + updates services + add migration command by @etiennejouan in https://github.com/twentyhq/twenty/pull/10507
* API rest exception filter by @charlesBochet in https://github.com/twentyhq/twenty/pull/10548
* [ENHC] Create `Yarn` constraints to validate `node` version by @prastoin in https://github.com/twentyhq/twenty/pull/10542
* Prevent command menu backspace shortcut on V1 by @bosiraphael in https://github.com/twentyhq/twenty/pull/10555
* Fix record opening on board card by @bosiraphael in https://github.com/twentyhq/twenty/pull/10559
* [REG/FEAT] Sync metadata after upgrade by @prastoin in https://github.com/twentyhq/twenty/pull/10557
* [permisions] Bypass permission checks with api key by @ijreilly in https://github.com/twentyhq/twenty/pull/10516
* [permissions] Fix redirection at sign-up after configuring billing  by @ijreilly in https://github.com/twentyhq/twenty/pull/10569
* Add submit form step endpoint by @thomtrp in https://github.com/twentyhq/twenty/pull/10538
* add missed search decorator by @etiennejouan in https://github.com/twentyhq/twenty/pull/10573
* add tests on workspace deletion logic by @etiennejouan in https://github.com/twentyhq/twenty/pull/10530
* Fixed view bar chips margin and gaps by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10575
* Add PageHeaderOpenCommandMenuButton on Record index page header for command menu v1 by @bosiraphael in https://github.com/twentyhq/twenty/pull/10576
* input alignment fix by @ehconitin in https://github.com/twentyhq/twenty/pull/10577
* Implemented view filter group CRUD hooks and utils by @lucasbordeau in https://github.com/twentyhq/twenty/pull/10551
* remove isRichTextV2Enabled feature flag by @etiennejouan in https://github.com/twentyhq/twenty/pull/10562
* add sentry monitoring + update cron pattern to each hour by @etiennejouan in https://github.com/twentyhq/twenty/pull/10583
* migrate rich text v1 workspace + move relation migration to 0.44 by @etiennejouan in https://github.com/twentyhq/twenty/pull/10582
* [permissions] Backfill command to prepare workspaces by @ijreilly in https://github.com/twentyhq/twenty/pull/10581
* Fix export view missing column and viewGroups not persisted bug by @charlesBochet in https://github.com/twentyhq/twenty/pull/10584

## New Contributors
* @alexmotoc made their first contribution in https://github.com/twentyhq/twenty/pull/10323

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