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