| title | Execution Context |
|---|---|
| description | 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
-
isSystembypasses permission checks (for internal/migration operations) -
transactioncarries the database transaction handle for atomicity -
traceIdenables distributed tracing across microservices
Usage:
engine.find('account', { context: { userId: '...', tenantId: '...' } })
**Source:** `packages/spec/src/kernel/execution-context.zod.ts`import { ExecutionContext } from '@objectstack/spec/kernel';
import type { ExecutionContext } from '@objectstack/spec/kernel';
// Validate data
const result = ExecutionContext.parse(data);| Property | Type | Required | Description |
|---|---|---|---|
| userId | string |
optional | |
| actor | string |
optional | |
string |
optional | ||
| tenantId | string |
optional | |
| timezone | string |
optional | |
| locale | string |
optional | |
| currency | string |
optional | |
| roles | string[] |
✅ | |
| permissions | string[] |
✅ | |
| systemPermissions | string[] |
optional | |
| tabPermissions | Record<string, Enum<'visible' | 'hidden' | 'default_on' | 'default_off'>> |
optional | |
| org_user_ids | string[] |
optional | |
| rlsMembership | Record<string, string[]> |
optional | |
| isSystem | boolean |
✅ | |
| accessToken | string |
optional | |
| transaction | any |
optional | |
| traceId | string |
optional |