v0.4.0

twentyhq/twentyv0.4.0Apr 5, 2024by charlesBochet

AI Summary

Twenty v0.4.0 is a major release featuring significant enhancements to calendar integration (Google Calendar full sync, calendar event improvements), a new database integration system with remote object support, and expanded OAuth capabilities including PKCE. The release also introduces multi-select fields, custom field deletion, and various UI/UX improvements including sticky headers and better view management.

Key Highlights

  • Google Calendar full sync and calendar event management with backend integration
  • New database/remote object integration system with connection pages and table fetching
  • OAuth with PKCE support for enhanced authentication security
  • Multi-select field backend implementation and custom field deletion capabilities
  • Nx upgrade to v18.1.3 and PostgreSQL timestamp improvements (timestamptz)

Breaking Changes

  • No explicit breaking changes mentioned in the release notes

New Features

  • Google Calendar full sync and calendar tab backend integration
  • New Integrations pages (IntegrationDetail, New Database, Connection)
  • Remote object support with sync, relations, and database connections
  • OAuth with PKCE and traditional OAuth support
  • Multi-select field implementation
  • Custom field deletion in workspace
  • Sticky header and view switcher fixes
  • Currency field type addition
  • Date format calendar setting
  • One-liner install command
  • Email seed data for demo and dev environments
  • Shortcut Sort/Filter functionality
  • Redirect to previous page after login

Full Release Notes

## What's Changed
* 4489 timebox finish google calendar full sync by @bosiraphael in https://github.com/twentyhq/twenty/pull/4615
* 4398 decouple contacts and companies creation from messages import by @bosiraphael in https://github.com/twentyhq/twenty/pull/4590
* Add events on Custom objects by @charlesBochet in https://github.com/twentyhq/twenty/pull/4625
* Replace Terms & Conditions with Sign Up Link on Sign In #4502 by @brkuhgk in https://github.com/twentyhq/twenty/pull/4617
* Basic log styling by @brendanlaschke in https://github.com/twentyhq/twenty/pull/4634
* Add worker run step to server cli by @Weiko in https://github.com/twentyhq/twenty/pull/4619
* refactor: improve Settings supported field types validation by @thaisguigon in https://github.com/twentyhq/twenty/pull/4496
* Update yarn commands by @charlesBochet in https://github.com/twentyhq/twenty/pull/4644
* 4525 upgrade pg graphql by @martmull in https://github.com/twentyhq/twenty/pull/4646
* Add endpoints to create and delete remote server by @thomtrp in https://github.com/twentyhq/twenty/pull/4606
* refactor: merge FieldType and FieldMetadataType by @thaisguigon in https://github.com/twentyhq/twenty/pull/4504
* fix: fix Select field preview by @thaisguigon in https://github.com/twentyhq/twenty/pull/4507
* fix: create deterministic uuids for standards relation on custom object by @magrinj in https://github.com/twentyhq/twenty/pull/4642
* TWNTY-4602 - Increase coverage for coverage for  `twenty-front:storybook:modules` by @gitstart-app in https://github.com/twentyhq/twenty/pull/4649
* feat: create Integrations/IntegrationDetail page by @thaisguigon in https://github.com/twentyhq/twenty/pull/4574
* feat: add Active and Add integration card displays by @thaisguigon in https://github.com/twentyhq/twenty/pull/4591
* 4162-Sticky-Header by @Kanav-Arora in https://github.com/twentyhq/twenty/pull/4627
* #4298 Add emails seed data for demo and dev seeds by @hannafeddersen in https://github.com/twentyhq/twenty/pull/4513
* feat: use ApolloFactory for metadata client by @magrinj in https://github.com/twentyhq/twenty/pull/4608
* feat(ci): automate CI tags and pass github context by @Freebios in https://github.com/twentyhq/twenty/pull/4652
* feat: add remote object integration preview by @thaisguigon in https://github.com/twentyhq/twenty/pull/4614
* Update .env.example by @darekdesu in https://github.com/twentyhq/twenty/pull/4661
* chore: debug Twenty dockerfile failing to build on Github Actions by @Freebios in https://github.com/twentyhq/twenty/pull/4658
* File token chores by @darekdesu in https://github.com/twentyhq/twenty/pull/4664
* Update Dev Seeds to use Ids by @charlesBochet in https://github.com/twentyhq/twenty/pull/4663
* feat: check if company/person saved (chrome-extension) by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/4280
* 4488 connect calendar tab to backend by @bosiraphael in https://github.com/twentyhq/twenty/pull/4624
* Fetch available remote tables by @thomtrp in https://github.com/twentyhq/twenty/pull/4665
* 60 fix svg xcc vulnerability by @martmull in https://github.com/twentyhq/twenty/pull/4660
* Fix/enum bug by @magrinj in https://github.com/twentyhq/twenty/pull/4659
* Add isRemote field on object metadata by @thomtrp in https://github.com/twentyhq/twenty/pull/4668
* Fix encryption logic by @thomtrp in https://github.com/twentyhq/twenty/pull/4672
* fix: update docker-compose database volumes by @Freebios in https://github.com/twentyhq/twenty/pull/4677
* feat: simplification of default-value specification in FieldMetadata by @magrinj in https://github.com/twentyhq/twenty/pull/4592
* [messaing] improve messaging import by @Weiko in https://github.com/twentyhq/twenty/pull/4650
* 4486 connect settingsaccountscalendars to backend by @bosiraphael in https://github.com/twentyhq/twenty/pull/4605
* feat: add date format calendar setting by @thaisguigon in https://github.com/twentyhq/twenty/pull/4600
* 4506 change field labels and field type for calendarevent object metadata to match figma by @bosiraphael in https://github.com/twentyhq/twenty/pull/4679
* feat: add Integrations/Integration Details/New Database page by @thaisguigon in https://github.com/twentyhq/twenty/pull/4593
* feat: add remote object integration databases list card by @thaisguigon in https://github.com/twentyhq/twenty/pull/4621
* 4643 create a pre hook for calendar events by @bosiraphael in https://github.com/twentyhq/twenty/pull/4666
* fixed view switcher by changing zindex of TopBar by @arnavsaxena17 in https://github.com/twentyhq/twenty/pull/4685
* feat: Oauth with PKCE by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/4648
* feat: add one liner install command by @Freebios in https://github.com/twentyhq/twenty/pull/4613
* fix(one-liner): some echo are missing -e by @Freebios in https://github.com/twentyhq/twenty/pull/4686
* Fix: Save view by clicking outside popup while editing by @jeet1desai in https://github.com/twentyhq/twenty/pull/4678
* Rename refreshToken to appToken and add fields by @martmull in https://github.com/twentyhq/twenty/pull/4691
* Fix events being created for system objects by @Weiko in https://github.com/twentyhq/twenty/pull/4694
* feat: address composite field by @rostaklein in https://github.com/twentyhq/twenty/pull/4492
* 4698-Renamed to inbox by @Kanav-Arora in https://github.com/twentyhq/twenty/pull/4701
* 4586 fix workspace member feature by @martmull in https://github.com/twentyhq/twenty/pull/4680
* Switch timestamp to timestamptz by @Weiko in https://github.com/twentyhq/twenty/pull/4696
* Calendar event fixes and improvements by @bosiraphael in https://github.com/twentyhq/twenty/pull/4690
* Created the user-guide content (Text and illustrations) by @Bonapara in https://github.com/twentyhq/twenty/pull/4683
* fix icon search menu (#4565) by @simaosanguinho in https://github.com/twentyhq/twenty/pull/4712
* feat: reinforce one liner experience by @Freebios in https://github.com/twentyhq/twenty/pull/4688
* User guide update by @Bonapara in https://github.com/twentyhq/twenty/pull/4715
* fix: impossible to unselect all check box by @RamK777-stack in https://github.com/twentyhq/twenty/pull/4471
* 4410-feat(front): Implement Confirmation Prompt for Multiple Record Deletion by @Anchit1909 in https://github.com/twentyhq/twenty/pull/4514
* Sync remote object by @thomtrp in https://github.com/twentyhq/twenty/pull/4713
* Fix display empty value if boolean instead of false on show page by @brendanlaschke in https://github.com/twentyhq/twenty/pull/4468
* Fix overlay scroll gaps by @brendanlaschke in https://github.com/twentyhq/twenty/pull/4512
* feat: authorize screen by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/4687
* fix: fix Settings/Developers page error by @thaisguigon in https://github.com/twentyhq/twenty/pull/4722
* fix search active hit styling #4719 by @pereira0x in https://github.com/twentyhq/twenty/pull/4720
* Fix Vale CI and change vision by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4724
* Feat/put target object identifier on use activities by @charlesBochet in https://github.com/twentyhq/twenty/pull/4682
* refactor: move Tabler Icon exports to twenty-ui by @thaisguigon in https://github.com/twentyhq/twenty/pull/4727
* chore: upgrade Nx to v18.1.3 by @thaisguigon in https://github.com/twentyhq/twenty/pull/4706
* refactor: move createState to twenty-ui by @thaisguigon in https://github.com/twentyhq/twenty/pull/4716
* Fix jest tests broken with apollo metadata client by @charlesBochet in https://github.com/twentyhq/twenty/pull/4728
* feat: expand relation record cards on click in Record Show page by @thaisguigon in https://github.com/twentyhq/twenty/pull/4570
* Revert company address field type by @Weiko in https://github.com/twentyhq/twenty/pull/4737
* Fix invalid token after credentials change by @bosiraphael in https://github.com/twentyhq/twenty/pull/4717
* Add JsDom to server dependencies by @charlesBochet in https://github.com/twentyhq/twenty/pull/4740
* Fix: Update Icon Button Color and Menu Transparency with Icons by @jeet1desai in https://github.com/twentyhq/twenty/pull/4704
* New field currency by @anoopw3bdev in https://github.com/twentyhq/twenty/pull/4338
* fix panel opening wrapping glitch (#4204) by @simaosanguinho in https://github.com/twentyhq/twenty/pull/4673
* Fix #4160: fix upload image bug by @kikoleitao in https://github.com/twentyhq/twenty/pull/4734
* [messaging] rename syncExternalId to syncCursor by @Weiko in https://github.com/twentyhq/twenty/pull/4752
* Add back export all action button by @martmull in https://github.com/twentyhq/twenty/pull/4750
* Changelog for 0.4.0 by @Bonapara in https://github.com/twentyhq/twenty/pull/4693
* feat: Redirect to previous page after login by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/4731
* Fix issue caused by a merge conflict by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4768
* Integrate relations for remote objects by @thomtrp in https://github.com/twentyhq/twenty/pull/4754
* Simplify docs and remove Docker local setup by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4783
* feat: create Settings/Integrations/Database/Connection page by @thaisguigon in https://github.com/twentyhq/twenty/pull/4785
* Add IS_MULTI_SELECT_ENABLED feature flag by @martmull in https://github.com/twentyhq/twenty/pull/4779
* [feat][BE] Enable deletion of custom fields in workspace by @ijreilly in https://github.com/twentyhq/twenty/pull/4780
* 4777 multi select field backend implement multi select type by @martmull in https://github.com/twentyhq/twenty/pull/4790
* feat: init docker compose test by @Freebios in https://github.com/twentyhq/twenty/pull/4730
* Force explicit deletion behavior for relations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4775
* 3886 - Shortcut Sort/Filter by @Kanav-Arora in https://github.com/twentyhq/twenty/pull/3901
* feat(ci): use concurrency.group to cancel previous jobs by @Freebios in https://github.com/twentyhq/twenty/pull/4795
* feat: schema version header check by @rostaklein in https://github.com/twentyhq/twenty/pull/4563
* feat: add Settings/Integrations/Database/New Connection form by @thaisguigon in https://github.com/twentyhq/twenty/pull/4787
* fix: linked records redirection by @Muralidhar22 in https://github.com/twentyhq/twenty/pull/4312
* chore: use common eslint config for most packages by @thaisguigon in https://github.com/twentyhq/twenty/pull/4705
* chore: add script to generate twenty-ui barrels before build by @thaisguigon in https://github.com/twentyhq/twenty/pull/4707
* chore: include react components in twenty-ui test config by @thaisguigon in https://github.com/twentyhq/twenty/pull/4709
* Fix View creation, view fields re-ordering, view filters and view sorts erratic behaviors by @charlesBochet in https://github.com/twentyhq/twenty/pull/4800
* [feat][FE] Enable deletion of custom fields in workspace by @ijreilly in https://github.com/twentyhq/twenty/pull/4802
* 4702 rename calendareventattendee to calendareventparticipant by @bosiraphael in https://github.com/twentyhq/twenty/pull/4761
* fix: Add `isIconStatic` prop item to allow the icons to be always rendered statically ignoring hover behaviour by @besrabasant in https://github.com/twentyhq/twenty/pull/4676
* fix: isIconDisplayedOnHoverOnly marked as required by @magrinj in https://github.com/twentyhq/twenty/pull/4805
* Fix: File Upload by @Kanav-Arora in https://github.com/twentyhq/twenty/pull/4806
* Remote objects: Fix comment override - id typing - label by @thomtrp in https://github.com/twentyhq/twenty/pull/4784
* chore: setup twenty-ui absolute path alias by @thaisguigon in https://github.com/twentyhq/twenty/pull/4732
* Prevent remote object updates by @thomtrp in https://github.com/twentyhq/twenty/pull/4804
* Fixed attachment field type by @Kanav-Arora in https://github.com/twentyhq/twenty/pull/4811
* adjust window size for scroll by @trp02 in https://github.com/twentyhq/twenty/pull/4792
* feat: add Database Connection Summary Card to Settings/Integrations/D… by @thaisguigon in https://github.com/twentyhq/twenty/pull/4791
* Gracefully close Redis connection when cacheStorageModule is destroyed by @Weiko in https://github.com/twentyhq/twenty/pull/4812
* feat: fetch database connections by @thaisguigon in https://github.com/twentyhq/twenty/pull/4813
* Fix ViewPicker create mode: view type switcher by @charlesBochet in https://github.com/twentyhq/twenty/pull/4821
* chore: enable no-console eslint rule for tests and stories by @thaisguigon in https://github.com/twentyhq/twenty/pull/4816
* fix: update build script for twenty-emails by @Freebios in https://github.com/twentyhq/twenty/pull/4823
* Add Sentry types to dependencies by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4825
* Fix ScrollWrapper inner elements padding by @charlesBochet in https://github.com/twentyhq/twenty/pull/4827
* Make field input transparency consistent by @charlesBochet in https://github.com/twentyhq/twenty/pull/4828
* Website UI design by @ady-beraud in https://github.com/twentyhq/twenty/pull/4829
* Fix dropdown menu header by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4835
* feat: traditional Oauth alongside PKCE by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/4697
* Add new database connection by @thomtrp in https://github.com/twentyhq/twenty/pull/4837
* fixed eslint build issue by @ady-beraud in https://github.com/twentyhq/twenty/pull/4842
* Fix contact creation when calendar is not enabled by @Weiko in https://github.com/twentyhq/twenty/pull/4843
* [messaging] remove v2 feature flag by @Weiko in https://github.com/twentyhq/twenty/pull/4845
* Various cosmetic fixes for 0.4.0 by @charlesBochet in https://github.com/twentyhq/twenty/pull/4844
* feat: add Tables settings to Settings/Integrations/Database/Connectio… by @thaisguigon in https://github.com/twentyhq/twenty/pull/4851
* Fix environment variable casting by @FelixMalfait in https://github.com/twentyhq/twenty/pull/4855
* Release 0.4.0 by @charlesBochet in https://github.com/twentyhq/twenty/pull/4856

## New Contributors
* @brkuhgk made their first contribution in https://github.com/twentyhq/twenty/pull/4617
* @hannafeddersen made their first contribution in https://github.com/twentyhq/twenty/pull/4513
* @darekdesu made their first contribution in https://github.com/twentyhq/twenty/pull/4661
* @arnavsaxena17 made their first contribution in https://github.com/twentyhq/twenty/pull/4685
* @simaosanguinho made their first contribution in https://github.com/twentyhq/twenty/pull/4712
* @pereira0x made their first contribution in https://github.com/twentyhq/twenty/pull/4720
* @kikoleitao made their first contribution in https://github.com/twentyhq/twenty/pull/4734
* @ijreilly made their first contribution in https://github.com/twentyhq/twenty/pull/4780
* @besrabasant made their first contribution in https://github.com/twentyhq/twenty/pull/4676
* @trp02 made their first contribution in https://github.com/twentyhq/twenty/pull/4792
* @ady-beraud made their first contribution in https://github.com/twentyhq/twenty/pull/4829

**Full Changelog**: https://github.com/twentyhq/twenty/compare/v0.3.3...v0.4.0