Remove connected account feature flag (#19286)

Co-authored-by: martmull <martmull@hotmail.fr>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@twenty.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
neo773
2026-04-06 13:43:41 +05:30
committed by GitHub
parent 3a1e112b86
commit d3f0162cf5
246 changed files with 5216 additions and 6424 deletions
@@ -24,6 +24,84 @@ type SeedMetadataEntitiesArgs = {
workspaceId: string;
};
// YC workspace needs its own entity IDs since core tables have a single PK
const YC_CONNECTED_ACCOUNT_IDS = {
TIM: '30303030-9ac0-4390-9a1a-ab4d2c4e1bb7',
JONY: '30303030-0cc8-4d60-a3a4-803245698908',
PHIL: '30303030-cafc-4323-908d-e5b42ad69fdf',
JANE: '30303030-b5c7-46f0-bf5c-3f4e4b3f7c1a',
JANE_DELETABLE: '30303030-d1e5-4a8f-9c3b-7f6d5e4c3b2a',
};
const YC_MESSAGE_CHANNEL_IDS = {
TIM: '30303030-9b80-4c2c-a597-383db48de1d6',
JONY: '30303030-5ffe-4b32-814a-983d5e4911cd',
PHIL: '30303030-e2f1-49b5-85d2-5d3a3386990c',
JANE: '30303030-8c4d-4e71-a672-2e6a8c9f1b3d',
SUPPORT: '30303030-e2f1-49b5-85d2-5d3a3386990d',
SALES: '30303030-e2f1-49b5-85d2-5d3a3386990e',
};
const YC_CALENDAR_CHANNEL_IDS = {
TIM: '30303030-a40f-4faf-bb9f-c6f9945b8203',
JONY: '30303030-a40f-4faf-bb9f-c6f9945b8204',
PHIL: '30303030-a40f-4faf-bb9f-c6f9945b8205',
JANE: '30303030-a40f-4faf-bb9f-c6f9945b8208',
COMPANY_MAIN: '30303030-a40f-4faf-bb9f-c6f9945b8206',
TEAM_CALENDAR: '30303030-a40f-4faf-bb9f-c6f9945b8207',
};
const YC_MESSAGE_FOLDER_IDS = {
TIM_INBOX: '30303030-1234-4567-8901-abcdef012345',
TIM_SENT: '30303030-1234-4567-8901-abcdef012349',
JONY_INBOX: '30303030-1234-4567-8901-abcdef012346',
JANE_INBOX: '30303030-1234-4567-8901-abcdef012347',
JANE_SENT: '30303030-1234-4567-8901-abcdef012348',
};
type WorkspaceSeedIds = {
userWorkspaceIds: {
TIM: string;
JONY: string;
PHIL: string;
JANE: string;
};
connectedAccountIds: typeof CONNECTED_ACCOUNT_DATA_SEED_IDS;
messageChannelIds: typeof MESSAGE_CHANNEL_DATA_SEED_IDS;
calendarChannelIds: typeof CALENDAR_CHANNEL_DATA_SEED_IDS;
messageFolderIds: typeof MESSAGE_FOLDER_DATA_SEED_IDS;
};
const getSeedIds = (workspaceId: string): WorkspaceSeedIds => {
if (workspaceId === SEED_YCOMBINATOR_WORKSPACE_ID) {
return {
userWorkspaceIds: {
TIM: USER_WORKSPACE_DATA_SEED_IDS.TIM_ACME,
JONY: USER_WORKSPACE_DATA_SEED_IDS.JONY_ACME,
PHIL: USER_WORKSPACE_DATA_SEED_IDS.PHIL_ACME,
JANE: USER_WORKSPACE_DATA_SEED_IDS.JANE_ACME,
},
connectedAccountIds: YC_CONNECTED_ACCOUNT_IDS,
messageChannelIds: YC_MESSAGE_CHANNEL_IDS,
calendarChannelIds: YC_CALENDAR_CHANNEL_IDS,
messageFolderIds: YC_MESSAGE_FOLDER_IDS,
};
}
return {
userWorkspaceIds: {
TIM: USER_WORKSPACE_DATA_SEED_IDS.TIM,
JONY: USER_WORKSPACE_DATA_SEED_IDS.JONY,
PHIL: USER_WORKSPACE_DATA_SEED_IDS.PHIL,
JANE: USER_WORKSPACE_DATA_SEED_IDS.JANE,
},
connectedAccountIds: CONNECTED_ACCOUNT_DATA_SEED_IDS,
messageChannelIds: MESSAGE_CHANNEL_DATA_SEED_IDS,
calendarChannelIds: CALENDAR_CHANNEL_DATA_SEED_IDS,
messageFolderIds: MESSAGE_FOLDER_DATA_SEED_IDS,
};
};
export const seedMetadataEntities = async ({
queryRunner,
schemaName,
@@ -36,10 +114,6 @@ export const seedMetadataEntities = async ({
return;
}
if (workspaceId === SEED_YCOMBINATOR_WORKSPACE_ID) {
return;
}
await seedConnectedAccounts({ queryRunner, schemaName, workspaceId });
await seedMessageChannels({ queryRunner, schemaName, workspaceId });
await seedCalendarChannels({ queryRunner, schemaName, workspaceId });
@@ -51,40 +125,42 @@ const seedConnectedAccounts = async ({
schemaName,
workspaceId,
}: SeedMetadataEntitiesArgs) => {
const ids = getSeedIds(workspaceId);
const connectedAccounts = [
{
id: CONNECTED_ACCOUNT_DATA_SEED_IDS.TIM,
id: ids.connectedAccountIds.TIM,
handle: 'tim@apple.dev',
provider: 'google',
userWorkspaceId: USER_WORKSPACE_DATA_SEED_IDS.TIM,
userWorkspaceId: ids.userWorkspaceIds.TIM,
workspaceId,
},
{
id: CONNECTED_ACCOUNT_DATA_SEED_IDS.JONY,
id: ids.connectedAccountIds.JONY,
handle: 'jony.ive@apple.dev',
provider: 'google',
userWorkspaceId: USER_WORKSPACE_DATA_SEED_IDS.JONY,
userWorkspaceId: ids.userWorkspaceIds.JONY,
workspaceId,
},
{
id: CONNECTED_ACCOUNT_DATA_SEED_IDS.PHIL,
id: ids.connectedAccountIds.PHIL,
handle: 'phil.schiler@apple.dev',
provider: 'google',
userWorkspaceId: USER_WORKSPACE_DATA_SEED_IDS.PHIL,
userWorkspaceId: ids.userWorkspaceIds.PHIL,
workspaceId,
},
{
id: CONNECTED_ACCOUNT_DATA_SEED_IDS.JANE,
id: ids.connectedAccountIds.JANE,
handle: 'jane.austen@apple.dev',
provider: 'google',
userWorkspaceId: USER_WORKSPACE_DATA_SEED_IDS.JANE,
userWorkspaceId: ids.userWorkspaceIds.JANE,
workspaceId,
},
{
id: CONNECTED_ACCOUNT_DATA_SEED_IDS.JANE_DELETABLE,
id: ids.connectedAccountIds.JANE_DELETABLE,
handle: 'jane-deletable@apple.dev',
provider: 'google',
userWorkspaceId: USER_WORKSPACE_DATA_SEED_IDS.JANE,
userWorkspaceId: ids.userWorkspaceIds.JANE,
workspaceId,
},
];
@@ -109,9 +185,11 @@ const seedMessageChannels = async ({
schemaName,
workspaceId,
}: SeedMetadataEntitiesArgs) => {
const ids = getSeedIds(workspaceId);
const messageChannels = [
{
id: MESSAGE_CHANNEL_DATA_SEED_IDS.TIM,
id: ids.messageChannelIds.TIM,
handle: 'tim@apple.dev',
visibility: MessageChannelVisibility.SHARE_EVERYTHING,
type: MessageChannelType.EMAIL,
@@ -123,11 +201,11 @@ const seedMessageChannels = async ({
excludeGroupEmails: false,
pendingGroupEmailsAction: 'NONE',
isSyncEnabled: true,
connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.TIM,
connectedAccountId: ids.connectedAccountIds.TIM,
workspaceId,
},
{
id: MESSAGE_CHANNEL_DATA_SEED_IDS.JONY,
id: ids.messageChannelIds.JONY,
handle: 'jony.ive@apple.dev',
visibility: MessageChannelVisibility.SHARE_EVERYTHING,
type: MessageChannelType.EMAIL,
@@ -139,11 +217,27 @@ const seedMessageChannels = async ({
excludeGroupEmails: false,
pendingGroupEmailsAction: 'NONE',
isSyncEnabled: true,
connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.JONY,
connectedAccountId: ids.connectedAccountIds.JONY,
workspaceId,
},
{
id: MESSAGE_CHANNEL_DATA_SEED_IDS.JANE,
id: ids.messageChannelIds.PHIL,
handle: 'phil.schiler@apple.dev',
visibility: MessageChannelVisibility.SHARE_EVERYTHING,
type: MessageChannelType.EMAIL,
syncStage: MessageChannelSyncStage.MESSAGE_LIST_FETCH_PENDING,
isContactAutoCreationEnabled: true,
contactAutoCreationPolicy: 'SENT_AND_RECEIVED',
messageFolderImportPolicy: 'ALL_FOLDERS',
excludeNonProfessionalEmails: false,
excludeGroupEmails: false,
pendingGroupEmailsAction: 'NONE',
isSyncEnabled: true,
connectedAccountId: ids.connectedAccountIds.PHIL,
workspaceId,
},
{
id: ids.messageChannelIds.JANE,
handle: 'jane.austen@apple.dev',
visibility: MessageChannelVisibility.SHARE_EVERYTHING,
type: MessageChannelType.EMAIL,
@@ -155,7 +249,39 @@ const seedMessageChannels = async ({
excludeGroupEmails: false,
pendingGroupEmailsAction: 'NONE',
isSyncEnabled: true,
connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.JANE,
connectedAccountId: ids.connectedAccountIds.JANE,
workspaceId,
},
{
id: ids.messageChannelIds.SUPPORT,
handle: 'support@apple.dev',
visibility: MessageChannelVisibility.SHARE_EVERYTHING,
type: MessageChannelType.EMAIL,
syncStage: MessageChannelSyncStage.MESSAGE_LIST_FETCH_PENDING,
isContactAutoCreationEnabled: true,
contactAutoCreationPolicy: 'SENT_AND_RECEIVED',
messageFolderImportPolicy: 'ALL_FOLDERS',
excludeNonProfessionalEmails: false,
excludeGroupEmails: false,
pendingGroupEmailsAction: 'NONE',
isSyncEnabled: true,
connectedAccountId: ids.connectedAccountIds.TIM,
workspaceId,
},
{
id: ids.messageChannelIds.SALES,
handle: 'sales@apple.dev',
visibility: MessageChannelVisibility.SHARE_EVERYTHING,
type: MessageChannelType.EMAIL,
syncStage: MessageChannelSyncStage.MESSAGE_LIST_FETCH_PENDING,
isContactAutoCreationEnabled: true,
contactAutoCreationPolicy: 'SENT_AND_RECEIVED',
messageFolderImportPolicy: 'ALL_FOLDERS',
excludeNonProfessionalEmails: false,
excludeGroupEmails: false,
pendingGroupEmailsAction: 'NONE',
isSyncEnabled: true,
connectedAccountId: ids.connectedAccountIds.TIM,
workspaceId,
},
];
@@ -189,38 +315,73 @@ const seedCalendarChannels = async ({
schemaName,
workspaceId,
}: SeedMetadataEntitiesArgs) => {
const ids = getSeedIds(workspaceId);
const calendarChannels = [
{
id: CALENDAR_CHANNEL_DATA_SEED_IDS.TIM,
id: ids.calendarChannelIds.TIM,
handle: 'tim@apple.dev',
visibility: CalendarChannelVisibility.METADATA,
syncStage: 'CALENDAR_EVENT_LIST_FETCH_PENDING',
isContactAutoCreationEnabled: true,
contactAutoCreationPolicy: 'NONE',
isSyncEnabled: true,
connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.TIM,
connectedAccountId: ids.connectedAccountIds.TIM,
workspaceId,
},
{
id: CALENDAR_CHANNEL_DATA_SEED_IDS.JONY,
id: ids.calendarChannelIds.JONY,
handle: 'jony@apple.dev',
visibility: CalendarChannelVisibility.SHARE_EVERYTHING,
syncStage: 'CALENDAR_EVENT_LIST_FETCH_PENDING',
isContactAutoCreationEnabled: true,
contactAutoCreationPolicy: 'NONE',
isSyncEnabled: true,
connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.JONY,
connectedAccountId: ids.connectedAccountIds.JONY,
workspaceId,
},
{
id: CALENDAR_CHANNEL_DATA_SEED_IDS.JANE,
id: ids.calendarChannelIds.PHIL,
handle: 'phil@apple.dev',
visibility: CalendarChannelVisibility.METADATA,
syncStage: 'CALENDAR_EVENT_LIST_FETCH_PENDING',
isContactAutoCreationEnabled: true,
contactAutoCreationPolicy: 'NONE',
isSyncEnabled: true,
connectedAccountId: ids.connectedAccountIds.PHIL,
workspaceId,
},
{
id: ids.calendarChannelIds.JANE,
handle: 'jane.austen@apple.dev',
visibility: CalendarChannelVisibility.SHARE_EVERYTHING,
syncStage: 'CALENDAR_EVENT_LIST_FETCH_PENDING',
isContactAutoCreationEnabled: true,
contactAutoCreationPolicy: 'NONE',
isSyncEnabled: true,
connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.JANE,
connectedAccountId: ids.connectedAccountIds.JANE,
workspaceId,
},
{
id: ids.calendarChannelIds.COMPANY_MAIN,
handle: 'company-main@apple.dev',
visibility: CalendarChannelVisibility.SHARE_EVERYTHING,
syncStage: 'CALENDAR_EVENT_LIST_FETCH_PENDING',
isContactAutoCreationEnabled: true,
contactAutoCreationPolicy: 'NONE',
isSyncEnabled: true,
connectedAccountId: ids.connectedAccountIds.TIM,
workspaceId,
},
{
id: ids.calendarChannelIds.TEAM_CALENDAR,
handle: 'team-calendar@apple.dev',
visibility: CalendarChannelVisibility.SHARE_EVERYTHING,
syncStage: 'CALENDAR_EVENT_LIST_FETCH_PENDING',
isContactAutoCreationEnabled: true,
contactAutoCreationPolicy: 'NONE',
isSyncEnabled: true,
connectedAccountId: ids.connectedAccountIds.TIM,
workspaceId,
},
];
@@ -249,40 +410,42 @@ const seedMessageFolders = async ({
schemaName,
workspaceId,
}: SeedMetadataEntitiesArgs) => {
const ids = getSeedIds(workspaceId);
const messageFolders = [
{
id: MESSAGE_FOLDER_DATA_SEED_IDS.TIM_INBOX,
id: ids.messageFolderIds.TIM_INBOX,
name: 'INBOX',
isSynced: true,
isSentFolder: false,
messageChannelId: MESSAGE_CHANNEL_DATA_SEED_IDS.TIM,
messageChannelId: ids.messageChannelIds.TIM,
workspaceId,
pendingSyncAction: MessageFolderPendingSyncAction.NONE,
},
{
id: MESSAGE_FOLDER_DATA_SEED_IDS.JONY_INBOX,
id: ids.messageFolderIds.JONY_INBOX,
name: 'INBOX',
isSynced: true,
isSentFolder: false,
messageChannelId: MESSAGE_CHANNEL_DATA_SEED_IDS.JONY,
messageChannelId: ids.messageChannelIds.JONY,
workspaceId,
pendingSyncAction: MessageFolderPendingSyncAction.NONE,
},
{
id: MESSAGE_FOLDER_DATA_SEED_IDS.JANE_INBOX,
id: ids.messageFolderIds.JANE_INBOX,
name: 'INBOX',
isSynced: true,
isSentFolder: false,
messageChannelId: MESSAGE_CHANNEL_DATA_SEED_IDS.JANE,
messageChannelId: ids.messageChannelIds.JANE,
workspaceId,
pendingSyncAction: MessageFolderPendingSyncAction.NONE,
},
{
id: MESSAGE_FOLDER_DATA_SEED_IDS.JANE_SENT,
id: ids.messageFolderIds.JANE_SENT,
name: 'Sent',
isSynced: true,
isSentFolder: true,
messageChannelId: MESSAGE_CHANNEL_DATA_SEED_IDS.JANE,
messageChannelId: ids.messageChannelIds.JANE,
workspaceId,
pendingSyncAction: MessageFolderPendingSyncAction.NONE,
},
@@ -1,5 +1,5 @@
import { CalendarChannelVisibility } from 'twenty-shared/types';
import { CONNECTED_ACCOUNT_DATA_SEED_IDS } from 'src/engine/workspace-manager/dev-seeder/data/constants/connected-account-data-seeds.constant';
import { CalendarChannelVisibility } from 'src/modules/calendar/common/standard-objects/calendar-channel.workspace-entity';
type CalendarChannelDataSeed = {
id: string;
@@ -1,9 +1,9 @@
import { CONNECTED_ACCOUNT_DATA_SEED_IDS } from 'src/engine/workspace-manager/dev-seeder/data/constants/connected-account-data-seeds.constant';
import {
MessageChannelSyncStage,
MessageChannelType,
MessageChannelVisibility,
} from 'src/modules/messaging/common/standard-objects/message-channel.workspace-entity';
} from 'twenty-shared/types';
import { CONNECTED_ACCOUNT_DATA_SEED_IDS } from 'src/engine/workspace-manager/dev-seeder/data/constants/connected-account-data-seeds.constant';
type MessageChannelDataSeed = {
id: string;
@@ -20,10 +20,6 @@ import {
type AttachmentFileSeedMetadata,
generateAttachmentSeedsForWorkspace,
} from 'src/engine/workspace-manager/dev-seeder/data/constants/attachment-data-seeds.constant';
import {
CALENDAR_CHANNEL_DATA_SEED_COLUMNS,
CALENDAR_CHANNEL_DATA_SEEDS,
} from 'src/engine/workspace-manager/dev-seeder/data/constants/calendar-channel-data-seeds.constant';
import {
CALENDAR_CHANNEL_EVENT_ASSOCIATION_DATA_SEED_COLUMNS,
CALENDAR_CHANNEL_EVENT_ASSOCIATION_DATA_SEEDS,
@@ -40,10 +36,6 @@ import {
COMPANY_DATA_SEED_COLUMNS,
COMPANY_DATA_SEEDS,
} from 'src/engine/workspace-manager/dev-seeder/data/constants/company-data-seeds.constant';
import {
CONNECTED_ACCOUNT_DATA_SEED_COLUMNS,
CONNECTED_ACCOUNT_DATA_SEEDS,
} from 'src/engine/workspace-manager/dev-seeder/data/constants/connected-account-data-seeds.constant';
import {
DASHBOARD_DATA_SEED_COLUMNS,
getDashboardDataSeeds,
@@ -52,10 +44,6 @@ import {
EMPLOYMENT_HISTORY_DATA_SEED_COLUMNS,
EMPLOYMENT_HISTORY_DATA_SEEDS,
} from 'src/engine/workspace-manager/dev-seeder/data/constants/employment-history-data-seeds.constant';
import {
MESSAGE_CHANNEL_DATA_SEED_COLUMNS,
MESSAGE_CHANNEL_DATA_SEEDS,
} from 'src/engine/workspace-manager/dev-seeder/data/constants/message-channel-data-seeds.constant';
import {
MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_DATA_SEED_COLUMNS,
MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_DATA_SEEDS,
@@ -64,10 +52,6 @@ import {
MESSAGE_DATA_SEED_COLUMNS,
MESSAGE_DATA_SEEDS,
} from 'src/engine/workspace-manager/dev-seeder/data/constants/message-data-seeds.constant';
import {
MESSAGE_FOLDER_DATA_SEED_COLUMNS,
MESSAGE_FOLDER_DATA_SEEDS,
} from 'src/engine/workspace-manager/dev-seeder/data/constants/message-folder-data-seeds.constant';
import {
getMessageParticipantDataSeeds,
MESSAGE_PARTICIPANT_DATA_SEED_COLUMNS,
@@ -168,11 +152,6 @@ const getRecordSeedsBatches = (
pgColumns: COMPANY_DATA_SEED_COLUMNS,
recordSeeds: COMPANY_DATA_SEEDS,
},
{
tableName: 'connectedAccount',
pgColumns: CONNECTED_ACCOUNT_DATA_SEED_COLUMNS,
recordSeeds: CONNECTED_ACCOUNT_DATA_SEEDS,
},
{
tableName: 'dashboard',
pgColumns: DASHBOARD_DATA_SEED_COLUMNS,
@@ -192,25 +171,10 @@ const getRecordSeedsBatches = (
pgColumns: PET_DATA_SEED_COLUMNS,
recordSeeds: PET_DATA_SEEDS,
},
{
tableName: 'calendarChannel',
pgColumns: CALENDAR_CHANNEL_DATA_SEED_COLUMNS,
recordSeeds: CALENDAR_CHANNEL_DATA_SEEDS,
},
{
tableName: 'messageChannel',
pgColumns: MESSAGE_CHANNEL_DATA_SEED_COLUMNS,
recordSeeds: MESSAGE_CHANNEL_DATA_SEEDS,
},
];
// Batch 4: Depends on person/company/messageChannel or independent
const batch4: RecordSeedConfig[] = [
{
tableName: 'messageFolder',
pgColumns: MESSAGE_FOLDER_DATA_SEED_COLUMNS,
recordSeeds: MESSAGE_FOLDER_DATA_SEEDS,
},
{
tableName: 'opportunity',
pgColumns: OPPORTUNITY_DATA_SEED_COLUMNS,