Installation
Initialization
registerWorker
Creates and returns a connected SDK instance. The WebSocket connection is established automatically — there is no separateconnect() call.
Signature
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
address | string | Yes | WebSocket URL of the III engine (e.g. ws://localhost:49135). |
options | InitOptions | Yes | Optional InitOptions for worker name, timeouts, and reconnection. |
Example
Methods
registerTrigger
Registers a new trigger. A trigger is a way to invoke a function when a certain event occurs. SignatureParameters
| Name | Type | Required | Description |
|---|---|---|---|
trigger | RegisterTriggerInput | Yes | The trigger to register |
Example
registerFunction
Registers a new function with a local handler or an HTTP invocation config. SignatureParameters
| Name | Type | Required | Description |
|---|---|---|---|
functionId | string | Yes | Unique function identifier |
handler | RemoteFunctionHandler | Yes | Async handler for local execution, or an HTTP invocation config for external functions (Lambda, Cloudflare Workers, etc.) |
options | RegisterFunctionOptions | Yes | Optional function registration options (description, request/response formats, metadata) |
Example
trigger
Invokes a function using a request object. SignatureParameters
| Name | Type | Required | Description |
|---|---|---|---|
request | TriggerRequest<TInput> | Yes | The trigger request containing function_id, payload, and optional action/timeout |
Example
registerTriggerType
Registers a new trigger type. A trigger type is a way to invoke a function when a certain event occurs. SignatureParameters
| Name | Type | Required | Description |
|---|---|---|---|
triggerType | RegisterTriggerTypeInput | Yes | The trigger type to register |
handler | TriggerHandler<TConfig> | Yes | The handler for the trigger type |
Example
unregisterTriggerType
Unregisters a trigger type. SignatureParameters
| Name | Type | Required | Description |
|---|---|---|---|
triggerType | RegisterTriggerTypeInput | Yes | The trigger type to unregister |
Example
addConnectionStateListener
Subscribe to connection-state transitions. The handler is fired immediately with the current state, then on every transition. Multiple listeners are supported. Returns an unsubscribe function. SignatureParameters
| Name | Type | Required | Description |
|---|---|---|---|
handler | (state: IIIConnectionState) => void | Yes | - |
Example
shutdown
Gracefully shutdown the iii, cleaning up all resources. SignatureExample
Subpath Exports
Theiii-browser-sdk package provides additional entry points:
| Import path | Contents |
|---|---|
iii-browser-sdk | ApiRequest, ApiResponse, AuthInput, AuthResult, Channel, ChannelReader, ChannelWriter, EngineFunctions, EngineTriggers, EnqueueResult, etc. |
iii-browser-sdk/state | DeleteResult, IState, StateDeleteInput, StateDeleteResult, StateEventData, StateEventType, StateGetInput, StateListInput, StateSetInput, StateSetResult, etc. |
iii-browser-sdk/stream | DeleteResult, IStream, MergePath, StreamAuthInput, StreamAuthResult, StreamChangeEvent, StreamContext, StreamDeleteInput, StreamGetInput, StreamJoinLeaveEvent, etc. |
Types
iii-browser-sdk
ApiRequest · ApiResponse · AuthInput · AuthResult · Channel · ChannelReader · ChannelWriter · EnqueueResult · FunctionRef · IIIConnectionState · InitOptions · MessageType · MiddlewareFunctionInput · OnFunctionRegistrationInput · OnFunctionRegistrationResult · OnTriggerRegistrationInput · OnTriggerRegistrationResult · OnTriggerTypeRegistrationInput · OnTriggerTypeRegistrationResult · RegisterFunctionInput · RegisterFunctionMessage · RegisterFunctionOptions · RegisterTriggerInput · RegisterTriggerMessage · RegisterTriggerTypeInput · RegisterTriggerTypeMessage · RemoteFunctionHandler · StreamChannelRef · Trigger · TriggerConfig · TriggerHandler · TriggerRequest · TriggerTypeRef
ApiRequest
Incoming HTTP request received by a function registered with an HTTP trigger.| Name | Type | Required | Description |
|---|---|---|---|
body | TBody | Yes | - |
headers | Record<string, string | string[]> | Yes | - |
method | string | Yes | - |
path_params | Record<string, string> | Yes | - |
query_params | Record<string, string | string[]> | Yes | - |
ApiResponse
Structured API response returned from HTTP function handlers.| Name | Type | Required | Description |
|---|---|---|---|
body | TBody | No | Response body. |
headers | Record<string, string> | No | Response headers. |
status_code | TStatus | Yes | HTTP status code. |
AuthInput
Input passed to the RBAC auth function during WebSocket upgrade. Contains the HTTP headers, query parameters, and client IP from the connecting worker’s upgrade request.| Name | Type | Required | Description |
|---|---|---|---|
headers | Record<string, string> | Yes | HTTP headers from the WebSocket upgrade request. |
ip_address | string | Yes | IP address of the connecting client. |
query_params | Record<string, string[]> | Yes | Query parameters from the upgrade URL. Each key maps to an array of values to support repeated keys. |
AuthResult
Return value from the RBAC auth function. Controls which functions the authenticated worker can invoke and what context is forwarded to the middleware.| Name | Type | Required | Description |
|---|---|---|---|
allow_function_registration | boolean | No | Whether the worker may register new functions. Defaults to true if omitted. |
allow_trigger_type_registration | boolean | No | Whether the worker may register new trigger types. Defaults to false if omitted. |
allowed_functions | string[] | No | Additional function IDs to allow beyond the expose_functions config. Defaults to [] if omitted. |
allowed_trigger_types | string[] | No | Trigger type IDs the worker may register triggers for. When omitted, all types are allowed. |
context | Record<string, unknown> | No | Arbitrary context forwarded to the middleware function on every invocation. Defaults to {} if omitted. |
forbidden_functions | string[] | No | Function IDs to deny even if they match expose_functions. Takes precedence over allowed. Defaults to [] if omitted. |
function_registration_prefix | string | No | Optional prefix applied to all function IDs registered by this worker. |
Channel
A streaming channel pair for worker-to-worker data transfer. Created via thecreateChannel helper from iii-browser-sdk/helpers.
| Name | Type | Required | Description |
|---|---|---|---|
reader | ChannelReader | Yes | Reader end of the channel. |
readerRef | StreamChannelRef | Yes | Serializable reference to the reader (can be sent to other workers). |
writer | ChannelWriter | Yes | Writer end of the channel. |
writerRef | StreamChannelRef | Yes | Serializable reference to the writer (can be sent to other workers). |
ChannelReader
Read end of a streaming channel. Uses native browser WebSocket.ChannelWriter
Write end of a streaming channel. Uses native browser WebSocket.EnqueueResult
Result returned when a function is invoked withTriggerAction.Enqueue.
| Name | Type | Required | Description |
|---|---|---|---|
messageReceiptId | string | Yes | Unique receipt ID for the enqueued message. |
FunctionRef
Handle returned by ISdk.registerFunction. Contains the function’sid and an unregister() method.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The unique function identifier. |
unregister | () => void | Yes | Removes this function from the engine. |
IIIConnectionState
Connection state for the III WebSocketInitOptions
Configuration options passed to registerWorker.| Name | Type | Required | Description |
|---|---|---|---|
headers | Record<string, string> | No | Custom headers are not supported by browser WebSocket. Use query parameters or cookies for auth. |
invocationTimeoutMs | number | No | Default timeout for trigger() in milliseconds. Defaults to 30000. |
reconnectionConfig | Partial<IIIReconnectionConfig> | No | WebSocket reconnection behavior. |
MessageType
| Name | Type | Required | Description |
|---|---|---|---|
InvocationResult | "invocationresult" | Yes | - |
InvokeFunction | "invokefunction" | Yes | - |
RegisterFunction | "registerfunction" | Yes | - |
RegisterTrigger | "registertrigger" | Yes | - |
RegisterTriggerType | "registertriggertype" | Yes | - |
TriggerRegistrationResult | "triggerregistrationresult" | Yes | - |
UnregisterFunction | "unregisterfunction" | Yes | - |
UnregisterTrigger | "unregistertrigger" | Yes | - |
UnregisterTriggerType | "unregistertriggertype" | Yes | - |
WorkerRegistered | "workerregistered" | Yes | - |
MiddlewareFunctionInput
Input passed to the RBAC middleware function on every function invocation through the RBAC port. The middleware can inspect, modify, or reject the call before it reaches the target function.| Name | Type | Required | Description |
|---|---|---|---|
action | TriggerAction | No | Routing action, if any. |
context | Record<string, unknown> | Yes | Auth context returned by the auth function for this session. |
function_id | string | Yes | ID of the function being invoked. |
payload | Record<string, unknown> | Yes | Payload sent by the caller. |
OnFunctionRegistrationInput
Input passed to theon_function_registration_function_id hook
when a worker attempts to register a function through the RBAC port.
Return an OnFunctionRegistrationResult with the (possibly mapped)
fields, or throw to deny the registration.
| Name | Type | Required | Description |
|---|---|---|---|
context | Record<string, unknown> | Yes | Auth context from AuthResult.context for this session. |
description | string | No | Human-readable description of the function. |
function_id | string | Yes | ID of the function being registered. |
metadata | Record<string, unknown> | No | Arbitrary metadata attached to the function. |
OnFunctionRegistrationResult
Result returned from theon_function_registration_function_id hook.
All fields are optional — omitted fields keep the original value from the
registration request.
| Name | Type | Required | Description |
|---|---|---|---|
description | string | No | Mapped description. |
function_id | string | No | Mapped function ID. |
metadata | Record<string, unknown> | No | Mapped metadata. |
OnTriggerRegistrationInput
Input passed to theon_trigger_registration_function_id hook
when a worker attempts to register a trigger through the RBAC port.
Return an OnTriggerRegistrationResult with the (possibly mapped)
fields, or throw to deny the registration.
| Name | Type | Required | Description |
|---|---|---|---|
config | unknown | Yes | Trigger-specific configuration. |
context | Record<string, unknown> | Yes | Auth context from AuthResult.context for this session. |
function_id | string | Yes | ID of the function this trigger is bound to. |
trigger_id | string | Yes | ID of the trigger being registered. |
trigger_type | string | Yes | Trigger type identifier. |
OnTriggerRegistrationResult
Result returned from theon_trigger_registration_function_id hook.
All fields are optional — omitted fields keep the original value from the
registration request.
| Name | Type | Required | Description |
|---|---|---|---|
config | unknown | No | Mapped trigger configuration. |
function_id | string | No | Mapped function ID. |
trigger_id | string | No | Mapped trigger ID. |
trigger_type | string | No | Mapped trigger type. |
OnTriggerTypeRegistrationInput
Input passed to theon_trigger_type_registration_function_id hook
when a worker attempts to register a new trigger type through the RBAC port.
Return an OnTriggerTypeRegistrationResult with the (possibly mapped)
fields, or throw to deny the registration.
| Name | Type | Required | Description |
|---|---|---|---|
context | Record<string, unknown> | Yes | Auth context from AuthResult.context for this session. |
description | string | Yes | Human-readable description of the trigger type. |
trigger_type_id | string | Yes | ID of the trigger type being registered. |
OnTriggerTypeRegistrationResult
Result returned from theon_trigger_type_registration_function_id hook.
All fields are optional — omitted fields keep the original value from the
registration request.
| Name | Type | Required | Description |
|---|---|---|---|
description | string | No | Mapped description. |
trigger_type_id | string | No | Mapped trigger type ID. |
RegisterFunctionInput
RegisterFunctionMessage
| Name | Type | Required | Description |
|---|---|---|---|
description | string | No | The description of the function |
id | string | Yes | The path of the function (use :: for namespacing, e.g. external::my_lambda) |
message_type | MessageType.RegisterFunction | Yes | - |
metadata | Record<string, unknown> | No | - |
request_format | RegisterFunctionFormat | No | The request format of the function |
response_format | RegisterFunctionFormat | No | The response format of the function |
RegisterFunctionOptions
RegisterTriggerInput
RegisterTriggerMessage
| Name | Type | Required | Description |
|---|---|---|---|
config | unknown | Yes | - |
function_id | string | Yes | - |
id | string | Yes | - |
message_type | MessageType.RegisterTrigger | Yes | - |
type | string | Yes | - |
RegisterTriggerTypeInput
RegisterTriggerTypeMessage
| Name | Type | Required | Description |
|---|---|---|---|
description | string | Yes | - |
id | string | Yes | - |
message_type | MessageType.RegisterTriggerType | Yes | - |
RemoteFunctionHandler
Async function handler for a registered function. Receives the invocation payload and returns the result.StreamChannelRef
Serializable reference to one end of a streaming channel. Can be included in invocation payloads to pass channel endpoints between workers.| Name | Type | Required | Description |
|---|---|---|---|
access_key | string | Yes | Access key for authentication. |
channel_id | string | Yes | Unique channel identifier. |
direction | "read" | "write" | Yes | Whether this ref is for reading or writing. |
Trigger
Handle returned by ISdk.registerTrigger. Useunregister() to
remove the trigger from the engine.
| Name | Type | Required | Description |
|---|---|---|---|
unregister | void | Yes | Removes this trigger from the engine. |
TriggerConfig
Configuration passed to a trigger handler when a trigger instance is registered or unregistered.| Name | Type | Required | Description |
|---|---|---|---|
config | TConfig | Yes | Trigger-specific configuration. |
function_id | string | Yes | Function to invoke when the trigger fires. |
id | string | Yes | Trigger instance ID. |
TriggerHandler
Handler interface for custom trigger types. Passed toISdk.registerTriggerType.
| Name | Type | Required | Description |
|---|---|---|---|
registerTrigger | Promise<void> | Yes | Called when a trigger instance is registered. |
unregisterTrigger | Promise<void> | Yes | Called when a trigger instance is unregistered. |
TriggerRequest
Request object passed to ISdk.trigger.| Name | Type | Required | Description |
|---|---|---|---|
action | TriggerAction | No | Routing action. Omit for synchronous request/response. |
function_id | string | Yes | ID of the function to invoke. |
payload | TInput | Yes | Payload to pass to the function. |
timeoutMs | number | No | Override the default invocation timeout in milliseconds. |
TriggerTypeRef
Typed handle returned by ISdk.registerTriggerType. Provides convenience methods to register triggers and functions scoped to this trigger type, so callers don’t need to repeat thetype field.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The trigger type identifier. |
registerFunction | FunctionRef | Yes | Register a function and immediately bind it to this trigger type. |
registerTrigger | Trigger | Yes | Register a trigger bound to this trigger type. |
unregister | void | Yes | Unregister this trigger type from the engine. |
iii-browser-sdk/state
DeleteResult · IState · StateDeleteInput · StateDeleteResult · StateEventData · StateEventType · StateGetInput · StateListInput · StateSetInput · StateSetResult · StateUpdateInput · StateUpdateResult
DeleteResult
Result of a state delete operation.| Name | Type | Required | Description |
|---|---|---|---|
old_value | any | No | Previous value (if it existed). |
IState
Interface for state management operations. Available via theiii-sdk/state
subpath export.
| Name | Type | Required | Description |
|---|---|---|---|
delete | Promise<DeleteResult> | Yes | Delete a state value. |
get | Promise<TData | null> | Yes | Retrieve a value by scope and key. |
list | Promise<TData[]> | Yes | List all values in a scope. |
set | Promise<StateSetResult<TData> | null> | Yes | Set (create or overwrite) a state value. |
update | Promise<StateUpdateResult<TData> | null> | Yes | Apply atomic update operations to a state value. |
StateDeleteInput
Input for deleting a state value.| Name | Type | Required | Description |
|---|---|---|---|
key | string | Yes | Key within the scope. |
scope | string | Yes | State scope (namespace). |
StateDeleteResult
Result of a state delete operation.| Name | Type | Required | Description |
|---|---|---|---|
old_value | any | No | Previous value (if it existed). |
StateEventData
Payload for state change events.| Name | Type | Required | Description |
|---|---|---|---|
event_type | StateEventType | Yes | Type of state change. |
key | string | Yes | Key within the scope. |
new_value | TData | No | New value (for create/update events). |
old_value | TData | No | Previous value (for update/delete events). |
scope | string | Yes | State scope (namespace). |
type | "state" | Yes | - |
StateEventType
Types of state change events.| Name | Type | Required | Description |
|---|---|---|---|
Created | "state:created" | Yes | - |
Deleted | "state:deleted" | Yes | - |
Updated | "state:updated" | Yes | - |
StateGetInput
Input for retrieving a state value.| Name | Type | Required | Description |
|---|---|---|---|
key | string | Yes | Key within the scope. |
scope | string | Yes | State scope (namespace). |
StateListInput
Input for listing all values in a state scope.| Name | Type | Required | Description |
|---|---|---|---|
scope | string | Yes | State scope (namespace). |
StateSetInput
Input for setting a state value.| Name | Type | Required | Description |
|---|---|---|---|
key | string | Yes | Key within the scope. |
scope | string | Yes | State scope (namespace). |
value | any | Yes | Value to store. |
StateSetResult
Result of a state set operation.| Name | Type | Required | Description |
|---|---|---|---|
new_value | TData | Yes | New value that was stored. |
old_value | TData | No | Previous value (if it existed). |
StateUpdateInput
Input for atomically updating a state value.| Name | Type | Required | Description |
|---|---|---|---|
key | string | Yes | Key within the scope. |
ops | UpdateOp[] | Yes | Ordered list of update operations to apply atomically. |
scope | string | Yes | State scope (namespace). |
StateUpdateResult
Result of a state update operation.| Name | Type | Required | Description |
|---|---|---|---|
errors | UpdateOpError[] | No | Per-op errors. Currently emitted only by the merge op wheninput violates validation bounds. Field omitted when empty. |
new_value | TData | Yes | New value after the update. |
old_value | TData | No | Previous value (if it existed). |
iii-browser-sdk/stream
IStream · MergePath · StreamAuthInput · StreamAuthResult · StreamChangeEvent · StreamContext · StreamDeleteInput · StreamGetInput · StreamJoinLeaveEvent · StreamJoinLeaveTriggerConfig · StreamJoinResult · StreamListGroupsInput · StreamListInput · StreamSetInput · StreamSetResult · StreamTriggerConfig · StreamUpdateInput · StreamUpdateResult · UpdateAppend · UpdateDecrement · UpdateIncrement · UpdateMerge · UpdateOp · UpdateOpError · UpdateRemove · UpdateSet
IStream
Interface for custom stream implementations. Passed toISdk.createStream
to override the engine’s built-in stream storage.
| Name | Type | Required | Description |
|---|---|---|---|
delete | Promise<DeleteResult> | Yes | Delete a stream item. |
get | Promise<TData | null> | Yes | Retrieve a single item by group and item ID. |
list | Promise<TData[]> | Yes | List all items in a group. |
listGroups | Promise<string[]> | Yes | List all group IDs in a stream. |
set | Promise<StreamSetResult<TData> | null> | Yes | Set (create or overwrite) a stream item. |
update | Promise<StreamUpdateResult<TData> | null> | Yes | Apply atomic update operations to a stream item. |
MergePath
Path target for a UpdateMerge op. Accepts:- a single string (legacy / first-level field)
- an array of literal segments (nested path; each element is one literal key, dots are NOT interpreted as separators)
path, pass "", or pass [] to target the root value.
StreamAuthInput
Input for stream authentication.| Name | Type | Required | Description |
|---|---|---|---|
addr | string | Yes | Client address. |
headers | Record<string, string> | Yes | Request headers. |
path | string | Yes | Request path. |
query_params | Record<string, string[]> | Yes | Query parameters. |
StreamAuthResult
Result of stream authentication.| Name | Type | Required | Description |
|---|---|---|---|
context | any | No | Arbitrary context passed to stream handlers after authentication. |
StreamChangeEvent
Handler input forstream triggers, fired when an item changes via stream::set, stream::update, or stream::delete.
| Name | Type | Required | Description |
|---|---|---|---|
event | { data: any; type: "create" | "update" | "delete" } | Yes | The event detail object containing type and data fields. |
groupId | string | Yes | The group where the change occurred. |
id | string | No | The item ID that changed. |
streamName | string | Yes | The stream where the change occurred. |
timestamp | number | Yes | Unix timestamp of the event. |
type | "stream" | Yes | The event type. |
StreamContext
Context type extracted from StreamAuthResult.StreamDeleteInput
Input for deleting a stream item.| Name | Type | Required | Description |
|---|---|---|---|
group_id | string | Yes | Group identifier. |
item_id | string | Yes | Item identifier. |
stream_name | string | Yes | Name of the stream. |
StreamGetInput
Input for retrieving a single stream item.| Name | Type | Required | Description |
|---|---|---|---|
group_id | string | Yes | Group identifier. |
item_id | string | Yes | Item identifier. |
stream_name | string | Yes | Name of the stream. |
StreamJoinLeaveEvent
Event payload for stream join/leave events.| Name | Type | Required | Description |
|---|---|---|---|
context | any | No | Auth context from StreamAuthResult. |
group_id | string | Yes | Group identifier. |
id | string | No | Item identifier (if applicable). |
stream_name | string | Yes | Name of the stream. |
subscription_id | string | Yes | Unique subscription identifier. |
StreamJoinLeaveTriggerConfig
Trigger config forstream:join and stream:leave triggers.
| Name | Type | Required | Description |
|---|---|---|---|
condition_function_id | string | No | Function ID for conditional execution. If it returns false, the handler is skipped. |
StreamJoinResult
Result of a stream join request.| Name | Type | Required | Description |
|---|---|---|---|
unauthorized | boolean | Yes | Whether the join was unauthorized. |
StreamListGroupsInput
Input for listing all groups in a stream.| Name | Type | Required | Description |
|---|---|---|---|
stream_name | string | Yes | Name of the stream. |
StreamListInput
Input for listing all items in a stream group.| Name | Type | Required | Description |
|---|---|---|---|
group_id | string | Yes | Group identifier. |
stream_name | string | Yes | Name of the stream. |
StreamSetInput
Input for setting a stream item.| Name | Type | Required | Description |
|---|---|---|---|
data | any | Yes | Data to store. |
group_id | string | Yes | Group identifier. |
item_id | string | Yes | Item identifier. |
stream_name | string | Yes | Name of the stream. |
StreamSetResult
Result of a stream set operation.| Name | Type | Required | Description |
|---|---|---|---|
new_value | TData | Yes | New value that was stored. |
old_value | TData | No | Previous value (if it existed). |
StreamTriggerConfig
Trigger config forstream triggers. Filters which item changes fire the handler.
| Name | Type | Required | Description |
|---|---|---|---|
condition_function_id | string | No | Function ID for conditional execution. If it returns false, the handler is skipped. |
group_id | string | No | If set, only changes within this group fire the handler. |
item_id | string | No | If set, only changes to this specific item fire the handler. |
stream_name | string | Yes | Stream name to watch. Only changes on this stream fire the handler. |
StreamUpdateInput
Input for atomically updating a stream item.| Name | Type | Required | Description |
|---|---|---|---|
group_id | string | Yes | Group identifier. |
item_id | string | Yes | Item identifier. |
ops | UpdateOp[] | Yes | Ordered list of update operations to apply atomically. |
stream_name | string | Yes | Name of the stream. |
StreamUpdateResult
Result of a stream update operation.| Name | Type | Required | Description |
|---|---|---|---|
errors | UpdateOpError[] | No | Per-op errors. Emitted by merge and append for validationrejections (path/value bounds, proto-pollution segments) and by append for the append.type_mismatch andappend.target_not_object surfaces. Field omitted when empty. |
new_value | TData | Yes | New value after the update. |
old_value | TData | No | Previous value (if it existed). |
UpdateAppend
Append an element to an array, concatenate a string, or push a new value at a nested path. The target is the root (whenpath is
omitted, empty, or []), a single first-level key (when path is
a non-empty string), or an arbitrary nested location (when path
is an array of literal segments). See MergePath.
Engine semantics: missing/null intermediates along a nested path are
auto-created; missing leaves on a nested path always become arrays
(no string-concat tier); existing object/scalar leaves return
append.type_mismatch. Each path segment is a literal key,
["a.b"] targets a single key named "a.b", not a → b.
| Name | Type | Required | Description |
|---|---|---|---|
path | MergePath | No | Optional path to the append target. Accepts a single first-level key (legacy string) or an array of literal segments for nestedappend. See MergePath (the same shape is reused). |
type | "append" | Yes | - |
value | any | Yes | Value to append. String targets only accept string values. |
UpdateDecrement
Decrement a numeric field by a given amount.| Name | Type | Required | Description |
|---|---|---|---|
by | number | Yes | Amount to decrement by. |
path | string | Yes | First-level field path. |
type | "decrement" | Yes | - |
UpdateIncrement
Increment a numeric field by a given amount.| Name | Type | Required | Description |
|---|---|---|---|
by | number | Yes | Amount to increment by. |
path | string | Yes | First-level field path. |
type | "increment" | Yes | - |
UpdateMerge
Shallow-merge an object into the target. The target is the root (whenpath is omitted/empty) or an arbitrary nested location
specified by an array of literal segments. See MergePath.
Validation: invalid paths/values (depth > 32, segment > 256 bytes,
value depth > 16, > 1024 top-level keys, or any
__proto__/constructor/prototype segment or top-level key) are
rejected with a structured error in the response’s errors array.
| Name | Type | Required | Description |
|---|---|---|---|
path | MergePath | No | Optional path to the merge target. See MergePath. |
type | "merge" | Yes | - |
value | any | Yes | Object to merge. Must be a JSON object. |
UpdateOp
Union of all atomic update operations supported by streams.UpdateOpError
Per-op error returned bystate::update / stream::update.
| Name | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Stable error code, e.g. "merge.path.too_deep". |
doc_url | string | No | Optional documentation URL. |
message | string | Yes | Human-readable description with concrete numbers when applicable. |
op_index | number | Yes | Index of the offending op within the original ops array. |
UpdateRemove
Remove a field at the given path.| Name | Type | Required | Description |
|---|---|---|---|
path | string | Yes | First-level field path. |
type | "remove" | Yes | - |
UpdateSet
Set a field at the given path to a value.| Name | Type | Required | Description |
|---|---|---|---|
path | string | Yes | First-level field path. Use an empty string to target the root value. |
type | "set" | Yes | - |
value | any | Yes | Value to set. |