Realtime schema — API Protocol reference Realtime schemas of the ObjectStack API Protocol: RealtimeConfig, RealtimeEvent and 5 more — each property with its type, default and a TypeScript example.
Source: packages/spec/src/api/realtime.zod.ts
import { RealtimeConfigSchema, RealtimeEventSchema, RealtimeEventType, RealtimePresenceSchema, SubscriptionSchema, SubscriptionEventSchema, TransportProtocol } from '@objectstack/spec/api' ;
import type { RealtimeConfig, RealtimeEvent, RealtimeEventType, RealtimePresence, Subscription, SubscriptionEvent, TransportProtocol } from '@objectstack/spec/api' ;
// Validate data
const result = RealtimeConfigSchema. parse (data);
Property Type Required Description enabled booleanoptional (default: true) Enable realtime synchronization transport Enum<'websocket' | 'sse' | 'polling'>optional (default: "websocket") Transport protocol subscriptions { id: string; events: object[]; transport: Enum<'websocket' | 'sse' | 'polling'>; channel?: string }[]optional Default subscriptions
Property Type Required Description id string✅ Unique subscription identifier events { type: Enum<'data.record.created' | 'data.record.updated' | 'data.record.deleted' | …>; object?: string; filters?: any }[]✅ Array of events to subscribe to transport Enum<'websocket' | 'sse' | 'polling'>✅ Transport protocol to use channel stringoptional Optional channel name for grouping subscriptions
Property Type Required Description id string✅ Unique event identifier type string✅ Event type (e.g., data.record.created, data.records.updated) object stringoptional Object name the event relates to action Enum<'created' | 'updated' | 'deleted'>optional Action performed payload Record<string, any>✅ Event payload data timestamp string✅ ISO 8601 datetime when event occurred userId stringoptional User who triggered the event sessionId stringoptional Session identifier
Realtime event type: a record-change event name the runtime emits
data.record.created
data.record.updated
data.record.deleted
data.records.updated
data.records.deleted
Property Type Required Description userId string✅ User identifier status Enum<'online' | 'away' | 'busy' | 'offline'>✅ Current presence status lastSeen string✅ ISO 8601 datetime of last activity metadata Record<string, any>optional Custom presence data (e.g., current page, custom status)
Property Type Required Description id string✅ Unique subscription identifier events { type: Enum<'data.record.created' | 'data.record.updated' | 'data.record.deleted' | …>; object?: string; filters?: any }[]✅ Array of events to subscribe to transport Enum<'websocket' | 'sse' | 'polling'>✅ Transport protocol to use channel stringoptional Optional channel name for grouping subscriptions
Property Type Required Description type Enum<'data.record.created' | 'data.record.updated' | 'data.record.deleted' | …>✅ Type of event to subscribe to object stringoptional Object name to subscribe to filters anyoptional Filter conditions
Property Type Required Description type Enum<'data.record.created' | 'data.record.updated' | 'data.record.deleted' | 'data.records.updated' | 'data.records.deleted'>✅ Type of event to subscribe to object stringoptional Object name to subscribe to filters anyoptional Filter conditions