diff --git a/packages/backend-core/src/events/publishers/index.ts b/packages/backend-core/src/events/publishers/index.ts index 87a34bf3f1..055d798979 100644 --- a/packages/backend-core/src/events/publishers/index.ts +++ b/packages/backend-core/src/events/publishers/index.ts @@ -22,3 +22,4 @@ export { default as plugin } from "./plugin" export { default as backup } from "./backup" export { default as environmentVariable } from "./environmentVariable" export { default as auditLog } from "./auditLog" +export { default as scim } from "./scim" diff --git a/packages/backend-core/src/events/publishers/scim.ts b/packages/backend-core/src/events/publishers/scim.ts new file mode 100644 index 0000000000..992fd4a3e0 --- /dev/null +++ b/packages/backend-core/src/events/publishers/scim.ts @@ -0,0 +1,16 @@ +import { publishEvent } from "../events" +import { Event, ScimUserCreatedEvent } from "@budibase/types" + +async function SCIMUserCreated(props: { + email: string + timestamp?: string | number +}) { + const properties: ScimUserCreatedEvent = { + email: props.email, + } + await publishEvent(Event.SCIM_USER_CREATED, properties, props.timestamp) +} + +export default { + SCIMUserCreated, +} diff --git a/packages/types/src/sdk/events/event.ts b/packages/types/src/sdk/events/event.ts index 3d0d3122b5..0267847ac1 100644 --- a/packages/types/src/sdk/events/event.ts +++ b/packages/types/src/sdk/events/event.ts @@ -184,6 +184,9 @@ export enum Event { // AUDIT LOG AUDIT_LOGS_FILTERED = "audit_log:filtered", AUDIT_LOGS_DOWNLOADED = "audit_log:downloaded", + + // SCIM + SCIM_USER_CREATED = "scim:user:created", } // all events that are not audited have been added to this record as undefined, this means @@ -364,6 +367,9 @@ export const AuditedEventFriendlyName: Record = { // AUDIT LOG - NOT AUDITED [Event.AUDIT_LOGS_FILTERED]: undefined, [Event.AUDIT_LOGS_DOWNLOADED]: undefined, + + // SCIM + [Event.SCIM_USER_CREATED]: `SCIM user "{{ email }}" created`, } // properties added at the final stage of the event pipeline diff --git a/packages/types/src/sdk/events/index.ts b/packages/types/src/sdk/events/index.ts index 745f84d2a3..5088dd21cf 100644 --- a/packages/types/src/sdk/events/index.ts +++ b/packages/types/src/sdk/events/index.ts @@ -23,3 +23,4 @@ export * from "./plugin" export * from "./backup" export * from "./environmentVariable" export * from "./auditLog" +export * from "./scim" diff --git a/packages/types/src/sdk/events/scim.ts b/packages/types/src/sdk/events/scim.ts new file mode 100644 index 0000000000..00e38e34cd --- /dev/null +++ b/packages/types/src/sdk/events/scim.ts @@ -0,0 +1,5 @@ +import { BaseEvent } from "./event" + +export interface ScimUserCreatedEvent extends BaseEvent { + email: string +}