Skip to main content

Key-Value API

Run Redis-like operations against a Key-Value database. This API automatically available from the inside of any Codehook function.

API quick overview

Datastore.open()

Datastore.open() opens a connection to a datastore in the active project space.

import {Datastore} from 'codehooks-js'

async function myfunc() {
const conn = await Datastore.open();
// use conn to call API functions
...
}

Returns a Promise with a Datastore connection

set(key, value, options)

Set a key-value pair in a datastore.

Parameters

  • key: Unique key in keyspace
  • value: Any string value or JSON Object
  • options: (optional)
    • ttl: Time to live in milliseconds
    • keyspace: Name of isolated keyspace

Returns A Promise with result string value

Code example using a string value

const ONE_DAY = 86400000; // 1000 * 60 * 60 * 24
const conn = await Datastore.open();
const opt = {
"ttl": ONE_DAY,
"keyspace": "sessions"
};
const result = await conn.set('my_special_key', 'f439a2d4-d21b-44ea-97ac-f210120f10f3', opt);

Code example using a JSON Object

const ONE_DAY = 86400000; // 1000 * 60 * 60 * 24
const conn = await Datastore.open();
const opt = {
"ttl": ONE_DAY,
"keyspace": "sessions"
};
const result = await conn.setObj('my_special_key', {
"session_id": "f439a2d4-d21b-44ea-97ac-f210120f10f3",
"user_id": "1234567890"
}, opt);

get(key, options)

Get a key-value pair in a datastore.

Parameters

  • key: Unique key in keyspace
  • options: (optional)
    • keyspace: Name of isolated keyspace

Returns A Promise with result string value or JSON Object

Code example using a string value

const conn = await Datastore.open();
const opt = {
"keyspace": "sessions"
};
const kval = await conn.get('my_special_key', opt);
console.log("key-val", kval);

Code example using a JSON Object

const conn = await Datastore.open();
const opt = {
"keyspace": "sessions"
};
const {session_id, user_id} = await conn.getObj('my_special_key', opt);
console.log("key-val", session_id, user_id);

getAll(keypattern, options)

Get all key-value pair that matches keypattern in a datastore.

Parameters

  • keypattern: Key pattern matches key starting with string
  • options: (optional)
    • keyspace: Name of isolated keyspace

Returns Promise / JSON object stream

Code example

const conn = await Datastore.open();
const opt = {
"keyspace": "sessions"
};
const stream = await conn.getAll('my_special_', opt);
stream.on('data', (data) => {
console.log(data);
}).on('end', () => {
console.log('The end');
})

incr(key, number, options)

Increment a key-value pair in a datastore.

Parameters

  • key: Unique key in keyspace
  • number: Value to increment >= 1
  • options: (optional)
    • ttl: Time to live in milliseconds
    • keyspace: Name of isolated keyspace

Returns A Promise with result string value

Code example

const conn = await Datastore.open();
const kval = await conn.incr('counter', 1);
console.log("key-val", kval);

decr(key, number, options)

Decrement a key-value pair in a datastore.

Parameters

  • key: Unique key in keyspace
  • number: Value to decrement <= 1
  • options: (optional)
    • ttl: Time to live in milliseconds
    • keyspace: Name of isolated keyspace

Returns A Promise with result string value

Code example

const conn = await Datastore.open();
const kval = await conn.decr('counter', 1);
console.log("key-val", kval);

del(key, options)

Delete a key-value pair in a datastore.

Parameters

  • key: Unique key in keyspace
  • options: (optional)
    • keyspace: Name of isolated keyspace

Returns A Promise with result string value

Code example

const conn = await Datastore.open();
const kval = await conn.del('my_special_key');
console.log("key-val", kval);

delAll(key, options)

Delete a range of key-value pairs in a datastore.

Parameters

  • keypattern: Key pattern in keyspace that matches start of string
  • options: (optional)
    • keyspace: Name of isolated keyspace

Returns A Promise with result JSON object

Code example

const conn = await Datastore.open();
const kval = await conn.delAll('my_special_');
console.log("key-val", kval);