Data Subscriptions: Maintenance Operations



Delete subscription

Subscription tasks can be entirely deleted from the system.

await documentStore.subscriptions.delete("subscriptionNameToDelete");
// Available overloads:
delete(name);
delete(name, database);

Disable subscription

Existing subscription tasks can be disabled from the client.

await documentStore.subscriptions.disable("subscriptionNameToDisable");
// Available overloads:
disable(name);
disable(name, database);

Enable subscription

Existing subscription tasks can be enabled from the client.
This operation can be useful for already disabled subscriptions.

await documentStore.subscriptions.enable("subscriptionNameToEnable");
// Available overloads:
enable(name);
enable(name, database);

Update subscription

See examples and API description.

const updateOptions = {
    id: "<theSubscriptionId>",
    query: "<theSubscriptionQuery>"
    // ...
}
await documentStore.subscriptions.update(updateOptions);
// Available overloads:
update(options);
update(options, database);

Drop connection

Active subscription connections established by workers can be dropped remotely from the client.
Once dropped, the worker will not attempt to reconnect to the server.

// Drop all connections to the subscription:
// =========================================

await documentStore.subscriptions.dropConnection("subscriptionName");

// Drop specific worker connection:
// ===============================

const workerOptions = {
    subscriptionName: "subscriptionName",
    // ...
};

const worker = documentStore.subscriptions.getSubscriptionWorker(workerOptions);


worker.on("batch", (batch, callback) => {
    // worker processing logic 
});

await documentStore.subscriptions.dropConnection(worker);
// Available overloads:
dropConnection(options);
dropConnection(options, database);
dropSubscriptionWorker(worker); 
dropSubscriptionWorker(worker, database); 

Get subscriptions

Get a list of all existing subscription tasks in the database.

const subscriptions = await documentStore.subscriptions.getSubscriptions(0, 10);
// Available overloads:
getSubscriptions(start, take);
getSubscriptions(start, take, database);

Get subscription state

const subscriptionState = 
    await documentStore.subscriptions.getSubscriptionState("subscriptionName");
// Available overloads:
getSubscriptionState(subscriptionName);
getSubscriptionState(subscriptionName, database);

SubscriptionState
Member Type Description
query string Subscription's RQL like query.
lastBatchAckTime string Last time a batch processing progress was acknowledged.
nodeTag string Processing server's node tag.
mentorNode string The mentor node that was manually set.
subscriptionName string The subscription's name, which is also its unique identifier.
subscriptionId number Subscription's internal identifier (cluster's operation etag during subscription creation).
changeVectorForNextBatchStartingPoint string The Change Vector from which the subscription will begin sending documents.
This value is updated on batch acknowledgement and can also be set manually.
disabled boolean If true, subscription will not allow workers to connect.
lastClientConnectionTime string Time when last client was connected (value sustained after disconnection).

DocumentSubscriptions class

The DocumentSubscriptions class manages all interaction with the data subscriptions.
The class is available through the subscriptions property in the documentStore.

Method Signature Return type Description
create(options) Promise<string> Create a new data subscription.
create(options, database) Promise<string> Create a new data subscription.
create(documentType) Promise<string> Create a new data subscription.
create(optionsOrDocumentType, database) Promise<string> Create a new data subscription.
createForRevisions(options) Promise<string> Create a new data subscription.
createForRevisions(options, database) Promise<string> Create a new data subscription.
delete(name) Promise<void> Delete subscription.
delete(name, database) Promise<void> Delete subscription.
dropConnection(name) Promise<void> Drop all existing subscription connections with workers.
dropConnection(name, database) Promise<void> Drop all existing subscription connections with workers.
dropSubscriptionWorker(worker, database) Promise<void> Drop an existing subscription connection with a worker.
enable(name) Promise<void> Enable existing subscription.
enable(name, database) Promise<void> Enable existing subscription.
disable(name) Promise<void> Disable existing subscription.
disable(name, database) Promise<void> Disable existing subscription.
update(updateOptions) Promise<string> Update an existing data subscription.
update(updateOptions, database) Promise<string> Update an existing data subscription.
getSubscriptions(start, take) Promise<SubscriptionState[]> Returns subscriptions list.
getSubscriptions(start, take, database) Promise<SubscriptionState[]> Returns subscriptions list.
getSubscriptionState(subscriptionName) Promise<SubscriptionState> Get the state of a specific subscription.
getSubscriptionState(subscriptionName, database) Promise<SubscriptionState> Get the state of a specific subscription.
getSubscriptionWorker(options) SubscriptionWorker Generate a subscription worker.
getSubscriptionWorker(options, database) SubscriptionWorker Generate a subscription worker.
getSubscriptionWorker(subscriptionName) SubscriptionWorker Generate a subscription worker.
getSubscriptionWorker(subscriptionName, database) SubscriptionWorker Generate a subscription worker.
getSubscriptionWorkerForRevisions(options) SubscriptionWorker Generate a subscription worker for a revisions subscription.
getSubscriptionWorkerForRevisions(options, database) SubscriptionWorker Generate a subscription worker for a revisions subscription.