ObjectStackObjectStack

Data Engine

Data Engine protocol schemas

Data Engine Protocol

Defines the standard interface for data persistence engines in ObjectStack.

This protocol abstracts the underlying storage mechanism (SQL, NoSQL, API, Memory),

allowing the ObjectQL engine to execute standardized CRUD and Aggregation operations

regardless of where the data resides.

The Data Engine acts as the "Driver" layer in the Hexagonal Architecture.

Source: packages/spec/src/data/data-engine.zod.ts

TypeScript Usage

import { BaseEngineOptions, DataEngineAggregateOptions, DataEngineAggregateRequest, DataEngineBatchRequest, DataEngineCountOptions, DataEngineCountRequest, DataEngineDeleteOptions, DataEngineDeleteRequest, DataEngineExecuteRequest, DataEngineFilter, DataEngineFindOneRequest, DataEngineFindRequest, DataEngineInsertOptions, DataEngineInsertRequest, DataEngineQueryOptions, DataEngineRequest, DataEngineSort, DataEngineUpdateOptions, DataEngineUpdateRequest, DataEngineVectorFindRequest, EngineAggregateOptions, EngineCountOptions, EngineDeleteOptions, EngineQueryOptions, EngineUpdateOptions } from '@objectstack/spec/data';
import type { BaseEngineOptions, DataEngineAggregateOptions, DataEngineAggregateRequest, DataEngineBatchRequest, DataEngineCountOptions, DataEngineCountRequest, DataEngineDeleteOptions, DataEngineDeleteRequest, DataEngineExecuteRequest, DataEngineFilter, DataEngineFindOneRequest, DataEngineFindRequest, DataEngineInsertOptions, DataEngineInsertRequest, DataEngineQueryOptions, DataEngineRequest, DataEngineSort, DataEngineUpdateOptions, DataEngineUpdateRequest, DataEngineVectorFindRequest, EngineAggregateOptions, EngineCountOptions, EngineDeleteOptions, EngineQueryOptions, EngineUpdateOptions } from '@objectstack/spec/data';

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

BaseEngineOptions

Properties

PropertyTypeRequiredDescription
contextObjectoptional

DataEngineAggregateOptions

Options for DataEngine.aggregate operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
filterRecord<string, any> | [__schema0](./__schema0)optionalData Engine query filter conditions
groupBystring[]optional
aggregationsObject[]optional

DataEngineAggregateRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObject

DataEngineBatchRequest

Properties

PropertyTypeRequiredDescription
methodstring
requestsObject | Object | Object | Object | Object | Object | Object | Object | Object[]
transactionbooleanoptional

DataEngineCountOptions

Options for DataEngine.count operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
filterRecord<string, any> | [__schema0](./__schema0)optionalData Engine query filter conditions

DataEngineCountRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectoptional

DataEngineDeleteOptions

Options for DataEngine.delete operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
filterRecord<string, any> | [__schema0](./__schema0)optionalData Engine query filter conditions
multibooleanoptional

DataEngineDeleteRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
idstring | numberoptionalID for single delete, or use where in options
optionsObjectoptional

DataEngineExecuteRequest

Properties

PropertyTypeRequiredDescription
methodstring
commandany
optionsRecord<string, any>optional

DataEngineFilter

Data Engine query filter conditions

Union Options

This schema accepts one of the following structures:

Option 1

Type: Record<string, any>


Option 2

Reference: __schema0



DataEngineFindOneRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectoptional

DataEngineFindRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectoptional

DataEngineInsertOptions

Options for DataEngine.insert operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
returningbooleanoptional

DataEngineInsertRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
dataRecord<string, any> | Record<string, any>[]
optionsObjectoptionalOptions for DataEngine.insert operations

DataEngineQueryOptions

Query options for IDataEngine.find() operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
filterRecord<string, any> | [__schema0](./__schema0)optionalData Engine query filter conditions
selectstring[]optional
sortRecord<string, Enum<'asc' | 'desc'>> | Record<string, number | number> | Object[]optionalSort order definition
limitintegeroptional
skipintegeroptional
topintegeroptional
populatestring[]optional

DataEngineRequest

Virtual ObjectQL Request Protocol

Union Options

This schema accepts one of the following structures:

Option 1

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectoptional

Option 2

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectoptional

Option 3

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
dataRecord<string, any> | Record<string, any>[]
optionsObjectoptionalOptions for DataEngine.insert operations

Option 4

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
dataRecord<string, any>
idstring | numberoptionalID for single update, or use where in options
optionsObjectoptional

Option 5

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
idstring | numberoptionalID for single delete, or use where in options
optionsObjectoptional

Option 6

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectoptional

Option 7

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObject

Option 8

Properties

PropertyTypeRequiredDescription
methodstring
requestsObject | Object | Object | Object | Object | Object | Object | Object | Object[]
transactionbooleanoptional

Option 9

Properties

PropertyTypeRequiredDescription
methodstring
commandany
optionsRecord<string, any>optional

Option 10

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
vectornumber[]
whereRecord<string, any> | [__schema0](./__schema0)optional
fieldsstring[]optional
limitintegeroptional
thresholdnumberoptional


DataEngineSort

Sort order definition

Union Options

This schema accepts one of the following structures:

Option 1

Type: Record<string, Enum<'asc' | 'desc'>>


Option 2

Type: Record<string, number | number>


Option 3

Type: Object[]



DataEngineUpdateOptions

Options for DataEngine.update operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
filterRecord<string, any> | [__schema0](./__schema0)optionalData Engine query filter conditions
upsertbooleanoptional
multibooleanoptional
returningbooleanoptional

DataEngineUpdateRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
dataRecord<string, any>
idstring | numberoptionalID for single update, or use where in options
optionsObjectoptional

DataEngineVectorFindRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
vectornumber[]
whereRecord<string, any> | [__schema0](./__schema0)optional
fieldsstring[]optional
limitintegeroptional
thresholdnumberoptional

EngineAggregateOptions

QueryAST-aligned options for DataEngine.aggregate operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
whereRecord<string, any> | [__schema0](./__schema0)optional
groupBystring[]optional
aggregationsObject[]optional

EngineCountOptions

QueryAST-aligned options for DataEngine.count operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
whereRecord<string, any> | [__schema0](./__schema0)optional

EngineDeleteOptions

QueryAST-aligned options for DataEngine.delete operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
whereRecord<string, any> | [__schema0](./__schema0)optional
multibooleanoptional

EngineQueryOptions

QueryAST-aligned query options for IDataEngine.find() operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
whereRecord<string, any> | [__schema0](./__schema0)optional
fields[__schema1](./__schema1)[]optional
orderByObject[]optional
limitnumberoptional
offsetnumberoptional
topnumberoptional
cursorRecord<string, any>optional
searchObjectoptional
expandRecord<string, [__schema2](./__schema2)>optional
distinctbooleanoptional

EngineUpdateOptions

QueryAST-aligned options for DataEngine.update operations

Properties

PropertyTypeRequiredDescription
contextObjectoptional
whereRecord<string, any> | [__schema0](./__schema0)optional
upsertbooleanoptional
multibooleanoptional
returningbooleanoptional

On this page