Commit Graph

382 Commits

Author SHA1 Message Date
Aditya Pimpalkar
da12710fe9
feat: multi-workspace (frontend) (#4232)
* select workspace component

* generateJWT mutation

* workspaces state and hooks

* requested changes

* mutation fix

* requested changes

* user workpsace delete call

* migration to drop and createt user workspace

* revert select props

* add DropdownMenu

* seperate multi-workspace dropdown as component

* Signup button displayed accurately

* update seed data for multi-workspace

* lint fix

* lint fix

* css fix

* lint fix

* state fix

* isDefined check

* refactor

* add default workspace constants for logo and name

* update migration

* lint fix

* isInviteMode check on sign-in/up

* removeWorkspaceMember mutation

* import fixes

* prop name fix

* backfill migration

* handle edge cases

* refactor

* remove migration query

* delete user on no-workspace found condition

* emit workspaceMember.deleted

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

* Edit migration (I did it in prod manually)

* Revert changes

* Fix tests

* Fix conflicts

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
2024-03-20 14:43:41 +01:00
Charles Bochet
cfb0cce9b8
Refactor Views by cleaning the code, relying on apolloCache and improving performances (#4516)
* Wip refactoring view

* Post merge conflicts

* Fix review

* Add create view capability

* Fix create object missing view

* Fix tests
2024-03-20 14:21:58 +01:00
martmull
35d41e38c8
Set optional checkout.session.url (#4569)
* Set optional checkout.session.url

* Lint

* Edit .env.example

* Vale CI

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
2024-03-20 07:04:07 +01:00
Félix Malfait
4bfb90657f
Add JSON field type and Event object (#4566)
* Add JSON field type and Event object

* Simplify code

* Adress PR comments and add featureFlag
2024-03-19 21:54:08 +01:00
bosiraphael
4ab426c52a
4485 create a custom resolver for calendar events (#4568)
* create timeline calendar event resolver

* working on getCalendarEventsFromPersonIds

* add count query

* add calendarEventVisibility and add typing

* update calendarEvent dto

* modify calendarEvent dto

* compute calendar event visibility

* fix types

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

* remove fieldMatadata

* fix naming

* update resolver

* add getCalendarEventsFromCompanyId

* fix queries

* refactor queries

* fix visibility

* fix calendar event attendees bug

* visibility is working

* remove @IDField

* update gql queries

* update dto

* add error

* add enum

* throw http exception

* modify error

* Refactor calendar event visibility check

* use enum
2024-03-19 18:34:00 +01:00
Thomas Trompette
e579554d47
Add getters factory for attachements (#4567)
* Add getter factory for attachements

* Override guard in test

* Add secret in env variables

* Return custom message on expiration

* Rename to signPayload

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-19 16:39:53 +01:00
Félix Malfait
bdbd77c696
Cleanup default values and leftover methods in environmentService (#4550)
* Cleanup default values and leftover methods in environmentService

* Adress remainings configService calls
2024-03-18 17:09:39 +01:00
Weiko
8fb1ab8933
[backend] rename repository services and replace repository modules by dynamicModule (#4536)
* rename database services to repository

* refactor more repositories

* more refactoring

* followup

* remove unused imports

* fix

* fix

* Fix calendar listener being called when flag is off

* remove folders
2024-03-18 16:26:23 +01:00
Thomas Trompette
411aac5efc
Remove demo guard for mail api (#4527)
Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-18 14:05:35 +01:00
Charles Bochet
7294d5aedc Add migrate prod command 2024-03-15 23:33:25 +01:00
Charles Bochet
eb07b373a7 Fix storage s3 endpoint not being optional 2024-03-15 23:08:30 +01:00
Abdullah
dc9b84114a
Server fix: Update EnvironmentService import path in File Module. (#4508)
fix: update the import path for environment service inside the file.module.ts file to get the server up again
2024-03-15 20:05:35 +01:00
Thomas Trompette
8980cc576c
Prevent file upload in demo workspaces (#4503)
* Build demo env guard

* Put guard for auth

* Add todo

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-15 19:15:22 +01:00
Weiko
2c09096edd
Refactor backend folder structure (#4505)
* Refactor backend folder structure

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

* fix tests

* fix

* move yoga hooks

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-03-15 18:37:09 +01:00
Thaïs
38f28de4a6
feat: open event details drawer on event row click (#4464)
* feat: open event details drawer on event row click

Closes #4294

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

* fix: fix calendar event field values not being set

* chore: review - reactivate no-extra-boolean-cast eslint rule
2024-03-15 17:37:36 +01:00
Thomas Trompette
21cd38d6fb
Add command to stop demo seed cron (#4480)
Rename start cron + add stop cron

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-15 15:23:07 +01:00
Weiko
7555e7aad5
[messaging] Fix messaging formatAddress tests (#4482)
* [messaging] Fix messaging formatAddress tests

* rebase

* remove unused test
2024-03-15 14:58:02 +01:00
Jérémy M
94487f6737
feat: refactor folder structure (#4498)
* feat: wip refactor folder structure

* Fix

* fix position

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-03-15 14:40:58 +01:00
Weiko
991bb09622
[messaging] fix participant handles with trailing spaces (#4457) 2024-03-14 13:46:38 +01:00
Félix Malfait
42e86c7c82
Enable backend to serve frontend (#4461)
Basic POC to have frontend served by backend
2024-03-14 11:53:10 +01:00
Félix Malfait
fd06d52a13
Refacto environment service (#4473)
* Refacto environment service

* Remove environment variable type
2024-03-14 11:51:19 +01:00
bosiraphael
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
Mohamed Houssein Douici
e0dac82e07
fix: exclude GQL scalar types from the name validation of object and field metadata (#4467) 2024-03-14 10:41:48 +01:00
Thomas Trompette
a02e11f81a
Use prepared statements + add tests for record position (#4451)
Use prepared statements + add tests

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-13 14:47:54 +01:00
Charles Bochet
4e1e4e2c4c
Upgrade documentation UI component rendering (#4445)
Upgrade documenation UI component rendering
2024-03-13 13:26:46 +01:00
brendanlaschke
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
Jérémy M
d8b370720c
feat: wip sync standard id (#4373)
* feat: wip sync standard id

feat: implement standardId for sync command

* fix: rebase

* fix: tests

* fix: deterministic uuid

* fix: sync custom not working

* fix: create custom not adding standardId

* fix: readability
2024-03-13 12:06:10 +01:00
Thomas Trompette
7b63cf14bc
Build listener to backfill position (#4432)
* Build listener to backfill position

* Fix tests

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-13 10:27:34 +01:00
martmull
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
Weiko
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
Thomas Trompette
91f4e1a853
Fix activity creation (#4426)
* Fix activity creation

* Fix tests

* Remove recursive logic + fix test

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-12 17:01:24 +01:00
Weiko
0d8e700239
[backend] use cache storage service for workspace schema cache (#4342)
* [backend] add cache storage module

* update docs

* update default TTL to a week

* Use cacheStorageService for WorkspaceSchemaCache

* remove memory storage module

* revert pattern

* remove logs
2024-03-12 13:51:39 +01:00
brendanlaschke
1b485c2984
Hide favorites,MessageParticipant and calendareventattendees from datamodel (#4392)
hide favorites, MessageParticipant and calendareventattendees from datamodel
2024-03-12 11:47:27 +01:00
Félix Malfait
a122a7f01e
Bugfix relation with same field name (#4414)
* Bugfix relation with same field name

* Fix concurrency issue
2024-03-12 10:24:09 +01:00
Charles Bochet
5287b7c4ab
Add icon, position and key on View (#4413)
* Add view key field

* Update Prefill demo, seed dev, prefill new workspace
2024-03-11 17:00:19 +01:00
Thomas Trompette
c82c60b448
Build arg setter for position (#4396)
* Build arg setter for position

* Build separated query factory + rename existing

* Sort record by position in front

* Add tests

* Set first for type board

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-11 16:18:15 +01:00
Lucas Bordeau
a5b41e09f5
Added a RelationFromOneSide ResolveField in FieldMetadata GraphQL Resolver (#4378)
* Added a ResolveField for relationDefinition on a FieldMetadataItem
2024-03-11 15:04:52 +01:00
gitstart-app[bot]
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
bosiraphael
0c17decfb9
4284 create calendarchanneleventassociation data model (#4350)
* create model

* add calendar channel relation

* add calendar event relation

* add to index.ts

* done

* updates

* update relation

* update relation

* updates after comments
2024-03-08 16:29:40 +01:00
Weiko
250bb6134e
[messaging] remove partial sync retry and fix missing datasource error (#4371)
* [messaging] remove partial sync retry and fix missing datasource error

* revert

* fix

* add 429

* fix

* fix

* fix

* remove duplicate log

* fix cron pattern
2024-03-08 14:06:21 +01:00
Charles Bochet
d2e2e50d8a
Fix consistency issuesin relation onDelete behavior while creating a new relation (#4372)
* Fix consistency issuesin relation onDelete behavior while creating a new relation

* Fix according to review
2024-03-08 11:49:42 +01:00
Charles Bochet
5988891f5e Fix companyId should be nullable on person standard object 2024-03-07 17:46:51 +01:00
selango1
024156cd52
Fix: design improvement for release page (#4277)
* Update Release.tsx

* Update StyledTitle.tsx

Changed Release color font to primary (#141414)

* Update StyledTitle.tsx

Spacing around the title for  mobile , header font change for tablet

* Update Release.tsx

changed the date font -weight
removed the redundant paragraph color
added media design changes of spacing1, spacing2, paragrap gap

* Update StyledTitle.tsx

subhead releases font color

* Update Release.tsx

media alignment, release font change,

* Update Release.tsx

* Quick fix

* Unrelated change (sentry)

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
2024-03-07 17:26:39 +01:00
martmull
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
Jérémy M
af6ffbcc68
feat: standard fields on custom (#4332)
* feat: add ability to sync standard fields on custom object

* fix: clean

* fix: wrong compute during object creation

* fix: missing cascade delete

* fix: remove unused injected class

* fix: naming

* fix: rename factory to paramsFactory and clean

* fix: rename ExtendCustomObjectMetadata to BaseCustomObjectMetadata

* fix: partial fix inconsistent label and description

* Fixes

* Fix

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-03-07 17:21:50 +01:00
Jérémy M
c3a024b047
feat: sync all workspaces (#4353) 2024-03-07 15:40:09 +01:00
Weiko
41bed57be9
[backend] add cache storage module (#4320)
* [backend] add cache storage module

* update docs

* update default TTL to a week
2024-03-07 14:07:01 +01:00
Weiko
e7733a1b7a
Fix fetchAllMessages cronJob when deleted datasource (#4355) 2024-03-07 12:31:57 +01:00
Thomas Trompette
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
Charles Bochet
e5c09deae5
Improve performances of metadata endpoint (#4347) 2024-03-06 18:09:38 +01:00
bosiraphael
577de7240c
4283 create calendareventattendee data model (#4333)
* add person relation

* add workspaceMember relation

* done

* update channel

* update event data-model

* add relation

* done

* changes after review

* update model
2024-03-06 18:05:40 +01:00
Thomas Trompette
60239353a9
Create new type position (#4336)
* Create new type position

* Remove position filter type

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-06 14:41:51 +01:00
Charles Bochet
706b5d3cf1
Release 0.3.2 (#4324)
* Release 0.3.2

* Fix Select search
2024-03-05 18:57:31 +01:00
bosiraphael
0d231902f0
4281 create calendarevent data model (#4317)
* create model

* update model

* remove webLink

* done

* fix namePlural case

* Delete packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata.ts

* updates after comments

* add enum
2024-03-05 17:50:07 +01:00
gitstart-twenty
a7733b24df
Add a concise test report with just the errors (#4220)
* Add a concise test report with just the errors

Co-authored-by: KlingerMatheus <klinger.matheus@gitstart.dev>

* Refactor according to review

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: KlingerMatheus <klinger.matheus@gitstart.dev>

* Add a concise test report

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: KlingerMatheus <klinger.matheus@gitstart.dev>

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: KlingerMatheus <klinger.matheus@gitstart.dev>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
2024-03-05 17:43:31 +01:00
Arshil Vahora
6bb7042a68
Select Field Input Menu scrollable and add Select Field in Filter and Sort (#3656)
* - fix Select Option Menu scrollable and added search

- add select field in filter and sort operation

* Fix lint

* Fix post merge

* Fix select filter

* Fix

* Remove duplicated search input

* fix turn object into query

* Rename search inputs

* Remove debounced for options

* Simplify option filter

* Rename option to MenuItemSelectTag

* Fix test

* Infer type from field metadata item

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-05 17:41:41 +01:00
martmull
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
bosiraphael
9fc421876f
4282 create calendarchannel data model (#4314)
* create model

* add connected account relation

* fix import

* relation is working

* remove isNullable
2024-03-05 16:12:56 +01:00
martmull
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
rostaklein
f2099d339f
feat: change condition of duplicate check (#4273)
* change condition of duplicate check

* fix: review comments addressed
2024-03-05 12:11:37 +01:00
Aditya Pimpalkar
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
Félix Malfait
9035762d43
Fix telemetry (#4303) 2024-03-04 19:04:55 +01:00
bosiraphael
735e75b3b1
Fix domain name parsing on company creation (#4297)
* add domain parsing library

* change package for psl

* trying to fix error

* fix

* update

* remove unused function
2024-03-04 17:50:41 +01:00
AutoComput
aa7fa3acfa
Update .env.example (#4177)
* Update .env.example

this .env file will now work with the docker-compose example provided.

* Update .env.example

* Update doc and reset env example

---------

Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-03-04 17:17:40 +01:00
Félix Malfait
6d70540cdc
Add sentry tracing (#4279)
* Add sentry tracign

* Improve Sentry loggin
2024-03-04 16:31:15 +01:00
Aditya Pimpalkar
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
Weiko
3c63584ef8
[messaging] add more details in exceptions (#4256)
[messaging] add more logs in exceptions
2024-03-04 14:05:01 +01:00
martmull
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
gitstart-app[bot]
aa7ead3e8c
TWNTY-3942 - Enable Attachments on Custom Objects (#4253)
* Enable Attachments on Custom Objects

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

* Revert changes to the client

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

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: v1b3m <vibenjamin6@gmail.com>
2024-03-01 16:39:40 +01:00
bosiraphael
4242b546b6
Handle error 429 during partial sync (#4258)
handle error 429
2024-03-01 14:41:42 +01:00
Charles Bochet
0c2c57ab9b
Fix blocklist standard object being unhealthy (#4255)
Fix blocklist standard object unhealthy
2024-03-01 10:39:22 +01:00
Charles Bochet
5e261783da Fix default value being set to null when not provider to fieldMetadataUpdate 2024-03-01 08:58:19 +01:00
Charles Bochet
ad4b3d0d59
Fix enum defaultValue broken (#4251)
* Fix enum defaultValue broken

* Fix

* Fix
2024-02-29 19:35:00 +01:00
bosiraphael
72ae6e44b3
Remove Gate decorator IS_BLOCKLIST_ENABLED from BlocklistObjectMetadata (#4250)
* Remove Gate decorator from BlocklistObjectMetadata

* check if blocklist is enabled

* wip

* done
2024-02-29 19:25:11 +01:00
Charles Bochet
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
bosiraphael
773f698faf
Add error handling in GmailPartialSyncService (#4248)
* Add error handling in GmailPartialSyncService

* improve typing
2024-02-29 18:11:53 +01:00
Thomas Trompette
11434fc1c6
Handle multiple orderBy sorting (#4246)
Co-authored-by: Thomas Trompette <thomast@twenty.com>
2024-02-29 17:36:22 +01:00
Weiko
8a669cc540
[messaging] add better logs to messaging sync jobs (#4245) 2024-02-29 17:30:42 +01:00
bosiraphael
bc11cf80fa
4209 speed up gmail full sync by using search params to query only the relevant emails (#4213)
* create blocklist service

* blocklist is working on email import in full sync

* add log

* add blocklist to partial sync

* define rule for blocklist imports

* gmail filter is working

* correct typo

* fix bugs

* getCompanyNameFromDomainName

* renaming

* remove unused service

* add transaction
2024-02-29 12:26:58 +01:00
bosiraphael
8c08f1b603
Remove html from messages (#4229)
* remove html

* remove html

* remove html from db
2024-02-29 12:01:01 +01:00
Charles Bochet
f52a4141c9
Fix nullable being set to null for text field (#4239) 2024-02-29 11:29:17 +01:00
martmull
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
Charles Bochet
e0bf8e43d1
Update relation cascade on standard objects favorite, attachment, activityTargets (#4227) 2024-02-28 17:49:45 +01:00
bosiraphael
fcfc6796f7
Add pagination to partial sync and add logs (#4223)
* update gmail partial sync to add pagination

* adding logs

* update

* improve readability
2024-02-28 14:55:54 +01:00
Weiko
47656479ba
[messaging] fix empty history (#4218) 2024-02-28 14:32:05 +01:00
bosiraphael
a19de71fad
4017 improve queries on messages write (#4207)
* modify code to reduce nested loops and improve performances

* is working

* fix lastSyncHistoryId

* create new service to share it betweent partial sync and full sync

* update partial sync

* update batch limit

* renaming

* adding logs

* update logs

* update logs

* update logs

* delete messages if error while saving the participants

* refactoring

* improving logs

* update logs

* delete historyId if outdated
2024-02-27 16:06:19 +01:00
Charles Bochet
16fe79b044
Fix demo workspace seed (#4211) 2024-02-27 14:11:52 +01:00
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