Commit Graph

86 Commits

Author SHA1 Message Date
fd06d52a13 Refacto environment service (#4473)
* Refacto environment service

* Remove environment variable type
2024-03-14 11:51:19 +01:00
3caf860848 4285 timebox create google calendar full sync (#4442)
* calendar module

* wip

* creating a folder for common files between calendar and messages

* wip

* wip

* wip

* wip

* update calendar search filter

* wip

* working on full sync service

* reorganizing folders

* adding repositories

* fix typo

* working on full-sync service

* Add calendarQueue to MessageQueue enum and update dependencies

* start transaction

* wip

* add save and update functions for event

* wip

* save events

* improving step by step

* add calendar scope

* fix nest modules imports

* renaming

* create calendar channel

* create job for google calendar full-sync

* call GoogleCalendarFullSyncJob after connected account creation

* ask for scope conditionnally

* fixes

* create channels conditionnally

* fix

* fixes

* fix FK bug

* filter out canceled events

* create save and update functions for calendarEventAttendee repository

* saving messageParticipants is working

* save calendarEventAttendees is working

* add calendarEvent cleaner

* calendar event cleaner is working

* working on updating attendees

* wip

* reintroducing google-gmail endpoint to ensure smooth deploy

* modify callbackURL

* modify front url

* changes to be able to merge

* put back feature flag

* fixes after PR comments

* add feature flag check

* remove unused modules

* separate delete connected account associated job data in two jobs

* fix error

* rename calendar_v3 as calendarV3

* Update packages/twenty-server/src/workspace/calendar-and-messaging/utils/valueStringForBatchRawQuery.util.ts

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

* improve readability

* renaming to remove plural

* renaming to remove plural

* don't throw if no connected account is found

* use calendar queue

* modify usage of HttpService in fetch-by-batch

* modify valuesStringForBatchRawQuery to improve api and return flattened values

* fix auth module feature flag import

* fix getFlattenedValuesAndValuesStringForBatchRawQuery

---------

Co-authored-by: Jérémy M <jeremy.magrin@gmail.com>
2024-03-14 11:23:31 +01:00
f847b64fd1 fix serverurl in openapi docs for self hosted instance (#4390)
* fix serverurl in openapi docs for self hosted instance

* fixed server url slash, moved calculation to enviroment function, fixed openapi path hardcoded api.twenty.com
2024-03-13 12:13:45 +01:00
62d414ee66 40 remove self billing feature flag (#4379)
* Define quantity at checkout

* Remove billing submenu when not isBillingEnabled

* Remove feature flag

* Log warning when missing subscription active workspace add or remove member

* Display subscribe cta for free usage of twenty

* Authorize all settings when subscription canceled or unpaid

* Display subscribe cta for workspace with canceled subscription

* Replace OneToOne by OneToMany

* Add a currentBillingSubscriptionField

* Handle multiple subscriptions by workspace

* Fix redirection

* Fix test

* Fix billingState
2024-03-12 18:10:27 +01:00
4476f5215b [messaging] Fix thread cleaner service subqueries (#4416)
* [messaging] Fix thread cleaner service subqueries

* add pagination

* various fixes

* Fix thread merging

* fix

* fix
2024-03-12 17:49:45 +01:00
17511be0cf TWNTY-3794 - ESLint rule: only take explicit boolean predicates in if statements (#4354)
* ESLint rule: only take explicit boolean predicates in if statements

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>

* Merge main

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>

* Fix frontend linter errors

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>

* Fix jest

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>

* Refactor according to review

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>

* Refactor according to review

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>

* Fix lint on new code

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br>
2024-03-09 10:48:19 +01:00
4a7a629824 44 add blocking middleware payment failed (#4339)
* Add info ui component

* Add info in billing settings

* Add billing middleware

* Handle subscription canceled webhook event

* Stop deleting billingSubscription when subscription canceled

* Handle subscription unpaid recovery

* Handle subscription canceled status

* Fix test

* Add test

* Fix test chatSupport display

* Fix design
2024-03-07 17:22:58 +01:00
c3a024b047 feat: sync all workspaces (#4353) 2024-03-07 15:40:09 +01:00
019c630686 Use new type position for standard objects and newly created objects (#4349)
Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-06 18:34:10 +01:00
0b889ef089 43 add billing portal link (#4318)
* Add create billing portal session endpoint

* Rename checkout to checkoutSession

* Add billig portal query in twenty-front

* Add billing menu item

* WIP: add menu page

* Code review returns

* Rename request files

* Unwip: add menu page

* Add billing cover image

* Fix icon imports

* Rename parameter

* Add feature flag soon pill
2024-03-05 17:40:58 +01:00
28a093d495 42 add billing portal endpoint (#4315)
* Add create billing portal session endpoint

* Rename checkout to checkoutSession

* Code review returns
2024-03-05 15:28:45 +01:00
caa4dcf893 feat: adding metadata open-api endpoints and updating docs (#4170)
* initialise metadata schema for open-api

* remove "soon" label on metadata rest-api

* open-api fetch paths

* remove parameter type for metadata schema

* add REST module to open-api

* metadata schema components

* metadata paths

* refactor and /open-api route fix
2024-03-05 11:37:16 +01:00
9035762d43 Fix telemetry (#4303) 2024-03-04 19:04:55 +01:00
63d403454c feat: multi-workspace followup (#4197)
* Seed UserWorkspace for existing demo/dev users

* add workspaces field to currentUser

* new token generation endpoint for switching workspace

* lint fix

* include dependency

* requested fixes

* resolver test pass

* changing defaultWorkspace and workspaceMember when switching workspaces

* tests fix

* requested changes

* delete user/workspace edge case handled

* after merge

* requested changes

* :wq!

* workspace manytoone relation

* lint fix / import fix

* gql codegen

* Fix migrations and generateJWT

* migration fix

* relations fix

---------

Co-authored-by: martmull <martmull@hotmail.fr>
2024-03-04 16:14:04 +01:00
8f6200be7d 41 update subscription when workspace member changes 2 (#4252)
* Add loader and disabling on checkout button

* Add Stripe Subscription Item id to subscriptionItem entity

* Handle create and delete workspace members

* Update billing webhook

* Make stripe attribute private

* Fixing webhook error

* Clean migration

* Cancel subscription when deleting workspace

* Fix test

* Add freetrial

* Update navigate after signup

* Add automatic tax collection
2024-03-01 17:29:28 +01:00
fb439e3045 Enable new record board and messaging for all workspaces except demo (#4243)
* Enable new record board and messaging for all workspaces except demo

* Fix according to PR
2024-02-29 18:22:32 +01:00
9ca3dbeb70 39 create subscription and success modale (#4208)
* Init add choose your plan page component

* Update price format

* Add billing refund trial duration env variable

* Add billing benefits

* Add Button

* Call checkout endpoint

* Fix theme color

* Add Payment success modale

* Add loader to createWorkspace submit button

* Fix lint

* Fix dark mode

* Code review returns

* Use a resolver for front requests

* Fix 'create workspace' loader at sign up

* Fix 'create workspace' with enter key bug
2024-02-28 19:51:04 +01:00
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
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
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