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 } 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 } 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
queryObjectOptions for DataEngine.aggregate operations

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
queryObjectoptionalOptions for DataEngine.count operations

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 filter in options
optionsObjectoptionalOptions for DataEngine.delete operations

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
queryObjectoptionalQuery options for IDataEngine.find() operations

DataEngineFindRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectoptionalQuery options for IDataEngine.find() operations

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
queryObjectoptionalQuery options for IDataEngine.find() operations

Option 2

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectoptionalQuery options for IDataEngine.find() operations

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 filter in options
optionsObjectoptionalOptions for DataEngine.update operations

Option 5

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
idstring | numberoptionalID for single delete, or use filter in options
optionsObjectoptionalOptions for DataEngine.delete operations

Option 6

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectoptionalOptions for DataEngine.count operations

Option 7

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
queryObjectOptions for DataEngine.aggregate operations

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[]
filterRecord<string, any> | [__schema0](./__schema0)optionalData Engine query filter conditions
selectstring[]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 filter in options
optionsObjectoptionalOptions for DataEngine.update operations

DataEngineVectorFindRequest

Properties

PropertyTypeRequiredDescription
methodstring
objectstring
vectornumber[]
filterRecord<string, any> | [__schema0](./__schema0)optionalData Engine query filter conditions
selectstring[]optional
limitintegeroptional
thresholdnumberoptional

On this page