02673a82af
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 >
2024-04-01 13:12:37 +02:00
da8f1b0a66
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 >
2024-03-30 11:38:08 +01:00
1d351a29b8
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 >
2024-03-29 18:23:58 +01:00
68977dc675
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
2024-03-29 10:03:00 +01:00
1829f4d009
Switch timestamp to timestamptz ( #4696 )
...
* Switch timestamps to timestamptz
* update standard/custom objects logic to use timestamptz
* fix test
2024-03-28 22:39:41 +01:00
27fdb00d07
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
2024-03-28 17:59:48 +01:00
3171d0c87b
feat: address composite field ( #4492 )
...
Added new Address field input type.
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2024-03-28 16:50:38 +01:00
22d4af2e0c
Fix events being created for system objects ( #4694 )
...
* Fix events being created for system objects
* move the condition above to avoid unnecessary db calls
2024-03-28 16:15:14 +01:00
0cc0929bd0
Rename refreshToken to appToken and add fields ( #4691 )
2024-03-28 14:07:12 +01:00
0391bf65f2
feat: Oauth with PKCE ( #4648 )
...
* authorizeApp and exchangeAuthcode methods
* module rename
* import fix
* lint fix
* fix import
2024-03-27 21:18:07 +01:00
d687523e22
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 >
2024-03-27 19:44:35 +01:00
416eb1eafd
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
2024-03-27 15:17:45 +01:00
5c40e3608b
[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
2024-03-27 12:44:03 +01:00
5c0b65eecb
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
2024-03-27 10:56:04 +01:00
f08dfec00a
Fix encryption logic ( #4672 )
...
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-03-26 17:43:32 +01:00
d4eb75abff
Add isRemote field on object metadata ( #4668 )
...
Add isRemote field
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-03-26 16:49:18 +01:00
3acec7731c
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
2024-03-26 16:16:29 +01:00
ab028b8c22
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
2024-03-26 16:10:45 +01:00
279d99487c
Fetch available remote tables ( #4665 )
...
* Build remote table module
* Use transactions
* Export url builder in util
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-03-26 15:50:41 +01:00
c54acb35b6
Update Dev Seeds to use Ids ( #4663 )
2024-03-26 14:19:40 +01:00
6ab43c608f
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
2024-03-25 18:06:46 +01:00
04c5d066f8
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
2024-03-25 16:58:58 +01:00
9e70f5b650
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 >
2024-03-25 15:21:23 +01:00
3ea8589c0d
Fix event relation with custom objects
2024-03-22 20:21:02 +01:00
161137e87a
Add events on Custom objects ( #4625 )
2024-03-22 20:02:00 +01:00
96cad2accd
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
2024-03-22 18:44:14 +01:00
1a763263c9
Add workspaceId option on standard-id migration script
2024-03-22 18:20:49 +01:00
41aae5bd20
Fix authentication resolver
2024-03-22 17:47:51 +01:00
4ae67318ab
Fix broken worker ( #4618 )
2024-03-22 16:43:13 +01:00
6713ac589d
Object creation triggers view creation
2024-03-22 16:39:55 +01:00
4a493b6ecf
New view picker ( #4610 )
...
* Implement new view picker
* Complete feature
* Fixes according to review
2024-03-22 15:04:17 +01:00
d876b40056
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 >
2024-03-22 14:01:16 +01:00
3fa8c4bace
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
2024-03-21 18:08:27 +01:00
8e4123e772
48 add yearly monthly sub switch ( #4577 )
2024-03-21 10:47:25 +01:00
e5c1309e8c
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
2024-03-20 16:23:46 +01:00
da12710fe9
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 >
2024-03-20 14:43:41 +01:00
cfb0cce9b8
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
2024-03-20 14:21:58 +01:00
35d41e38c8
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 >
2024-03-20 07:04:07 +01:00
4bfb90657f
Add JSON field type and Event object ( #4566 )
...
* Add JSON field type and Event object
* Simplify code
* Adress PR comments and add featureFlag
2024-03-19 21:54:08 +01:00
4ab426c52a
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
2024-03-19 18:34:00 +01:00
e579554d47
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 >
2024-03-19 16:39:53 +01:00
bdbd77c696
Cleanup default values and leftover methods in environmentService ( #4550 )
...
* Cleanup default values and leftover methods in environmentService
* Adress remainings configService calls
2024-03-18 17:09:39 +01:00
8fb1ab8933
[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
2024-03-18 16:26:23 +01:00
411aac5efc
Remove demo guard for mail api ( #4527 )
...
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-03-18 14:05:35 +01:00
eb07b373a7
Fix storage s3 endpoint not being optional
2024-03-15 23:08:30 +01:00
dc9b84114a
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
2024-03-15 20:05:35 +01:00
8980cc576c
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 >
2024-03-15 19:15:22 +01:00
2c09096edd
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 >
2024-03-15 18:37:09 +01:00
94487f6737
feat: refactor folder structure ( #4498 )
...
* feat: wip refactor folder structure
* Fix
* fix position
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-03-15 14:40:58 +01:00