ObjectStackObjectStack

Execution Context

Execution Context protocol schemas

Execution Context Schema

Defines the runtime context that flows from HTTP request → data operations.

This is the "identity + environment" envelope that every data operation can carry.

Design:

  • All fields are optional for backward compatibility

  • isSystem bypasses permission checks (for internal/migration operations)

  • transaction carries the database transaction handle for atomicity

  • traceId enables distributed tracing across microservices

Usage:

engine.find('account', { context: { userId: '...', tenantId: '...' } })

Source: packages/spec/src/kernel/execution-context.zod.ts

TypeScript Usage

import { ExecutionContextSchema } from '@objectstack/spec/kernel';
import type { ExecutionContext } from '@objectstack/spec/kernel';

// Validate data
const result = ExecutionContextSchema.parse(data);

ExecutionContext

Properties

PropertyTypeRequiredDescription
userIdstringoptional
actorstringoptional
attributedUserIdstringoptional
emailstringoptional
tenantIdstringoptional
timezonestringoptional
localestringoptional
currencystringoptional
positionsstring[]
principalKindEnum<'human' | 'agent' | 'service' | 'guest' | 'system'>optional
audienceEnum<'internal' | 'external'>optional
postureEnum<'PLATFORM_ADMIN' | 'TENANT_ADMIN' | 'MEMBER' | 'EXTERNAL'>optionalADR-0095 D2 posture rung — PLATFORM_ADMIN crosses the tenant wall where object posture permits; TENANT_ADMIN sees all rows in the org; MEMBER gets business RLS; EXTERNAL sees only explicitly shared rows.
onBehalfOf{ userId: string; principalKind?: Enum<'human' | 'agent' | 'service' | 'guest' | 'system'> }optional
permissionsstring[]
systemPermissionsstring[]optional
tabPermissionsRecord<string, Enum<'visible' | 'hidden' | 'default_on' | 'default_off'>>optional
org_user_idsstring[]optional
accessible_org_idsstring[]optional
rlsMembershipRecord<string, string[]>optional
isSystemboolean
flowRunIdstringoptional
skipTriggersbooleanoptional
skipAutomationsbooleanoptional
seedReplaybooleanoptional
skipStateMachinebooleanoptional
preserveAuditbooleanoptional
oauthScopesstring[]optional
accessTokenstringoptional
transactionanyoptional
traceIdstringoptional

On this page