Antoine Moreaux and GitHub
eb88f6f584
feat(custom-domain): remove domainName + add migration for custom dom… ( #9872 )
...
…ain + feature flag
Blocked by #9849
2025-01-28 15:28:18 +01:00
Thomas Trompette and GitHub
0e981bae0a
Fix workflows empty states ( #9878 )
...
Versions and runs cannot be added manually. Updating message.
<img width="545" alt="Capture d’écran 2025-01-28 à 11 33 47"
src="https://github.com/user-attachments/assets/36b7ade8-3061-4b72-bfa5-c262e4d7d25e "
/>
<img width="614" alt="Capture d’écran 2025-01-28 à 11 34 02"
src="https://github.com/user-attachments/assets/9b524eb4-f40c-4330-a37f-fb33e08d22f4 "
/>
2025-01-28 15:16:36 +01:00
Charles Bochet and GitHub
ac92aed87f
Add command to remove duplicate messageChannelMessageAssociations ( #9886 )
...
In this PR:
- create a command to remove duplicate (groupBy messageId,
messageChannelId) within messageChannelmessageAssociaitions.
THis is needed to apply a constraint already present on
messageChannelmessageAssociaitions (to be executed before syncing
metadata)
2025-01-28 15:04:52 +01:00
Baptiste Devessier and GitHub
1e9dce3fd5
Fix the design of the Variable chip ( #9871 )
...
- Use a React component for variable tags in tiptap
- Fix the design of the variable chip
- Always display a button to delete the chip

2025-01-28 14:59:45 +01:00
b63ae14318
RICH_TEXT_V2 backend ( #9848 )
...
- Add RICH_TEXT_V2 composite type to backend.
- Add `bodyV2` field to tasks and notes.
- Minimum required frontend changes to avoid errors when creating a note
[Testing
instructions](https://github.com/twentyhq/twenty/pull/9690#issuecomment-2602378218 )
---------
Co-authored-by: ad-elias <elias@autodiligence.com >
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2025-01-28 14:05:06 +01:00
Charles Bochet and GitHub
6f72f1af33
Fix Messaging sync upsert in messageChannel association ( #9880 )
...
We have recently changed an .insert into a .upsert but we forgot to add
the unique index on the postgres schema.
2025-01-28 11:48:09 +01:00
Thomas Trompette and GitHub
069c34cd7b
Add link on snack bar ( #9873 )
...
Add link to workflow execution
<img width="639" alt="Capture d’écran 2025-01-27 à 18 15 34"
src="https://github.com/user-attachments/assets/f2a1b3b5-7bf6-4b33-bba7-bf8907f6bcc6 "
/>
2025-01-28 11:26:20 +01:00
af8d22ee99
Fix ObjectType casing and conflict between Relation and RelationMetadata ( #9849 )
...
Fixes #9827
Also uncovered a conflict with `@objectType('Relation')` and
`@objectType('relation)`
I don't want to address it in this PR so I will create a followup issue
when we close this but I think there's a confusion between
Relation/RelationMetadata, it's unclear what is what
---------
Co-authored-by: Antoine Moreaux <moreaux.antoine@gmail.com >
2025-01-28 10:06:18 +01:00
Félix Malfait and GitHub
08a0e67477
Translate label and descriptions for objects ( #9876 )
...
Begin server-side translations
2025-01-28 09:54:59 +01:00
Charles Bochet and GitHub
4542199e5c
Fix object metadata view creation issue ( #9875 )
...
Fixes https://github.com/twentyhq/core-team-issues/issues/26
Fixes https://github.com/twentyhq/twenty/issues/9350
2025-01-27 21:25:02 +01:00
Félix Malfait and GitHub
549c3faf71
Add server translation ( #9847 )
...
First proof of concept for server-side translation.
The goal was to translate one metadata item:
<img width="939" alt="Screenshot 2025-01-26 at 08 18 41"
src="https://github.com/user-attachments/assets/e42a3f7f-f5e3-4ee7-9be5-272a2adccb23 "
/>
2025-01-27 21:07:49 +01:00
Antoine Moreaux and GitHub
2a911b4305
feat(auth): centralize SSO error handling logic ( #9832 )
...
Introduce `SsoErrorRedirectService` to handle SSO error redirection and
exception capturing across the authentication controllers. Refactor
Microsoft, Google, and SSO authentication controllers to utilize this
service, replacing the previous direct calls to `DomainManagerService`.
Added unit tests for the new service to ensure robust error handling.
2025-01-27 17:55:20 +00:00
10476fcb01
remove freeAccess user logic ( #9866 )
...
closes #9763
---------
Co-authored-by: etiennejouan <jouan.etienne@gmail.com >
2025-01-27 17:49:16 +01:00
martmull and GitHub
7362558e30
Reset selectedStep with proper step ( #9867 )
...
as title
fixes
https://discord.com/channels/1130383047699738754/1331215762840485908
2025-01-27 15:35:29 +01:00
martmull and GitHub
687b61849a
Fix rightDrawer padding ( #9869 )
...
Fixes
https://discord.com/channels/1130383047699738754/1331236153713627157
## Before

## After

2025-01-27 14:31:47 +00:00
martmull and GitHub
68c4f9cb0d
Fix design to match figma ( #9864 )
...
As title
Fixes
https://discord.com/channels/1130383047699738754/1331212573902770228
## Before

## After

2025-01-27 15:23:28 +01:00
Guillim and GitHub
4bb8e3a50e
updating SettingsAccountsListEmptyStateCard ( #9868 )
...
changing from "Connect a Google account" to "Choose your provider"
updating all languages using
`npx nx run twenty-front:lingui:extract`
2025-01-27 15:20:48 +01:00
Guillim and GitHub
fded1cb5a0
Bug fix microsoft require approval ( #9863 )
...
Rolling back since apparently requiring "select_account" fails for
google
2025-01-27 13:58:42 +00:00
Guillim and GitHub
77c586db24
fix the bug "require approval" ( #9859 )
...
## The bug :
"Approval required" even though admin consent has been granted for the
whole tenant"
Fix https://github.com/twentyhq/core-team-issues/issues/277
### More details
described here in
[stackoverflow](https://stackoverflow.com/questions/79385342/approval-required-even-though-admin-consent-has-been-granted-for-the-whole-ten?noredirect=1#comment140006092_79385342 )
2025-01-27 14:36:01 +01:00
martmull and GitHub
c1e84a746c
Fix design for select action ( #9857 )
...
as title
fixes
https://discord.com/channels/1130383047699738754/1330945172489371771
2025-01-27 13:29:04 +01:00
martmull and GitHub
fb0b342374
Fix background color in code step right drawer ( #9856 )
...
Fixes
https://discord.com/channels/1130383047699738754/1331211019430924380
as title
2025-01-27 12:16:21 +01:00
Guillim and GitHub
8df3214e84
decoupling isMicrosoftAuthEnabled and IsMicrosoftSyncEnabled (which has no reason to be used here) ( #9854 )
...
### what
decoupling auth and email synchro
### why
IsMicrosoftSyncEnabled (which has no reason to be used here) since we
now allow microsoft as a auth provider
2025-01-27 11:04:19 +01:00
Guillim and GitHub
98671b6cd2
bug fix urgent ( #9851 )
...
upsert messaging
2025-01-27 10:38:18 +01:00
Baptiste Devessier and GitHub
84c299f8d4
Create a reusable Label component ( #9833 )
...
As seen with @Bonapara, I'm creating a Label component and use it in the
workflows.
2025-01-24 19:25:04 +01:00
55be726105
Rename Unintuitive Function Names in Authentication Flow ( #9706 )
...
Resolves #9623
## Description
This PR renames the following functions to better reflect their purpose.
- Backend:
- Verify → GetAuthTokensFromLoginToken
- Challenge → GetLoginTokenFromCredentials
- Frontend:
- challenge → getLoginTokenFromCredentials
- verify → getAuthTokensFromLoginToken
## Testing
_Sign in works as expected:_
https://github.com/user-attachments/assets/7e8f73c7-2c7d-4cd2-9965-5ad9f5334cd3
_Sign up works as expected:_
https://github.com/user-attachments/assets/d1794ee4-8b59-4934-84df-d819eabd5224
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2025-01-24 19:19:14 +01:00
Lucas Bordeau and GitHub
570b2e3530
Refactored record filter saving to view filters ( #9844 )
...
This PR refactors the record filter saving to view filters.
Before we used states to track the change of view filters, now we just
check if there's a difference between the current record filters and the
current view filters before saving.
We also use this check to show the reset and save buttons.
CRUD operations to perform on view filters are computed by utils , and .
Also added unit tests on those utils.
2025-01-24 18:48:59 +01:00
Baptiste Devessier and GitHub
a4011676f0
Add e2e tests for the Use as Draft feature ( #9845 )
...
Test with and without a draft version as the last version of the
workflow
2025-01-24 18:38:35 +01:00
aacbf11435
add new emails in suspended workspace cleaning job ( #9834 )
...
From: Felix from Twenty <noreply@yourdomain.com >
Subject: Action needed to prevent workspace deletion
<img width="400" alt="Screenshot 2025-01-24 at 16 31 35"
src="https://github.com/user-attachments/assets/8350a499-6815-4b00-a4fb-615b2a3b60e0 "
/>
From: Felix from Twenty <noreply@yourdomain.com >
Subject: Your workspace has been deleted
<img width="456" alt="Screenshot 2025-01-24 at 16 33 15"
src="https://github.com/user-attachments/assets/7e392e7c-519c-4b38-ae8c-ab3c9dd72c24 "
/>
closes [284](https://github.com/twentyhq/core-team-issues/issues/284 ) &
[285](https://github.com/twentyhq/core-team-issues/issues/285 ) - [parent
issue](https://github.com/twentyhq/core-team-issues/issues/179 )
---------
Co-authored-by: etiennejouan <jouan.etienne@gmail.com >
2025-01-24 18:37:06 +01:00
Thomas Trompette and GitHub
07dec36976
Tt fast follows 24/01 ( #9843 )
...
- Add icons on steps
- Add search input on object selection
- Improve event label
<img width="503" alt="Capture d’écran 2025-01-24 à 17 59 34"
src="https://github.com/user-attachments/assets/4e5d31d6-6fe5-4f78-9112-3fbd6ee66743 "
/>
<img width="503" alt="Capture d’écran 2025-01-24 à 17 59 54"
src="https://github.com/user-attachments/assets/7f37402f-3d1a-4bea-9082-05f50a711f35 "
/>
<img width="503" alt="Capture d’écran 2025-01-24 à 18 00 08"
src="https://github.com/user-attachments/assets/fffabaff-9d5d-4584-9297-e21434333de0 "
/>
2025-01-24 17:25:01 +00:00
17def223b6
Feat/2fa ( #9634 )
...
# Description
Closes #7003
Implements 2FA with TOTP.
>[!WARNING]
> This is a draft PR, with only partial changes, made as a mean of
discussion about #7003 (it's easier to reason about real code)
## Behaviour
- a `totpSecret` is stored for each user
- use [`otplib`](https://github.com/yeojz/otplib/tree/master ) to create
a QR code and to validate an `otp` against an `totpSecret` (great [demo
website](https://otplib.yeojz.dev/ ) by `otplib`)
- OTP is asked upon each login attempt
## Source
Inspired by:
- [RFC 6238](https://datatracker.ietf.org/doc/html/rfc6238 )
- Cal.com's implementation of 2FA, namely
- [raising a
401](https://github.com/calcom/cal.com/blob/c21ba636d2bec4ed55775f0b058f70fdc371c410/packages/features/auth/lib/next-auth-options.ts#L188-L190 )
when missing OTP and 2FA is enabled, with a [specific error
code](https://github.com/calcom/cal.com/blob/c21ba636d2bec4ed55775f0b058f70fdc371c410/packages/features/auth/lib/ErrorCode.ts#L9 )
- [catching the
401](https://github.com/calcom/cal.com/blob/c21ba636d2bec4ed55775f0b058f70fdc371c410/apps/web/modules/auth/login-view.tsx#L160 )
in the frontend and
[displaying](https://github.com/calcom/cal.com/blob/c21ba636d2bec4ed55775f0b058f70fdc371c410/apps/web/modules/auth/login-view.tsx#L276 )
the OTP input
## Remaining
- [ ] encrypt `totpSecret` at rest using a symetric algorithm
---------
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
Co-authored-by: Félix Malfait <felix@twenty.com >
2025-01-24 18:23:57 +01:00
Ana Sofia Marin Alexandre and GitHub
f58f84114c
update subscription interval and quantity for hybrid susbscription ( #9822 )
...
Solves https://github.com/twentyhq/private-issues/issues/253
**TLDR:**
Can update the billing subscription interval for a subscription with a
base product and metered product. It also updates correctly as the
quantity of base products depending on how many people are in the
workspace.
**In order to test:**
1. Have the environment variable IS_BILLING_ENABLED set to true and add
the other required environment variables for Billing to work
2. Do a database reset (to ensure that the new feature flag is properly
added and that the billing tables are created)
3. Run the command: npx nx run twenty-server:command
billing:sync-plans-data (if you don't do that the products and prices
will not be present in the database)
4. Run the server , the frontend, the worker, and the stripe listen
command (stripe listen --forward-to
http://localhost:3000/billing/webhooks )
5. Buy a subscription for the Acme workspace , change the interval in
the Billing Settings
6. Add another person to the workspace, you should see all the previous
changes reflected in the database
**Doing**
Moving the BillingSubscriptionsService.getUpdatedSubscriptionItems to an
util (for a less cluttered service)
2025-01-24 18:19:09 +01:00
Paul Rastoin and GitHub
c89cc38729
[MISC] Twenty-shared build declaration and declarationMap tsconfig ( #9838 )
...
# Motivations
By adding the declaration and declaration mapping this allows a better
`go to source` in our IDE
Should also be done for
https://github.com/twentyhq/core-team-issues/issues/281
## FROM
https://github.com/user-attachments/assets/5cc307d0-b2dc-46bf-b61f-0731015c4a30
## TO
https://github.com/user-attachments/assets/5ed1d7af-2716-435d-a1b8-6738b5a77956
## Notes
Might be interesting to add global commands for:
- watch mode for `twenty-ui` and `twenty-shared`
- clean, output folders such as `dist` and `node_modules` and so on
2025-01-24 17:56:42 +01:00
martmull and GitHub
03197226f4
Fix Cmd enter to test code step ( #9841 )
2025-01-24 16:46:56 +00:00
Paul Rastoin and GitHub
95c772664e
Refactor triggerUpdateRelationsOptimisticEffect to compute relationship from Metadatas ( #9815 )
...
# Introduction
At the moment the relationships are inferred from the record data
structure instead of its metadatas
We should refactor the code that computes or not the necessity to detach
a relation on a mutation
We've refactored the `isObjectRecordConnection` method to be consuming a
`relationDefintion` instead of "typeChecking" at the runtime the data
structure using zod validation schema
Related to #9580
2025-01-24 17:24:23 +01:00
Kevin Kim and GitHub
a8552a6a67
Fix Typo in Filename ( #9835 )
...
- Rename `mircosoft-apis-oauth-request-code.guard.ts` to
`microsoft-apis-oauth-request-code.guard.ts `
- Update import statement in
`packages/twenty-server/src/engine/core-modules/auth/controllers/microsoft-apis-auth.controller.ts`
to reflect the updated filename.
2025-01-24 16:24:41 +01:00
25cb909e17
Improve Docker-Compose Install Experience ( #9781 )
...
This PR updates the docker-compose installation documentation and env
sample to improve the setup experience.
- Updates the URLs for raw files to reference main branch, which is
likely where new users will be pulling from initially. This seems to be
the most straightforward option; assume that advanced users who want to
retrieve it from a particular tag will know to change the URL for their
scenario.
- Fixes an improperly stated curl command.
- Adds a note that the PGPASSWORD_SUPERUSER should be URL-safe. This is
required since the value is later concat into a PG_DATABASE_URL as a
URL, and expected to be in proper URL format. Touches on #8597 .
---------
Co-authored-by: Félix Malfait <felix@twenty.com >
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
2025-01-24 16:13:28 +01:00
Raphaël Bosi and GitHub
ff41768e8f
250 implement restore context button on command menu ( #9836 )
...
Closes https://github.com/twentyhq/core-team-issues/issues/250
https://github.com/user-attachments/assets/9c120188-497d-4273-9137-f8d0de3bd884
2025-01-24 16:10:02 +01:00
Thomas Trompette and GitHub
29df6e64a0
Fix icon matching + small other fixes on workflows ( #9814 )
...
- Record Fields label
- body height fix
- Icons on object picker
- Fix icon matching between nodes and right drawer
<img width="1296" alt="Capture d’écran 2025-01-23 à 18 51 12"
src="https://github.com/user-attachments/assets/ecd5fb00-49cd-416e-96af-9200418294e0 "
/>
2025-01-24 15:47:09 +01:00
martmull and GitHub
1a42483aa9
Fix wrong label formatting ( #9830 )
...
Fixes
https://discord.com/channels/1130383047699738754/1324785862830985266
## Before
<img width="451" alt="image"
src="https://github.com/user-attachments/assets/53ae96f9-4bbd-40e3-beaa-a5702f2adee4 "
/>
## After
<img width="388" alt="image"
src="https://github.com/user-attachments/assets/e36da162-bc60-4596-823b-ffb6ddfed98d "
/>
2025-01-24 15:11:30 +01:00
Antoine Moreaux and GitHub
f23de2fa22
chore(auth): update SAML strategy configuration ( #9829 )
...
Added `disableRequestedAuthnContext` flag to SAML auth strategy to align
with compatibility requirements. Adjustments ensure seamless integration
with certain Identity Providers. No functional impact on existing flows.
2025-01-24 14:52:42 +01:00
edd7212f0b
feat: add clean suspended workspaces command ( #9808 )
...
closes [283
sub-issue](https://github.com/twentyhq/core-team-issues/issues/283 ) -
[parent issue
](https://github.com/orgs/twentyhq/projects/1/views/3?filterQuery=sprint%3A%40current+assignee%3Aetiennejouan&pane=issue&itemId=93520456&issue=twentyhq%7Ccore-team-issues%7C179 )
---------
Co-authored-by: etiennejouan <jouan.etienne@gmail.com >
2025-01-24 11:10:52 +01:00
Félix Malfait and GitHub
15814d465a
Fix missing events during account connection ( #9825 )
...
Fix #8765
2025-01-24 10:10:42 +00:00
Jérémy M and GitHub
8d794374f1
feat: new relation resolver ( #9794 )
...
Fix [#240 ](https://github.com/twentyhq/core-team-issues/issues/240 )
2025-01-24 10:38:50 +01:00
Antoine Moreaux and GitHub
5783c41df2
fix(auth): Improve error management with sso + fix microsoft saml ( #9799 )
...
Fix #9760 #9758
2025-01-24 10:36:18 +01:00
3c85516f77
fixed ellipsis for calendar events ( #9823 )
...
Fixed Missing ellipsis for long calendar event names #5267 introducing
width for the title
Co-authored-by: Charles Bochet <charles@twenty.com >
2025-01-24 10:33:46 +01:00
6af42b9b9b
Fix: Remove default value for name field in CustomWorkspaceEntity ( #9805 ) ( #9824 )
...
### Summary
This pull request addresses issue #9805 by removing the default value
`'Untitled'` for the `name` field in the `CustomWorkspaceEntity` class.
### Details
- Removed the default value `'Untitled'` for the `name` field.
- This change ensures that new records do not have an empty or default
name.
- Ensures consistency across different standard object records.
### Issue
This pull request resolves issue #9805 .
### Testing
Tested the creation of new records to ensure that the `name` field is
now correctly handled without a default value.
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
2025-01-23 19:01:03 +01:00
Baptiste Devessier and GitHub
23400e9679
Normalize the spacing between nodes ( #9820 )
...
## Old


## New

2025-01-23 18:26:51 +01:00
martmull and GitHub
daa8ff1299
148 cant access note without title from kanban board ( #9817 )
...
closes https://github.com/twentyhq/core-team-issues/issues/148
- fixes not openable kanban card when identifier empty
- update card behavior (onClick open recordPage)
- fixes right click actionDropdown position
## Before
https://github.com/user-attachments/assets/696194b8-d7fa-4fc1-a6f9-b46241a262e5

## After
https://github.com/user-attachments/assets/41e296e5-ae16-47f8-b174-7dd21d74188d

2025-01-23 17:05:35 +00:00
Félix Malfait and GitHub
afa2282ea3
Fix left menu highlight ( #9821 )
...
Fix #9777
getAppPath doesn't return object/pet/ but actually object/pet so it
needed a small adjustment (pet - 1 = PE is included in PEople)
2025-01-23 17:59:30 +01:00
Jérémy M and GitHub
bf564788c3
fix: board hide button not working ( #9818 )
...
Fix #9816
2025-01-23 16:17:46 +00:00