Jérémy M
5019b5febc
feat: drop target column map ( #4670 )
...
This PR is dropping the column `targetColumnMap` of fieldMetadata
entities.
The goal of this column was to properly map field to their respecting
column in the table.
We decide to drop it and instead compute the column name on the fly when
we need it, as it's more easier to support.
Some parts of the code has been refactored to try making implementation
of composite type more easier to understand and maintain.
Fix #3760
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-04-08 16:00:28 +02:00
Félix Malfait
bffd73e391
Fix environment variable casting ( #4855 )
...
Fixes #4628
2024-04-05 18:15:47 +02:00
Weiko
f8da8f9805
[messaging] remove v2 feature flag ( #4845 )
...
## Context
We are now removing Messaging V2 feature flag to use it everywhere.
## Implementation
- renaming FetchWorkspaceMessagesCommandsModule to
MessagingCommandModule to make it more generic since it it hosts all
commands related to the messaging module
- creating a crons folder inside commands and jobs crons should be named
with xxx.cron.command.ts instead of xxx.command.ts. Same for jobs, jobs
should be named with xxx.cron.job.ts. In a future PR we should make sure
those CronJobs implement a CronJob interface since it's a bit different
(a CronJob does not contain a payload compared to a Job)
- Cron commands have been renamed to "cron:$module:command" so
`fetch-all-workspaces-messages-from-cache:cron:start` has been renamed
to `cron:messaging:gmail-fetch-messages-from-cache`. Also having to
create a command to stop the cron is a bit painful to maintain so I
removed them for now, this can be easily done manually with pg-boss or
bull-mq
- Removing full-sync and partial-sync commands as they were there for
testing only, we might put them back at some point but we will have to
adapt the code anyway.
- Feature flag has been removed from the MessageChannel standard object
to make sure those new columns are created during the next sync-metadata
2024-04-05 16:59:48 +02:00
martmull
358269c60e
Add IS_MULTI_SELECT_ENABLED feature flag ( #4779 )
...
closes #4776
2024-04-03 17:15:38 +02:00
Weiko
a3a15957f4
Revert company address field type ( #4737 )
...
## Context
A new ADDRESS field type has been introduced and the company object has
been updated to use this new type however this introduced a few
regressions.
The good strategy would be to introduce a new field and rename the old
one.
This PR revert that change to fix the issue.
2024-04-02 11:11:14 +02:00
Weiko
1829f4d009
Switch timestamp to timestamptz ( #4696 )
...
* Switch timestamps to timestamptz
* update standard/custom objects logic to use timestamptz
* fix test
2024-03-28 22:39:41 +01:00
martmull
27fdb00d07
4586 fix workspace member feature ( #4680 )
...
* Fix import
* Handle delete workspace member consequences
* Add a patch to request deleted workspace member's userId
* Remove useless relations
* Handle delete workspace + refactor
* Add missing migration
* Fix test
* Code review returns
* Add missing operation in migration file
* Fix code review return update
* Fix workspaceMember<>ConnectedAccount relation
2024-03-28 17:59:48 +01:00
rostaklein
3171d0c87b
feat: address composite field ( #4492 )
...
Added new Address field input type.
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2024-03-28 16:50:38 +01:00
martmull
0cc0929bd0
Rename refreshToken to appToken and add fields ( #4691 )
2024-03-28 14:07:12 +01:00
bosiraphael
416eb1eafd
4506 change field labels and field type for calendarevent object metadata to match figma ( #4679 )
...
* update calendarEvent labels and description to match Figma
* modify conferenceUri to conferenceLink with LINK type
* update format-google-calendar-event.util to match new conferenceLink
* update CalendarEventDetails since overriding the fields is no longer needed
* fix mock metadata
* generate new uuid for field conferenceLink
2024-03-27 15:17:45 +01:00
Weiko
5c40e3608b
[messaing] improve messaging import ( #4650 )
...
* [messaging] improve full-sync fetching strategy
* fix
* rebase
* fix
* fix
* fix rebase
* fix
* fix
* fix
* fix
* fix
* remove deletion
* fix setPop with memory storage
* fix pgBoss and remove unnecessary job
* fix throw
* fix
* add timeout to ongoing sync
2024-03-27 12:44:03 +01:00
Thomas Trompette
d4eb75abff
Add isRemote field on object metadata ( #4668 )
...
Add isRemote field
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-03-26 16:49:18 +01:00
Charles Bochet
c54acb35b6
Update Dev Seeds to use Ids ( #4663 )
2024-03-26 14:19:40 +01:00
Hanna Feddersen
d2b237ebf2
#4298 Add emails seed data for demo and dev seeds ( #4513 )
...
* Add message seed data
* Change order of attributes
* add personIds
* fix messageParticipants attributes
* add imports in data-seed-dev-workspace
* Update messageParticipant.ts
Delete comments
---------
Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com >
2024-03-25 19:06:05 +01:00
Thaïs
6ab43c608f
feat: create Integrations/IntegrationDetail page ( #4574 )
...
* feat: create Integrations/IntegrationDetail page
Closes #4546
* docs: add Settings/Integrations/Integration Detail page stories
* docs: add Settings/Billing page stories
* refactor: move some Settings components to @/settings
* refactor: move some Settings integrations components to @/settings/integrations
2024-03-25 18:06:46 +01:00
Thomas Trompette
9e70f5b650
Add endpoints to create and delete remote server ( #4606 )
...
* Build remote server
* Add getters
* Migrate to json inputs
* Use extendable type
* Use regex validation
* Remove acronymes
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-03-25 15:21:23 +01:00
Charles Bochet
3fa8c4bace
Add KanbanFieldMetadataId on View standard object ( #4604 )
...
* Add KanbanFieldMetadataId on View standard object
* Deprecate Pipeline step
* Fix
* Use Constants instead of raw ids
* Fix
* Fix query runner
* Fix according to review
* Fix tests
* Fix tests
* Fix tests
2024-03-21 18:08:27 +01:00
martmull
8e4123e772
48 add yearly monthly sub switch ( #4577 )
2024-03-21 10:47:25 +01:00
Jérémy M
e5c1309e8c
feat: wip server folder structure ( #4573 )
...
* feat: wip server folder structure
* fix: merge
* fix: wrong merge
* fix: remove unused file
* fix: comment
* fix: lint
* fix: merge
* fix: remove console.log
* fix: metadata graphql arguments broken
2024-03-20 16:23:46 +01:00
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
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
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
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
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
Félix Malfait
fd06d52a13
Refacto environment service ( #4473 )
...
* Refacto environment service
* Remove environment variable type
2024-03-14 11:51:19 +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
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
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
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
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
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
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
Charles Bochet
16fe79b044
Fix demo workspace seed ( #4211 )
2024-02-27 14:11:52 +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
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
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
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
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
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
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
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
martmull
bcc62596f6
Add defaultAvatarUrl to core user ( #3883 )
...
* Add defaultAvatarUrl to core user
This reverts commit 1701c30eb18804558293cc42043aedf96ea888df.
* Fix
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-02-08 14:46:37 +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
Charles Bochet
7b084ba46e
Enable Rating Field ( #3792 )
2024-02-03 08:55:29 +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
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
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
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