Skip to content

bpmn-server / DataStore

Class: DataStore#

super class for various objects that are part of the server

Hierarchy#

↳ DataStore

Implements#

Table of contents#

Constructors#

Properties#

Accessors#

Methods#

Constructors#

constructor#

• new DataStore(server): DataStore

Parameters#

Name Type
server IBPMNServer

Returns#

DataStore

Overrides#

ServerComponent.constructor

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:39

Properties#

dbConfiguration#

• dbConfiguration: any

Deprecated

MongoDB's settings, for code written against the MongoDB data store; engine code does not read it.

Implementation of#

IDataStore.dbConfiguration

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:23


db#

• db: any

The storage adapter: the server's shared documentStore, else this data store's own MongoDB connection.

Implementation of#

IDataStore.db

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:25


ownsDb#

• Private Readonly ownsDb: boolean

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:26


execution#

• execution: Execution

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:28


isModified#

• isModified: boolean = false

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:29


isRunning#

• isRunning: boolean = false

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:30


inSaving#

• inSaving: boolean = false

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:31


promises#

• promises: any[] = []

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:32


locker#

• locker: ILockManager

The data store's own lock adapter; the engine uses the server's (server.locker), which is this one unless the configuration supplies another.

Implementation of#

IDataStore.locker

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:33


enableSavePoints#

• enableSavePoints: boolean = false

A save point at each save (engine.restart goes back to one); an instance's flags.savePoints overrides it.

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:35


saveLogs#

• saveLogs: boolean = true

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:36


saveSource#

• saveSource: boolean = true

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:37


seq#

▪ Static seq: number = 0

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:121


server#

• server: any

Inherited from#

ServerComponent.server

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:10

Accessors#

configuration#

• get configuration(): any

Returns#

any

Inherited from#

ServerComponent.configuration

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:15


logger#

• get logger(): any

Returns#

any

Implementation of#

IDataStore.logger

Inherited from#

ServerComponent.logger

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:16


cron#

• get cron(): Cron

Returns#

Cron

Inherited from#

ServerComponent.cron

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:17


cache#

• get cache(): ICacheManager

Returns#

ICacheManager

Inherited from#

ServerComponent.cache

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:18


appDelegate#

• get appDelegate(): any

Returns#

any

Inherited from#

ServerComponent.appDelegate

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:19


engine#

• get engine(): IEngine

Returns#

IEngine

Inherited from#

ServerComponent.engine

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:20


dataStore#

• get dataStore(): any

Returns#

any

Inherited from#

ServerComponent.dataStore

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:21


lockManager#

• get lockManager(): any

The lock port: the configuration's, else the data store's.

Returns#

any

Inherited from#

ServerComponent.lockManager

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:23


definitions#

• get definitions(): any

Returns#

any

Inherited from#

ServerComponent.definitions

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:24


listener#

• get listener(): any

Returns#

any

Inherited from#

ServerComponent.listener

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:25


scriptHandler#

• get scriptHandler(): any

Returns#

any

Inherited from#

ServerComponent.scriptHandler

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:26

Methods#

save#

▸ save(instance, options?): Promise\<void>

Parameters#

Name Type
instance any
options Object

Returns#

Promise\<void>

Implementation of#

IDataStore.save

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:67


loadInstance#

▸ loadInstance(instanceId, options?): Promise\<{ instance: IInstanceData = instanceData; items: any[] }>

Parameters#

Name Type
instanceId any
options Object

Returns#

Promise\<{ instance: IInstanceData = instanceData; items: any[] }>

Implementation of#

IDataStore.loadInstance

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:70


getItemsFromInstances#

▸ getItemsFromInstances(instances, condition?, trans?): any[]

Parameters#

Name Type Default value
instances any undefined
condition any null
trans any null

Returns#

any[]

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:88


saveInstance#

▸ saveInstance(instance, options?): Promise\<void>

Parameters#

Name Type
instance any
options Object

Returns#

Promise\<void>

Implementation of#

IDataStore.saveInstance

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:122


findItem#

▸ findItem(query): Promise\<IItemData>

Parameters#

Name Type
query any

Returns#

Promise\<IItemData>

Implementation of#

IDataStore.findItem

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:181


findInstance#

▸ findInstance(query, options): Promise\<IInstanceData>

Parameters#

Name Type
query any
options any

Returns#

Promise\<IInstanceData>

Implementation of#

IDataStore.findInstance

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:191


convertObj#

▸ convertObj(obj, cls): any

Parameters#

Name Type
obj any
cls any

Returns#

any

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:206


convertColl#

▸ convertColl(coll, cls): void

Parameters#

Name Type
coll any
cls any

Returns#

void

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:210


findInstances#

▸ findInstances(query, option?): Promise\<IInstanceData[]>

Parameters#

Name Type Default value Description
query any undefined
option any 'summary' 'summary' minimal data - 'full' -

Returns#

Promise\<IInstanceData[]>

Implementation of#

IDataStore.findInstances

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:229


findItems#

▸ findItems(query): Promise\<IItemData[]>

scenario:

itemId          { items { id : value } }
itemKey         { items {key: value } }
instance, task  { instance: { id: instanceId }, items: { elementId: value }}
message         { items: { messageId: nameofmessage, key: value } {}
status          { items: {status: 'wait' } }
custom: { query: query, projection: projection }
New approach: just like MongoDB
itemId          { items { id : value } }
itemKey         { items {key: value } }
instance, task  {  id: instanceId , items.elementId: value }
message         { items.messageId: nameofmessage, key: value } {}
status          { items.status: 'wait' } }
custom: { query: query, projection: projection }

Problem with Mongodb: projection $elematch returns only the first record

Parameters#

Name Type
query any

Returns#

Promise\<IItemData[]>

Implementation of#

IDataStore.findItems

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:270


backup#

▸ backup(): Promise\<Record\<string, any[]>>

Every document of the instances, archive and locks collections, by collection name: for a backup.

Returns#

Promise\<Record\<string, any[]>>

Implementation of#

IDataStore.backup

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:284


countInstances#

▸ countInstances(query): Promise\<number>

How many instances match query (MongoDB's query language, as findInstances).

Parameters#

Name Type
query any

Returns#

Promise\<number>

Implementation of#

IDataStore.countInstances

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:293


updateInstanceSource#

▸ updateInstanceSource(instanceId, source): Promise\<void>

Replaces a saved instance's definition source (upgrading it to a newer model); the caller holds the instance's lock.

Parameters#

Name Type
instanceId string
source string

Returns#

Promise\<void>

Implementation of#

IDataStore.updateInstanceSource

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:300


tagInstance#

▸ tagInstance(instanceId, tag): Promise\<void>

Marks a saved instance with a tag of the caller's: a field of its own, which the engine's saves leave as it is.

Parameters#

Name Type
instanceId string
tag any

Returns#

Promise\<void>

Implementation of#

IDataStore.tagInstance

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:305


close#

▸ close(): Promise\<void>

Releases the store's connections.

Returns#

Promise\<void>

Implementation of#

IDataStore.close

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:309


deleteInstances#

▸ deleteInstances(query): Promise\<any>

Parameters#

Name Type
query any

Returns#

Promise\<any>

Implementation of#

IDataStore.deleteInstances

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:313


install#

▸ install(): Promise\<void>

first time installation of DB

creates a new collection and add an index

Returns#

Promise\<void>

Implementation of#

IDataStore.install

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:327


archive#

▸ archive(query): Promise\<void>

Parameters#

Name Type
query any

Returns#

Promise\<void>

Implementation of#

IDataStore.archive

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:334


find#

▸ find(«destructured»): Promise\<FindResult\<any>>

MongoDB Pagination class for finding instances in a collection. This module provides a function to retrieve paginated results from a MongoDB collection.
It allows filtering, sorting, and projecting fields in the results. The results can be paginated using a cursor for efficient data retrieval. all the parameters are optional and are passed to the findInstances method. * sort fields can be specified as an object with field names as keys and 1 (ascending) or -1 (descending) as values. * Sort by _id in descending order by default. * Sort field can be a nested field, e.g., data.caseId * Sort field can be a numeric or date field. * filter is an object that specifies the criteria for filtering the results. * after is a string that specifies the cursor for pagination, allowing you to retrieve results after a specific document. * * limit is a number that specifies the maximum number of documents to return in the result set. * * projection is an object that specifies which fields to include or exclude in the returned documents.

*

Parameters#

Name Type
«destructured» FindParams

Returns#

Promise\<FindResult\<any>>

Implementation of#

IDataStore.find

Defined in#

packages/bpmn-server/src/datastore/DataStore.ts:365

Comments