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
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
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
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 852fd3c19367dff79147490b7eaa9fd348d101a1.
* use WorkspaceDataSourceModule
2024-02-23 10:18:16 +01:00
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
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
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
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
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
595b2f9e6f
Webhook Docs ( #3966 )
...
* add webhook docs, openapi v3.1, stoplight v8
* *.*
2024-02-16 15:01:37 +01:00
547145389c
Docs include field description ( #3973 )
...
- include field description
2024-02-16 14:38:39 +01:00
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
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
49cc01d7d8
[messaging] fix add messageParticipant not in a transaction ( #3981 )
2024-02-14 19:28:25 +01:00
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
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
458e8c839f
Add workspacePreQueryHook module ( #3879 )
...
* rebase
* reorganise messaging folders
* fix
* fix after review
* fix yarn lock
2024-02-13 18:23:29 +01:00
d016e5ff03
BUG FIX: Create workspace member if inviteHash exists ( #3917 )
...
Create workspace member if inviteHash exists
2024-02-12 17:43:26 +01:00
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
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 1701c30eb18804558293cc42043aedf96ea888df.
* Add defaultAvatarUrl to core user
This reverts commit 1701c30eb18804558293cc42043aedf96ea888df.
* 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 8aa20a34363ffddfdee24f18fc80b27ea0ad5e1d.
* Fix
* Revert "Fix"
This reverts commit 2df7e9b6569b8bfb53f6a45391db725e28d16a18.
* Revert "Revert "Clean Mock Requests""
This reverts commit 3aefef8e9600d161434a047e845563d1b8e0692e.
* Revert "Fix tentative"
This reverts commit 13e7748d6f3b3858d30fb08adbc8ad347c5556ee.
* Update filename
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-02-09 12:06:11 +01:00
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
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
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
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
7b084ba46e
Enable Rating Field ( #3792 )
2024-02-03 08:55:29 +01:00
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
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
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
9053769616
[Messaging] Fix gmail connected account creation redirect url ( #3653 )
2024-01-26 18:28:06 +01:00
ebfa1bea99
fix-threads-pagination ( #3639 )
2024-01-26 14:24:27 +01:00
b49a8b84db
Remove error when new_psw==old_psw ( #3637 )
2024-01-26 12:11:46 +01:00
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
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
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
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
afc36c7329
Introduce new board feature flag ( #3602 )
2024-01-24 14:24:02 +01:00
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
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
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
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
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
4695e99458
3369 rename messagerecipients table into messageparticipants ( #3457 )
...
* renaming
* renaming
2024-01-15 16:55:19 +01:00
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
16a24c5f0c
Rework relations ( #3431 )
...
* Rework relations
* Fix tests
2024-01-15 12:07:23 +01:00
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 fe062dd05166b95125cf99f2165cc20efb6c275a.
* Add email theme 2
* Revert "Revert "Remove test files""
This reverts commit 6c6471273ad765788f2eaf5a5614209edfb965ce.
* Revert "Revert "Revert "Remove test files"""
This reverts commit f851333c24e9cfe3f425c9cbbd1e079efce5c3dd.
* Revert "Revert "Revert "Revert "Remove test files""""
This reverts commit 7838e19e88e269026e24803f26cd52b467b4ef36.
* 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
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
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
0a77a376fd
Import messages after connected-account creation ( #3389 )
2024-01-11 20:05:08 +01:00
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
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