v0.23.0

twentyhq/twentyv0.23.0Aug 5, 2024by charlesBochet

AI Summary

v0.23.0 is a major release introducing significant architectural changes including Activity as standard objects (tasks/notes), the Twenty ORM for standard and custom objects, a new workflow system with custom code executor and serverless UI, and new ACTOR field type with createdBy standard fields. This release also includes data migrations from deprecated LINK type to LINKS type and adds workspace activationStatus tracking.

Key Highlights

  • Activity (tasks/notes) converted to standard objects with new createdBy field support
  • Twenty ORM introduced for standard and custom objects with improved query handling
  • New workflow system launched with custom code executor, workflow runner, and serverless function UI
  • New ACTOR field type and createdBy standard fields for tracking record ownership
  • Data migration from deprecated LINK type to LINKS type across domainName, conferenceLink, and other fields

Breaking Changes

  • Migrated all LINK type fields to LINKS type - requires data migration
  • Removed passwordResetToken field from database schema
  • Deprecated inject workspace repo pattern
  • Workspace activationStatus field now controls workspace activation state
  • Migrated domainName field from text type to links type

New Features

  • Activity as standard object (tasks and notes)
  • Twenty ORM for standard and custom objects
  • Workflow system with custom code executor
  • Serverless function UI
  • Workflow runner with database event triggers
  • New ACTOR field type and createdBy standard fields
  • Date formatting per workspace member settings
  • File storage with workspace ID prefix
  • Skip option at sign-up (later reverted)
  • Add opportunities to search functionality
  • Duplicate check on REST API with batch support
  • Share email thread to workspace members

Full Release Notes

## What's Changed
* fix: adding https in checkurltype by @Princeyadav05 in https://github.com/twentyhq/twenty/pull/6295
* Add upgrade guide section to webiste by @ijreilly in https://github.com/twentyhq/twenty/pull/6294
* #6094 Prevent creating a custom field with an existing name by @deval2498 in https://github.com/twentyhq/twenty/pull/6100
* Fix tests and lint by @charlesBochet in https://github.com/twentyhq/twenty/pull/6303
* 6181 workflows create a custom code executor by @martmull in https://github.com/twentyhq/twenty/pull/6235
* Add rating filter/sort + fix isEmpty/isNotEmpty + fix combinedViewFilters by @Weiko in https://github.com/twentyhq/twenty/pull/6310
* Support custom composite field deletion by @ijreilly in https://github.com/twentyhq/twenty/pull/6320
* Fix Metadata GQL server hook by @Weiko in https://github.com/twentyhq/twenty/pull/6323
* Fix: Number of records design on kanban by @sanidhyasin in https://github.com/twentyhq/twenty/pull/6313
* Add label identifier to object decorator by @Weiko in https://github.com/twentyhq/twenty/pull/6227
* Fix post merge revamp navigation bar by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6297
* truncate the string if overlow the text by @RobertoSimonini1 in https://github.com/twentyhq/twenty/pull/6166
* mod: entrypoint for docker to setup db even in server with less memory by @TheSpiritMan in https://github.com/twentyhq/twenty/pull/5815
* Fixed sort for Currency type by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6333
* feat: bump yarn to last stable version by @magrinj in https://github.com/twentyhq/twenty/pull/6081
* Cannot delete label identifier associated field by @Weiko in https://github.com/twentyhq/twenty/pull/6340
* fix: icon visibility on horizontal scroll #6304 by @Antardas in https://github.com/twentyhq/twenty/pull/6315
* feat: twenty orm for standard and custom objects by @magrinj in https://github.com/twentyhq/twenty/pull/6178
* Fixes Default View Ordering (#6114) by @Faisal-imtiyaz123 in https://github.com/twentyhq/twenty/pull/6326
* Fix record show page request errors by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6345
* feat: add eslint rule for enforcing WorkspaceService naming convention by @magrinj in https://github.com/twentyhq/twenty/pull/6308
* Fixed scoped hotkeys by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6322
* Refactor raw queries to use prepared query to avoid security vuln. by @charlesBochet in https://github.com/twentyhq/twenty/pull/6348
* Deprecate inject workspace repo by @charlesBochet in https://github.com/twentyhq/twenty/pull/6353
* New "inverted" Background Colors by @DecodersLord in https://github.com/twentyhq/twenty/pull/6354
* Fixed reset rating field to "no value" on star re-click by @Ashmash100 in https://github.com/twentyhq/twenty/pull/6296
* Fix demo opportunities name by @brendanlaschke in https://github.com/twentyhq/twenty/pull/6347
* Record board columns design fix (full height borders) by @gitstart-app in https://github.com/twentyhq/twenty/pull/6350
* Fixes data importer showing incorrect unmatched fields (# 6138) by @Faisal-imtiyaz123 in https://github.com/twentyhq/twenty/pull/6311
* Fix display of boolean fields in timeline activities by @ijreilly in https://github.com/twentyhq/twenty/pull/6361
* Add Confirmation Modal for Deletion Action and Map All Action Bar Entries by @falko100 in https://github.com/twentyhq/twenty/pull/6357
* Fixes Strange behaviour when reordering options of select field (#6103) by @Faisal-imtiyaz123 in https://github.com/twentyhq/twenty/pull/6339
* Fix ORM by @charlesBochet in https://github.com/twentyhq/twenty/pull/6363
* Update blocknote by @brendanlaschke in https://github.com/twentyhq/twenty/pull/6349
* Datamodel overview show other fields by @brendanlaschke in https://github.com/twentyhq/twenty/pull/6352
* Fix reset PasswordToken by @charlesBochet in https://github.com/twentyhq/twenty/pull/6366
* Migrate fields of deprecated type LINK to type LINKS by @ijreilly in https://github.com/twentyhq/twenty/pull/6332
* Migrate conferenceLink to type Links by @ijreilly in https://github.com/twentyhq/twenty/pull/6372
* Simplify ORM by @charlesBochet in https://github.com/twentyhq/twenty/pull/6373
* 5425 - Introducing support for all Composite Fields Import by @zaryanz in https://github.com/twentyhq/twenty/pull/5470
* Fix task text overflow by @brendanlaschke in https://github.com/twentyhq/twenty/pull/6351
* Fix mocks for unlogged users by @ijreilly in https://github.com/twentyhq/twenty/pull/6376
* Fix RecordTableHeaderCell by @ehconitin in https://github.com/twentyhq/twenty/pull/6383
* chore: remove the passwordResetToken field from the database by @pacyL2K19 in https://github.com/twentyhq/twenty/pull/6377
* Use LinksMetadata right type for Links fields by @ijreilly in https://github.com/twentyhq/twenty/pull/6380
* [fix] Migrated links field should be standard by @ijreilly in https://github.com/twentyhq/twenty/pull/6387
* Fix api timeout by @martmull in https://github.com/twentyhq/twenty/pull/6401
* Test revert crm integration by @martmull in https://github.com/twentyhq/twenty/pull/6321
* Fix yarn lock by @martmull in https://github.com/twentyhq/twenty/pull/6402
* Fix: query runner orm by @magrinj in https://github.com/twentyhq/twenty/pull/6397
* Prevent field with null standardId to be considered as field identifier by @charlesBochet in https://github.com/twentyhq/twenty/pull/6407
* Align Workspace Switcher with Breadcrumb by Adjusting Height by @ehconitin in https://github.com/twentyhq/twenty/pull/6384
* Fix participant chip by @bosiraphael in https://github.com/twentyhq/twenty/pull/6411
* Display command logs on boot error by @charlesBochet in https://github.com/twentyhq/twenty/pull/6414
* Add workflow and version as standard object by @thomtrp in https://github.com/twentyhq/twenty/pull/6412
* Put workfows behind a feature flag by @charlesBochet in https://github.com/twentyhq/twenty/pull/6417
* Refine twenty-orm 'object metadata not found' issue by @charlesBochet in https://github.com/twentyhq/twenty/pull/6416
* Updated MessageChannelSyncStatus enum: changed COMPLETED to ACTIVE by @akarsanth in https://github.com/twentyhq/twenty/pull/5965
* 6404: prevent contributors from opening a PR on a main branch by @rakeshkumar1019 in https://github.com/twentyhq/twenty/pull/6419
* Delete cache version on reset db by @thomtrp in https://github.com/twentyhq/twenty/pull/6426
* "Name" column is visible on table view but not on kanban view by @gitstart-app in https://github.com/twentyhq/twenty/pull/6427
* Handle query runner errors by @thomtrp in https://github.com/twentyhq/twenty/pull/6424
* 6255 move services from messaging common module into the correct module and refactor them by @bosiraphael in https://github.com/twentyhq/twenty/pull/6409
* 5899 display a banner to alert users which need to reconnect their account by @bosiraphael in https://github.com/twentyhq/twenty/pull/6301
* fix #6127 updated support button by @NitinPSingh in https://github.com/twentyhq/twenty/pull/6422
* Update UI to Match Figma Specs: Labels, Buttons, Gaps by @ehconitin in https://github.com/twentyhq/twenty/pull/6415
* Serverless function UI by @martmull in https://github.com/twentyhq/twenty/pull/6388
* Improve performance of demo workspace - Rename `getImageAbsoluteURIOrBase64` function by @gitstart-app in https://github.com/twentyhq/twenty/pull/6282
* fix timeline activity deleted field by @Weiko in https://github.com/twentyhq/twenty/pull/6433
* Fixes CI post merge  by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6435
* Filter out by error code + invert filtering by @thomtrp in https://github.com/twentyhq/twenty/pull/6432
* Record Page Navigation Arrows Cause Unnecessary skeleton loading by @ehconitin in https://github.com/twentyhq/twenty/pull/6367
* Fix 6428/chat open on clicking dropdown by @NitinPSingh in https://github.com/twentyhq/twenty/pull/6429
* Improve RecordShowPage Header performances by @charlesBochet in https://github.com/twentyhq/twenty/pull/6440
* Raise coverage by @charlesBochet in https://github.com/twentyhq/twenty/pull/6441
* Fix error handling in serverless service by @martmull in https://github.com/twentyhq/twenty/pull/6442
* Migrate domainName field from text type to links type by @ijreilly in https://github.com/twentyhq/twenty/pull/6410
* 6431 create new field activationStatus inside workspace table by @bosiraphael in https://github.com/twentyhq/twenty/pull/6439
* Fix user query fragment by @Weiko in https://github.com/twentyhq/twenty/pull/6450
* Add enable workflow trigger endpoint by @thomtrp in https://github.com/twentyhq/twenty/pull/6443
* Move folder by @thomtrp in https://github.com/twentyhq/twenty/pull/6451
* Date formatting per workspace member settings by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6408
* Fix domainName seeds by @ijreilly in https://github.com/twentyhq/twenty/pull/6454
* Fix base graphql error message by @thomtrp in https://github.com/twentyhq/twenty/pull/6457
* Fix googleApisSetRequestExtraParams by @Weiko in https://github.com/twentyhq/twenty/pull/6455
* Fix company creation duplicate on email sync after introducing links type by @bosiraphael in https://github.com/twentyhq/twenty/pull/6460
* Fix background mock by @Weiko in https://github.com/twentyhq/twenty/pull/6463
* Fixes Remove Compact View From Kanban View Sub Options Menu's ( #6116 ) by @Faisal-imtiyaz123 in https://github.com/twentyhq/twenty/pull/6453
* Fix total count in show page by @prateekj117 in https://github.com/twentyhq/twenty/pull/6462
* Add description for Developers/webhook page by @abdulqdaer-q in https://github.com/twentyhq/twenty/pull/6327
* Add logs and fix timestamps in migrate domain command by @ijreilly in https://github.com/twentyhq/twenty/pull/6468
* Fixed format date unit test by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6469
* Do not add 'https' prefix while migrating domainName if source url is empty by @ijreilly in https://github.com/twentyhq/twenty/pull/6471
* Add workflow runner by @martmull in https://github.com/twentyhq/twenty/pull/6458
* Add missing break by @martmull in https://github.com/twentyhq/twenty/pull/6474
* Revert update of workspaceMember standard id by @ijreilly in https://github.com/twentyhq/twenty/pull/6475
* 0.23 changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/6472
* Activity as standard object by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6219
* Add opportunities to search and fix a small bug by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6476
* Fast follows on new task/note behaviors by @charlesBochet in https://github.com/twentyhq/twenty/pull/6477
* Share an email thread to workspace members chip and dropdown  (#4199) by @pereira0x in https://github.com/twentyhq/twenty/pull/5640
* Expose duplicate check on REST API and enable batch duplicate checks by @gitstart-app in https://github.com/twentyhq/twenty/pull/6328
* Adjusted empty tag style by @ehconitin in https://github.com/twentyhq/twenty/pull/6465
* Fix 2 small bugs following tasks migration by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6483
* Fix row background not changing to blue on selection  by @siddamvinay2001 in https://github.com/twentyhq/twenty/pull/6479
* Improve typing definition by @martmull in https://github.com/twentyhq/twenty/pull/6481
* Trigger workflow on database event by @thomtrp in https://github.com/twentyhq/twenty/pull/6480
* Create a new entry directly from a many picker by @ijreilly in https://github.com/twentyhq/twenty/pull/6478
* Leverage workspace activationStatus to decide if a workspace is activated or not by @charlesBochet in https://github.com/twentyhq/twenty/pull/6497
* file storage workspace id prefix by @rostaklein in https://github.com/twentyhq/twenty/pull/6230
* Fix timelineActivity updated fields by @Weiko in https://github.com/twentyhq/twenty/pull/6494
* Add updated at column by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6506
* Fixed sort bug when two select values were null by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6493
* Add sort feature for Links type by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6503
* Make api name editable and add expiry by @prateekj117 in https://github.com/twentyhq/twenty/pull/6473
* Fix icons not showing in sign-in background by @ijreilly in https://github.com/twentyhq/twenty/pull/6513
* Fix label fonts in timeline events by @thomtrp in https://github.com/twentyhq/twenty/pull/6511
* Fix title padding and style on task and attachment by @thomtrp in https://github.com/twentyhq/twenty/pull/6509
* Remove duplicated index from view picker by @thomtrp in https://github.com/twentyhq/twenty/pull/6514
* Fix missing encoding in workspace-logo, members, person by @Weiko in https://github.com/twentyhq/twenty/pull/6510
* Add skip option at sign-up by @ijreilly in https://github.com/twentyhq/twenty/pull/6495
* Revert "Add skip option at sign-up (#6495)" by @ijreilly in https://github.com/twentyhq/twenty/pull/6516
* Add note and task target relation creation for customs by @thomtrp in https://github.com/twentyhq/twenty/pull/6515
* Add logs to migration runner by @Weiko in https://github.com/twentyhq/twenty/pull/6518
* fix: navigate with arrow keys in select/multi-select by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/5983
* Fix migration search path by @Weiko in https://github.com/twentyhq/twenty/pull/6520
* feat: add new ACTOR field type and createdBy standard fields by @magrinj in https://github.com/twentyhq/twenty/pull/6324
* Refacto default value by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6507
* Fallback to default value when migrating value from enum by @ijreilly in https://github.com/twentyhq/twenty/pull/6517
* Do not override value for composite types address and links when entering input by @ijreilly in https://github.com/twentyhq/twenty/pull/6502
* Fix onboarding status performance issues by @martmull in https://github.com/twentyhq/twenty/pull/6512
* Add command to backfill new onboarding user vars by @charlesBochet in https://github.com/twentyhq/twenty/pull/6526
* Add createdBy field on custom object creation by @charlesBochet in https://github.com/twentyhq/twenty/pull/6529
* Various fixes: profilePicture / logo upload, imageIdentifiers by @charlesBochet in https://github.com/twentyhq/twenty/pull/6530
* Refactor onboarding user vars to be absent when user is fully onboarded by @charlesBochet in https://github.com/twentyhq/twenty/pull/6531
* Update standard fields by @charlesBochet in https://github.com/twentyhq/twenty/pull/6532
* Timeline log displays empty when field value deleted by @Weiko in https://github.com/twentyhq/twenty/pull/6542
* fix: releases list to have styles according to theme by @Nabhag8848 in https://github.com/twentyhq/twenty/pull/6534
* Update views-sort-filter.mdx by @Lanietodev in https://github.com/twentyhq/twenty/pull/6544
* Added max-height to innerlist to get scrolling behaviour by @ehconitin in https://github.com/twentyhq/twenty/pull/6541
* Updates CheckBox Component in Table and Kanban View ( #4850 ) by @Faisal-imtiyaz123 in https://github.com/twentyhq/twenty/pull/6519
* fix #5660 standardized relation icon by @NitinPSingh in https://github.com/twentyhq/twenty/pull/6504
* 6446 improve information banner component to make it scale better by @bosiraphael in https://github.com/twentyhq/twenty/pull/6545
* Preserve navigation state when adding custom fields by @ehconitin in https://github.com/twentyhq/twenty/pull/6399
* Existing filter value isn't passed to the component to edit it - Issue #6278 by @ehconitin in https://github.com/twentyhq/twenty/pull/6449
* Allow renaming names from uploaded files  by @ehconitin in https://github.com/twentyhq/twenty/pull/6358
* Add custom field types on seed by @prateekj117 in https://github.com/twentyhq/twenty/pull/6505

## New Contributors
* @Princeyadav05 made their first contribution in https://github.com/twentyhq/twenty/pull/6295
* @deval2498 made their first contribution in https://github.com/twentyhq/twenty/pull/6100
* @sanidhyasin made their first contribution in https://github.com/twentyhq/twenty/pull/6313
* @TheSpiritMan made their first contribution in https://github.com/twentyhq/twenty/pull/5815
* @Antardas made their first contribution in https://github.com/twentyhq/twenty/pull/6315
* @DecodersLord made their first contribution in https://github.com/twentyhq/twenty/pull/6354
* @Ashmash100 made their first contribution in https://github.com/twentyhq/twenty/pull/6296
* @falko100 made their first contribution in https://github.com/twentyhq/twenty/pull/6357
* @ehconitin made their first contribution in https://github.com/twentyhq/twenty/pull/6383
* @rakeshkumar1019 made their first contribution in https://github.com/twentyhq/twenty/pull/6419
* @NitinPSingh made their first contribution in https://github.com/twentyhq/twenty/pull/6422
* @prateekj117 made their first contribution in https://github.com/twentyhq/twenty/pull/6462
* @abdulqdaer-q made their first contribution in https://github.com/twentyhq/twenty/pull/6327
* @siddamvinay2001 made their first contribution in https://github.com/twentyhq/twenty/pull/6479
* @Nabhag8848 made their first contribution in https://github.com/twentyhq/twenty/pull/6534
* @Lanietodev made their first contribution in https://github.com/twentyhq/twenty/pull/6544

**Full Changelog**: https://github.com/twentyhq/twenty/compare/v0.22.0...v0.23.0