Skip to content

Commit 0e76deb

Browse files
authored
Merge branch 'main' into refactor/clipboard-access
2 parents 437392c + 9211113 commit 0e76deb

File tree

402 files changed

+14593
-886
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

402 files changed

+14593
-886
lines changed

packages/twenty-front/jest.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ const jestConfig: JestConfigWithTsJest = {
5252
extensionsToTreatAsEsm: ['.ts', '.tsx'],
5353
coverageThreshold: {
5454
global: {
55-
statements: 56.9,
55+
statements: 56.8,
5656
lines: 55,
5757
functions: 46,
5858
},

packages/twenty-front/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@
5555
"buffer": "^6.0.3",
5656
"docx": "^9.1.0",
5757
"file-saver": "^2.0.5",
58+
"input-otp": "^1.4.2",
59+
"react-qr-code": "^2.0.18",
5860
"transliteration": "^2.3.5",
5961
"twenty-shared": "workspace:*",
6062
"twenty-ui": "workspace:*"

packages/twenty-front/src/generated-metadata/graphql.ts

Lines changed: 283 additions & 4 deletions
Large diffs are not rendered by default.

packages/twenty-front/src/generated/graphql.ts

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,8 @@ export enum ConfigVariablesGroup {
420420
ServerlessConfig = 'ServerlessConfig',
421421
StorageConfig = 'StorageConfig',
422422
SupportChatConfig = 'SupportChatConfig',
423-
TokensDuration = 'TokensDuration'
423+
TokensDuration = 'TokensDuration',
424+
TwoFactorAuthentication = 'TwoFactorAuthentication'
424425
}
425426

426427
export type ConfigVariablesGroupData = {
@@ -616,6 +617,12 @@ export type DeleteSsoOutput = {
616617
identityProviderId: Scalars['String'];
617618
};
618619

620+
export type DeleteTwoFactorAuthenticationMethodOutput = {
621+
__typename?: 'DeleteTwoFactorAuthenticationMethodOutput';
622+
/** Boolean that confirms query was dispatched */
623+
success: Scalars['Boolean'];
624+
};
625+
619626
export type DeleteWebhookDto = {
620627
id: Scalars['String'];
621628
};
@@ -697,13 +704,15 @@ export enum FeatureFlagKey {
697704
IS_AIRTABLE_INTEGRATION_ENABLED = 'IS_AIRTABLE_INTEGRATION_ENABLED',
698705
IS_AI_ENABLED = 'IS_AI_ENABLED',
699706
IS_ANY_FIELD_SEARCH_ENABLED = 'IS_ANY_FIELD_SEARCH_ENABLED',
707+
IS_CORE_VIEW_SYNCING_ENABLED = 'IS_CORE_VIEW_SYNCING_ENABLED',
700708
IS_FIELDS_PERMISSIONS_ENABLED = 'IS_FIELDS_PERMISSIONS_ENABLED',
701709
IS_IMAP_SMTP_CALDAV_ENABLED = 'IS_IMAP_SMTP_CALDAV_ENABLED',
702710
IS_JSON_FILTER_ENABLED = 'IS_JSON_FILTER_ENABLED',
703711
IS_MORPH_RELATION_ENABLED = 'IS_MORPH_RELATION_ENABLED',
704712
IS_POSTGRESQL_INTEGRATION_ENABLED = 'IS_POSTGRESQL_INTEGRATION_ENABLED',
705713
IS_RELATION_CONNECT_ENABLED = 'IS_RELATION_CONNECT_ENABLED',
706714
IS_STRIPE_INTEGRATION_ENABLED = 'IS_STRIPE_INTEGRATION_ENABLED',
715+
IS_TWO_FACTOR_AUTHENTICATION_ENABLED = 'IS_TWO_FACTOR_AUTHENTICATION_ENABLED',
707716
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED',
708717
IS_WORKFLOW_FILTERING_ENABLED = 'IS_WORKFLOW_FILTERING_ENABLED',
709718
IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED = 'IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED'
@@ -1006,6 +1015,11 @@ export enum IndexType {
10061015
GIN = 'GIN'
10071016
}
10081017

1018+
export type InitiateTwoFactorAuthenticationProvisioningOutput = {
1019+
__typename?: 'InitiateTwoFactorAuthenticationProvisioningOutput';
1020+
uri: Scalars['String'];
1021+
};
1022+
10091023
export type InvalidatePassword = {
10101024
__typename?: 'InvalidatePassword';
10111025
/** Boolean that confirms query was dispatched */
@@ -1078,6 +1092,7 @@ export type Mutation = {
10781092
deleteOneRole: Scalars['String'];
10791093
deleteOneServerlessFunction: ServerlessFunction;
10801094
deleteSSOIdentityProvider: DeleteSsoOutput;
1095+
deleteTwoFactorAuthenticationMethod: DeleteTwoFactorAuthenticationMethodOutput;
10811096
deleteUser: User;
10821097
deleteWebhook: Scalars['Boolean'];
10831098
deleteWorkflowVersionStep: WorkflowAction;
@@ -1091,10 +1106,13 @@ export type Mutation = {
10911106
generateApiKeyToken: ApiKeyToken;
10921107
generateTransientToken: TransientToken;
10931108
getAuthTokensFromLoginToken: AuthTokens;
1109+
getAuthTokensFromOTP: AuthTokens;
10941110
getAuthorizationUrlForSSO: GetAuthorizationUrlForSsoOutput;
10951111
getLoginTokenFromCredentials: LoginToken;
10961112
getLoginTokenFromEmailVerificationToken: GetLoginTokenFromEmailVerificationTokenOutput;
10971113
impersonate: ImpersonateOutput;
1114+
initiateOTPProvisioning: InitiateTwoFactorAuthenticationProvisioningOutput;
1115+
initiateOTPProvisioningForAuthenticatedUser: InitiateTwoFactorAuthenticationProvisioningOutput;
10981116
publishServerlessFunction: ServerlessFunction;
10991117
removeRoleFromAgent: Scalars['Boolean'];
11001118
renewToken: AuthTokens;
@@ -1138,6 +1156,7 @@ export type Mutation = {
11381156
upsertSettingPermissions: Array<SettingPermission>;
11391157
userLookupAdminPanel: UserLookup;
11401158
validateApprovedAccessDomain: ApprovedAccessDomain;
1159+
verifyTwoFactorAuthenticationMethodForAuthenticatedUser: VerifyTwoFactorAuthenticationMethodOutput;
11411160
};
11421161

11431162

@@ -1296,6 +1315,11 @@ export type MutationDeleteSsoIdentityProviderArgs = {
12961315
};
12971316

12981317

1318+
export type MutationDeleteTwoFactorAuthenticationMethodArgs = {
1319+
twoFactorAuthenticationMethodId: Scalars['UUID'];
1320+
};
1321+
1322+
12991323
export type MutationDeleteWebhookArgs = {
13001324
input: DeleteWebhookDto;
13011325
};
@@ -1339,6 +1363,14 @@ export type MutationGetAuthTokensFromLoginTokenArgs = {
13391363
};
13401364

13411365

1366+
export type MutationGetAuthTokensFromOtpArgs = {
1367+
captchaToken?: InputMaybe<Scalars['String']>;
1368+
loginToken: Scalars['String'];
1369+
origin: Scalars['String'];
1370+
otp: Scalars['String'];
1371+
};
1372+
1373+
13421374
export type MutationGetAuthorizationUrlForSsoArgs = {
13431375
input: GetAuthorizationUrlForSsoInput;
13441376
};
@@ -1366,6 +1398,12 @@ export type MutationImpersonateArgs = {
13661398
};
13671399

13681400

1401+
export type MutationInitiateOtpProvisioningArgs = {
1402+
loginToken: Scalars['String'];
1403+
origin: Scalars['String'];
1404+
};
1405+
1406+
13691407
export type MutationPublishServerlessFunctionArgs = {
13701408
input: PublishServerlessFunctionInput;
13711409
};
@@ -1580,6 +1618,11 @@ export type MutationValidateApprovedAccessDomainArgs = {
15801618
input: ValidateApprovedAccessDomainInput;
15811619
};
15821620

1621+
1622+
export type MutationVerifyTwoFactorAuthenticationMethodForAuthenticatedUserArgs = {
1623+
otp: Scalars['String'];
1624+
};
1625+
15831626
export type Object = {
15841627
__typename?: 'Object';
15851628
createdAt: Scalars['DateTime'];
@@ -2376,6 +2419,13 @@ export type TransientToken = {
23762419
transientToken: AuthToken;
23772420
};
23782421

2422+
export type TwoFactorAuthenticationMethodDto = {
2423+
__typename?: 'TwoFactorAuthenticationMethodDTO';
2424+
status: Scalars['String'];
2425+
strategy: Scalars['String'];
2426+
twoFactorAuthenticationMethodId: Scalars['UUID'];
2427+
};
2428+
23792429
export type UuidFilter = {
23802430
eq?: InputMaybe<Scalars['UUID']>;
23812431
gt?: InputMaybe<Scalars['UUID']>;
@@ -2525,6 +2575,7 @@ export type UpdateWorkspaceInput = {
25252575
isMicrosoftAuthEnabled?: InputMaybe<Scalars['Boolean']>;
25262576
isPasswordAuthEnabled?: InputMaybe<Scalars['Boolean']>;
25272577
isPublicInviteLinkEnabled?: InputMaybe<Scalars['Boolean']>;
2578+
isTwoFactorAuthenticationEnforced?: InputMaybe<Scalars['Boolean']>;
25282579
logo?: InputMaybe<Scalars['String']>;
25292580
subdomain?: InputMaybe<Scalars['String']>;
25302581
};
@@ -2610,6 +2661,7 @@ export type UserWorkspace = {
26102661
/** @deprecated Use objectPermissions instead */
26112662
objectRecordsPermissions?: Maybe<Array<PermissionsOnAllObjectRecords>>;
26122663
settingsPermissions?: Maybe<Array<SettingPermissionType>>;
2664+
twoFactorAuthenticationMethodSummary?: Maybe<Array<TwoFactorAuthenticationMethodDto>>;
26132665
updatedAt: Scalars['DateTime'];
26142666
user: User;
26152667
userId: Scalars['String'];
@@ -2628,6 +2680,11 @@ export type ValidatePasswordResetToken = {
26282680
id: Scalars['String'];
26292681
};
26302682

2683+
export type VerifyTwoFactorAuthenticationMethodOutput = {
2684+
__typename?: 'VerifyTwoFactorAuthenticationMethodOutput';
2685+
success: Scalars['Boolean'];
2686+
};
2687+
26312688
export type VersionInfo = {
26322689
__typename?: 'VersionInfo';
26332690
currentVersion?: Maybe<Scalars['String']>;
@@ -2703,6 +2760,7 @@ export type Workspace = {
27032760
isMicrosoftAuthEnabled: Scalars['Boolean'];
27042761
isPasswordAuthEnabled: Scalars['Boolean'];
27052762
isPublicInviteLinkEnabled: Scalars['Boolean'];
2763+
isTwoFactorAuthenticationEnforced: Scalars['Boolean'];
27062764
logo?: Maybe<Scalars['String']>;
27072765
metadataVersion: Scalars['Float'];
27082766
subdomain: Scalars['String'];

0 commit comments

Comments
 (0)