Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Settings/Objects/Field Edit - Use react-hook-form #4295

Closed
thaisguigon opened this issue Mar 4, 2024 · 0 comments · Fixed by #4916 or #5326
Closed

Settings/Objects/Field Edit - Use react-hook-form #4295

thaisguigon opened this issue Mar 4, 2024 · 0 comments · Fixed by #4916 or #5326
Assignees
Labels
scope: front Issues that are affecting the frontend side only

Comments

@thaisguigon
Copy link
Contributor

No description provided.

@thaisguigon thaisguigon self-assigned this Mar 4, 2024
@thaisguigon thaisguigon changed the title Settings/Objects/Field Edit - Use react-hook-form Settings/Objects/Field pages - Use react-hook-form Mar 4, 2024
@thaisguigon thaisguigon changed the title Settings/Objects/Field pages - Use react-hook-form Settings/Objects/Field Edit - Use react-hook-form Mar 4, 2024
@thaisguigon thaisguigon added the scope: front Issues that are affecting the frontend side only label Mar 5, 2024
thaisguigon added a commit that referenced this issue Mar 25, 2024
* refactor: improve Settings supported field types validation

Related to: #4084, #4295

* fix: fix wrong import
sanjana0190 added a commit to synapsenet-arena/lead360 that referenced this issue Apr 13, 2024
* fix: Close the email side panel upon clicking an open email thread (#4329)

* fix: state consistency issue while closing the email thread right drawer (#4205)

* Refactored to use useRecoilCallback in RightDrawer open/close hook

* - registered an email drawer click outside callback to memorize the thread id when drawer was closed
- added a state to memorize then event that triggered right drawer close
- added a predicate that checks if event that close email thread right drawer is not the same that the open email thread click event AND that the thread that we want to open is not the thread that is just being closed.

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* Adding new one-click deploy option to 1-click-deploy.mdx (#4374)

This PR introduces a one-click deploy button for RepoCloud, enabling an easy and rapid deployment option for the community.

* Update add account button style (#4481)

* update style

* fix gap being there twice

* Fixed select field input height (#4493)

* feat: refactor folder structure (#4498)

* feat: wip refactor folder structure

* Fix

* fix position

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* [messaging] Fix messaging formatAddress tests (#4482)

* [messaging] Fix messaging formatAddress tests

* rebase

* remove unused test

* Add command to stop demo seed cron (#4480)

Rename start cron + add stop cron

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Add tests for `/modules/activities/tasks/hooks` (#4495)

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* Increase test coverage for `/modules/activities/timeline` (#4494)

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* TWNTY-4447 - Add tests for `/modules/activities/hooks` (#4475)

Add tests for `/modules/activities/hooks`

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* First batch of `modules/activities` tests (#4446)

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Matheus <matheus_benini@hotmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>

* feat: iframe addition (chrome-extension) (#4418)

* toggle iframe addition

* React UI init

* remove files

* loading state files

* render iframe logic

* remove event

* build fix

* WIP

* Ok

* Cleaned

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* Update backdrop-filter in OverlayBackground.ts (#4436)

* Update backdrop-filter in OverlayBackground.ts

* Fix backdrop-filter in OverlayBackground.ts

* Update opacity of menu item, to be constantly 0

* Fixes

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* Changed Filter/sort labels font weight to medium instead of bold. (#4500)

* changed font weight to 500 for filter/sort labels

* Removed isSort prop and StyledChipProps type

* feat: open event details drawer on event row click (#4464)

* feat: open event details drawer on event row click

Closes #4294

* feat: review - display Calendar Event details Inline Cells in readonly mode

* fix: fix calendar event field values not being set

* chore: review - reactivate no-extra-boolean-cast eslint rule

* Prefetching views and favorites (#4421)

* wip

* Push

* Complete work on prefetch

* Add comment

* Fix

* Fix

* Fix

* Fix

* Remove dead code

* Simplify

* Fix tests

* Fix tests

* Fix according to review

* Fix according to review

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* Refactor backend folder structure (#4505)

* Refactor backend folder structure

Co-authored-by: Charles Bochet <charles@twenty.com>

* fix tests

* fix

* move yoga hooks

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* Fix tests and linter

* Prevent file upload in demo workspaces (#4503)

* Build demo env guard

* Put guard for auth

* Add todo

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Fix calendar broken tests

* Server fix: Update EnvironmentService import path in File Module. (#4508)

fix: update the import path for environment service inside the file.module.ts file to get the server up again

* Fix server deploy (#4509)

* Fix server deployment broken by nx

* Fix server deployment broken by nx

* Fix server deployment broken by nx

* Fix

* Fix

* Fix

* Fix

* Fix server container build

* Fix storybook tests on IconPicker (#4510)

* Fix storage s3 endpoint not being optional

* Add migrate prod command

* Remove demo guard for mail api (#4527)

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Action bar add delete count (#4470)

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* [backend] rename repository services and replace repository modules by dynamicModule (#4536)

* rename database services to repository

* refactor more repositories

* more refactoring

* followup

* remove unused imports

* fix

* fix

* Fix calendar listener being called when flag is off

* remove folders

* Update docker-compose.mdx (#4545)

The name of docker instance now use - and not _ for the name.

* Cleanup default values and leftover methods in environmentService (#4550)

* Cleanup default values and leftover methods in environmentService

* Adress remainings configService calls

* TWNTY-4450 - Add tests for `/modules/activities/emails` (#4520)

* Add tests for `/modules/activities/emails`

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>

* Fix tests

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>

* Remove temporary changes

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>

* Added context (#4557)

* Add getters factory for attachements (#4567)

* Add getter factory for attachements

* Override guard in test

* Add secret in env variables

* Return custom message on expiration

* Rename to signPayload

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* 4485 create a custom resolver for calendar events (#4568)

* create timeline calendar event resolver

* working on getCalendarEventsFromPersonIds

* add count query

* add calendarEventVisibility and add typing

* update calendarEvent dto

* modify calendarEvent dto

* compute calendar event visibility

* fix types

* add FieldMetadata in timeline calendar dtos and create queries and fragments

* remove fieldMatadata

* fix naming

* update resolver

* add getCalendarEventsFromCompanyId

* fix queries

* refactor queries

* fix visibility

* fix calendar event attendees bug

* visibility is working

* remove @IDField

* update gql queries

* update dto

* add error

* add enum

* throw http exception

* modify error

* Refactor calendar event visibility check

* use enum

* Add JSON field type and Event object (#4566)

* Add JSON field type and Event object

* Simplify code

* Adress PR comments and add featureFlag

* Delete auth/file front variables (#4455)

* Release updates (#4571)

* Adding 0.3.0 first content & introducing the new images folder

* adding changelog from 0.2.3 to 0.3.3

* tracking new files

* removing unwanted file

* Improving Copy & adding Gmail integration to 0.3.3

* micro fix

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* Set optional checkout.session.url (#4569)

* Set optional checkout.session.url

* Lint

* Edit .env.example

* Vale CI

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* Blocknote custom slash menu (#4517)

blocknote v12, cleaned up blockschema & specs, added custom slash menu

* fix: fix typings in calendar utils tests (#4572)

* fix: fix typings in calendar utils tests

* fix: remove unstable test

* Refactor Views by cleaning the code, relying on apolloCache and improving performances (#4516)

* Wip refactoring view

* Post merge conflicts

* Fix review

* Add create view capability

* Fix create object missing view

* Fix tests

* fix: add missing package lodash.groupby (#4579)

* fix: add missing package

* fix: typo in case

* feat: multi-workspace (frontend) (#4232)

* select workspace component

* generateJWT mutation

* workspaces state and hooks

* requested changes

* mutation fix

* requested changes

* user workpsace delete call

* migration to drop and createt user workspace

* revert select props

* add DropdownMenu

* seperate multi-workspace dropdown as component

* Signup button displayed accurately

* update seed data for multi-workspace

* lint fix

* lint fix

* css fix

* lint fix

* state fix

* isDefined check

* refactor

* add default workspace constants for logo and name

* update migration

* lint fix

* isInviteMode check on sign-in/up

* removeWorkspaceMember mutation

* import fixes

* prop name fix

* backfill migration

* handle edge cases

* refactor

* remove migration query

* delete user on no-workspace found condition

* emit workspaceMember.deleted

* Fix event class and unrelated fix linked to a previously missing dependency

* Edit migration (I did it in prod manually)

* Revert changes

* Fix tests

* Fix conflicts

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* feat: wip server folder structure (#4573)

* feat: wip server folder structure

* fix: merge

* fix: wrong merge

* fix: remove unused file

* fix: comment

* fix: lint

* fix: merge

* fix: remove console.log

* fix: metadata graphql arguments broken

* feat: modified DoubleTextInput to split First and Last name accordingly (#4598)

* feat: modified DoubleTextInput to split First and Last name accordingly

* Fix Linter

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* update example docker-compose to bitnami postgres path (#4491)

* update example docker-compose to bitnami postgres path

* leave a note that Postgres needs configuration

* Revert example docker-compose

* Edit text

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* 48 add yearly monthly sub switch (#4577)

* Fixed TS error with blocknote/react package (#4601)

* Add KanbanFieldMetadataId on View standard object (#4604)

* Add KanbanFieldMetadataId on View standard object

* Deprecate Pipeline step

* Fix

* Use Constants instead of raw ids

* Fix

* Fix query runner

* Fix according to review

* Fix tests

* Fix tests

* Fix tests

* feat: merge front and server dockerfiles and optimize build (#4589)

* feat: merge front and server dockerfiles and optimize build

* fix: update image label

* fix: bring back support for REACT_APP_SERVER_BASE_URL injection at runtime

* fix: remove old entries & add nx cache in dockerignore

* feat: generate frontend config at runtime using Nest

* fix: format and filename

* feat: use the EnvironmentService and leave default blank

* feat: add support for DB migrations

* feat: add a docker-compose file for production (#4609)

* feat: add a docker-compose file for production

* fix: remove unused user filed

* fix: do not provide default token secrets

* Logs show page (#4611)

* Being implementing events on the frontend

* Rename JSON to RAW JSON

* Fix handling of json field on frontend

* Log user id

* Add frontend tests

* Update packages/twenty-server/src/engine/api/graphql/workspace-query-runner/jobs/save-event-to-db.job.ts

Co-authored-by: Weiko <corentin@twenty.com>

* Move db calls to a dedicated repository

* Add server-side tests

---------

Co-authored-by: Weiko <corentin@twenty.com>

* New view picker (#4610)

* Implement new view picker

* Complete feature

* Fixes according to review

* Object creation triggers view creation

* Fix broken worker (#4618)

* Release 0.3.3 (#4622)

* Release 0.3.3

* Fix tests

* Fix authentication resolver

* 4489 timebox finish google calendar full sync (#4615)

* add lodash differenceWith

* add awaits

* update sync cursor is working

* add logs

* use isSyncEnabled information to enqueue jobs

* add decorator InjectObjectMetadataRepository

* fix gmail-full-sync

* Add workspaceId option on standard-id migration script

* 4398 decouple contacts and companies creation from messages import (#4590)

* emit event

* create queue and listener

* filter participants with role 'from'

* create job

* Add job to job module

* Refactoring

* Refactor contact creation in CreateCompanyAndContactService

* update job

* wip

* add getByHandlesWithoutPersonIdAndWorkspaceMemberId to calendar event attendee repository

* refactoring

* refactoring

* Revert "refactoring"

This reverts commit e5434f0b871e45447227aa8d55ba5af381c3ff1c.

* fix nest imports

* add await

* fix contact creation condition

* emit contact creation event after calendar-full-sync

* add await

* add missing transactionManager

* calendar event attendees personId update is working

* messageParticipant and calendarEventAttendee update is working as intended

* rename module

* fix lodash import

* add test

* update package.json

* Add events on Custom objects (#4625)

* Fix event relation with custom objects

* Replace Terms & Conditions with Sign Up Link on Sign In #4502 (#4617)

* Replace Terms & Conditions with Sign Up Link on Sign In #4502

* terms replaced with signup link

* begin fix (incomplete / do not merge)

* Revert

* Introduce welcome page

* Update Twenty website

---------

Co-authored-by: Mamatha Yarramaneni <mamathayarramaneni@Mamathas-Macbook.local>
Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* Improve performances on main

* Allow usage of multiple select fields on Kanban board

* Basic log styling (#4634)

* basic log styling

* fixed mobile wrap and changed default event icon

* add group by test

* Add worker run step to server cli (#4619)

* Add worker run step to server cli

* add build step

* fix

* refactor: improve Settings supported field types validation (#4496)

* refactor: improve Settings supported field types validation

Related to: #4084, #4295

* fix: fix wrong import

* Update yarn commands (#4644)

* Simplify commands

* Simplify commands

* Migrate all dev commands to project.json

* Fix tests

* 4525 upgrade pg graphql (#4646)

* TO remove: add multiple workspace with command

* TO remove: update build script

* Update script and add doc

* TO remove: add more seed workspaces

* Build pg_graphql files for 1.5.1

* Build pg_graphql files for 1.5.1 macos arm

* Remove 600 seed workspaces

* Build pg_graphql files for 1.5.1 macos intel

* Add endpoints to create and delete remote server (#4606)

* Build remote server

* Add getters

* Migrate to json inputs

* Use extendable type

* Use regex validation

* Remove acronymes

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* refactor: merge FieldType and FieldMetadataType (#4504)

* refactor: merge FieldType and FieldMetadataType

* fix: fix args passed to assertFieldMetadata

* fix: omit RawJson from supported types in settings

* Fix missing lodash type dependency breaking front container build

* fix: fix Select field preview (#4507)

* fix: fix Select field preview

Closes #4084

* fix: fix field preview utils tests

* fix: create deterministic uuids for standards relation on custom object (#4642)

* fix: create deterministic uuids for standards relation on custom object

* fix: remove check if standardId already exist to override old ones

* TWNTY-4602 - Increase coverage for coverage for  `twenty-front:storybook:modules` (#4649)

* Increase coverage for coverage for  `twenty-front:storybook:modules`

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Chiazokam <chiazokamecheta@gmail.com>

* Increase code coverage threshold

* Increase code coverage threshold

* Increase code coverage threshold

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Chiazokam <chiazokamecheta@gmail.com>
Co-authored-by: Charles Bochet <charles@twenty.com>

* feat: create Integrations/IntegrationDetail page (#4574)

* feat: create Integrations/IntegrationDetail page

Closes #4546

* docs: add Settings/Integrations/Integration Detail page stories

* docs: add Settings/Billing page stories

* refactor: move some Settings components to @/settings

* refactor: move some Settings integrations components to @/settings/integrations

* feat: add Active and Add integration card displays (#4591)

* feat: add Active and Add integration card displays

Closes #4541

* docs: add PaymentSuccess page stories

* refactor: move page components

* 4162-Sticky-Header (#4627)

* initial commit

* functionality added

* Suggested changes fixed

* Fix broken shadow

* Unrelated fix (input stuck under container)

* Performance improvement

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* #4298 Add emails seed data for demo and dev seeds (#4513)

* Add message seed data

* Change order of attributes

* add personIds

* fix messageParticipants attributes

* add imports in data-seed-dev-workspace

* Update messageParticipant.ts

Delete comments

---------

Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>

* feat: use ApolloFactory for metadata client (#4608)

Co-authored-by: Charles Bochet <charles@twenty.com>

* feat(ci): automate CI tags and pass github context (#4652)

* feat(ci): automate CI tags and pass github context

* Update .github/workflows/cd-deploy-tag.yaml

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* feat: add remote object integration preview (#4614)

Closes #4548

* Update .env.example (#4661)

Added missing FILE_TOKEN_SECRET variable

* chore: debug Twenty dockerfile failing to build on Github Actions (#4658)

* chore: debug Twenty dockerfile failing to build on Github Actions

* fix: remove commented code

* File token chores (#4664)

* Missing file token chores

* Make whole idea folder ignored

* Update Dev Seeds to use Ids (#4663)

* feat: check if company/person saved (chrome-extension) (#4280)

* add twenty icon

* rest api calls for company

* check if company exists

* refacto

* person/company saved call

* gql codegen init

* type defs

* build fix

* DB calls with gql codegen and apollo integration

* 4488 connect calendar tab to backend (#4624)

* create states and hooks

* implement fetch more records

* add empty state

* update types

* fix error

* add fetchmoreloader and add scroll to container

* fix visibility in calendarEventFragment

* fix fetchMoreRecords

* update TIMELINE_CALENDAR_EVENTS_DEFAULT_PAGE_SIZE

* add test

* modify empty state subtitle

* replace entity by activityTargetableObject

* create useCustomResolver hook

* refactor

* refactoring

* use generic component

* rename FetchMoreLoader

* remove deprecated states and hooks

* fix typing

* update typing

* update error message

* renaming

* improve typing

* fix bug on contact creation from same company

* Fetch available remote tables (#4665)

* Build remote table module

* Use transactions

* Export url builder in util

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* 60 fix svg xcc vulnerability (#4660)

* Add domPurify

* Sanitize svg files

* Add is-svg package

* Use isSvg package

* Revert "Use isSvg package"

This reverts commit 05014b51076505d8766ca8c4c3233f6563869b17.

* Revert "Add is-svg package"

This reverts commit ad3e206ea6b09c2579bd79ac570b69694936fb7b.

* Code review returns

* Fix/enum bug (#4659)

* fix: sever not throwing when enum contains two identical values

* fix: enum column name cannot be change

* fix: put field create/update inside transactions

* fix: check for options duplicate values front-end

* fix: missing commit transaction

* Add isRemote field on object metadata (#4668)

Add isRemote field

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Fix encryption logic (#4672)

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* fix: update docker-compose database volumes (#4677)

* feat: simplification of default-value specification in FieldMetadata (#4592)

* feat: wip refactor default-value

* feat: health check to migrate default value

* fix: tests

* fix: refactor defaultValue to make it more clean

* fix: unit tests

* fix: front-end default value

* [messaing] improve messaging import (#4650)

* [messaging] improve full-sync fetching strategy

* fix

* rebase

* fix

* fix

* fix rebase

* fix

* fix

* fix

* fix

* fix

* remove deletion

* fix setPop with memory storage

* fix pgBoss and remove unnecessary job

* fix throw

* fix

* add timeout to ongoing sync

* 4486 connect settingsaccountscalendars to backend (#4605)

* add useFindOneRecord and useUpdateOneRecord

* remove mock

* use calendar channel information in display

* renaming

* refactoring

* handleSyncEventsToggle

* improve typing using generics

* modifications after review

* rename components

* renaming

* feat: add date format calendar setting (#4600)

Closes #4184

* 4506 change field labels and field type for calendarevent object metadata to match figma (#4679)

* update calendarEvent labels and description to match Figma

* modify conferenceUri to conferenceLink with LINK type

* update format-google-calendar-event.util to match new conferenceLink

* update CalendarEventDetails since overriding the fields is no longer needed

* fix mock metadata

* generate new uuid for field conferenceLink

* feat: add Integrations/Integration Details/New Database page (#4593)

Closes #4553

* feat: add remote object integration databases list card (#4621)

* feat: add remote object integration databases list card

Closes #4549

* fix: fixes after rebase

* 4643 create a pre hook for calendar events (#4666)

* copy message pre hook

* add CalendarQueryHookModule to workspace-pre-query-hook.module

* use CalendarChannelVisibility enum

* add calendarEvent to workspace-pre-query-hook.config

* fix pre-hook

* fix findOne prehook in config

* rename fragments

* fix import

* update findOne prehook and create can-access-calendar-event.provider

* replace provider with service

* fix type

* renaming

* remove unnecessary eslint skip

---------

Co-authored-by: Weiko <corentin@twenty.com>

* fixed view switcher by changing zindex of TopBar (#4685)

* feat: Oauth with PKCE (#4648)

* authorizeApp and exchangeAuthcode methods

* module rename

* import fix

* lint fix

* fix import

* feat: add one liner install command (#4613)

* feat: add one liner

* fix: interactive issue & add support for both linux & mac

* feat: move quick start documentation

* feat: catch errors

* feat: check if directory exists

* feat: default to yes for prompt

* feat: open in browser

* fix: format

* feat: do not expose STORAGE_LOCAL_PATH env but handle the case where it would be set

* fix: db reset command wasn't working out of the box

* Update install.sh

Co-authored-by: Darek Desu <4459421+darekdesu@users.noreply.github.com>

* feat: harden the whole UX with one-liner

* fix: small logical order adjustment

* Update packages/twenty-docs/docs/start/self-hosting/docker-compose.mdx

---------

Co-authored-by: Darek Desu <4459421+darekdesu@users.noreply.github.com>
Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* fix(one-liner): some echo are missing -e (#4686)

* Fix: Save view by clicking outside popup while editing (#4678)

* fix: #4657 Save view by clicking outside popup while editing

* made changes on save view

* resolved comment

* Rename refreshToken to appToken and add fields (#4691)

* Fix events being created for system objects (#4694)

* Fix events being created for system objects

* move the condition above to avoid unnecessary db calls

* feat: address composite field (#4492)

Added new Address field input type.

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* 4698-Renamed to inbox (#4701)

Renamed to inbox

* 4586 fix workspace member feature (#4680)

* Fix import

* Handle delete workspace member consequences

* Add a patch to request deleted workspace member's userId

* Remove useless relations

* Handle delete workspace + refactor

* Add missing migration

* Fix test

* Code review returns

* Add missing operation in migration file

* Fix code review return update

* Fix workspaceMember<>ConnectedAccount relation

* Switch timestamp to timestamptz (#4696)

* Switch timestamps to timestamptz

* update standard/custom objects logic to use timestamptz

* fix test

* Calendar event fixes and improvements (#4690)

* fixes

* saving workspaceMemberId and personId when saving attendees

* add typing

* use Map

* improve saveMessageParticipants

* fix role type

* move logic in a service

* create new service

* use new service in calendar-event-attendee.service

* modify service to include more common logic

* add defaumt value to isOrganizer in calendar-event-attendee.object-metadata

* rename folder

* renaming

* Created the user-guide content (Text and illustrations) (#4683)

* Second attempt

* Small image optimizations

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* fix icon search menu (#4565) (#4712)

* feat: reinforce one liner experience (#4688)

* feat: add more dependencies check, randomize postgres admin password, tail logs of server container

* feat: improve retro compatibility

* feat: comment POSTGRES_ADMIN_PASSWORD as it will be generated by the one liner

* User guide update (#4715)

* adding back new navbar structure

* adding back new home

* adding back objects

* adding back 4 pages

* adding back some  pages

* added 3 videos for api, webhook and tasks

* fix: impossible to unselect all check box (#4471)

* fix: impossible to unselect all check box

* fix: newly loaded records adopts select/unselect status

* Fix

* Fixes

* Fixed naming

* Used better naming

* Fixed naming

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* 4410-feat(front): Implement Confirmation Prompt for Multiple Record Deletion (#4514)

* feat: implement confirmation prompt

* feat: remove prop drilling and introduce recoil state

* chore: fix eslint issues

* feat: set record text according to length of records

* chore: fix eslint issues

* refactor: made changes according to code review

* fix: show delete according to singular and plural records.

* fix: eslint issues

* feat: show number of selected records

* style: fix positioning of actionbar

* feat: display ConfirmationModal seperately

* chore: remove recoil state and use usestate instead

* chore: minor change

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* Sync remote object (#4713)

* Sync objects

* Generate data for isRemote

* Add cache version update

* Add label identifier + fix field metadata input

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Fix display empty value if boolean instead of false on show page (#4468)

* default value boolean fixed

* fixed creation, fixed updating a value to false

* fixed default value for default value if boolean

* fixed tests

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* Fix overlay scroll gaps (#4512)

* fix overlay scroll leaving gap

* fixed tests

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* feat: authorize screen (#4687)

* authorize screen

* lint fix

* add BlankLayout on Authorize route

* typo fix

* route decorator fix

* Unrelated fix

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* fix: fix Settings/Developers page error (#4722)

Closes #4669

* fix search active hit styling #4719 (#4720)

* Fix Vale CI and change vision (#4724)

* Feat/put target object identifier on use activities (#4682)

When writing to the normalized cache (record), it's crucial to use _refs
for relationships to avoid many problems. Essentially, we only deal with
level 0 and generate all fields to be comfortable with their defaults.

When writing in queries (which should be very rare, the only cases are
prefetch and the case of activities due to the nested query; I've
reduced this to a single file for activities
usePrepareFindManyActivitiesQuery 🙂), it's important to use queryFields
to avoid bugs. I've implemented them on the side of query generation and
record generation.

When doing an updateOne / createOne, etc., it's necessary to distinguish
between optimistic writing (which we actually want to do with _refs) and
the server response without refs. This allows for a clean write in the
optimistic cache without worrying about nesting (as the first point).

To simplify the whole activities part, write to the normalized cache
first. Then, base queries on it in an idempotent manner. This way,
there's no need to worry about the current page or action. The
normalized cache is up-to-date, so I update the queries. Same idea as
for optimisticEffects, actually.

Finally, I've triggered optimisticEffects rather than the manual update
of many queries.

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* refactor: move Tabler Icon exports to twenty-ui (#4727)

Split from https://github.com/twentyhq/twenty/pull/4518

* chore: upgrade Nx to v18.1.3 (#4706)

Split from https://github.com/twentyhq/twenty/pull/4518

- Upgrades dependencies and applies automatic config migrations with the
command: `npx nx migrate nx` (see
https://nx.dev/nx-api/nx/documents/migrate)
- Fixes lint errors after upgrading `@typescript-eslint`

Note: it was not possible (for now) to migrate Nx to the latest stable
version (v18.2.1) because it upgrades Typescript to v5.4.3, which seems
to cause a bug on install when Yarn tries to apply its native patches.
Might be a bug on the Yarn side.

* refactor: move createState to twenty-ui (#4716)

Split from https://github.com/twentyhq/twenty/pull/4518

Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>

* Fix jest tests broken with apollo metadata client (#4728)

The tests were broken. It turns out that it is not easy to mock two
apolloClients as apollo only provides "MockedProvider" component to mock
apollo in tests.
MockedProvider Api does not allow us to mock on client level.

For now, I'm defaulting to the base ApolloClient in test mode to avoid
the issue

* feat: expand relation record cards on click in Record Show page (#4570)

Closes #3126

* Revert company address field type (#4737)

## Context
A new ADDRESS field type has been introduced and the company object has
been updated to use this new type however this introduced a few
regressions.
The good strategy would be to introduce a new field and rename the old
one.

This PR revert that change to fix the issue.

* Fix invalid token after credentials change (#4717)

- If sync fails we set authFailedAt
- This information is displayed in the frontend in accounts with a `Sync
Failed` pill
- The user can reconnect his account in the dropdown menu
- A new OAuth flow is triggered
- The account is synced

* Add JsDom to server dependencies (#4740)

We were missing `JsDom` dependencies in the package.json generated by nx
while running `twenty-server`: `yarn nx build:packageJson`

Detailed explanation: 
- we are currently using nx paradigm which is to put dependencies of all
projets at root, which enables global package migrations for the whole
monorepo
- for production containers, we only want specific project dependency to
be added. This is done by running `yarn nx build:packageJson` on
`twenty-server`. Nx is statically analyzing twenty-server dependencies
and generating a tailored package.json that production containers can
later use.
- However, `nx` static analysis is not flawless and is missing some
packages. We are going to stop using it as the value is not there yet
but the burden for developers is high. The guideline is to put back
project dependencies into specific package `package.json`
- Therefore, I'm adding `jsdom` to twenty-server `package.json`

* Fix: Update Icon Button Color and Menu Transparency with Icons (#4704)

Fixes: #4654

* New field currency (#4338)

Closes #4122 
---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* fix panel opening wrapping glitch (#4204) (#4673)

Fix: (#4204)

The issue was that when that panel was opened its content would wrap
instead of maintaining its desired structure. I fixed this bug by adding
a minimum width to the panel's contents so that they would stay
correctly formatted throughout the opening transition.

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* Fix #4160: fix upload image bug (#4734)

# Context
This PR addresses the solving of the upload image issue.
(Fixes #4160)

# Cause
The `<StyledBlockNoteStyledContainer onClick={() => editor.focus()}>`
handler was the origin of the problem, after removing it the issue
disappeared, maintaining all the other functionalities.

# Outcome
_Videos before and after removal:_


https://github.com/twentyhq/twenty/assets/92337535/9d8eb635-4164-4fea-a763-19becabf44ac


https://github.com/twentyhq/twenty/assets/92337535/8fedb50f-5306-42ad-be21-58d89ff7d1c7

* [messaging] rename syncExternalId to syncCursor (#4752)

## Context

SyncExternalId should be renamed because this won't always represent an
id. For example, microsoft API does not use ids but dates for their
sync. Also we think external is a bit redundant so we are removing it.

Note: this field is not used by the front-end (and will probably never
be)

* Add back export all action button (#4750)

![image](https://github.com/twentyhq/twenty/assets/29927851/e78186bf-c6ab-4ae6-8041-eb9ac2e86f90)

![image](https://github.com/twentyhq/twenty/assets/29927851/048dc9b3-c6e5-4049-8344-16b6fee48059)

* Changelog for 0.4.0 (#4693)

**Wait for 0.4.0 to be deployed!**

![CleanShot 2024-03-28 at 15 53
31@2x](https://github.com/twentyhq/twenty/assets/19412894/f22eb1d5-bf91-413b-8dc8-8631ff48a89d)

![CleanShot 2024-03-28 at 15 53
46@2x](https://github.com/twentyhq/twenty/assets/19412894/5f91d0ae-ce90-41b1-b4bb-94c917bab42e)

* feat: Redirect to previous page after login (#4731)

fix: #4721

* Fix issue caused by a merge conflict (#4768)

* Integrate relations for remote objects (#4754)

Foreign table id cannot be a foreign key of a base table. But the
current code use foreign keys to link object metadata with activities,
events... So we will:
- create a column without creating a foreign key
- add a comment on the table schema so pg_graphql sees it as a foreign
key

This PR:
- refactor a bit object metadata service so the mutation creation is
separated into an util
- adds the mutation creation for remote object relations
- add a new type of mutation to create a comment

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Simplify docs and remove Docker local setup (#4783)

Having 2 different dev setups caused confusion, let's remove the Docker
local setup and recommend people install yarn locally.

Also simplified some docs by merging pages together, the recommend
self-hosting option is now the docker-compose / to adapt the
docker-compose.

* feat: create Settings/Integrations/Database/Connection page (#4785)

Closes #4556

- Renames some pages and components after discussion about terminology
with @thomtrp.
- Creates the Settings/Integrations/Database/Connection page.

* Add IS_MULTI_SELECT_ENABLED feature flag (#4779)

closes #4776

* [feat] Enable deletion of custom fields in workspace (#4780)

**Context**
cf. feature request
[#4597](https://github.com/twentyhq/twenty/issues/4597)
Enables deletion of custom fields that aren't active nor of type
relation

Also 
1. renamed a misnamed file
2. deleted redundant hook BeforeDeleteOneField as it seemed best to move
the logic to the resolver instead

**How was it tested?**
Did not write unit tests as code is to be migrated (discussed with
@Weiko).
Locally tested.

---------

Co-authored-by: Marie Stoppa <mariestoppa@MacBook-Pro-de-Marie.local>

* 4777 multi select field backend implement multi select type (#4790)

- fix default value for multi select field metadata

* feat: init docker compose test (#4730)

Job testing if docker compose is working. It triggers on pull_requests.

* Force explicit deletion behavior for relations (#4775)

We've seen a few cascading errors (e.g. comment.activityId would be non
nullable but cascade behavior is set to "set null"). I think it's safer
if we have to explicitly chose the deletion behavior it every time.

Especially since Postgres default to "No action" while we defaulted to
"Set Null", which is confusing.

In the future we will most likely introduce a second param
`onSoftDelete` in the decorator

* 3886 - Shortcut Sort/Filter (#3901)

Closes #3886

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* feat(ci): use concurrency.group to cancel previous jobs (#4795)

As recommended on the repo of the action we were using
https://github.com/styfle/cancel-workflow-action, we should use
`concurrency.group` rather than a dedicated action.

Here is a PR to use it on all our workflows

* feat: schema version header check (#4563)

closes https://github.com/twentyhq/twenty/issues/4479

tried to catch the error inside various places including
https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/integrations/exception-handler/exception-handler.service.ts
but it seems like the error never reaches the GraphQL module 😮

any idea where we could intercept such an error `Cannot query field`?

---------

Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>

* feat: add Settings/Integrations/Database/New Connection form (#4787)

Closes #4554

<img width="556" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/56738254-aa43-4bfd-b7c5-29a9e1b7258f">

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* fix: linked records redirection (#4312)

Closes: #4093 
---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* chore: use common eslint config for most packages (#4705)

Split from https://github.com/twentyhq/twenty/pull/4518

Related to #4766 

Mutualizes eslint config between projects.
I didn't include `twenty-server` in this PR as this was causing too many
lint errors.

* chore: add script to generate twenty-ui barrels before build (#4707)

Split from https://github.com/twentyhq/twenty/pull/4518

Part of #4766 

Adds a script to auto-generate twenty-ui exports in `index.ts` files.

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* chore: include react components in twenty-ui test config (#4709)

Split from https://github.com/twentyhq/twenty/pull/4518

Part of https://github.com/twentyhq/twenty/issues/4766

- Re-generates some of the twenty-ui test and storybook config with Nx
- Includes tsx files in twenty-ui tests and compiles them with swc

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* Fix View creation, view fields re-ordering, view filters and view sorts erratic behaviors (#4800)

We used to not type properly the return of getRecordFromCache before the
work from last week.
The getViewFromCache function was patching this temporarily in a "dirty"
way.

Now that this is cleaner, I'm removing the typescript patch. This fixing
several behaviors on viewBar

* [feat][FE] Enable deletion of custom fields in workspace (#4802)

**Context**
Fixes https://github.com/twentyhq/twenty/issues/4597
Enables deletion of custom fields that aren't active nor of type
relation ([BE PR](https://github.com/twentyhq/twenty/pull/4780))

**How was it tested?**
Locally tested

<img width="541" alt="Capture d’écran 2024-04-04 à 13 33 18"
src="https://github.com/twentyhq/twenty/assets/51697796/bc462b86-b494-409e-9836-69bdaeb812cb">
<img width="661" alt="Capture d’écran 2024-04-04 à 13 34 25"
src="https://github.com/twentyhq/twenty/assets/51697796/8fe47114-545e-48b5-a107-34be531b7ea5">

* 4702 rename calendareventattendee to calendareventparticipant (#4761)

Closes #4702

* fix: Add `isIconStatic` prop item to allow the icons to be always rendered statically ignoring hover behaviour (#4676)

Fix #4653

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

* fix: isIconDisplayedOnHoverOnly marked as required (#4805)

Fix PR #4676, `isIconDisplayedOnHoverOnly` should be provided or not
marked as required

* Fix: File Upload (#4806)

File upload issue fixed.
There was a type mismatch and isDate was returning false

* Remote objects: Fix comment override - id typing - label (#4784)

Several fixes for remote objects:
- labels are now displayed in title case. Added an util for this.
- Ids are often integers but the foreign keys on the relations were
uuid. Sending the id type to the object metadata service so it can
creates the foreign key accordingly
- Graphql comments are override when several remote objects are
imported. Building a function that fetch the existing comment and update
it

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* chore: setup twenty-ui absolute path alias (#4732)

Split from https://github.com/twentyhq/twenty/pull/4518

- Setup `@ui/*` as an internal alias to reference `twenty-ui/src`.
- Configures twenty-front to understand the `@ui/*` alias on development
mode, so twenty-ui can be hot reloaded.
- When building on production mode, twenty-front needs twenty-ui to be
built beforehand (which is automatic with the `dependsOn` option).
- Configures twenty-front to understand the `@ui/*` alias when launching
tests, so there is no need to re-build twenty-ui for tests.

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* Prevent remote object updates (#4804)

Backend: Adding a new util function that throw an error if the
objectMetadata is remote

Frontend: hiding the save button when remote

Also renaming `useObjectMetadataItemForSettings` since this hook is used
in other places than settings and is not in the settings repo. Name can
definitely be challenged!

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Fixed attachment field type (#4811)

updatedAt and deletedAt field changed to string like createdAt field. On
file upload updatedAt field will be given date same as createdAt.

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* adjust window size for scroll (#4792)

related to #4749. 

Adjusted the max height for window so that it cuts the last option a
little.

I wanted to test the menu from the second pic in the issue with the
multi select option but could not figure out where it was in the
application.

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* feat: add Database Connection Summary Card to Settings/Integrations/D… (#4791)

…atabase/Connection page

Closes #4558

<img width="542" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/16d7d8ce-57db-4e48-ba72-a2318a2d34a4">

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* Gracefully close Redis connection when cacheStorageModule is destroyed (#4812)

## Context
When running a command, the process should end normally however it stays
hanging due to the open connection with redis client (when
CACHE_STORAGE_TYPE=redis)
This PR adds the necessary logic to gracefully close the connection once
the module is destroyed. Thanks to that, the command process now
properly ends once executed.

* feat: fetch database connections (#4813)

Closes #4757

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Fix ViewPicker create mode: view type switcher (#4821)

In this PR, I'm fixing two things on the ViewPicker in Create mode:
- if the Dropdown has no max height, it should not be scrollable (which
is causing issue with inner dropdowns being cut by overflow: hidden
- if the user has changed the icon, the type or the name of the view,
consider the create form as isDirty and prevent its value to be
overriden by re-renders (cache updates for example)

* chore: enable no-console eslint rule for tests and stories (#4816)

Re-enables no-console eslint rule in stories and tests files:
- In stories, use `action` from '@storybook/addon-actions' or `fn` from
'@storybook/test' instead of console.
- In tests, console methods can be mocked like this:
`global.console.error = jest.fn()`.

* fix: update build script for twenty-emails (#4823)

Fix an issue with the build of the server in docker failing to find vite

* Add Sentry types to dependencies (#4825)

Someone reported an error during install that might be due to missing
types import.

* Fix ScrollWrapper inner elements padding (#4827)

Closes https://github.com/twentyhq/twenty/issues/4824 and
https://github.com/twentyhq/twenty/issues/4788

* Make field input transparency consistent (#4828)

Minor fix until for the release 0.4.0 until we properly fix all input
background and backdrop-filters

* Website UI design (#4829)

**Fixed different issues** :
 
- Multiple CSS fixes: font-size, colors, margins, z-index ...
- Fixed hover on contributor avatars
- Added link to contributors in footer
- Made the year in the footer dynamic (2023 --> 2024)
- Added name of contributor in "Thank you" section of Contributor page
- Added footer in small screens
- Made Activity Log Responsive 
- Fixed bug in "saving issues to DB", title was null everywhere. I
needed to implement an "upsert" behaviour to update the existing
database on init

**To be noted :** 

There is the following bug on production happening on mobile when you
refresh a second time :

<img width="1440" alt="Screenshot 2024-04-05 at 01 30 58"
src="https://github.com/twentyhq/twenty/assets/102751374/b935b07a-63dc-463d-8dcb-070ad4ef6db0">


It seems to be related to the following issue on mdx :
[https://github.com/hashicorp/next-mdx-remote/issues/350](https://github.com/hashicorp/next-mdx-remote/issues/350)

I added the following code that fixed this bug for me in development
(this needs to be tested in production) :

```
const serialized = await serialize(content, {
    mdxOptions: {
      development: process.env.NODE_ENV === 'development',
    }
  })
```

---------

Co-authored-by: Ady Beraud <a.beraud96@gmail.com>

* Fix dropdown menu header (#4835)

Fix an issue I add introduced by removing "position:static" and an other
regression from https://github.com/twentyhq/twenty/issues/4366

* feat: traditional Oauth alongside PKCE (#4697)

ref: #4437

* Add new database connection (#4837)

Closes https://github.com/twentyhq/twenty/issues/4555

<img width="593" alt="Capture d’écran 2024-04-05 à 11 54 28"
src="https://github.com/twentyhq/twenty/assets/22936103/e6021417-bc78-460b-adf6-834330bbd894">

Connect the existing for with the backend so we can now create database
connections.

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* fixed eslint build issue (#4842)

**Fixed the following build issue:**

```
./src/app/contributors/api/fetch-issues-prs.tsx
12:3  Error: Type boolean trivially inferred from a boolean literal, remove type annotation.  @typescript-eslint/no-inferrable-types

./src/app/contributors/api/search-issues-prs.tsx
12:3  Error: Type boolean trivially inferred from a boolean literal, remove type annotation.  @typescript-eslint/no-inferrable-types
```

Co-authored-by: Ady Beraud <a.beraud96@gmail.com>

* Fix contact creation when calendar is not enabled (#4843)

## Context
Calendar tables are behind a featureFlag, they do not exist if the
feature flag is off which means we should not use them for the same
reason. I'm adding a check on the featureFlag before calling the
repository.

```
Error executing raw query for workspace 20202020-1c25-4d02-bf25-6aeccf7ea419: relation "workspace_1wgvd1injqtife6y4rvfbu3h5.calendarEventParticipant" does not exist
```
## Test
locally with and without featureflag

* [messaging] remove v2 feature flag (#4845)

## Context
We are now removing Messaging V2 feature flag to use it everywhere.

## Implementation
- renaming FetchWorkspaceMessagesCommandsModule to
MessagingCommandModule to make it more generic since it it hosts all
commands related to the messaging module
- creating a crons folder inside commands and jobs crons should be named
with xxx.cron.command.ts instead of xxx.command.ts. Same for jobs, jobs
should be named with xxx.cron.job.ts. In a future PR we should make sure
those CronJobs implement a CronJob interface since it's a bit different
(a CronJob does not contain a payload compared to a Job)
- Cron commands have been renamed to "cron:$module:command" so
`fetch-all-workspaces-messages-from-cache:cron:start` has been renamed
to `cron:messaging:gmail-fetch-messages-from-cache`. Also having to
create a command to stop the cron is a bit painful to maintain so I
removed them for now, this can be easily done manually with pg-boss or
bull-mq
- Removing full-sync and partial-sync commands as they were there for
testing only, we might put them back at some point but we will have to
adapt the code anyway.
- Feature flag has been removed from the MessageChannel standard object
to make sure those new columns are created during the next sync-metadata

* Various cosmetic fixes for 0.4.0 (#4844)

In this PR:
- fix empty list placeholder positionning
- prevent user from erasing custom address field as composite types
removal is not supported yet @ijreilly FYI
- fix show page relation error
- Implement address filter

* feat: add Tables settings to Settings/Integrations/Database/Connectio… (#4851)

…n page

Closes #4560

* Fix environment variable casting (#4855)

Fixes #4628

* Release 0.4.0 (#4856)

0.4.0 Release!

* refactor(chore):3896-replace-lodash-debounce-to-useDebounce (#4814)

Close: #3896 

## PR Details

Changed `lodash.debounce` to `useDebounce`.

Co-authored-by: VoitovychDM <voitovych.dm.m@gmail.com>

* Used query fields for record table and record board (#4857)

- Added two hooks for computing query keys for index table and index
board.
- Using query keys for findManyRecords on index table and index board

* Remove repetitive query of ClientConfig and CurrentWorkspace member (#4859)

## Removing repetitive queries (impacting performance on page load)

We have recently introduced the capability to detect schema version
mismatch. To do that, we add a new header in all our queries. On page
load, this header is added once we know the currentUser and especially
its currentWorkspace and related schema version.
However, applying this header to apollo client will re-trigger all
queries that have been already performed (GetClientConfig and
GetCurrentUser). To avoid re-triggering them, I'm introducing two new
"isLoaded" states and skip the query if the query has already been
performed

## Fixing Relation Detail not displaying data on show page

Small bug introduced in a previous PR

* Fix userload on signout

* Fix sign-up bug because currentCacheVersion does not exist yet

* Typo in docker compose up hint (#4866)

* #4852 - Remove margin left on Record Board (Kanban) (#4862)

https://github.com/twentyhq/twenty/issues/4852

Hey, I'm very new to React! Also, this is my first try at contributing
to open source.

Hoping to learn React and Nestjs, I look forward to contributing more in
the future!

Looking forward to your feedback and guidance!

**Edit:**
![Group
9](https://github.com/twentyhq/twenty/assets/47709410/210a0b9e-0a26-4e3e-8e1b-a88837c90f10)

---------

Co-authored-by: Félix Malfait <felix@twenty.com>

* Fix get available tables (#4873)

Endpoint is broken since we now use `Remote` as a suffix for remote
table names.

This PR:
- creates a common function to calculate the name of the remote table
- use it in the `findAvailableRemotePostgresTables` to know if a table
has been synced or not

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* feat: add Remove menu option to Settings/Integrations/Database/Connec… (#4874)

…tion page

Closes #4872

* Basic github ci workflow for twenty website (#4869)

Creates a basic github workflow for this issue #4832

* [messaging]Add temporary capture to gmail refresh token exceptions (#4875)

## Context
This exception is currently caught since this is expected but it seems
to be rejected more than it should so we want to have more visibility on
it

## Test
<img width="562" alt="Screenshot 2024-04-08 at 11 32 28"
src="https://github.com/twentyhq/twenty/assets/1834158/43bb6de9-191a-42d4-911b-6e83c7d8aa18">

* 4743 use auth google apis callback url instead of messaging provider gmail callback url (#4838)

Closes #4743

* Implement context specific icon in breadcrumb navigation (#4839)

fixes #4834 

<img width="447" alt="Screenshot 2024-04-05 at 4 13 21 PM"
src="https://github.com/twentyhq/twenty/assets/44577841/036f6c51-c6c5-4e15-a895-e356ca230e5c">

<img width="437" alt="Screenshot 2024-04-05 at 4 13 35 PM"
src="https://github.com/twentyhq/twenty/assets/44577841/335d0317-43b2-4827-9cf7-42373b3953f5">

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* feat: drop target column map (#4670)

This PR is dropping the column `targetColumnMap` of fieldMetadata
entities.
The goal of this column was to properly map field to their respecting
column in the table.
We decide to drop it and instead compute the column name on the fly when
we need it, as it's more easier to support.
Some parts of the code has been refactored to try making implementation
of composite type more easier to understand and maintain.

Fix #3760

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* 4738 add listeners on person creation and workspacemember creation to update participants (#4854)

Closes #4738

- Added the logic to unmatch a participant when the email of a person or
a workspace member is updated

* Fixed hotkey bug with Select component and added debug logs for hotkeys (#4879)

- Select component was adding a duplicate useListenClickOutside already
present in useDropdown for closing dropdown.
- Added debug logs for hotkeys scopes

* Delete connection from frontend (#4880)

This PR:
- creates the query to delete a connection
- creates the hook that triggers the query
- triggers the hook function when clicking on remove + get back to
connection page

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Use migrations for remote tables (#4877)

Foreign tables should be created using migrations, as we do for standard
tables.
Since those are not really generated from the object metadata but from
the remote table, those migrations won't live in the object metadata
service.

This PR:
- creates new types of migration : create_foreign_table and
drop_foreign_table
- triggers those migrations rather than raw queries directly
- moves the logic to fetch current foreign tables into the remote table
service since this is not directly linked to postgres data wrapper
- adds logic to unsync all tables before deleting

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* 4087 refactor object metadata item hooks and utils (#4861)

- Extracted each exported element from useObjectMetadataItem into its
own hook.

* feat: sync command missing ability to rename standard object (#4819)

We've introduced in PR #4373 standard ids to be able to rename standard
fields and objects.
Fields part was working properly, but objects part was not yet
implemented.
This PR is adding the missing parts to make it work.

* [calendar] change api scope (#4888)

## Context
Calendar scope was too broad, this PR updates it to events only.
Also changing "Cannot connect Google account to demo workspace" error to
a 404 to avoid having a 500 for something expected

* feat: fetch database connection tables in Settings/Integrations/Datab… (#4882)

…ase/Connection

Closes #4758

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* Fix graphql API accepting malformed UUIDs (#4895)

We have discovered that GraphQL inputs for fields of type ids in create
/ update input where using a more permissive ID type than the type used
in FilterInput in queries.

This PRs fixes it and make sure that all Input are using UUID graphql
scalar types

* Implemented dataloader for relation metadata (#4891)

- Implemented dataloader package on metadata graphql server
- Implemented a dataloader for relation metadata module

---------

Co-authored-by: Jérémy M <jeremy.magrin@gmail.com>

* uuid codegen update (#4897)

Following https://github.com/twentyhq/twenty/pull/4895/files

* Fix ID type being used in place of UUID in graphql and metadata queries (#4905)

We have recently discovered that we were using ID type in place of UUID
type in many place in the code.
We have merged #4895 but this introduced bugs as we forgot to replace it
everywhere

* 4710 implement google calendar incremental sync (#4822)

Closes #4710

* feat: add release workflow (#4904)

This workflow deploys a new release of Twenty.
- It bumps projects version
- Create a tag
- Push the changes

Then a tag pipeline will be automatically run triggering the deployment
of new Dockerhub images

Deployment to Twenty prod will be a manual action

* 4902 bug fix fix api filter for enum (#4909)

- Handle NUMERIC, SELECT, PROBABILITY, RATING FieldMetadataTypes

Those filters now works:
- http://localhost:3000/rest/opportunities?filter=stage[eq]:MEETING
-
http://localhost:3000/rest/opportunities?filter=stage[in]:[MEETING,NEW]

When providing wrong enum values, the following error messages are
returned:
- http://localhost:3000/rest/opportunities?filter=stage[eq]:MEETINGG
> BadRequestException: 'filter' enum value 'MEETINGG' not available in
'stage' enum. Available enum values are ['NEW', 'SCREENING', 'MEETING',
'PROPOSAL', 'CUSTOMER']
-
http://localhost:3000/rest/opportunities?filter=stage[in]:[MEETING,NEWW]
> BadRequestException: 'filter' enum value 'NEWW' not available in
'stage' enum. Available enum values are ['NEW', 'SCREENING', 'MEETING',
'PROPOSAL', 'CUSTOMER']

* [feat][FE] Stop persisting new empty records (#4853)

## Context
Closes [#4773](https://github.com/twentyhq/twenty/issues/4773)
Persisting of new records is delayed to cell escape and not performed
for empty records.

## How was it tested?
Locally tested + jest

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* Create new field type JSON (#4729)

### Description
Create new field type JSON

### Refs
https://github.com/twentyhq/twenty/issues/3900

### Demo


https://github.com/twentyhq/twenty/assets/140154534/9ebdf4d4-f332-4940-b9d8-d9cf91935b67

Fixes #3900

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
Co-authored-by: Marie Stoppa <marie.stoppa@essec.edu>

* Fix postgres 15 & 16 conflict (#4860)

@charlesBochet

* Sync table from frontend (#4894)

This PR:
- separates the existing updateSyncStatus endpoint into 2 endpoints
- creates mutations and hooks that will call those endpoints
- trigger the hook on toggle
- removes form logic and add a separated component for toggling

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>

* 4778 multi select field front implement multi select type (#4887)

* Fix phone cell display (#4924)

Closes #4796 

## What has been done
- fix phone number value detection
- Update formatting from International format to National format

## Before
phone were formatted as text field type

![image](https://github.com/twentyhq/twenty/assets/29927851/27d87522-5b02-4131-8b83-6bce7501fb1b)

## After
phone are properly formatted in National format

![image](https://github.com/twentyhq/twenty/assets/29927851/72f71b0f-4fd7-4060-afe3-feb87bddab0d)

## FYI
Phones in International format look like

![image](https://github.com/twentyhq/twenty/assets/29927851/6bd47dc1-6350-46b9-b5fd-94f4344bffac)

* chore: remove old deployments (#4922)

We migrated all Twenty's env to the new Twenty docker image. We can now
remove old deployments of front and back.
This PR takes care of that!

* Use defaultValue in currency input (#4911)

- Fix default value sent to backend, using single quotes by default
- Use default value in field definition and column definition so that
field inputs can access it
- Used currency default value in CurrencyFieldInput

---------

Co-authored-by: Charles Bochet <charles@twenty.com>

* feat: add SENTRY_RELEASE env (#4912)

Add support for a new SENTRY_RELEASE and SENTRY_ENVIRONMENT env.
It is optional and allows to init sentry with a Release version and an
env (used internally at Twenty).
Docker image have been updated do intergrate the new env as an Argument

* 4809 - disable double signup with mouse click / enter (#4878)

Fixing #4809 

The form has a button with a disabled condition, unfortunately there was
an error in checking the condition.
```
disabled={
       SignInUpStep.Init
                ? false
                ...
```
SignInUpStep.Init is always equal to true, so the first arm was
returning false and button was never disabled. Fixing this check fixes
the double mouse click bug as expected.
```
disabled={
              signInUpStep === SignInUpStep.Init
```

Still, the enter keypress is handled a little bit differently. There is
a handleKeyDown event that was ignoring if the form is submitting or
not. I added the check for that, and now pressing enter multiple times
does not result in any errors

* Storybook fix dark mode (#4865)

preview has now also a dark background & added a one click change theme
button

<img width="994" alt="Bildschirmfoto 2024-04-06 um 18 27 45"
src="https://github.com/twentyhq/twenty/assets/48770548/95f12617-e48f-4492-9b51-13410aff43ee">

* New field type: DATE (#4876)

### Description
New field type: DATE

### Refs
https://github.com/twentyhq/twenty/issues/4377

### Demo

https://jam.dev/c/d0b59883-593c-4ca3-966b-c12d5d2e1c32

Fixes #4377

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

* 4736 add listener on calendarchannel isautocontactcreationenabled (#4913)

Closes #4736

* [calendar/messaging] fix connected account auth failed should skip sync (#4920)

- AuthFailedAt is set when a refreshToken is not valid and an
accessToken can't be generated, meaning it will need a manual action
from the user to provide a new refresh token.
- Calendar/messaging jobs should not be executed if authFailedAt …
charlesBochet pushed a commit that referenced this issue May 7, 2024
Closes #4295

Note: for the sake of an easier code review, I did not rename/move some
files and added "todo" comments instead so Github is able to match those
files with their previous version.
thaisguigon added a commit that referenced this issue May 8, 2024
Related to #4295

Following #5326, field types other than:
- `FieldMetadataType.Boolean`
- `FieldMetadataType.Currency`
- `FieldMetadataType.Relation`
- `FieldMetadataType.Select`
- `FieldMetadataType.MultiSelect`

Cannot be saved as they are not included in the form validation schema.
This PR makes sure they are included and can therefore be
created/edited.
srp-pawar added a commit to synapsenet-arena/lead360 that referenced this issue May 15, 2024
commit 09d4bdb
Merge: bc86ac7 0af86ea
Author: Shubham Pawar <82868470+srp-pawar@users.noreply.github.com>
Date:   Wed May 15 10:33:40 2024 +0530

    Merge branch 'main' of https://github.com/synapsenet-arena/lead360

commit 0af86ea
Author: Rob Luke <code@robertluke.net>
Date:   Wed May 15 10:52:33 2024 +1000

    docs: fix calendar enable environmental variable (twentyhq#5417)

    Hi twenty team,
    Thanks for making such a great product, it's a pleasure to use and see
    the rapid development.
    @charlesBochet helped me find this error in my setup

commit 8842292
Author: Vinod Rathod <112850789+rathodvinod5@users.noreply.github.com>
Date:   Tue May 14 21:58:13 2024 +0530

    Fixed left padding for switcher icon on the table checkboxes twentyhq#4351 (twentyhq#4963)

    Closes twentyhq#4351  - Fixed spacing issue in TopBar file.

    ---------

    Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

commit 0b1f646
Author: Ady Beraud <102751374+ady-beraud@users.noreply.github.com>
Date:   Tue May 14 18:59:48 2024 +0300

    Added loader to Download Image + modified GitHub stars (twentyhq#5407)

    - Added loader to download image in contributor page:

    https://github.com/twentyhq/twenty/assets/102751374/a6db1d80-01ed-4b07-9a57-e533012f5aa9

    - Modified GitHub stars - rounded to the nearest integer

commit 1a61405
Author: Thomas des Francs <tdesfrancs@gmail.com>
Date:   Tue May 14 17:36:00 2024 +0200

    User guide images (twentyhq#5410)

    Updated 2 illustrations & added colors on filter illustration

    ---------

    Co-authored-by: Weiko <corentin@twenty.com>

commit 53b9505
Author: Thomas des Francs <tdesfrancs@gmail.com>
Date:   Tue May 14 17:23:54 2024 +0200

    Added the illustrations for the user guide (twentyhq#5409)

    Added illustrations for all user-guide articles

commit ce19582
Author: Anchit Sinha <anchit1909@gmail.com>
Date:   Tue May 14 20:32:53 2024 +0530

    4599-feat(front): Add Copy Button to Floating Inputs (twentyhq#4789)

    Closes twentyhq#4599

    **Changes:**
    - Added copy button to floating inputs of Text, Number, Phone, Link and
    Email fields.

    ---------

    Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
    Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
    Co-authored-by: Weiko <corentin@twenty.com>
    Co-authored-by: Charles Bochet <charles@twenty.com>

commit a53ce1c
Author: Félix Malfait <felix.malfait@gmail.com>
Date:   Tue May 14 16:42:28 2024 +0200

    Track backend events (twentyhq#5405)

    Add tracking to backend events, we might disable frontend tracking which
    doesn't bring much value to improve the product

commit ffdd3a7
Author: martmull <martmull@hotmail.fr>
Date:   Tue May 14 13:21:55 2024 +0200

    Return graphql errors when exists (twentyhq#5389)

    - throw badRequest with graphql error messages when graphql request
    fails
    - clean some code

    Before
    <img width="1470" alt="image"
    src="https://github.com/twentyhq/twenty/assets/29927851/0b700d9a-2bbe-41f7-84a9-981dc7dd5344">

    After

    ![image](https://github.com/twentyhq/twenty/assets/29927851/6bbaaf7c-1244-473d-9ae5-4fefc6a1b994)

commit 1bc9b78
Author: gitstart-twenty <140154534+gitstart-twenty@users.noreply.github.com>
Date:   Tue May 14 10:58:30 2024 +0100

    Show Data Skeleton Loading (twentyhq#5328)

    ### Description

    Show Data Skeleton loading

    ### Refs

    twentyhq#4460

    ### Demo

    Figma:
    https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twenty?type=design&node-id=25429-70096&mode=design&t=VRxtgYCKnJkl2zpt-0

    https://jam.dev/c/178878cb-e600-4370-94d5-c8c12c8fe0d5

    Fixes twentyhq#4460

    ---------

    Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
    Co-authored-by: v1b3m <vibenjamin6@gmail.com>
    Co-authored-by: Matheus <matheus_benini@hotmail.com>

commit de438b0
Author: Thomas Trompette <thomas.trompette@sfr.fr>
Date:   Mon May 13 18:00:13 2024 +0200

    Add stripe connection option (twentyhq#5372)

    - Refactor creation and edition form so it handles stripe integration
    and not only postgres
    - Add a hook `useIsSettingsIntegrationEnabled` to avoid checking feature
    flags everywhere
    - Add zod schema for stripe

    <img width="250" alt="Capture d’écran 2024-05-13 à 12 41 52"
    src="https://github.com/twentyhq/twenty/assets/22936103/a77e7278-5d79-4f95-bddb-ae9ddd1426eb">
    <img width="250" alt="Capture d’écran 2024-05-13 à 12 41 59"
    src="https://github.com/twentyhq/twenty/assets/22936103/d617dc6a-31a4-43c8-8192-dbfb7157de1c">
    <img width="250" alt="Capture d’écran 2024-05-13 à 12 42 08"
    src="https://github.com/twentyhq/twenty/assets/22936103/c4e2d0e4-f826-436d-89be-4d1679a27861">

    ---------

    Co-authored-by: Thomas Trompette <thomast@twenty.com>

commit b9154f3
Author: Marie <51697796+ijreilly@users.noreply.github.com>
Date:   Mon May 13 17:43:51 2024 +0200

    Enable deletion of relation fields (twentyhq#5338)

    In this PR
    1. Enable deletion of relation fields in the product and via the api
    (migration part was missing in the api)
    3. Change wording, only use "deactivate" and "delete" everywhere (and
    not a mix of the two + "disable", "erase")

commit 0018ec7
Author: martmull <martmull@hotmail.fr>
Date:   Mon May 13 14:50:27 2024 +0200

    4840 multi workspace update user userworkspace inconsistent on delete set null constraint (twentyhq#5373)

commit 8576127
Author: martmull <martmull@hotmail.fr>
Date:   Mon May 13 14:18:45 2024 +0200

    Add migration to restrict users without workspaces (twentyhq#5369)

    - update set null ON DELETE constraint to RESTRICT
    - update missing updates

commit 1ac8abb
Author: martmull <martmull@hotmail.fr>
Date:   Mon May 13 10:23:32 2024 +0200

    5188 bug some canceled subscriptions are billed (twentyhq#5254)

    When user is deleting its account on a specific workspace, we remove it
    as if it was a workspaceMember, and if no workspaceMember remains, we
    delete the workspace and the associated stripe subscription

commit 92acfe5
Author: Thomas Hillesøy <thomas.hillesoy@gmail.com>
Date:   Mon May 13 09:55:57 2024 +0200

    feat: Currencies NOK and SEK (twentyhq#5359)

    Related to twentyhq#5351 and twentyhq#5353

    Adding both currencies NOK and SEK, using icon
    https://tabler.io/icons/icon/currency-krone-swedish

    ---------

    Co-authored-by: Félix Malfait <felix.malfait@gmail.com>

commit 4a7aabd
Author: Ady Beraud <102751374+ady-beraud@users.noreply.github.com>
Date:   Mon May 13 10:55:30 2024 +0300

    Added GitHub init (twentyhq#5317)

    - Added github:init to allow full import, as opposed to gitHub:sync
    which allows partial sync and therefore respecting Github API Limit
    quota.

    ---------

    Co-authored-by: Ady Beraud <a.beraud96@gmail.com>

commit 321ce72
Author: Mohamed Muhsin <62111075+muhsinkamil@users.noreply.github.com>
Date:   Mon May 13 08:16:51 2024 +0200

    Add new Currencies with Corresponding Icons (twentyhq#5353)

    ### **Description**
    Add 3 new currencies

    ### **Refs**
    twentyhq#5351

    ### **Demo**
    <img width="678" alt="Screenshot 2024-05-11 at 1 30 55 AM"
    src="https://github.com/twentyhq/twenty/assets/62111075/cc88ba46-cc5a-41d6-baf8-c28851c629ae">

commit eb2b896
Author: brendanlaschke <brendan.laschke@googlemail.com>
Date:   Mon May 13 08:14:47 2024 +0200

    Releases page (twentyhq#5346)

    closes twentyhq#4103

    <img width="696" alt="Bildschirmfoto 2024-05-10 um 08 16 19"
    src="https://github.com/twentyhq/twenty/assets/48770548/e34cd348-2522-408c-886c-636595292e0f">

commit 86caf00
Author: Brandon Yee <139765638+brandonyee-cs@users.noreply.github.com>
Date:   Sat May 11 03:30:03 2024 -0400

    Update README.md (twentyhq#5345)

    Fixed Grammar

commit 0fb416d
Author: Thaïs <guigon.thais@gmail.com>
Date:   Fri May 10 18:31:22 2024 +0200

    fix: fix field select options positions after option removal (twentyhq#5350)

    - Adds an util `toSpliced`. We cannot used the native Javascript
    `Array.prototype.toSpliced` method as Chromatic servers don't support
    it.
    - Makes sure Select field options have sequential positions after
    removing an option (form validation schema checks that positions are
    sequential and considers options invalid otherwise).

commit 72521d5
Author: Marie <51697796+ijreilly@users.noreply.github.com>
Date:   Fri May 10 18:18:39 2024 +0200

    Disable save button while submitting form in settings  (twentyhq#5352)

    as per title

commit ae0e31a
Author: Marie <51697796+ijreilly@users.noreply.github.com>
Date:   Fri May 10 13:56:41 2024 +0200

    Bump versions to 0.11.2 (twentyhq#5349)

commit 999a668
Author: Marie <51697796+ijreilly@users.noreply.github.com>
Date:   Fri May 10 13:00:24 2024 +0200

    [fix] Do not stringify json field value if null (twentyhq#5348)

    as per title

    https://github.com/twentyhq/twenty/assets/51697796/74ff0185-f20c-4ff1-9d89-3078063f23e1

commit 8590bd7
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Fri May 10 10:26:46 2024 +0200

    Refactor default value for select (twentyhq#5343)

    In this PR, we are refactoring two things:
    - leverage field.defaultValue for Select and MultiSelect settings form
    (instead of option.isDefault)
    - use quoted string (ex: "'USD'") for string default values to embrace
    backend format

    ---------

    Co-authored-by: Thaïs Guigon <guigon.thais@gmail.com>

commit 7728c09
Author: Thaïs <guigon.thais@gmail.com>
Date:   Thu May 9 01:56:15 2024 +0200

    fix: fix several field bugs (twentyhq#5339)

    After discussing with @charlesBochet, several fixes are needed on
    fields:
    - [x] Disable Boolean field `defaultValue` edition for now (On
    `defaultValue` update, newly created records are not taking the updated
    `defaultValue` into account. Setting the `defaultValue` on creation is
    fine.)
    - [x] Disable Phone field creation for now
    - [x] For the Person object, display the "Phone" field as a field of
    type Phone (right now its type is Text; later we'll migrate it to a
    proper Phone field).
    - [x] Fix RawJson field display (displaying `[object Object]` in Record
    Table cells).
    - [x] In Settings/Data Model, on Relation field creation/edition,
    "Object destination" select is not working properly if an object was not
    manually selected (displays Companies by default but creates a relation
    to another random object than Companies).

commit 005045c
Author: Thaïs <guigon.thais@gmail.com>
Date:   Wed May 8 12:13:34 2024 +0200

    fix: fix Settings field form validation for certain field types (twentyhq#5335)

    Related to twentyhq#4295

    Following twentyhq#5326, field types other than:
    - `FieldMetadataType.Boolean`
    - `FieldMetadataType.Currency`
    - `FieldMetadataType.Relation`
    - `FieldMetadataType.Select`
    - `FieldMetadataType.MultiSelect`

    Cannot be saved as they are not included in the form validation schema.
    This PR makes sure they are included and can therefore be
    created/edited.

commit 8c85e7b
Author: Thaïs <guigon.thais@gmail.com>
Date:   Wed May 8 11:51:09 2024 +0200

    fix: fix storybook:build cache output path (twentyhq#5336)

commit 863554b
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Wed May 8 09:28:28 2024 +0200

    Fix storybook (twentyhq#5334)

    Fixing the last broken stories, tests should be back to green!

commit 770ee11
Author: Indrakant D <60315832+its-id@users.noreply.github.com>
Date:   Wed May 8 12:23:26 2024 +0530

    fix: Blue Button Secondary Color Issue in Dark Mode (twentyhq#5333)

    fixes
    [twentyhq#5305](twentyhq#5305 (comment))

    light mode:

    <img width="738" alt="Screenshot 2024-05-08 at 2 24 41 AM"
    src="https://github.com/twentyhq/twenty/assets/60315832/de01bbfa-6b54-4149-9930-b38840483ddf">

    <br>
    <br>

    dark mode

    <img width="735" alt="Screenshot 2024-05-08 at 2 24 55 AM"
    src="https://github.com/twentyhq/twenty/assets/60315832/7c2bbc3e-e999-42ff-a320-8bf84bce8384">

commit eef497c
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Wed May 8 01:49:49 2024 +0200

    Fix front jest tests (twentyhq#5331)

commit bb995d5
Author: Thaïs <guigon.thais@gmail.com>
Date:   Tue May 7 21:07:56 2024 +0200

    refactor: use react-hook-form for Field type config forms (twentyhq#5326)

    Closes twentyhq#4295

    Note: for the sake of an easier code review, I did not rename/move some
    files and added "todo" comments instead so Github is able to match those
    files with their previous version.

commit b7a2e72
Author: Thaïs <guigon.thais@gmail.com>
Date:   Tue May 7 21:05:45 2024 +0200

    fix: fix storybook pages tests coverage (twentyhq#5319)

commit ce4e78a
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Tue May 7 21:04:45 2024 +0200

    Fix Rest API id UUID error (twentyhq#5321)

    A user has reported an issue with REST API.
    We have recently migrated the graphql IDs from UUID to ID type. As Rest
    API is leveraging the graphql API under the hood, the Rest API query
    builder should be updated accordingly

commit b691894
Author: Weiko <corentin@twenty.com>
Date:   Tue May 7 21:03:15 2024 +0200

    Fix query runner throwing 500 when pg_graphql detects unique constraint (twentyhq#5323)

    ## Context
    Since pg_graphql does not return specific error/exception, we have to
    map the error message and throw validation errors when needed
    This PR adds a check on unicity constraint error returned by pg_graphql
    when we are trying to insert duplicate records and returns a 400 instead
    of being handled by the exceptionHandler as a 500.

commit e802cef
Author: Weiko <corentin@twenty.com>
Date:   Tue May 7 20:54:10 2024 +0200

    Fix 400 yoga errors being sent to exception handlers (twentyhq#5322)

    ## Context
    Yoga can catch its own errors and we don't want to convert them again.
    Moreover those errors don't have an "originalError" property and should
    be schema related only (400 validation) so we only want to send them
    back to the API caller without going through the exception handler.

    Also fixed an issue in the createMany which was throwing a 500 when id
    was missing from the creation payload. It seems the FE is always sending
    an ID but it should actually be optional since the DB can generate one.
    This is a regression from the new UUID validation introduced a few weeks
    ago.

commit 6edecf7
Author: Jeet Desai <52026385+jeet1desai@users.noreply.github.com>
Date:   Wed May 8 00:22:25 2024 +0530

    Fix: Icon position alignment right to left in chip (twentyhq#5330)

    Fixes twentyhq#5298

    ![image](https://github.com/twentyhq/twenty/assets/52026385/6cfcc380-bdd1-4d7b-a0c7-58434d610ace)

commit 7c3e828
Author: Marie <51697796+ijreilly@users.noreply.github.com>
Date:   Tue May 7 16:30:25 2024 +0200

    [fix] Increment cache version after object/field/relation update (twentyhq#5316)

    Fixes twentyhq#5276.

    Updates were not triggering a cache version incrementation because they
    do not trigger migrations while that is where the caching version logic
    was.
    We have decided to move the cache incrementation logic to the services.

commit b0d1cc9
Author: Thaïs <guigon.thais@gmail.com>
Date:   Tue May 7 15:05:18 2024 +0200

    feat: add links to Links field (twentyhq#5223)

    Closes twentyhq#5115, Closes twentyhq#5116

    <img width="242" alt="image"
    src="https://github.com/twentyhq/twenty/assets/3098428/ab78495a-4216-4243-8de3-53720818a09b">

    ---------

    Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>

commit 8074aae
Author: Weiko <corentin@twenty.com>
Date:   Tue May 7 14:08:20 2024 +0200

    Split job modules (twentyhq#5318)

    ## Context
    JobsModule is hard to maintain because we provide all the jobs there,
    including their dependencies. This PR aims to split jobs in dedicated
    modules.

commit d10efb1
Author: gitstart-twenty <140154534+gitstart-twenty@users.noreply.github.com>
Date:   Tue May 7 20:04:55 2024 +0800

    Add unit tests on object record mutation and query hooks (twentyhq#5014)

    ### Description
    Add unit tests on object record mutation and query hooks

    ### Refs
    twentyhq#4884

    ### Demo
    ![Screenshot 2024-04-18 at 15 16
    19](https://github.com/twentyhq/twenty/assets/140154534/c75f716a-725e-43eb-a703-3db29065fb18)

    Fixes twentyhq#4884

    ---------

    Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
    Co-authored-by: v1b3m <vibenjamin6@gmail.com>
    Co-authored-by: Thiago Nascimbeni <tnascimbeni@gmail.com>
    Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>
    Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>

commit d0759ad
Author: Thaïs <guigon.thais@gmail.com>
Date:   Tue May 7 11:44:46 2024 +0200

    refactor: use react-hook-form to validate Settings/DataModel/Field (twentyhq#4916)

    Closes twentyhq#4295

commit 9c25c1b
Author: Thomas des Francs <tdesfrancs@gmail.com>
Date:   Tue May 7 11:08:25 2024 +0200

    Added the 0.11 release changelog (twentyhq#5300)

    Added illustrations & descriptions

commit a10290e
Author: Sean Hellwig <147074+seanhellwig@users.noreply.github.com>
Date:   Tue May 7 03:07:51 2024 -0600

    Adds no-debugger rule to root eslint config file (twentyhq#5312)

commit ffd804d
Author: Weiko <corentin@twenty.com>
Date:   Tue May 7 11:07:20 2024 +0200

    Fix convertRecordPositionsToIntegers command for camelCase tables (twentyhq#5315)

    ## Context
    Per title, postgresql will use lowercase if not surrounded by quotes

commit 3052b49
Author: Ady Beraud <102751374+ady-beraud@users.noreply.github.com>
Date:   Tue May 7 09:59:56 2024 +0300

    Fixed incomplete GitHub sync (twentyhq#5310)

    - Added await when fetching Github data to prevent the process from
    exiting before saving to database

    Co-authored-by: Ady Beraud <a.beraud96@gmail.com>

commit 43cd8cc
Author: Ady Beraud <102751374+ady-beraud@users.noreply.github.com>
Date:   Tue May 7 09:59:03 2024 +0300

    Modified URLs and added button to share on LinkedIn (twentyhq#5306)

    - Removed the env variable and added the current URL in contributor's
    page
    - Added button to share on LinkedIn on contributor's profile
    - Fixed absolute image URL for release API

    ---------

    Co-authored-by: Ady Beraud <a.beraud96@gmail.com>

commit b438fc2
Author: Ady Beraud <102751374+ady-beraud@users.noreply.github.com>
Date:   Tue May 7 09:35:54 2024 +0300

    Fix github stars endpoint (twentyhq#5301)

    - Encapsulated GitHub star response in an object
    - Fixed rounding of Github stars to align with Github convention
    - Fixed CORS issue so that endpoint can be called from twenty.com and
    app.twenty.com

    Co-authored-by: Ady Beraud <a.beraud96@gmail.com>

commit a2017ea
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Mon May 6 23:43:18 2024 +0200

    Improve messaging/calendar create contact performance (twentyhq#5314)

    In this PR, I'm refactoring the way we associate messageParticipant post
    person/company creation. Instead of looking a all person without
    participant, we are passing the one that were just created.

    Also, I'm making sure the message and messageParticipant creation
    transaction is commited before creating person/company creation (and
    then messageParticipant association)

commit 5f467ab
Author: Sean Hellwig <147074+seanhellwig@users.noreply.github.com>
Date:   Mon May 6 11:45:14 2024 -0600

    Removes erroneous debugger call in twenty-front (twentyhq#5311)

    Erroneous debugger call throws an error in twenty-front app console

    ---------

    Co-authored-by: Weiko <corentin@twenty.com>

commit 16ae34d
Author: Thaïs <guigon.thais@gmail.com>
Date:   Mon May 6 17:49:53 2024 +0200

    fix: fix Chromatic script memory allocation in CI (twentyhq#5299)

commit 2c9f50e
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Mon May 6 17:00:38 2024 +0200

    Fix enum defaultValue issues (twentyhq#5307)

    This PR fixes several issues:
    - enum naming should be: {tableName}_{fieldName}_enum and respecting the
    case
    - defaultValue format handled in the FE should respect the one in the BE

    In my opinion we should refactor the defaultValue:
    - we should respect backend format: "'myDefault'" for constant default
    and "0" for float, "now" for expressions, "true" for booleans. we can
    rename it to defaultValueExpression if it is more clear but we should
    not maintain a parallel system
    - we should deprecate option: isDefaultValue which is confusing
    - we should re-work backend to have a more unified approach between
    fields and avoid having if everywhere about select, multiselect, and
    currency cases. one unified "computeDefaultValue" function should do the
    job

    What is still broken:
    - currency default Value on creation. I think we should do the refactor
    first
    - select default value edition.
    These cases do not break the schema but are ignored currently

commit ff77a4e
Author: Pacifique LINJANJA <pacilinja2@gmail.com>
Date:   Mon May 6 15:30:03 2024 +0200

    Feat/migrate password reset token to app token table (twentyhq#5051)

    # This PR

    - Fix twentyhq#5021
    - Migrates `passwordResetToken` and `passwordResetTokenExpiresAt` fields
    from `core.users` to `core.appToken`
    - Marks those fields as `deprecated` so we can remove them later if we
    are happy with the transition -- I took this decision on my own,
    @FellipeMTX let me know what you think about it, we can also remove them
    straight away if you think it's better
    - Fixed the `database:migration` script from the `twenty-server` to:
    ```json
        "database:migrate": {
          "executor": "nx:run-commands",
          "dependsOn": ["build"], // added this line
          "options": {
            "cwd": "packages/twenty-server",
            "commands": [
              "nx typeorm -- migration:run -d src/database/typeorm/metadata/metadata.datasource",
              "nx typeorm -- migration:run -d src/database/typeorm/core/core.datasource"
            ],
            "parallel": false
          }
        },
    ```
    The migration script wasn't running because the builds were not executed
    - [x] Added unit tests for the token.service file's changes

    Looking forward to hearing feedback from you

    cc: @charlesBochet

    ---------

    Co-authored-by: Weiko <corentin@twenty.com>

commit b207d10
Author: Jérémy M <jeremy.magrin@gmail.com>
Date:   Mon May 6 14:12:11 2024 +0200

    feat: extend twenty orm (twentyhq#5238)

    This PR is a follow up of PR twentyhq#5153.
    This one introduce some changes on how we're querying composite fields.
    We can do:

    ```typescript
    export class CompanyService {
      constructor(
        @InjectWorkspaceRepository(CompanyObjectMetadata)
        private readonly companyObjectMetadataRepository: WorkspaceRepository<CompanyObjectMetadata>,
      ) {}

      async companies(): Promise<CompanyObjectMetadata[]> {
        // Old way
        // const companiesFilteredByLinkLabel = await this.companyObjectMetadataRepository.find({
        //   where: { xLinkLabel: 'MyLabel' },
        // });
        // Result will return xLinkLabel property

        // New way
        const companiesFilteredByLinkLabel = await this.companyObjectMetadataRepository.find({
          where: { xLink: { label:  'MyLabel' } },
        });
        // Result will return { xLink: { label: 'MyLabel' } } property instead of  { xLinkLabel: 'MyLabel' }

        return companiesFilteredByLinkLabel;
      }
    }
    ```

    Also we can now inject `TwentyORMManage` class to manually create a
    repository based on a given `workspaceId` using
    `getRepositoryForWorkspace` function that way:

    ```typescript
    export class CompanyService {
      constructor(
        // TwentyORMModule should be initialized
        private readonly twentyORMManager,
      ) {}

      async companies(): Promise<CompanyObjectMetadata[]> {
        const repository = await this.twentyORMManager.getRepositoryForWorkspace(
          '8bb6e872-a71f-4341-82b5-6b56fa81cd77',
          CompanyObjectMetadata,
        );

        const companies = await repository.find();

        return companies;
      }
    }
    ```

commit 154ae99
Author: Weiko <corentin@twenty.com>
Date:   Mon May 6 13:44:40 2024 +0200

    [flexible-schema] Add reserved keyword check on object creation (twentyhq#5303)

    ## Context
    Because creating an object in metadata also generates a graphql type and
    because graphql does not allow 2 types with the same name, we have to
    manage a list of reserved keywords that can't be used as object names.

    Currently we were maintaining a list of the core objects but we also
    have to introduce composite fields that are also generated as gql types.

commit 2828492
Author: Aditya Pimpalkar <adipimpalkar@gmail.com>
Date:   Mon May 6 10:33:48 2024 +0100

    chore: add nx/project.json to twenty-chrome-extension (twentyhq#5217)

    Fix for `build` CI on `twenty-chrome-extension`

    ---------

    Co-authored-by: Thaïs Guigon <guigon.thais@gmail.com>

commit a1c95b9
Author: Orinami Olatunji <16918891+orinamio@users.noreply.github.com>
Date:   Mon May 6 09:48:34 2024 +0100

    feat: add sign out and book a call buttons to "Choose your plan" page (twentyhq#5292)

    Resolves twentyhq#5281

    <img width="399" alt="buttions-light"
    src="https://github.com/twentyhq/twenty/assets/16918891/d1a0ba4e-696e-476b-a792-01ae19a06a55">
    <img width="390" alt="buttons-dark"
    src="https://github.com/twentyhq/twenty/assets/16918891/40bea83b-bc32-45ea-a522-ecf8239cfe51">

commit 77c0dee
Author: martmull <martmull@hotmail.fr>
Date:   Sat May 4 15:21:37 2024 +0200

    Add missing info from verify mutation (twentyhq#5283)

    Fix wrong error billing message

commit fc87a51
Author: Thaïs <guigon.thais@gmail.com>
Date:   Fri May 3 19:19:21 2024 +0200

    fix: fix storybook:build memory allocation error in CI (twentyhq#5284)

commit 839a7e2
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Fri May 3 19:11:03 2024 +0200

    Bump versions to 0.11 (twentyhq#5289)

    As per title!
    Bumping to 0.11.1 as we have already merged a few minor upgrades on top
    of 0.11

commit 6fda556
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Fri May 3 19:10:55 2024 +0200

    Fix Filtered index view infinite re-render (twentyhq#5286)

    The whole viewBar component was re-rendered on view changes which was
    introducing performance issue. The need was to compute page title, this
    should be done in a lower level component

commit a750901
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Fri May 3 19:10:33 2024 +0200

    Remove Feature Flag on Calendar (twentyhq#5288)

    Remove Calendar feature Flag!

commit 381bf0f
Author: Weiko <corentin@twenty.com>
Date:   Fri May 3 19:05:56 2024 +0200

    Create convert record positions to integers command (twentyhq#5287)

    ## Context
    Positions are used within a view to display and sort the different
    records of standard/custom object.
    When we add a new record and want to put it before the existing first
    record, we have to use float values to insert them in the DB and respect
    the desired order. We are adding a new command that can be executed to
    flatten those positions.

    ---------

    Co-authored-by: bosiraphael <raphael.bosi@gmail.com>

commit abf0f46
Author: Weiko <corentin@twenty.com>
Date:   Fri May 3 18:47:31 2024 +0200

    Fix yoga patch user id cache (twentyhq#5285)

    Co-authored-by: Charles Bochet <charles@twenty.com>

commit 2067069
Author: Ady Beraud <102751374+ady-beraud@users.noreply.github.com>
Date:   Fri May 3 17:38:41 2024 +0300

    Added OG Image (twentyhq#5251)

    - Added dynamic OG Image to share and download in contributors page

    <img width="1176" alt="Screenshot 2024-05-02 at 16 24 00"
    src="https://github.com/twentyhq/twenty/assets/102751374/0579454b-ccc7-46ba-9875-52458f06ee82">

    - Added dynamic metadata

    - Added design to contributor page

    - Added a NEXT_PUBLIC_HOST_URL in the .env file

    Co-authored-by: Ady Beraud <a.beraud96@gmail.com>

commit a5a9e0e
Author: Thomas Trompette <thomas.trompette@sfr.fr>
Date:   Fri May 3 16:30:58 2024 +0200

    Remove isMultiSelect feature flag (twentyhq#5280)

    As title

    Co-authored-by: Thomas Trompette <thomast@twenty.com>

commit 5285a42
Author: Thomas Trompette <thomas.trompette@sfr.fr>
Date:   Fri May 3 16:14:37 2024 +0200

    Fix export with relations (twentyhq#5279)

    As title. Only relations are exported right now

    Co-authored-by: Thomas Trompette <thomast@twenty.com>

commit 1d9cd23
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Fri May 3 15:35:49 2024 +0200

    Fix white screen on token expire (twentyhq#5271)

    While using middleware (executed pre-graphql) for graphql endpoint, we
    need to swallow exception and return errors with a 200. Otherwise it's
    not a valid graphql response

commit 2a0c74a
Author: Weiko <corentin@twenty.com>
Date:   Fri May 3 15:32:34 2024 +0200

    [calendar] Fix calendar sync status (twentyhq#5272)

    ## Context
    There is no calendarChannel syncStatus column compared to the
    messageChannel table. In the meantime, we are trying to infer its status
    based on the fact that the connection hasn't failed and the sync is
    enabled

commit 87994c2
Author: martmull <martmull@hotmail.fr>
Date:   Fri May 3 15:03:06 2024 +0200

    4900 multi select field front implement expanded cells (twentyhq#5151)

    Add expanded cell

    https://github.com/twentyhq/twenty/assets/29927851/363f2b44-7b3c-4771-a651-dfc4014da6ac

    ![image](https://github.com/twentyhq/twenty/assets/29927851/741bb0f9-fd1e-4a38-8b0e-71e144376876)

commit 1351a95
Author: Thaïs <guigon.thais@gmail.com>
Date:   Fri May 3 14:59:09 2024 +0200

    fix: fix storybook coverage task (twentyhq#5256)

    - Fixes storybook coverage command: the coverage directory path was
    incorrect, but instead of failing `storybook:test --configuration=ci`,
    it was hanging indefinitely.
    - Switches back to `concurrently` to launch `storybook:static` and
    `storybook:test` in parallel, which allows to use options to explicitly
    kill `storybook:static` when `storybook:test` fails.
    - Moves `storybook:test --configuration=ci` to its own command
    `storybook:static:test`: used in the CI, and can be used locally to run
    storybook tests without having to launch `storybook:dev` first.
    - Creates command `storybook:coverage` and enables cache for this
    command.
    - Fixes Jest tests that were failing.
    - Improves caching conditions for some tasks (for instance, no need to
    invalidate Jest test cache if only Storybook story files were modified).

commit 5042186
Author: Weiko <corentin@twenty.com>
Date:   Fri May 3 14:52:20 2024 +0200

    Fix filter transform with logic operators (twentyhq#5269)

    Various fixes

    - Remote objects are read-only for now, we already hide and block most
    of the write actions but the button that allows you to add a new record
    in an empty collection was still visible.
    - CreatedAt is not mandatory on remote objects (at least for now) so it
    was breaking the show page, it now checks if createdAt exists and is not
    null before trying to display the human readable format `Added x days
    ago`
    - The filters are overwritten in query-runner-args.factory.ts to handle
    NUMBER field type, this was only working with filters like
    ```
          {
            "id": {
              "in": [
                1
              ]
            }
    ```
    but not with more depth such as
    ```
        "and": [
          {},
          {
            "id": {
              "in": [
                1
              ]
            }
          }
        ]
     ```
    - Fixes CREATE FOREIGN TABLE raw query which was missing ",".

commit 30ffe01
Author: Weiko <corentin@twenty.com>
Date:   Fri May 3 10:30:47 2024 +0200

    Fix token validation on graphql IntrospectionQuery (twentyhq#5255)

    ## Context
    We recently introduced a change that now throws a 401 if the token is
    invalid or expired.
    The first implementation is using an allow list and 'IntrospectionQuery'
    was missing so the playground was broken.

    The check has been updated and we now only check the excludedOperations
    list if a token is not present. This is because some operations can be
    both used as loggedIn and loggedOut so we want to validate the token for
    those sometimes (and set the workspace, user, cache version, etc). Still
    not a very clean solution imho.

commit 1430a67
Author: Félix Malfait <felix.malfait@gmail.com>
Date:   Fri May 3 09:38:03 2024 +0200

    Quick job update (twentyhq#5265)

commit fe758e1
Author: Weiko <corentin@twenty.com>
Date:   Thu May 2 17:36:57 2024 +0200

    fix workspace-member deletion with existing attachments/documents (twentyhq#5232)

    ## Context
    We have a non-nullable constraint on authorId in attachments and
    documents, until we have soft-deletion we need to handle deletion of
    workspace-members and their attachments/documents.
    This PR introduces pre-hooks to deleteOne/deleteMany
    This is called when a user deletes a workspace-member from the members
    page

    Next: needs to be done on user level as well. This is called when users
    try to delete their own accounts. I've seen other issues such as
    re-creating a user with a previously used email failing.

commit f9c19c8
Author: Thomas Trompette <thomas.trompette@sfr.fr>
Date:   Thu May 2 17:13:15 2024 +0200

    Build stripe integration on backend side (twentyhq#5246)

    Adding stripe integration by making the server logic independent of the
    input fields:
    - query factories (remote server, foreign data wrapper, foreign table)
    to loop on fields and values without hardcoding the names of the fields
    - adding stripe input and type
    - add the logic to handle static schema. Simply creating a big object to
    store into the server

    Additional work:
    - rename username field to user. This is the input intended for postgres
    user mapping and we now need a matching by name

    ---------

    Co-authored-by: Thomas Trompette <thomast@twenty.com>

commit 5128ea3
Author: Thaïs <guigon.thais@gmail.com>
Date:   Thu May 2 16:15:36 2024 +0200

    fix: fix storybook build script not found by Chromatic (twentyhq#5235)

commit f802964
Author: Charles Bochet <charles@twenty.com>
Date:   Thu May 2 15:55:11 2024 +0200

    Bump to 0.10.6

commit 3015f4c
Author: Charles Bochet <charlesBochet@users.noreply.github.com>
Date:   Thu May 2 15:50:40 2024 +0200

    Fix sync metadata script (twentyhq#5253)

    While troubleshooting self-hosting migration, we run into issues with
    sync-metadata script introduced by recent changes

commit 8d90c60
Author: Weiko <corentin@twenty.com>
Date:   Thu May 2 15:47:43 2024 +0200

    [calendar] hide calendar settings until implemented (twentyhq#5252)

    ## Context
    Those settings are not implemented yet, we would like to move them to a
    different page as well.
    In the meantime, we are hiding them since we plan to launch calendar in
    the next release and this won't be implemented before.

    We will implement it in this
    twentyhq#5140

commit 1da64c7
Author: Marie <51697796+ijreilly@users.noreply.github.com>
Date:   Thu May 2 15:25:54 2024 +0200

    [feat] Minor updates to the edit db connection page (twentyhq#5250)

    - Add placeholders in db connection edit page
    - Fix icon alignement and size (should not change) in Info banner

commit 05a90d6
Author: brendanlaschke <brendan.laschke@googlemail.com>
Date:   Thu May 2 14:21:19 2024 +0200

    Constant api version (twentyhq#5248)

    closes twentyhq#5206
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope: front Issues that are affecting the frontend side only
Projects
Status: ✅ Done
2 participants
@thaisguigon and others