diff --git a/packages/node-type-registry/src/data/data-realtime.ts b/packages/node-type-registry/src/data/data-realtime.ts new file mode 100644 index 000000000..9e03b4c8d --- /dev/null +++ b/packages/node-type-registry/src/data/data-realtime.ts @@ -0,0 +1,33 @@ +import type { NodeTypeDefinition } from '../types'; + +export const DataRealtime: NodeTypeDefinition = { + name: 'DataRealtime', + slug: 'data_realtime', + category: 'data', + display_name: 'Realtime Subscriptions', + description: + 'Creates per-table subscriber tables in subscriptions_public with ' + + 'RLS policies derived from source table SELECT policies. Attaches ' + + 'statement-level triggers to emit changes to subscribers.', + parameter_schema: { + type: 'object', + properties: { + operations: { + type: 'array', + items: { + type: 'string', + enum: ['INSERT', 'UPDATE', 'DELETE'] + }, + description: + 'Which DML operations to track with emit_change triggers', + default: ['INSERT', 'UPDATE', 'DELETE'] + }, + subscriber_table_name: { + type: 'string', + description: + 'Custom name for the subscriber table (defaults to {source_table}_subscriber)' + } + } + }, + tags: ['realtime', 'subscriptions', 'triggers'] +}; diff --git a/packages/node-type-registry/src/data/index.ts b/packages/node-type-registry/src/data/index.ts index a1d565337..aec3d6dae 100644 --- a/packages/node-type-registry/src/data/index.ts +++ b/packages/node-type-registry/src/data/index.ts @@ -17,6 +17,7 @@ export { DataOwnedFields } from './data-owned-fields'; export { DataOwnershipInEntity } from './data-ownership-in-entity'; export { DataPeoplestamps } from './data-peoplestamps'; export { DataPublishable } from './data-publishable'; +export { DataRealtime } from './data-realtime'; export { DataSlug } from './data-slug'; export { DataSoftDelete } from './data-soft-delete'; export { DataStatusField } from './data-status-field';