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
@@ -15,7 +15,7 @@ import { HttpTool } from 'src/engine/core-modules/tool/tools/http-tool/http-tool
import { NavigateAppTool } from 'src/engine/core-modules/tool/tools/navigate-tool/navigate-app-tool';
import { SearchHelpCenterTool } from 'src/engine/core-modules/tool/tools/search-help-center-tool/search-help-center-tool';
import { WorkspaceManyOrAllFlatEntityMapsCacheModule } from 'src/engine/metadata-modules/flat-entity/services/workspace-many-or-all-flat-entity-maps-cache.module';
import { ConnectedAccountDataAccessModule } from 'src/engine/metadata-modules/connected-account/data-access/connected-account-data-access.module';
import { ConnectedAccountEntity } from 'src/engine/metadata-modules/connected-account/entities/connected-account.entity';
import { NavigationMenuItemModule } from 'src/engine/metadata-modules/navigation-menu-item/navigation-menu-item.module';
import { ObjectMetadataModule } from 'src/engine/metadata-modules/object-metadata/object-metadata.module';
import { ViewModule } from 'src/engine/metadata-modules/view/view.module';
@@ -26,7 +26,7 @@ import { MessagingSendManagerModule } from 'src/modules/messaging/message-outbou
imports: [
MessagingImportManagerModule,
MessagingSendManagerModule,
TypeOrmModule.forFeature([FileEntity]),
TypeOrmModule.forFeature([FileEntity, ConnectedAccountEntity]),
ApplicationModule,
FeatureFlagModule,
FileModule,
@@ -36,7 +36,6 @@ import { MessagingSendManagerModule } from 'src/modules/messaging/message-outbou
ViewModule,
NavigationMenuItemModule,
WorkspaceManyOrAllFlatEntityMapsCacheModule,
ConnectedAccountDataAccessModule,
],
providers: [
HttpTool,
@@ -20,12 +20,11 @@ import { EmailComposerResult } from 'src/engine/core-modules/tool/tools/email-to
import { EmailToolInput } from 'src/engine/core-modules/tool/tools/email-tool/types/email-tool-input.type';
import { parseCommaSeparatedEmails } from 'src/engine/core-modules/tool/tools/email-tool/utils/parse-comma-separated-emails.util';
import { type ToolExecutionContext } from 'src/engine/core-modules/tool/types/tool-execution-context.type';
import { ConnectedAccountDataAccessService } from 'src/engine/metadata-modules/connected-account/data-access/services/connected-account-data-access.service';
import { ConnectedAccountEntity } from 'src/engine/metadata-modules/connected-account/entities/connected-account.entity';
import { GlobalWorkspaceOrmManager } from 'src/engine/twenty-orm/global-workspace-datasource/global-workspace-orm.manager';
import { buildSystemAuthContext } from 'src/engine/twenty-orm/utils/build-system-auth-context.util';
import { MessagingAccountAuthenticationService } from 'src/modules/messaging/message-import-manager/services/messaging-account-authentication.service';
import { type MessageAttachment } from 'src/modules/messaging/message-import-manager/types/message';
import { type ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
import { parseEmailBody } from 'src/utils/parse-email-body';
import { streamToBuffer } from 'src/utils/stream-to-buffer';
@Injectable()
@@ -34,7 +33,8 @@ export class EmailComposerService {
constructor(
private readonly globalWorkspaceOrmManager: GlobalWorkspaceOrmManager,
private readonly connectedAccountDataAccessService: ConnectedAccountDataAccessService,
@InjectRepository(ConnectedAccountEntity)
private readonly connectedAccountRepository: Repository<ConnectedAccountEntity>,
private readonly messagingAccountAuthenticationService: MessagingAccountAuthenticationService,
@InjectRepository(FileEntity)
private readonly fileRepository: Repository<FileEntity>,
@@ -56,15 +56,14 @@ export class EmailComposerService {
return this.globalWorkspaceOrmManager.executeInWorkspaceContext(
async () => {
const connectedAccount =
await this.connectedAccountDataAccessService.findOne(workspaceId, {
where: { id: connectedAccountId },
relations: {
messageChannels: {
messageFolders: true,
},
const connectedAccount = await this.connectedAccountRepository.findOne({
where: { id: connectedAccountId, workspaceId },
relations: {
messageChannels: {
messageFolders: true,
},
});
},
});
if (!isDefined(connectedAccount)) {
throw new EmailToolException(
@@ -73,7 +72,7 @@ export class EmailComposerService {
);
}
return connectedAccount as unknown as ConnectedAccountWorkspaceEntity;
return connectedAccount;
},
authContext,
);
@@ -86,8 +85,9 @@ export class EmailComposerService {
return this.globalWorkspaceOrmManager.executeInWorkspaceContext(
async () => {
const allAccounts =
await this.connectedAccountDataAccessService.find(workspaceId);
const allAccounts = await this.connectedAccountRepository.find({
where: { workspaceId },
});
if (!allAccounts || allAccounts.length === 0) {
throw new EmailToolException(
@@ -271,20 +271,22 @@ export class EmailComposerService {
);
}
const connectedAccountAsWorkspaceEntity = connectedAccount;
const { accessToken, refreshToken } =
await this.messagingAccountAuthenticationService.validateAndRefreshConnectedAccountAuthentication(
{
connectedAccount,
connectedAccount: connectedAccountAsWorkspaceEntity,
workspaceId,
messageChannelId: messageChannel.id,
},
);
const connectedAccountWithFreshTokens = {
...connectedAccount,
...connectedAccountAsWorkspaceEntity,
accessToken,
refreshToken,
} as unknown as ConnectedAccountWorkspaceEntity;
};
const attachments = await this.getAttachments(files || [], workspaceId);
@@ -1,4 +1,4 @@
import { type ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
import { type ConnectedAccountEntity } from 'src/engine/metadata-modules/connected-account/entities/connected-account.entity';
import { type MessageAttachment } from 'src/modules/messaging/message-import-manager/types/message';
export type ComposedEmail = {
@@ -8,6 +8,6 @@ export type ComposedEmail = {
plainTextBody: string;
sanitizedHtmlBody: string;
attachments: MessageAttachment[];
connectedAccount: ConnectedAccountWorkspaceEntity;
connectedAccount: ConnectedAccountEntity;
inReplyTo?: string;
};