14064 extensibility add coretriggereventlistener table (#14138)

This Pr continues the extensibility journey
- adds a `core.databaseEventTrigger` table
- add a oneToMany relation between `core.serverlessFunction` and
`core.databaseEventTrigger`
- add a job `CallDatabaseEventTriggerJobsJob` triggered by
`EntityEventsToDbListener` triggering `serverlessFunction` based on the
`core.databaseEventTrigger.settings.eventName`
- add a new `trigger-queue` to carry this job
- renamed `DatabaseEventTriggerListener` into
`WorkflowDatabaseEventTriggerListener`
This commit is contained in:
martmull
2025-08-29 08:11:35 +02:00
committed by GitHub
parent b364acf5bb
commit 71d97c5398
13 changed files with 254 additions and 15 deletions
@@ -18,6 +18,7 @@ import { WorkspaceEventBatch } from 'src/engine/workspace-event-emitter/types/wo
import { UpsertTimelineActivityFromInternalEvent } from 'src/modules/timeline/jobs/upsert-timeline-activity-from-internal-event.job';
import { CallWebhookJobsJob } from 'src/engine/core-modules/webhook/jobs/call-webhook-jobs.job';
import { type ObjectRecordEventForWebhook } from 'src/engine/core-modules/webhook/types/object-record-event-for-webhook.type';
import { CallDatabaseEventTriggerJobsJob } from 'src/engine/metadata-modules/trigger/jobs/call-database-event-trigger-jobs.job';
@Injectable()
export class EntityEventsToDbListener {
@@ -28,6 +29,8 @@ export class EntityEventsToDbListener {
private readonly webhookQueueService: MessageQueueService,
@InjectMessageQueue(MessageQueue.subscriptionsQueue)
private readonly subscriptionsQueueService: MessageQueueService,
@InjectMessageQueue(MessageQueue.triggerQueue)
private readonly triggerQueueService: MessageQueueService,
) {}
@OnDatabaseBatchEvent('*', DatabaseEventAction.CREATED)
@@ -82,6 +85,11 @@ export class EntityEventsToDbListener {
batchEvent,
{ retryLimit: 3 },
),
this.triggerQueueService.add<WorkspaceEventBatch<T>>(
CallDatabaseEventTriggerJobsJob.name,
batchEvent,
{ retryLimit: 3 },
),
this.webhookQueueService.add<
WorkspaceEventBatch<ObjectRecordEventForWebhook>
>(