[CleanUp] Post api keys and webhooks migration cleanup (#13576)
This commit is contained in:
@@ -799,7 +799,6 @@ export enum FeatureFlagKey {
|
||||
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED',
|
||||
IS_WORKFLOW_BRANCH_ENABLED = 'IS_WORKFLOW_BRANCH_ENABLED',
|
||||
IS_WORKFLOW_FILTERING_ENABLED = 'IS_WORKFLOW_FILTERING_ENABLED',
|
||||
IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED = 'IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED',
|
||||
IS_WORKSPACE_MIGRATION_V2_ENABLED = 'IS_WORKSPACE_MIGRATION_V2_ENABLED'
|
||||
}
|
||||
|
||||
|
||||
@@ -763,7 +763,6 @@ export enum FeatureFlagKey {
|
||||
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED',
|
||||
IS_WORKFLOW_BRANCH_ENABLED = 'IS_WORKFLOW_BRANCH_ENABLED',
|
||||
IS_WORKFLOW_FILTERING_ENABLED = 'IS_WORKFLOW_FILTERING_ENABLED',
|
||||
IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED = 'IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED',
|
||||
IS_WORKSPACE_MIGRATION_V2_ENABLED = 'IS_WORKSPACE_MIGRATION_V2_ENABLED'
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -16,8 +16,8 @@ import { MessageQueueService } from 'src/engine/core-modules/message-queue/servi
|
||||
import { SubscriptionsJob } from 'src/engine/subscriptions/subscriptions.job';
|
||||
import { WorkspaceEventBatch } from 'src/engine/workspace-event-emitter/types/workspace-event.type';
|
||||
import { UpsertTimelineActivityFromInternalEvent } from 'src/modules/timeline/jobs/upsert-timeline-activity-from-internal-event.job';
|
||||
import { CallWebhookJobsJob } from 'src/modules/webhook/jobs/call-webhook-jobs.job';
|
||||
import { ObjectRecordEventForWebhook } from 'src/modules/webhook/types/object-record-event-for-webhook.type';
|
||||
import { CallWebhookJobsJob } from 'src/engine/core-modules/webhook/jobs/call-webhook-jobs.job';
|
||||
import { ObjectRecordEventForWebhook } from 'src/engine/core-modules/webhook/types/object-record-event-for-webhook.type';
|
||||
|
||||
@Injectable()
|
||||
export class EntityEventsToDbListener {
|
||||
|
||||
-1
@@ -10,7 +10,6 @@ export enum FeatureFlagKey {
|
||||
IS_WORKFLOW_FILTERING_ENABLED = 'IS_WORKFLOW_FILTERING_ENABLED',
|
||||
IS_WORKFLOW_BRANCH_ENABLED = 'IS_WORKFLOW_BRANCH_ENABLED',
|
||||
IS_RELATION_CONNECT_ENABLED = 'IS_RELATION_CONNECT_ENABLED',
|
||||
IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED = 'IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED',
|
||||
IS_FIELDS_PERMISSIONS_ENABLED = 'IS_FIELDS_PERMISSIONS_ENABLED',
|
||||
IS_CORE_VIEW_SYNCING_ENABLED = 'IS_CORE_VIEW_SYNCING_ENABLED',
|
||||
IS_TWO_FACTOR_AUTHENTICATION_ENABLED = 'IS_TWO_FACTOR_AUTHENTICATION_ENABLED',
|
||||
|
||||
@@ -31,7 +31,7 @@ import { FavoriteModule } from 'src/modules/favorite/favorite.module';
|
||||
import { MessagingModule } from 'src/modules/messaging/messaging.module';
|
||||
import { TimelineJobModule } from 'src/modules/timeline/jobs/timeline-job.module';
|
||||
import { TimelineActivityModule } from 'src/modules/timeline/timeline-activity.module';
|
||||
import { WebhookJobModule } from 'src/modules/webhook/jobs/webhook-job.module';
|
||||
import { WebhookJobModule } from 'src/engine/core-modules/webhook/jobs/webhook-job.module';
|
||||
import { WorkflowModule } from 'src/modules/workflow/workflow.module';
|
||||
|
||||
@Module({
|
||||
|
||||
+2
-2
@@ -11,8 +11,8 @@ import { WorkspaceEventBatch } from 'src/engine/workspace-event-emitter/types/wo
|
||||
import {
|
||||
CallWebhookJob,
|
||||
CallWebhookJobData,
|
||||
} from 'src/modules/webhook/jobs/call-webhook.job';
|
||||
import { ObjectRecordEventForWebhook } from 'src/modules/webhook/types/object-record-event-for-webhook.type';
|
||||
} from 'src/engine/core-modules/webhook/jobs/call-webhook.job';
|
||||
import { ObjectRecordEventForWebhook } from 'src/engine/core-modules/webhook/types/object-record-event-for-webhook.type';
|
||||
import { removeSecretFromWebhookRecord } from 'src/utils/remove-secret-from-webhook-record';
|
||||
|
||||
@Processor(MessageQueue.webhookQueue)
|
||||
+2
-2
@@ -3,8 +3,8 @@ import { Module } from '@nestjs/common';
|
||||
|
||||
import { AuditModule } from 'src/engine/core-modules/audit/audit.module';
|
||||
import { WebhookModule } from 'src/engine/core-modules/webhook/webhook.module';
|
||||
import { CallWebhookJobsJob } from 'src/modules/webhook/jobs/call-webhook-jobs.job';
|
||||
import { CallWebhookJob } from 'src/modules/webhook/jobs/call-webhook.job';
|
||||
import { CallWebhookJobsJob } from 'src/engine/core-modules/webhook/jobs/call-webhook-jobs.job';
|
||||
import { CallWebhookJob } from 'src/engine/core-modules/webhook/jobs/call-webhook.job';
|
||||
|
||||
@Module({
|
||||
imports: [HttpModule, AuditModule, WebhookModule],
|
||||
-2
@@ -133,7 +133,6 @@ describe('WorkspaceEntityManager', () => {
|
||||
IS_WORKFLOW_FILTERING_ENABLED: false,
|
||||
IS_WORKFLOW_BRANCH_ENABLED: false,
|
||||
IS_RELATION_CONNECT_ENABLED: false,
|
||||
IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED: false,
|
||||
IS_FIELDS_PERMISSIONS_ENABLED: false,
|
||||
IS_CORE_VIEW_SYNCING_ENABLED: false,
|
||||
IS_TWO_FACTOR_AUTHENTICATION_ENABLED: false,
|
||||
@@ -159,7 +158,6 @@ describe('WorkspaceEntityManager', () => {
|
||||
IS_MORPH_RELATION_ENABLED: false,
|
||||
IS_WORKFLOW_FILTERING_ENABLED: false,
|
||||
IS_RELATION_CONNECT_ENABLED: false,
|
||||
IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED: false,
|
||||
IS_FIELDS_PERMISSIONS_ENABLED: true,
|
||||
IS_CORE_VIEW_SYNCING_ENABLED: false,
|
||||
IS_TWO_FACTOR_AUTHENTICATION_ENABLED: false,
|
||||
|
||||
-16
@@ -29,12 +29,6 @@ export const ACTIVITY_STANDARD_FIELD_IDS = {
|
||||
assignee: '20202020-4259-48e4-9e77-6b92991906d5',
|
||||
};
|
||||
|
||||
export const API_KEY_STANDARD_FIELD_IDS = {
|
||||
name: '20202020-72e6-4079-815b-436ce8a62f23',
|
||||
expiresAt: '20202020-659b-4241-af59-66515b8e7d40',
|
||||
revokedAt: '20202020-06ab-44b5-8faf-f6e407685001',
|
||||
};
|
||||
|
||||
export const ATTACHMENT_STANDARD_FIELD_IDS = {
|
||||
name: '20202020-87a5-48f8-bbf7-ade388825a57',
|
||||
fullPath: '20202020-0d19-453d-8e8d-fbcda8ca3747',
|
||||
@@ -447,14 +441,6 @@ export const VIEW_STANDARD_FIELD_IDS = {
|
||||
anyFieldFilterValue: '20202020-3143-46c0-bb05-034063ce0703',
|
||||
};
|
||||
|
||||
export const WEBHOOK_STANDARD_FIELD_IDS = {
|
||||
targetUrl: '20202020-1229-45a8-8cf4-85c9172aae12',
|
||||
operation: '20202020-15b7-458e-bf30-74770a54410c',
|
||||
operations: '20202020-15b7-458e-bf30-74770a54411c',
|
||||
description: '20202020-15b7-458e-bf30-74770a54410d',
|
||||
secret: '20202020-97ce-410f-bff9-e9ccb038fb67',
|
||||
};
|
||||
|
||||
export const WORKFLOW_AUTOMATED_TRIGGER_STANDARD_FIELD_IDS = {
|
||||
type: '20202020-3319-4234-a34c-3f92c1ab56e7',
|
||||
settings: '20202020-3319-4234-a34c-bac8f903de12',
|
||||
@@ -552,7 +538,6 @@ export const CUSTOM_OBJECT_STANDARD_FIELD_IDS = {
|
||||
export const STANDARD_OBJECT_FIELD_IDS = {
|
||||
activityTarget: ACTIVITY_TARGET_STANDARD_FIELD_IDS,
|
||||
activity: ACTIVITY_STANDARD_FIELD_IDS,
|
||||
apiKey: API_KEY_STANDARD_FIELD_IDS,
|
||||
attachment: ATTACHMENT_STANDARD_FIELD_IDS,
|
||||
blocklist: BLOCKLIST_STANDARD_FIELD_IDS,
|
||||
behavioralEvent: BEHAVIORAL_EVENT_STANDARD_FIELD_IDS,
|
||||
@@ -585,7 +570,6 @@ export const STANDARD_OBJECT_FIELD_IDS = {
|
||||
viewFilter: VIEW_FILTER_STANDARD_FIELD_IDS,
|
||||
viewSort: VIEW_SORT_STANDARD_FIELD_IDS,
|
||||
view: VIEW_STANDARD_FIELD_IDS,
|
||||
webhook: WEBHOOK_STANDARD_FIELD_IDS,
|
||||
workflow: WORKFLOW_STANDARD_FIELD_IDS,
|
||||
workflowRun: WORKFLOW_RUN_STANDARD_FIELD_IDS,
|
||||
workflowVersion: WORKFLOW_VERSION_STANDARD_FIELD_IDS,
|
||||
|
||||
-2
@@ -9,7 +9,6 @@ export const STANDARD_OBJECT_IDS = {
|
||||
// TODO: check if activity, activityTarget and comment can be deleted
|
||||
activityTarget: '20202020-2945-440e-8d1a-f84672d33d5e',
|
||||
activity: '20202020-39aa-4a89-843b-eb5f2a8b677f',
|
||||
apiKey: '20202020-4c00-401d-8cda-ec6a4c41cd7d',
|
||||
attachment: '20202020-bd3d-4c60-8dca-571c71d4447a',
|
||||
blocklist: '20202020-0408-4f38-b8a8-4d5e3e26e24d',
|
||||
behavioralEvent: '20202020-983d-416b-a5ee-bdd0da3d0f8f',
|
||||
@@ -43,7 +42,6 @@ export const STANDARD_OBJECT_IDS = {
|
||||
viewFilterGroup: '20202020-b920-4b11-92aa-9b07d878e542',
|
||||
viewSort: '20202020-e46a-47a8-939a-e5d911f83531',
|
||||
view: '20202020-722e-4739-8e2c-0c372d661f49',
|
||||
webhook: '20202020-be4d-4e08-811d-0fffcd13ffd4',
|
||||
workflow: '20202020-62be-406c-b9ca-8caa50d51392',
|
||||
workflowEventListener: '20202020-92aa-462f-965c-a785b00e9989',
|
||||
workflowRun: '20202020-4e28-4e95-a9d7-6c00874f843c',
|
||||
|
||||
-4
@@ -1,4 +1,3 @@
|
||||
import { ApiKeyWorkspaceEntity } from 'src/modules/api-key/standard-objects/api-key.workspace-entity';
|
||||
import { AttachmentWorkspaceEntity } from 'src/modules/attachment/standard-objects/attachment.workspace-entity';
|
||||
import { BlocklistWorkspaceEntity } from 'src/modules/blocklist/standard-objects/blocklist.workspace-entity';
|
||||
import { CalendarChannelEventAssociationWorkspaceEntity } from 'src/modules/calendar/common/standard-objects/calendar-channel-event-association.workspace-entity';
|
||||
@@ -28,7 +27,6 @@ import { ViewFilterWorkspaceEntity } from 'src/modules/view/standard-objects/vie
|
||||
import { ViewGroupWorkspaceEntity } from 'src/modules/view/standard-objects/view-group.workspace-entity';
|
||||
import { ViewSortWorkspaceEntity } from 'src/modules/view/standard-objects/view-sort.workspace-entity';
|
||||
import { ViewWorkspaceEntity } from 'src/modules/view/standard-objects/view.workspace-entity';
|
||||
import { WebhookWorkspaceEntity } from 'src/modules/webhook/standard-objects/webhook.workspace-entity';
|
||||
import { WorkflowAutomatedTriggerWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-automated-trigger.workspace-entity';
|
||||
import { WorkflowRunWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-run.workspace-entity';
|
||||
import { WorkflowVersionWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity';
|
||||
@@ -71,6 +69,4 @@ export const standardObjectMetadataDefinitions = [
|
||||
PersonWorkspaceEntity,
|
||||
TaskWorkspaceEntity,
|
||||
TaskTargetWorkspaceEntity,
|
||||
ApiKeyWorkspaceEntity,
|
||||
WebhookWorkspaceEntity,
|
||||
];
|
||||
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||
import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator';
|
||||
import { WorkspaceGate } from 'src/engine/twenty-orm/decorators/workspace-gate.decorator';
|
||||
import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator';
|
||||
import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator';
|
||||
import { API_KEY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
import { STANDARD_OBJECT_ICONS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-icons';
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
@WorkspaceEntity({
|
||||
standardId: STANDARD_OBJECT_IDS.apiKey,
|
||||
namePlural: 'apiKeys',
|
||||
labelSingular: msg`API Key`,
|
||||
labelPlural: msg`API Keys`,
|
||||
description: msg`An API key`,
|
||||
icon: STANDARD_OBJECT_ICONS.apiKey,
|
||||
labelIdentifierStandardId: API_KEY_STANDARD_FIELD_IDS.name,
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
@WorkspaceGate({
|
||||
featureFlag: 'IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED',
|
||||
excludeFromDatabase: false,
|
||||
excludeFromWorkspaceApi: true,
|
||||
})
|
||||
export class ApiKeyWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
@WorkspaceField({
|
||||
standardId: API_KEY_STANDARD_FIELD_IDS.name,
|
||||
type: FieldMetadataType.TEXT,
|
||||
label: msg`Name`,
|
||||
description: msg`ApiKey name`,
|
||||
icon: 'IconLink',
|
||||
})
|
||||
name: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: API_KEY_STANDARD_FIELD_IDS.expiresAt,
|
||||
type: FieldMetadataType.DATE_TIME,
|
||||
label: msg`Expiration date`,
|
||||
description: msg`ApiKey expiration date`,
|
||||
icon: 'IconCalendar',
|
||||
})
|
||||
expiresAt: Date;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: API_KEY_STANDARD_FIELD_IDS.revokedAt,
|
||||
type: FieldMetadataType.DATE_TIME,
|
||||
label: msg`Revocation date`,
|
||||
description: msg`ApiKey revocation date`,
|
||||
icon: 'IconCalendar',
|
||||
})
|
||||
@WorkspaceIsNullable()
|
||||
revokedAt?: Date | null;
|
||||
}
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { FieldMetadataType } from 'twenty-shared/types';
|
||||
|
||||
import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity';
|
||||
import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator';
|
||||
import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator';
|
||||
import { WorkspaceGate } from 'src/engine/twenty-orm/decorators/workspace-gate.decorator';
|
||||
import { WorkspaceIsDeprecated } from 'src/engine/twenty-orm/decorators/workspace-is-deprecated.decorator';
|
||||
import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator';
|
||||
import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator';
|
||||
import { WEBHOOK_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
import { STANDARD_OBJECT_ICONS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-icons';
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
@WorkspaceEntity({
|
||||
standardId: STANDARD_OBJECT_IDS.webhook,
|
||||
namePlural: 'webhooks',
|
||||
labelSingular: msg`Webhook`,
|
||||
labelPlural: msg`Webhooks`,
|
||||
description: msg`A webhook`,
|
||||
icon: STANDARD_OBJECT_ICONS.webhook,
|
||||
labelIdentifierStandardId: WEBHOOK_STANDARD_FIELD_IDS.targetUrl,
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
@WorkspaceGate({
|
||||
featureFlag: 'IS_WORKSPACE_API_KEY_WEBHOOK_GRAPHQL_ENABLED',
|
||||
excludeFromDatabase: false,
|
||||
excludeFromWorkspaceApi: true,
|
||||
})
|
||||
export class WebhookWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
@WorkspaceField({
|
||||
standardId: WEBHOOK_STANDARD_FIELD_IDS.targetUrl,
|
||||
type: FieldMetadataType.TEXT,
|
||||
label: msg`Target Url`,
|
||||
description: msg`Webhook target url`,
|
||||
icon: 'IconLink',
|
||||
})
|
||||
targetUrl: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WEBHOOK_STANDARD_FIELD_IDS.operation,
|
||||
type: FieldMetadataType.TEXT,
|
||||
label: msg`Operation`,
|
||||
description: msg`Webhook operation`,
|
||||
icon: 'IconCheckbox',
|
||||
})
|
||||
@WorkspaceIsDeprecated()
|
||||
operation: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WEBHOOK_STANDARD_FIELD_IDS.operations,
|
||||
type: FieldMetadataType.ARRAY,
|
||||
label: msg`Operations`,
|
||||
description: msg`Webhook operations`,
|
||||
icon: 'IconCheckbox',
|
||||
defaultValue: ['*.*'],
|
||||
})
|
||||
operations: string[];
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WEBHOOK_STANDARD_FIELD_IDS.description,
|
||||
type: FieldMetadataType.TEXT,
|
||||
label: msg`Description`,
|
||||
description: undefined,
|
||||
icon: 'IconInfo',
|
||||
})
|
||||
@WorkspaceIsNullable()
|
||||
description: string;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: WEBHOOK_STANDARD_FIELD_IDS.secret,
|
||||
type: FieldMetadataType.TEXT,
|
||||
label: msg`Secret`,
|
||||
description: msg`Optional secret used to compute the HMAC signature for webhook payloads. This secret is shared between Twenty and the webhook consumer to authenticate webhook requests.`,
|
||||
icon: 'IconLock',
|
||||
})
|
||||
secret: string;
|
||||
}
|
||||
Reference in New Issue
Block a user