Commit Graph

595 Commits

Author SHA1 Message Date
Weiko
214807588a
[messaging] clean orphan threads and messages after connected account deletion (#4195)
* [messaging] add connected account associated data delete

* add threadCleanerService

* fix

* fix import

* add thread cleaner import

* remove log
2024-02-26 21:29:44 +01:00
Charles Bochet
6a1abba9ea
Ignore defaultValue update for select fields (#4193)
* Ignore defaultValue update for select fields

* Fix tests
2024-02-26 18:41:29 +01:00
Charles Bochet
a108d36040
Refactor sign-up into its own service (#4173)
* Refactor sign-up into its own service

* Fix tests
2024-02-25 11:51:17 +01:00
Aditya Pimpalkar
b67957bf94
feat: user can have multiple workspaces (backend) (#4036)
* create user-workspace mapping

* user-workspace service and integration

* invite condition on sign-up/sign-in

* save/update defaultWorkspace on signup

* add unique decorator on user-workspace entity

* remove resolver permissions

* Fixes

* Fixes

* Fix tests

* Fixes

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-25 10:58:14 +01:00
rostaklein
1b04dfe3c6
feat: find duplicate objects init (#4038)
* feat: find duplicate objects backend init

* refactor: move duplicate criteria to constants

* fix: correct constant usage after type change

* feat: skip query generation in case its not necessary

* feat: filter out existing duplicate

* feat: FE queries and hooks

* feat: show duplicates on FE

* refactor: should-skip-query moved to workspace utils

* refactor: naming improvements

* refactor: current record typings/parsing improvements

* refactor: throw error if existing record not found

* fix: domain -> domainName duplicate criteria

* refactor: fieldNames -> columnNames

* docs: add explanation to duplicate criteria collection

* feat: add person linkedinLinkUrl as duplicate criteria

* feat: throw early when bot id and data are empty

* refactor: trying to improve readability of filter criteria query

* refactor: naming improvements

* refactor: remove shouldSkipQuery

* feat: resolve empty array in case of empty filter

* feat: hide whole section in case of no duplicates

* feat: FE display list the same way as relations

* test: basic unit test coverage

* Refactor Record detail section front

* Use Create as input argument of findDuplicates

* Improve coverage

* Fix

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-24 19:12:21 +01:00
martmull
05c206073d
38 add billing webhook endpoint (#4158)
* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* WIP: Add stripe config

* Add controller to get product prices

* Add billing service

* Remove unecessary package

* Simplify stripe service

* Code review returns

* Use nestjs param

* Rename subscription to basePlan

* Rename env variable

* Add checkout endpoint

* Remove resolver

* Merge controllers

* Fix security issue

* Handle missing url error

* Add workspaceId in checkout metadata

* Add BILLING_STRIPE_WEBHOOK_SECRET env variable

* WIP: add webhook endpoint

* Fix body parser

* Create Billing Subscription on payment success

* Set subscriptionStatus active on webhook

* Add useful log

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-24 17:30:32 +01:00
martmull
c96e210ef1
47 add stripe checkout endpoint (#4147)
* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* WIP: Add stripe config

* Add controller to get product prices

* Add billing service

* Remove unecessary package

* Simplify stripe service

* Code review returns

* Use nestjs param

* Rename subscription to basePlan

* Rename env variable

* Add checkout endpoint

* Remove resolver

* Merge controllers

* Fix security issue

* Handle missing url error

* Add workspaceId in checkout metadata
2024-02-24 17:19:51 +01:00
Mohamed Houssein Douici
0fe838d320
fix: forbid creation of objects or fields with certain characters or with forbidden keywords that clashes with pg_graphql (#3957)
* fix: forbid creation of objects or fields with certain characters or with forbidden keywords that clashes with pg_graphql

* refactor: add a decorator for name validation and use it on fields
2024-02-24 12:32:01 +01:00
Thomas Trompette
b1eb0577bc
Build cron for data seed demo (#4142)
* Migrate command to cron

* Put back command using job as well

* Build service and module + move into folder

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-02-24 12:30:12 +01:00
bosiraphael
06c4665a44
4150 i should be able to view my emails even if ive set my account visibility to metadata (#4156)
* improve timeline messaging to allow users to view the threads to which they participated

* working

* improvement

* improvements

* improvements

* fix

* remove unnecessary type
2024-02-23 17:07:49 +01:00
bosiraphael
35a2178cde
4020 timebox improve performances on messages read (#4140)
* adding console.time to monitor queries time

* improve query by removing unnecessary JOIN

* improve queries by removing unnecessary JOINs

* improve queries by removing unnecessary JOINs

* remove console.time

* remove logs

* use groupBy from lodash

* modify SELECT

* Revert "use groupBy from lodash"

This reverts commit 852fd3c193.

* use WorkspaceDataSourceModule
2024-02-23 10:18:16 +01:00
Thomas Trompette
67e27a69ff
Handle relations between same objects (#4137)
* Handle relations between same objects

* Simplify conditions

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-02-23 09:51:42 +01:00
martmull
679456e819
46 add stripe product endpoint (#4133)
* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* WIP: Add stripe config

* Add controller to get product prices

* Add billing service

* Remove unecessary package

* Simplify stripe service

* Code review returns

* Use nestjs param

* Rename subscription to basePlan

* Rename env variable
2024-02-22 20:11:26 +01:00
Weiko
d5e8844521
Fix referential_constraints health check (#4139) 2024-02-22 16:33:19 +01:00
Weiko
70511dc860
Add writeLog for relation update sync metadata (#4136)
* Add writeLog for relation update sync metadata

* fix health check
2024-02-22 16:02:13 +01:00
bosiraphael
4e798ba2a3
3933 filter non work email from auto contact creation (#4131)
* use isWorkEmail

* working

* improvement

* Refactor lodash import in create-companies-and-contacts.service.ts

* refactor lodash import
2024-02-22 15:25:14 +01:00
Charles Bochet
fa02a478a5 Fix server import case 2024-02-22 11:51:18 +01:00
Weiko
8425ce4987
Add onDeleteAction to RelationMetadata (#4100)
* Add onDeleteAction to relationMetadata

* rename to SET NULL

* fix migration

* fix migration

* fix after review
2024-02-22 10:27:15 +01:00
Jérémy M
e69c462b70
feat: allow backend to rename field of custom object (#4097)
* feat: allow backend to rename field of custom object

* feat: allow custom field label edition in Settings

Closes #4080

* fix: avoid renaming standard fields

---------

Co-authored-by: Thaïs Guigon <guigon.thais@gmail.com>
2024-02-21 18:59:51 +01:00
martmull
d4fac2ea70
45 create billing core tables (#4096)
* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table
2024-02-21 18:17:09 +01:00
Thomas Trompette
161d02620a
Fix developers url and remove webhook url error (#4120)
Fix developers url + remove webhook url error

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-02-21 16:25:35 +01:00
Jérémy M
e3e940327e
fix: workspace health undefined relation (#4107) 2024-02-21 15:36:18 +01:00
bosiraphael
ee7c1fbf5c
4008 dont create a contact company if it matches the persons domain (#4088)
* Add SettingsAccountsEmailsBlocklistInput story

* prevent contact creation from the same company

* add todo

* improvements

* Delete packages/twenty-front/src/modules/settings/accounts/components/__stories__/SettingsAccountsEmailsBlocklistInput.stories.tsx

* refactor

* modify after review

* improve code

* create utils

* fix

* Fix getAllByWorkspaceId to throw NotFoundException when no workspace member found

* fix after merge

* use map

* modify after review
2024-02-21 13:22:01 +01:00
Thaïs
11581ca9c3
feat: create Settings/Accounts/Calendars page (#4090)
* feat: create Settings/Accounts/Calendars page

Closes #4059

* docs: add SettingsAccountsCalendars stories

* refactor: add SettingsNavigationDrawerItem component
2024-02-20 19:28:15 +01:00
Charles Bochet
4552e98b7f Fix workspace enum migration bug 2024-02-20 18:48:10 +01:00
Jérémy M
3914e8d77c
fix: sync and health (#4095)
* fix: throw error if we try to create a migration without columnName

* fix: typeorm save for update breaking everything
2024-02-20 17:55:23 +01:00
Weiko
8c46e66cf5
Fix delete with no result should not throw (#4091)
* Fix delete with no result should not throw

* add logs

* Delete packages/twenty-server/src/database/typeorm/metadata/migrations/1708442904165-addOnDeleteActionToRelationMetadata.ts
2024-02-20 17:27:31 +01:00
Jérémy M
22e8a3ba77
fix: unwanted comment on graphQL input (#4071) 2024-02-20 16:13:18 +01:00
Aditya Pimpalkar
9d9ba97fb7
feat: REST endpoints for metadata API (#3912)
* parse metadata path

* metadata rest api

* add queryAction condition and return object singular/plural

* handle GET endpoint for metadata

* FindOne and FindMany query for metadata endpoint

* Request all objects and nest fields in object request

---------

Co-authored-by: martmull <martmull@hotmail.fr>
2024-02-20 15:17:41 +01:00
Thaïs
ec20117e80
chore: make twenty-server nest command scripts depend on twenty-email… (#4055)
chore: make twenty-server nest command scripts depend on twenty-emails build

Closes #4013
2024-02-20 14:35:09 +01:00
bosiraphael
09783912f3
4008 dont create a contact company if it matches the persons domain (#4057)
* Add SettingsAccountsEmailsBlocklistInput story

* prevent contact creation from the same company

* add todo

* improvements

* Delete packages/twenty-front/src/modules/settings/accounts/components/__stories__/SettingsAccountsEmailsBlocklistInput.stories.tsx

* refactor

* modify after review

* improve code
2024-02-19 18:46:49 +01:00
bosiraphael
e34e341ddc
3938 change email auto import to contact ive sent email to (#3995)
* done

* working

* wip

* merge main

* almost done

* improvement
2024-02-19 17:29:38 +01:00
Jérémy M
2f9e503a8b
fix: ignore enum options sync for now (#4056) 2024-02-19 17:29:30 +01:00
Jérémy M
e293abe332
Fix/workspace health type (#4053)
* fix: memory issue with truncate command

* fix: LINK doesn't have any default value

* fix: Cannot convert LINK to column type.

* fix: handle old column type and add a warn to fix them manually
2024-02-19 17:28:40 +01:00
Charles Bochet
ba050cd33d
Release 0.3.1 (#4031) 2024-02-16 20:11:38 +01:00
martmull
0ee512a983
3959 create a activationstatus in coreworkspace and use it in front to redirect properly (#3989)
* Add computed field to workspace entity

* Add activationStatus to front requests

* Update Selector

* Use activation status

* Stop using selector for mock values

* Remove isCurrentWorkspaceActiveSelector

* Use activation status

* Fix typo

* Use activation status

* Create hook for sign in up navigate

* Update hook to handle profile creation

* Use varaible

* Use more readable boolean function
2024-02-16 16:00:39 +01:00
Charles Bochet
6f2b0f2068
Resolve bugs tied to record creations on table (#4011)
* Resolve bugs tied to record creations on table

* Fix according to PR

* Fix tests
2024-02-16 15:03:57 +01:00
brendanlaschke
595b2f9e6f
Webhook Docs (#3966)
* add webhook docs, openapi v3.1, stoplight v8

* *.*
2024-02-16 15:01:37 +01:00
brendanlaschke
547145389c
Docs include field description (#3973)
- include field description
2024-02-16 14:38:39 +01:00
Charles Bochet
a5ecbf7df5
Integrations: design fixes and remove feature flag (#4003)
* Integrations: design fixes and remove feature flag

* Fix
2024-02-16 13:35:45 +01:00
Weiko
8e3723b88e
Fix update on delete record (#3996) 2024-02-16 13:08:24 +01:00
Jérémy M
44ac16c82e
fix: impact too many records (#3993)
* fix: impact too many records

* fix: change env name

* fix: remove env name from error
2024-02-16 11:17:37 +01:00
Jérémy M
c2c14d79a9
fix: workspace cache version (#3999) 2024-02-16 11:06:51 +01:00
Jérémy M
f47159d84d
fix: invalidate cache when no record inside workspace cache version (#3994)
* fix: invalidate cache when no record inside workspace cache version

* fix: use getVersion
2024-02-16 10:37:25 +01:00
Jérémy M
34d02cf4ed
feat: add default value for some type of fields (#3991)
feat: add default value for some kind of fields
2024-02-16 10:34:42 +01:00
Jérémy M
990cb107a1
feat: workspace health target column map fix (#3932)
* feat: workspace health fix target column map

* fix: remove log

* feat: refactor health fixer

* fix: default-value issue and health check not working with composite

* fix: enhance target column map fix

* feat: create workspace migrations for target-column-map issues

* feat: enhance workspace-health issue detection
2024-02-15 18:04:12 +01:00
bosiraphael
0b93a6785b
3815 blocklist connect frontend (#3930)
* wip

* wip

* move blocklist to connectedAccount

* wip

* format date

* fix styling

* renaming

* fix imports

* fix imports

* Rename BlockListItem.ts to BlocklistItem.ts

* Add IS_BLOCKLIST_ENABLED feature flag and remove IS_MESSAGING_ENABLED gate at model creation

* hide blocklist if feature flag is disabled
2024-02-15 17:18:04 +01:00
Weiko
4b3eeac333
[messaging] add defaultValue to isContactAutoCreationEnabled (#3992) 2024-02-15 16:42:03 +01:00
Weiko
62058dd0e9
[worker] add more logs to queue-worker (#3982) 2024-02-14 21:28:17 +01:00
Weiko
49cc01d7d8
[messaging] fix add messageParticipant not in a transaction (#3981) 2024-02-14 19:28:25 +01:00
Weiko
2055f64acd
fix CreateCompaniesAndContactsAfterSyncJobData import (#3979) 2024-02-14 18:58:49 +01:00
bosiraphael
94ad0e33ec
3889 activate settingsaccountsemailsinboxsettings (#3962)
* update email visibility in settings

* improve styling

* Add contact auto creation toggle to inbox settings

* re
move soonpill

* update Icon

* create job

* Add logic to create contacts and companies for message participants without personId and workspaceMemberId

* add listener

* wip

* wip

* refactoring

* improve structure

* Add isContactAutoCreationEnabled method to MessageChannelService

* wip

* wip

* clean

* add job

* fix bug

* contact creation is working

* wip

* working

* improve code

* improve typing

* resolve conflicts

* fix

* create company repository

* move util

* wip

* fix
2024-02-14 17:30:17 +01:00
Weiko
0b2ffb0ee6
add rimraf to server dependencies (#3977) 2024-02-14 16:56:37 +01:00
bosiraphael
7d80610428
3814 create blocklist data model (#3927)
* wip

* wip

* wip

* working
2024-02-14 16:38:16 +01:00
Kanav Arora
7b88e5bdaf
3865-Add-Integrations (#3870)
* initial commit setup

* ui done

* added links

* changed brand logos

* Twenty logo fix

* Windmill logo fix

* Fix typo

* Add feature flag

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-13 23:11:05 +01:00
Thaïs
e011ecbd6f
POC: generate twenty-server package.json with Nx (#3654)
* POC: generate twenty-server package.json with Nx

* Re-add passport

* Fix instal

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-13 22:16:21 +01:00
Weiko
1afe8aecd0
Fix missing feature flag on messaging listeners (#3952)
* Fix missing feature flag on messaging listeners

* Update workspace-query-runner.service.ts
2024-02-13 20:23:09 +01:00
Jérémy M
8ce7020b12
feat: sync metadata can alter and update a field (#3944) 2024-02-13 19:36:58 +01:00
Weiko
87fafae9be
[messaging] Removing TO requirement for email import (#3949) 2024-02-13 19:19:57 +01:00
Weiko
458e8c839f
Add workspacePreQueryHook module (#3879)
* rebase

* reorganise messaging folders

* fix

* fix after review

* fix yarn lock
2024-02-13 18:23:29 +01:00
Weiko
36b69a8625
[messaging] Fix messaging import with no person skipped email (#3941) 2024-02-13 16:55:06 +01:00
Weiko
7f122a4671
[messaging] Remove ids from enqueued jobs (#3936)
* [messaging] Fix import message participant uppercase

* fix job not enqueuing
2024-02-13 16:13:34 +01:00
Weiko
b6a86ebf96
[messaging] Fix import message participant uppercase (#3934) 2024-02-13 16:03:44 +01:00
Brody Over
52bb33b566
Disable buffered logs (#3892)
* Update main.ts

* Update command.ts

* Update queue-worker.ts

* Enable users to disable log buffering

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-13 14:50:25 +01:00
bosiraphael
ec48e66eeb
3921 delete messagethreads after deleting connectedaccount (#3925)
* created listener

* working

---------

Co-authored-by: Weiko <corentin@twenty.com>
2024-02-13 14:36:55 +01:00
bosiraphael
1d1976ef22
3807 auto creation of contact when importing emails (#3888)
* Add CreateContactService to messaging services

* Add logic to create a contact if it doesn't exist

* Add name

* Improvements

* contact creation working

* fix bug

* Add IsPersonEmailService to check if an email is personal or not

* filter is working

* improve filter

* create companies and people

* Refactor createContactFromHandleAndDisplayName to createContactAndCompanyFromHandleAndDisplayName

* improve regex

* reorganizing services

* updates

* reorganize folders

* wip

* use transaction

* wip

* wip

* wip

* batch queries

* almost working

* working
2024-02-13 14:24:28 +01:00
martmull
d016e5ff03
BUG FIX: Create workspace member if inviteHash exists (#3917)
Create workspace member if inviteHash exists
2024-02-12 17:43:26 +01:00
Jérémy M
35fce6a6b4
feat: health check enum (#3913)
* feat: health check enum

* fix: cleaner if condition
2024-02-12 17:32:05 +01:00
Jérémy M
b0b033aec9
fix: workspace health (#3916)
* fix: workspace health applying migrations multiple times

* fix: remove log

* fix: use logger
2024-02-12 16:17:17 +01:00
Weiko
c13e55a753
Fix bull-mq retry option and exceptions not being captured for jobs (#3905)
* Fix bull-mq retry option

* fix exception inside worker

* add logs

* fix after review
2024-02-12 15:12:52 +01:00
Charles Bochet
a15128df36 Remove virtual fieldType Relation from fieldMetadata sync 2024-02-11 10:23:37 +01:00
Thaïs
d28843bb85
feat: order board cards by record position (#3902)
* feat: order board cards by record position

Closes #3848

* Fix tests

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-09 18:09:13 +01:00
Deepak Kumar
3cbf958a1c
GH-3652 Add forgot password on sign-in page (#3789)
* Remove auth guard from password reset email endpoint

* Add arg for GQL mutation and update its usage

* Add forgot password button on sign-in page

* Generate automated graphql queries

* Move utils to dedicated hook

* Remove useless hook function

* Split simple hook methods

* Split workspace hook

* Split signInWithGoogle hook

* Split useSignInUpForm

* Fix error in logs

* Add Link Button UI Component

* Add storybook doc

---------

Co-authored-by: martmull <martmull@hotmail.fr>
2024-02-09 17:37:44 +01:00
bosiraphael
11d1c4c161
3808 auto creation of company when importing emails (#3881)
* create service

* wip

* use raw queries

* creating companies is working

* Fix participant handle domain name extraction

* Add HTTP service to fetch company info from domain name

* Handle 404

* Fix missing parameter in INSERT query

* wip

* renaming

* Add typing
2024-02-09 15:28:35 +01:00
Thomas Trompette
9ceff84bbf
Set opportunity stage as editable (#3838)
* Set opportunity stage as editable

* Fix comments

* Add command for migration

* Fixes

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-09 14:44:11 +01:00
Charles Bochet
0185c2a36e
Fix logger behavior (#3897) 2024-02-09 14:43:36 +01:00
Jérémy M
2560ce25e0
feat: workspace health default-value fix (#3894)
* feat: workspace health default-value fix

* fix: rename function regarding review
2024-02-09 14:16:11 +01:00
martmull
9299ad1432
Fix delete incomplete workspaces (#3893)
* Fix delete incomplete workspaces

* Add multiple workspace filtering option
2024-02-09 12:26:10 +01:00
martmull
7425223f83
3628 timebox separate user creation from workspace creation (#3737)
* Remove workspace schema creation from signUp

* Set user workspaceMember nullable

* Remove workspace creation

* Handle null workspace in tokens

* Update onboarding status

* Generate types

* Move createWorkspace to workspace resolver

* Create workspace after signup

* Update createWorkspace return type

* Update createWorkspace return type

* Create core.workspace at signup

* WIP

* Fix create workspace

* Fix create workspace

* Clean code

* Remove useless recoil set

* Simplify create workspace request

* Set currentWorkspace at login

* Fix tests

* Create a recoil value for is workspaceSchema created

* Rename createWorkspace to createWorkspaceSchema

* Code review returns

* Use AppPath when possible

* Try without state

* Fix

* Fixes

* Rename createWorkspaceSchema to activateWorkspace

* Remove defaultAvatarUrl from user

* Add defaultAvatarUrl to core user

This reverts commit 1701c30eb1.

* Add defaultAvatarUrl to core user

This reverts commit 1701c30eb1.

* Fix ci

* Fix tests

* Fix storybook

* Fix test

* Remove useless query

* Fix test

* Fix test

* Fix mock data

* Fix test

* Clean Mock Requests

* Fix tentative

* Revert "Clean Mock Requests"

This reverts commit 8aa20a3436.

* Fix

* Revert "Fix"

This reverts commit 2df7e9b656.

* Revert "Revert "Clean Mock Requests""

This reverts commit 3aefef8e96.

* Revert "Fix tentative"

This reverts commit 13e7748d6f.

* Update filename

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-09 12:06:11 +01:00
Charles Bochet
3fc18aeec1 Fix twenty-server build 2024-02-09 11:18:58 +01:00
Charles Bochet
3d7b5902e6 Fix twenty-server build 2024-02-09 11:14:02 +01:00
Jérémy M
7ec968d5a2
feat: workspace health type fix (#3890)
* feat: workspace health type fix

* Fix

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-08 18:59:17 +01:00
Jérémy M
d3fe1b9e31
feat: workspace:health nullable fix (#3882) 2024-02-08 18:22:29 +01:00
Weiko
99e2dd6899
[messaging] Add messageParticipant matching once people emails are updated (#3887)
* poc nest event emitter

* add match message participant listener

* add workspacemember listener

* fix after review

* fix deep-equal
2024-02-08 17:42:33 +01:00
brendanlaschke
c53b593ea6
Custom swagger endpoint for docs (#3869)
* custom swagger endpoint
metadata graphql
remove /rest from endpoint

* fixed pseudo scheme creation

* move graphql playground creation to own file, added navbar to change baseurl and token

* add schema switcher, fix changing url not applied, add invalid overlay

* fix link color

* removed path on Graphql Playground, naming fixes subdoc

* - fixed overflow issue Rest docs

* history replace & goBack

* Small fix GraphQL playground broken

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
2024-02-08 16:54:20 +01:00
Thomas Trompette
719da29795
Store compact view status (#3850)
* Store compact view status

* Rename to isCompact

* Fixes

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-08 16:33:52 +01:00
Thomas Trompette
6ee179442a
Add one to many relation between opportunity and attachment (#3866)
* Add one to many relation between opportunity and attachment

* Fix opportunity type

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-02-08 15:22:52 +01:00
martmull
bcc62596f6
Add defaultAvatarUrl to core user (#3883)
* Add defaultAvatarUrl to core user

This reverts commit 1701c30eb1.

* Fix

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-08 14:46:37 +01:00
martmull
7001ca83d1
3491 launch cleaning cron (#3872)
* Add command to delete incomplete workspaces

* Inject command dependencies

* Fix command

* Do not delete core.workspace

* Reorganize files

* Delete src/workspace/cron

* Fix

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-07 18:52:48 +01:00
Jérémy M
6e3a8e3461
Feat/workspace health core fix (#3863)
* feat: add deletion support on sync metadata command

* fix: remove debug

* feat: wip workspace health command add --fix option

fix: remove test

* feat: core of --fix option for workspace-health
2024-02-07 18:27:35 +01:00
Joe S
850eab8f8f
Add rate limiting in the server using built in Nest.js capability (#3566)
* Add rate limiting in the server using built in Nest.js capability

* Generatekey based on ip address when an http request is sent

* Update env var types to number for ttl and limit

* Remove unused env variables

* Use getRequest utility function

* fix: remove dist from path

* fix: adding .env variables

* fix: remove unused functions

* feat: throttler plugin

* Fix according to review

---------

Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-07 18:11:32 +01:00
bosiraphael
3831ddc002
3803 use email visibility to display only the shared information backend (#3871)
* update dto

* wip

* compute thread visibility

* fix bugs

* fix bug

* improve typing

* working

* update according to comments

* use string
2024-02-07 16:35:19 +01:00
Jérémy M
a908353955
feat: add deletion support on sync metadata command (#3826)
* feat: add deletion support on sync metadata command

* fix: remove debug
2024-02-07 15:38:23 +01:00
Thomas Trompette
9f59ddc059
Rename recordPosition into position (#3864)
* Rename recordPosition into position

* Fix according to review

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-02-07 09:40:35 +01:00
Weiko
0096e60489
[messaging] add cronjob for workspaces messages partial sync (#3800)
* [messaging] add cronjob for workspaces messages partial sync

* run cron every 10 minutes

* use logger
2024-02-05 17:15:11 +01:00
brendanlaschke
3a9007b2d4
Member card fix email display (#3555)
* member card fix email display

* lint

* on signup save userEmail
2024-02-05 15:02:57 +01:00
Félix Malfait
a5989a470c
Improve Documentation (#3795)
* Begin docs improvement

* Keep improving documentation

* Upgrade Docusarus

* Fix broken links
2024-02-05 15:01:37 +01:00
Charles Bochet
8692e5d1ca
Release 0.3.0 (#3793) 2024-02-03 09:05:11 +01:00
Charles Bochet
7b084ba46e
Enable Rating Field (#3792) 2024-02-03 08:55:29 +01:00
Weiko
729e2dc651
[Messaging] Delete empty threads after message deletion import (#3716)
* [Messaging] Delete empty threads after message deletion import

* fix
2024-02-02 18:13:41 +01:00
Weiko
ae5f82df59
[messaging] add fallback if lastHistoryId has been invalidated (#3782) 2024-02-02 15:28:38 +01:00
Jérémy M
5fd982b009
feat: execute pending migrations command (#3767) 2024-02-02 11:10:26 +01:00
Jérémy M
25f4a80c7c
fix: exception handler (#3768)
* fix: user is not sent to sentry

* fix: too much exceptions thrown
2024-02-02 09:26:48 +01:00
Charles Bochet
edeb824884 Fix record creation broken 2024-02-02 08:16:25 +01:00
Thomas Trompette
7b2b70e479
Create record position field (#3739)
* Create record field on non syst standard objects + on custom objects

* Create workspace migration

* Fix naming and add seed

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-02-01 16:56:38 +01:00
Jérémy M
9799326533
fix: logs folder doesn't exist (#3759) 2024-02-01 16:47:36 +01:00
Jérémy M
3c89a97a9f
feat: add dry-run option to sync-metadata command (#3758)
* feat: add dry-run option to sync-metadata command

* feat: save metadata logs in dry-run mode
2024-02-01 16:35:32 +01:00
Jérémy M
cdc51add7d
feat: add user to sentry (#3467)
* feat: wip add user to sentry

* feat: wip interceptor

* feat: wip add user to sentry

* feat: add user into sentry errors

* fix: hide stack trace in production

* fix: properly log commands and handle exceptions

* fix: filter command exceptions

* feat: handle jobs errors
2024-02-01 16:14:08 +01:00
Weiko
142affbeea
[messaging] reorder messages desc to asc (#3755) 2024-02-01 15:28:00 +01:00
Jérémy M
8abd5be4b5
fix: sync metadata shouldn't remove non custom fields (#3750)
* fix: sync metadata shouldn't remove non custom fields

* fix: filter out custom relations
2024-02-01 14:25:50 +01:00
Jérémy M
fc01c8cd4f
fix: grapQL errors are not detailed enough (#3622) 2024-02-01 09:45:58 +01:00
Weiko
e787b4e3b8
[messaging] add more logs to gmail full-sync (#3728) 2024-01-31 17:03:11 +01:00
Weiko
82d99afe2f
Fix workspace-sync when alter with relation (#3721) 2024-01-31 15:50:54 +01:00
Weiko
03e5c792f0
[messaging] fix message-channel-message-association field name as dependencies (#3712) 2024-01-30 19:35:41 +01:00
Weiko
64b2ef3dc2
Delete message when no more association (#3701)
* Delete message when no more association

* remove unused injections

* rename methods

* fix after review
2024-01-30 17:58:36 +01:00
Jérémy M
73f6876641
feat: workspace sync (#3505)
* feat: wip workspace sync

* feat: wip lot of debugging

* feat: refactor and fix sync

* fix: clean

fix: clean

* feat: add simple comparator tests

* fix: remove debug

* feat: wip drop table

* fix: main merge

* fix: some issues, and prepare storage system to handle complex deletion

* feat: wip clean and fix

* fix: reflect issue when using array instead of map and clean

* fix: test & sync

* fix: yarn files

* fix: unecesary if-else

* fix: if condition not needed

* fix: remove debug

* fix: replace EQUAL by SKIP

* fix: sync metadata relation not applied properly

* fix: lint issues

* fix: merge issue
2024-01-30 14:40:55 +01:00
Jérémy M
da8dd671d1
fix: rating type issues (#3638)
* fix: rating type issues

* fix: rebase

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-01-30 09:57:30 +01:00
Weiko
a9349f9fea
Add deleteOneObject mutation (#3682)
* Add deleteOneObject mutation

* codegen

* move relationToDelete to dedicated file

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-01-30 09:47:58 +01:00
bosiraphael
c5ea2dfe1e
3675 inbox count is wrong in emailthreads (#3677)
* add type

* query total number of threads

* graphql data generate

* wip

* wip

* Fix fetch more

* fix

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-01-29 18:23:09 +01:00
Weiko
d66d8c9907
[Messaging] Gmail Full sync pagination (#3664) 2024-01-29 11:57:54 +01:00
Thaïs
a654205dbc
chore: set up twenty-emails config so build isn't needed in development (#3619)
* chore: set up twenty-emails config so build isn't needed in development

* fix: fix script dependency

* chore: use @vitejs/plugin-react-swc

* Remove useless dependancy

* Fix typing

* chore: use baseUrl in twenty-emails

* chore: fix docker server prod build

* refactor: optimize Docker file and tsconfig

* fix: fix WORKDIR in docker

---------

Co-authored-by: martmull <martmull@hotmail.fr>
2024-01-29 06:17:12 -03:00
Charles Bochet
d6f117c688
Display RecordBoardCards on new board (#3657)
* Before remove saveEditModeValue logic

* Fixes

* Fix tests

* Fix tests
2024-01-27 15:55:45 +01:00
Weiko
9053769616
[Messaging] Fix gmail connected account creation redirect url (#3653) 2024-01-26 18:28:06 +01:00
bosiraphael
ebfa1bea99
fix-threads-pagination (#3639) 2024-01-26 14:24:27 +01:00
martmull
b49a8b84db
Remove error when new_psw==old_psw (#3637) 2024-01-26 12:11:46 +01:00
bosiraphael
b0c14ba5b9
3571 remove reply quotations from emails (#3630)
* lib is working

* update

* plural
2024-01-25 18:26:29 +01:00
Charles Bochet
377fd23c90
Display columns on Record Board (#3626)
* Display columns on Record board

* Fix

* Fix according to review

* Fix
2024-01-25 18:21:15 +01:00
martmull
ca6250286a
Reset workspaces to delete between executions (#3625) 2024-01-25 18:06:53 +01:00
Lakshay saini
e0405edb38
feat: added webhook list section and updated api key section (#3567)
* feat: added webhook list section and updated api key ui

* Fix style

* Fix webhook style

* Update setting path

* Add soon pill on not developped features

* Code review returns

---------

Co-authored-by: Lakshay saini <lakshay.saini@finmo.net>
Co-authored-by: martmull <martmull@hotmail.fr>
2024-01-25 17:39:17 +01:00
bosiraphael
6004969096
3263 modify timeline messagingservice to allow the frontend to get multiple participants in a thread (#3611)
* wip

* wip

* add pagination

* wip

* wip

* wip

* update resolver

* wip

* wip

* endpoint is working but there is still work to do

* merge main

* wip

* subject is now first subject

* number of messages is working

* improving query

* fix bug

* fix bug

* added parameter

* pagination introduced a bug

* pagination is working

* fix type

* improve typing

* improve typing

* fix bug

* add displayName

* display displayName in the frontend

* move entities

* fix

* generate metadata

* add avatarUrl

* modify after comments on PR

* updates

* remove email mocks

* remove console log

* move files

* remove mock

* use constant

* use constant

* use fragments

* remove console.log

* generate

* changes made

* update DTO

* generate
2024-01-25 17:04:51 +01:00
Jérémy M
6f98d1847f
Fix/nested filter (#3624)
* fix: typo

* fix: relation type shouldn't be exposed in filter
2024-01-25 16:15:46 +01:00
Weiko
6d997edabb
[Messaging] Fix duplicate messageChannelMessage (#3616)
* [Messaging] Fix duplicate channelMessageChannel

* add messageChannelMessage check before querying gmail

* rename messageChannelMessage to messageChannelMessageAssociation
2024-01-25 14:15:57 +01:00
Deepak Kumar
46f0eb522f
GH-3245 Change password from settings page (#3538)
* GH-3245 add passwordResetToken and passwordResetTokenExpiresAt column on user entity

* Add password reset token expiry delay env variable

* Add generatePasswordResetToken mutation resolver

* Update .env.sample file on server

* Add password reset token and expiry migration script

* Add validate password reset token query and a dummy password update (WIP) resolver

* Fix bug in password reset token generate

* add update password mutation

* Update name and add email password reset link

* Add change password UI on settings page

* Add reset password route on frontend

* Add reset password form UI

* sign in user on password reset

* format code

* make PASSWORD_RESET_TOKEN_EXPIRES_IN optional

* add email template for password reset

* Improve error message

* Rename methods and DTO to improve naming

* fix formatting of backend code

* Update change password component

* Update password reset via token component

* update graphql files

* spelling fix

* Make password-reset route authless on frontend

* show token generation wait time

* remove constant from .env.example

* Add PASSWORD_RESET_TOKEN_EXPIRES_IN in docs

* refactor emails module in reset password

* update Graphql generated file

* update email template of password reset

* add space between date and text

* update method name

* fix lint issues

* remove unused code, fix indentation, and email link color

* update test file for auth and token service

* Fix ci: build twenty-emails when running tests

---------

Co-authored-by: martmull <martmull@hotmail.fr>
2024-01-25 10:28:48 +01:00
martmull
8ffd958a3c
Fix twenty-emails build (#3608) 2024-01-24 17:41:38 +01:00
Alexandru Serban
7488a9605e
Allow underscores in PG_DATABASE_URL (#3599)
We are working on a Twenty template for Easypanel.io. We need Twenty to allow underscores in order to be compatible with the generated Postgres database service Easypanel creates.
2024-01-24 16:31:10 +01:00
Weiko
c811206c47
Fix message table plural name (#3604) 2024-01-24 14:33:08 +01:00
Charles Bochet
afc36c7329
Introduce new board feature flag (#3602) 2024-01-24 14:24:02 +01:00
martmull
b991790f62
Update clean inactive workspaces (#3600)
* Fix typo

* Add dry-run option in clean inactive workspaces

* Add logs

* Chunk workspace metadata

* Add BCC to clean workspace notification email

* Send workspace to delete ids in one email

* Update example

* Update function naming
2024-01-24 12:51:42 +01:00
Weiko
c7ad6a0de7
[messaging] Rename body to text (#3595)
* Store HTML message

* remove console log

* [messaging] rename body to text

* use CoreObjectNameSingular
2024-01-23 19:56:42 +01:00
Weiko
d176ba95d3
Store HTML message (#3594)
* Store HTML message

* remove console log

* fix html label/description
2024-01-23 19:40:05 +01:00
Charles Bochet
d6dfd0ce05 Use npx for ts-node execution in twenty-server commands 2024-01-23 18:26:48 +01:00
Weiko
dc7fccb0a8
Merge messages and threads #1 (#3583)
* Merge messages and threads

* rename messageChannelSync to messageChannelMessage

* add merge logic

* remove deprecated methods

* restore enqueue GmailFullSyncJob after connectedAccount creation
2024-01-23 17:28:14 +01:00
Charles Bochet
a7265fa3b4
Remove flag relation select (#3588)
* Remove feature flag on relation and select

* Move packages back to twenty-server to enable smaller build without using nx

* Fix package.json
2024-01-23 09:59:00 +01:00
martmull
e358d677f9
Move emails to dedicated package (#3542)
* Add new package

* Add twenty-emails package

* Use generated files from twenty-emails in twenty-server

* Fix deleted file

* Import emails templates properly
2024-01-22 16:21:56 +01:00
martmull
e45a825a3a
Update logging for smtp emails (#3536) 2024-01-22 16:06:10 +01:00
Thomas Trompette
f1b3d1537a
Load views on user load and read in cache (#3552)
* WIP

* Poc

* Use cached root query + remove proloaded views state

* Fix storybook test + fix codegen

* Return default schema if token is absent, unauthenticated if token is invalid

* Use enum instead of bool

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-01-22 16:00:16 +01:00
Charles Bochet
894f63a16f
Standard Object prefill updates (#3570) 2024-01-22 11:13:43 +01:00
Charles Bochet
58d4fd43c8 Fix healthcheck command performance 2024-01-19 17:26:33 +01:00
Charles Bochet
2cf4bd746a
Improve health check command (#3553)
* Improve health check command

* Fix health check

* Fix health check
2024-01-19 16:54:43 +01:00
Charles Bochet
aa8d689e3e Fix demo workspace seed 2024-01-18 10:59:48 +01:00
Charles Bochet
2628ee0f27 Revert blocknote upgrade because it's breakind design 2024-01-18 10:56:39 +01:00
brendanlaschke
f6f4e6c769
Update blocknote (#3517)
* update blocknote, remove feature flag

* Fix backend

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-01-18 09:40:00 +01:00
Jérémy M
4b7e42c38e
feat: workspace health relation (#3466)
feat: add check relation health
2024-01-17 17:05:35 +01:00
Weiko
64110c591a
Add performance logs to object metadata query (#3463) 2024-01-17 17:04:16 +01:00
Weiko
f3c9854be3
Add select type to field metadata decorator (#3471)
* Add select type to field metadata decorator

* add option id generation for new field
2024-01-17 15:03:11 +01:00
Thaïs
96d990e275
feat: set field as custom object label identifier in Object Detail (#3360)
* feat: set field as custom object label identifier in Object Detail

Closes #3302

* feat: prevent disabling Object label identitifer field in back-end

* refactor: review - extract isLabelIdentifier variable
2024-01-17 12:19:41 +01:00
Charles Bochet
4316950cf9
Bump version to 0.2.3 (#3506) 2024-01-17 11:57:13 +01:00
Charles Bochet
f3f20ad974
Improve opportunity behavior (#3487)
* Fix opportunity relation

* Fix

* Fix

* Fix tests

* Fix

* Fix

* Fix opportunities

* Fix Opportunity standard object and apply maxWidth to text ellipsis

* Update packages/twenty-front/src/modules/ui/field/display/components/EllipsisDisplay.tsx

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

* Fix

---------

Co-authored-by: Thaïs <guigon.thais@gmail.com>
2024-01-16 15:43:19 +01:00
martmull
bb91917ff8
Improve webhook (#3459)
* Add trigger record

* Merge triggers

* Merge creates

* Fix libraries

* Fix create merged key

* Rename file

* Remove list Record Ids

* Revert "Rename file"

This reverts commit 2e72e05793.

* Revert "Revert "Rename file""

This reverts commit e2d93fa027.

* Revert "Remove list Record Ids"

This reverts commit 6653fb6ccd.

* Remove namePlural field

* Use name singular for webhooks

* Send webhook metadata

* Extract resource from zapier webhook

* Fix package.json

* Fix package.json

* Update payload

* Fix package.json

* Update payload

* Update payload

* Rename file

* Use wildcard in webhook events

* Fix nameSingular

* Code review returns

* Code review returns
2024-01-16 15:31:09 +01:00
Charles Bochet
fb93bb69fb
Fix opportunity relation (#3478)
* Fix opportunity relation

* Fix

* Fix

* Fix tests

* Fix

* Fix
2024-01-16 14:39:48 +01:00
bosiraphael
4695e99458
3369 rename messagerecipients table into messageparticipants (#3457)
* renaming

* renaming
2024-01-15 16:55:19 +01:00
bosiraphael
8682f3c0c0
3441 modify message table change date to receivedat (#3452)
* changed date to receivedAt

* update saving messages

* update custom resolver
2024-01-15 14:48:25 +01:00
Weiko
ed6458e833
Fix: check if relation creates existing field name (#3433)
* Fix: check if relation creates existing field name

* fix rebase

* add object name to performance log
2024-01-15 14:13:57 +01:00
Charles Bochet
16a24c5f0c
Rework relations (#3431)
* Rework relations

* Fix tests
2024-01-15 12:07:23 +01:00
Charles Bochet
8893cbc05d
Stop switching to a different datasource per workspace (#3425)
* Stop switching to a different datasource per workspace

* Add console

* Remove call to metadata
2024-01-14 00:21:21 +01:00
Charles Bochet
a8efc17fff Fix post merge conflict 2024-01-13 12:06:37 +01:00
martmull
49a9a2c2be
2252 build a script to cleanup inactive workspaces (#3307)
* Add cron to message queue interfaces

* Add command to launch cron job

* Add command to stop cron job

* Update clean inactive workspaces job

* Add react-email

* WIP

* Fix import error

* Rename services

* Update logging

* Update email template

* Update email template

* Add Base Email template

* Move to proper place

* Remove test files

* Update logo

* Add email theme

* Revert "Remove test files"

This reverts commit fe062dd051.

* Add email theme 2

* Revert "Revert "Remove test files""

This reverts commit 6c6471273a.

* Revert "Revert "Revert "Remove test files"""

This reverts commit f851333c24.

* Revert "Revert "Revert "Revert "Remove test files""""

This reverts commit 7838e19e88.

* Fix theme

* Reorganize files

* Update clean inactive workspaces job

* Use env variable to define inactive days

* Remove FROM variable

* Use feature flag

* Fix cron command

* Remove useless variable

* Reorganize files

* Refactor some code

* Update email template

* Update email object

* Remove verbose log

* Code review returns

* Code review returns

* Simplify handle

* Code review returns

* Review

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-01-13 12:03:41 +01:00
bosiraphael
5a61e34f4c
3239 create a command to do a partial sync with the gmail api using the historyid (#3405)
* create utils service

* getLastSyncHistoryId

* getHistory

* add historyTypes messageAdded and messageDeleted

* getMessageIdsAndThreadIdsNotInDatabase

* wip

* fix messageThreadId null

* no need to fetch threads anymore

* get messagesAdded in partial sync

* adding errors

* save lastSyncHistoryId

* improve

* renaming

* create partial sync job

* improve partial sync

* adding messages with partial sync is working

* now adding messages with partial sync is working

* deleting messages and empty threads is working

* wip

* wip

* fix bug to delete threads

* update partial sync to cover edge cases

* renaming

* modify ambiguous naming

* renaming
2024-01-12 17:46:55 +01:00
Jérémy M
3e8f4ec2c5
fix: auth user decorator cannot destruct property of undefined (#3394)
* fix: auth user decorator cannot destruct property of undefined

* fix: change naming
2024-01-12 12:12:33 +01:00
Jérémy M
d0ed9ee2e0
feat: pagination with total count (#3384)
* feat: add totalCount

* feat: add command for production to fix existing tables
2024-01-12 10:41:38 +01:00
Charles Bochet
10fd67ba32
Fix relation creation bug + enable favorite for custom objects (#3392)
* Fix relation creation bug

* Fix vale CI

* Fix comment bug
2024-01-11 22:46:43 +01:00
martmull
b3d9bed91d
Enforce email templating (#3355)
* Add react-email

* WIP

* Fix import error

* Rename services

* Update logging

* Update email template

* Update email template

* Add Base Email template

* Move to proper place

* Remove test files

* Update logo

* Add email theme

* Revert "Remove test files"

This reverts commit fe062dd051.

* Add email theme 2

* Revert "Revert "Remove test files""

This reverts commit 6c6471273a.

* Revert "Revert "Revert "Remove test files"""

This reverts commit f851333c24.

* Revert "Revert "Revert "Revert "Remove test files""""

This reverts commit 7838e19e88.

* Fix theme
2024-01-11 20:29:20 +01:00
Weiko
0a77a376fd
Import messages after connected-account creation (#3389) 2024-01-11 20:05:08 +01:00
Jérémy M
5f0c9f67c9
feat: workspace health (#3344)
* feat: wip workspace health

* feat: split structure and metadata check

* feat: check default value structure health

* feat: check targetColumnMap structure health

* fix: composite types doesn't have default value properly defined

* feat: check default value structure health

* feat: check options structure health

* fix: verbose option not working properly

* fix: word issue

* fix: tests

* fix: remove console.log

* fix: TRUE and FALSE instead of YES and NO

* fix: fieldMetadataType instead of type
2024-01-11 16:41:25 +01:00
Arthur EICHELBERGER
c6ae480856
feat(signup): allow to block signup (#3209)
* feat(signup): allow to block signup

* feat(signup): update environment variable documentation

* test: update auth service tests

* feat(signup): prevent user from reaching out the sign up page

* Fix lint

* Fixes

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-01-11 11:48:14 +01:00
Jérémy M
1aa0f86724
feat: use apollo playground in debug mode (#3295) 2024-01-11 10:21:51 +01:00
Weiko
22047fa2bf
Fix metadata exception handler #2 (#3357) 2024-01-10 17:02:54 +01:00
Charles Bochet
69b558e03d
Fix bug on relation on custom object (#3336) 2024-01-09 17:49:05 +01:00
Weiko
6c00aa92a4
Fix capture exception for metadata and core (#3335) 2024-01-09 17:46:16 +01:00
bosiraphael
4ebb487fa1
3236 add syncproviderconfig to connectedaccount model (#3328)
* add Last sync history ID

* add is nullable

* fix errors

* modification
2024-01-09 14:48:10 +01:00
bosiraphael
bdd0a7ed95
3242 all message recipients should be stored (#3320)
* saveMessageRecipients

* update

* workspaceMemberId is working

* merge

* get direction of the message

* fix

* improve code

* modify GmailMessage type
2024-01-09 14:14:32 +01:00
Thaïs
0b505288f2
feat: add Relation field card feature flag (#3311)
Related to #3123
2024-01-09 12:46:03 +01:00
martmull
361446d79c
Add cron mechanism (#3318)
* Add cron to message queue interfaces

* Add command to launch cron job

* Add command to stop cron job

* Update clean inactive workspaces job

* Isolate cron mechanism

* Code review returns

* Remove useless object.assign

* Add MessageQueuCronJobData interface

* Rename cron job utils

* Fix typing
2024-01-09 12:23:45 +01:00
Charles Bochet
67b14824a4
Implement select v1 (#3312)
* Implement select v1

* Implement select v1
2024-01-08 20:55:45 +01:00
Weiko
ea2cb8938f
Add fetch connected account job (#3313)
* Add fetch connected account job

* add featureFlag check
2024-01-08 18:24:39 +01:00
martmull
d2e8df52cf
Add doc link in env file (#3277) 2024-01-08 10:42:03 +01:00
martmull
ae5558d8b5
Add mail driver (#3205)
* Add node mailer packages

* Init mailer module

* Add logger transport

* Use env variable to get transport

* Revert "Add node mailer packages"

This reverts commit 3fb954f0ca.

* Add nodemailer

* Use driver pattern

* Use logger

* Fix yarn install

* Code review returns

* Add configuration examples for smtp

* Fix merge conflict

* Add missing packages

* Fix ci
2024-01-05 16:08:19 +01:00
Charles Bochet
f7034d6e7d
Embrace nx monorepo structure with root package.json (#3255)
* Upgrade to node 18.17.1 and regroup dependencies in root package.json

* Sort package.json

* Fix lint

* Migrate zapier
2024-01-05 14:59:58 +01:00
martmull
f35b40c428
Fix create trigger called twice (#3243)
* Fix create trigger called twice

* Add Zapier update action

* Add Zapier delete action

* Update description

* Add dropDown for ids
2024-01-05 11:44:47 +01:00
Thaïs
db46dd4497
feat: add RecordRelationFieldCardSection (#3176)
Closes #3123

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
2024-01-05 11:02:02 +01:00
Lucas Bordeau
b112b74022
Feat/activities custom objects (#3213)
* WIP

* WIP - MultiObjectSearch

* WIP

* WIP

* Finished working version

* Fix

* Fixed and cleaned

* Fix

* Disabled files and emails for custom objects

* Cleaned console.log

* Fixed attachment

* Fixed

* fix lint

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-01-05 09:08:33 +01:00
Charles Bochet
c15e138d72
Fix nx lint setup (#3234)
* Fix nx lint setup

* Fixes

* Fixes

* Add missing metadata

Fixes

Fix

Fixes

* Fix
2024-01-04 16:39:57 +01:00
Weiko
4fddafceed
Fix Event core object (#3232) 2024-01-04 13:40:34 +01:00
bosiraphael
54c1d245ab
3218 make the function fetchworkspacememberthreads idempotent (#3230)
* wip

* fetch only the messages which are not in the db

* fetch only the messages and threads which are not in the db

* fix bugs

* merge

* remove eslint-plugins-twenty

* get saved message thread ids and message ids at the same time
2024-01-04 13:36:37 +01:00
Thaïs
8483cf0b4b
POC: chore: use Nx workspace lint rules (#3163)
* chore: use Nx workspace lint rules

Closes #3162

* Fix lint

* Fix lint on BE

* Fix tests

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-01-03 23:07:25 +01:00
Aditya Pimpalkar
5413513554
fix: updatedAt parameter (#3208)
* fix: updatedAt param

* lint fix
2024-01-03 19:52:10 +01:00
martmull
65250839fb
2248 zapier integration implement typeorm eventsubscribers (#3122)
* Add new queue to twenty-server

* Add triggers to zapier

* Rename webhook operation

* Use find one or fail

* Use logger

* Fix typescript templating

* Add dedicated call webhook job

* Update logging

* Fix error handling
2024-01-03 18:09:57 +01:00
bosiraphael
4ebaacc306
3216 request a new access token for the gmail api when it expires (#3224)
* refresh access token

* refresh and save access token

* update module

* refreshing access token before fetching the emails

* remove log
2024-01-03 18:00:31 +01:00
Charles Bochet
90f89e31a6
Render on latest image (#3223)
* Update render setup to use latest images

* Update render setup to use latest images

* Fixes

* Migrate demo seeds to json

* Update plans

* Update plans
2024-01-03 16:17:35 +01:00
bosiraphael
67fca68480
3202 fetch emails by threads (#3214)
* change fetchAllByBatches and fetchBatch to allow messages and threads to be fetched by batches

* wip

* format threads batches

* command is working

* command is working

* fix typing

* updates
2024-01-03 15:01:22 +01:00
martmull
ea06f04350
3207 fix render self deploy (#3221)
* Fix paths and commands for render deploy

* Remove breaking change

* Use twentycrm postgres image for postgres

* Fix render script

* Specify docker image version

* Fix postgres user

* Update setup command
2024-01-03 14:25:24 +01:00
bosiraphael
526a3d7d9a
3019 timebox add typing and checks in workspacemessagingservices (#3112)
* throw error

* fetchWorkspaceMessages fetches messages and threads

* renaming

* improve typing

* improve typing and error handling

* improve typing and error handling

* improve typing and error handling

* improve fetch-batch

* fix bug

* replace return types

* imporving typing and error handling

* improve typing and error handling

* improve typing and error handling

* improve typing and error handling

* improve typing and error handling

* remove console log
2023-12-26 18:07:40 +01:00
Félix Malfait
5ef5bbdc4d
Marketing website POC (#3139)
First website POC
2023-12-23 10:08:55 +01:00
Charles Bochet
68a6250757 Bump version 2023-12-21 23:52:45 +01:00
Deepak Kumar
46ab88cb9c
GH-2829 Add Sentry on frontend (#3111)
* GH-2829 pass sentry dsn key from backend in ClientConfig

* GH-2829 add Sentry library on frontend

* GH-2829 fetch dsnKey in GQL and add a state

* GH-2829 initialize Sentry on frontend

* GH-2829 fix linting issues

* Update yarn.lock

* GH-2829 update graphql schema for clientConfig

* GH-2829 remove Sentry comments

* GH-2829 rename sentry state

* GH-2829 rename dsnKey to dsn

* GH-2829 refactor to use componentEffect for sentry initialization

* GH-2829 fix linting issues

* GH-2829 update Graphql types

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2023-12-21 23:50:24 +01:00
Charles Bochet
756b30815e
Fix various bugs before 0.2.2 (#3118)
* Fix various bugs before 0.2.2 release

* Additional fixes

* More fixes

* Fixes
2023-12-21 23:48:52 +01:00
Cao Z.H
794cf87b43
feat: record batch deleteMany (#3096)
feat: support record batch deleteMany

Co-authored-by: Charles Bochet <charles@twenty.com>
2023-12-21 19:55:40 +01:00
Jérémy M
d532f22fbb
feat: migration can be applied on a specific schema & some enhancements (#2998)
* fix: remove old metadata seed files

* feat: wip standard to core relation

* fix: lint

* fix: merge

* fix: remove debug files

* feat: add feature flag for core object metadata

* fix: remove debug

* feat: always disable the standard core relation

* fix: missing feature flag

* fix: remove debug

* fix: feature flag doesn't seems to disable relation

* fix: delete .vscode folder, change this in another PR

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/reflective-metadata.factory.ts

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

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/reflective-metadata.factory.ts

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

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync.metadata.service.ts

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

* fix: remove optional fields from metadata entities

* fix: renamed variable

* fix: put back CursorScalarType

* fix: delete test command

* fix: remove unused workspace standard migration command

* fix: drop core object metadata declaration

* fix: rename variable

* fix: drop creation of core datasource

* fix: remove feature flag

* fix: drop support of standard to core relations

* feat: add user email field on workspace-member standard object

* fix: update seed accordingly

* fix: missing remove command file

* fix: datasource label should remain nullable

* fix: better asserts

* Remove unused code

* Remove unused code

---------

Co-authored-by: Weiko <corentin@twenty.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2023-12-21 19:15:05 +01:00
Jérémy M
3234134a30
fix: composite type migrations not well formatted (#3088) 2023-12-21 19:00:33 +01:00
bosiraphael
1b7580476d
2929 fetch emails from backend and display them in the UI (#3092)
* sending mock data from the resolver

* add sql raw query to the resolver

* improve query

* fix email component css

* fix query

* css adjustments

* create hard limit for mail display

* fix display name ellipsis

* add service

* fetching email on company page is working

* graphql generate

* move queries into separate files

* add types

* renaming

* add early return

* modified according to comments

* graphql data generate

* fix bug after renaming

* fix issue with mock data
2023-12-21 18:21:07 +01:00
Weiko
e67f6873d3
Fix missing isNullable for object creation activity target (#3109) 2023-12-21 16:32:04 +01:00
Weiko
0d00e3d62d
send pg graphql exception to sentry + fix missing nullable for relations (#3101)
* Send pg_graphql errors to sentry

* Send pg_graphql errors to sentry

* fix

* fix

* fix

* fix relation nullable
2023-12-21 16:07:25 +01:00
brendanlaschke
c4fecb0a1a
Upload image for use in blocknote editor (#3044)
* - upload image to use in blocknote editor
- fix local-storage not in gitignore

* fix lint

* fix runtime config
add tests for body parsing notes and tasks

* lint
2023-12-20 15:16:19 +01:00
Ruslan
351dc6488c
feat(workspace-resolver): prevent deletion of demo workspaces (#2207) (#3068)
* feat(workspace-resolver): prevent deletion of demo workspaces (#2207)

* ForbiddenException instead of Error

* Optimize user and workspace deletion checks and clarify exception messages (#2207)

- ForbiddenException messages for attempts to delete users and workspaces associated with demo accounts
2023-12-20 14:52:44 +01:00
Lucas Bordeau
d70cb23f30
Added rimraf to yarn build (#3089) 2023-12-20 14:50:10 +01:00
Jérémy M
d59a37129f
fix: sentry doesn't catch exceptions from flexible backend (#3074)
* fix: sentry doesn't catch exceptions from flexible backend

* fix: send remaining errors to Sentry

* fix: missing debug

* feat: use an util exception handler instead of Nest.JS class
2023-12-20 12:04:59 +01:00
martmull
ed7bd0ba26
2914 graphql api documentation (#3065)
* Remove dead code

* Create playground component

* Remove useless call to action

* Fix graphiql theme

* Fix style

* Split components

* Move headers to headers form

* Fix nodes in open-api components

* Remove useless check

* Clean code

* Fix css differences

* Keep carret when fetching schema
2023-12-20 12:01:55 +01:00
Weiko
4637a92f09
Fix queue setup (#3075)
fix bullmq setup
2023-12-19 17:12:22 +01:00
bosiraphael
5afcab4e78
3011 fill the messagerecipient table when fetching messages (#3073)
* wip

* trying to parse display names and emails

* add nodemailer mailparser

* mail parsing is working

* add personId and workspaceMemberId

* add date to messages

* Fix PR

* Run tsc on bigger machine

* Fix lint

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2023-12-19 17:08:54 +01:00
Weiko
e799c84233
Add sync driver for queue messages (#3070)
* Add sync driver for queue messages

* rename moduleRef

* use switch instead
2023-12-19 13:30:40 +01:00
Félix Malfait
fff51a2d91
Basic data enrichment (#3023)
* Add Enrich to frontend

* Naive backend implementation

* Add work email check

* Rename Enrich to Quick Action

* Refactor logic to a separate service

* Refacto to separate IntelligenceService

* Small fixes

* Missing Break statement

* Address PR comments

* Create company interface

* Improve edge case handling

* Use httpService instead of Axios

* Fix server tests
2023-12-18 15:45:30 +01:00
martmull
576492f3c0
3035 improve rest api syntax (#3047) 2023-12-18 13:46:21 +01:00
Deepak Kumar
2507da1b25
feat: Add feature flags to Select & Rating custom fields (#3037)
* Add feature flag key for select and rating

* Use feature flag boolean to decide if select & rating are enabled

* Enable select and rating in demo & core
2023-12-18 08:38:25 +01:00
martmull
3ac4102c3c
2915 rest api documentation (#3020)
* Init rest-api page

* Add ugly form to fetch open api schema

* Clean code

* Make the form design more acceptable

* Update doc

* Use local storage

* Update design

* Add isLoading

* Fix typo

* Fix long lines

* Code review returns

* Remove staging and local url from servers
2023-12-15 18:13:13 +01:00
bosiraphael
f95c56b1cb
2880 timebox create a poc to fetch emails from the gmail api (#2993)
* create empty service

* getting threads is working

* insert message channel

* save threads in the db

* clean

* fetch messages

* create a service to fetch a batch of messages

* batch messages

* use httpService instead

* parse batch

* base 64 decoding working

* solve parsing bug

* saving messages is working

* bug to fix in fetchAllByBatches

* fetching all messages is working but not saving yet

* fecth 500 messages and threads is working

* remove unused package and console log

* set direction to incoming

* fix bug after merging main
2023-12-15 16:35:56 +01:00
Charles Bochet
3659f12fba
Fix ExceptionHandler requiring httpAdapter (#3021) 2023-12-15 16:07:35 +01:00
Charles Bochet
064e47b59a
Fix CIs (#3004)
* Fix CIs

* Fix docs

* Fix eslint-build

* Move file

* Move back

* Fix server ci

* Fix server ci

* Fix server ci

* Fix server ci

* Deactivate e2e tests

* Fix front

* Fix front

* Fix front

* Add twenty-zapier and twenty-utils to the yarn project

* fix

* fix

* Remove pull_request trigger
2023-12-15 15:40:04 +01:00
Weiko
36164ab59b
Add pg-boss worker poc (#2991)
* Add pg-boss worker poc

* add Example job

* add retry limit

* rename MessageQueue
2023-12-14 18:57:25 +01:00
Thaïs
a10f353a4c
feat: redirect to Plan Required page if subscription status is not active (#2981)
* feat: redirect to Plan Required page if subscription status is not active

Closes #2934

* feat: navigate to Plan Required in PageChangeEffect

* feat: add Twenty logo to Plan Required modal

* test: add Storybook story

* Fix lint

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2023-12-14 12:39:22 +01:00
martmull
e3e42be723
Add generate openapi schema for rest api (#2923)
* Add generate openapi schema for rest api

* Split method in utils

* Add paramters

* Add error response

* Update description of filter and order by

* Add get/id routes

* Add delete route

* Use components

* Fix Typo

* Add tags

* Add create query

* Add required field

* Add update query

* Add body request example

* Add 201 on create request

* Add servers

* Fix failing test

* Add open-api endpoint

* Update description

* Return base schema if no auth

* Code review returns

* Use open-api/types

* Fix tag

* Use components for parameters

* Improve response examples

* Improve axios error message

* Fix tests
2023-12-13 14:58:34 +01:00
martmull
366ae0d448
2893 add data wrapper for mysql (#2970)
* Add mysql_fdw to postgres dockerfile

* Name and run detached docker containers

* Fix naming
2023-12-13 14:56:52 +01:00
Charles Bochet
08599f3d1c Fix build linter issues 2023-12-12 23:18:16 +01:00
bosiraphael
6594055317
Create empty command (#2963)
* create empty command

* update description

* rebase

---------

Co-authored-by: corentin <corentin@twenty.com>
2023-12-12 18:22:19 +01:00
Weiko
f126bd95d6
Add featureFlag gateDecorator for sync-metadata (#2956)
* Add featureFlag gateDecorator for sync-metadata

* remove gate exampels

* gate messaging objects

* gate messaging recipient object

* add missing gate
2023-12-12 17:34:59 +01:00
bosiraphael
6977fd4ce2
2812 create message recipient data model (#2961)
* create message-recipient

* connections with other models

* add to index

* fix file name
2023-12-12 17:05:09 +01:00
bosiraphael
a21fc4976b
2811 create message thread data model (#2955)
* create message thread

* link message threads and message

* add ton index.ts

* finished models

* header mail id

* update icon

* modifications

* update externalId
2023-12-12 16:08:51 +01:00
Jérémy M
8381869c7f
fix: workspace migration isNullable (#2939) 2023-12-12 15:18:37 +01:00
bosiraphael
6bc7a58902
2813 create message channel data model (#2952)
* create model

* finished model

* modidied visibility type to select

* changed back to TEXT

* handle instead of email

* handle instead of email

* handle instead of email

* modified according to comment
2023-12-12 15:14:18 +01:00
Jérémy M
44f1fe54e1
fix: use proper variable name (#2938) 2023-12-12 14:57:42 +01:00
bosiraphael
95002f5f9a
Migrate connected account model (#2944)
* migrate-connectedAccount-model

* update accountOwerId

* prevent user from connecting multiple times with the same account

* Delete .yarn/releases/yarn-1.22.21.cjs

* Delete .yarnrc

* modified according to comments

* updates
2023-12-12 11:09:20 +01:00
Weiko
d2a42c14d2
Add field create and delete migration to metadata sync (#2942)
add field create and delete migration to metadata sync
2023-12-11 17:42:09 +01:00
Charles Bochet
8d53c63801
Fix docker install (#2925)
* Fix docker install

* Move back twenty-eslint-plugin to eslint-plugin-twenty

* fix: add bundled yarn

* Improve makeifle structure

* Update commands and doc

* Add pg_graphql binaries

* Fix

---------

Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>
2023-12-11 13:36:24 +01:00
Charles Bochet
7bc8a21485 Fix wrong yarn version being used 2023-12-11 11:07:03 +01:00
Charles Bochet
44baaee28e
Update scripts and documentation to use nx and new monorepo architecture (#2912)
* Update scripts and documentation to use nx and new monorepo architecture

* Start fixing docker

* Migrate eslint plugin and postgres setup

* Fix docker

* Fix patches

* Fix

* fix: wip try to fix the patches

* Apply patches

---------

Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>
2023-12-11 10:54:57 +01:00
Charles Bochet
5bdca9de6c
Migrate to a monorepo structure (#2909) 2023-12-10 18:10:54 +01:00