Library and tools for accessing external data stores within Pryv.io.
- Code examples
- API documentation
- (For contributors) Development environment
To let Pryv.io access an external data store:
npm install --save @pryv/datastore
- Implement a data store in your package's main module; for example:
const ds = require('@pryv/datastore'); module.exports = ds.createDataStore({ async init (params) { this.settings = params.settings; // initialization code goes here… // if implementing streams this.streams = ds.createUserStreams({ // streams store implementation here… }); // if implementing events this.events = ds.createUserEvents({ // events store implementation here… }); return this; }, async deleteUser (userId) { // remove user from store… }, async getUserStorageSize (userId) { // compute user storage bytes… } })
For the details, see the API documentation.
- Deploy your module in your chosen location on each core machine
- Register it in platform configuration under key
custom:dataStores
; each data store definition has those properties:id
(string): The store's id – this is used in data so do not changename
(string): The store's name, for logging and messaging purposespath
(string): Fully qualified path to reach out to your packagesettings
(object): Any settings to pass to your data store implementation
Notes about path
on docker implementation we recommend to place your package in the configuration folder.
- Open-Pryv.io: folder
configs/your-data-store
will be accessible with/app/configs/your-data-store
- Entreprise edition: folder
var-pryv/core/conf/your-data-store
will be accessible with/app/conf/your-data-store
npm install
should be run upfront with you package with the very same node version than the one in docker containers.
- Pryv 1.9.0 => node 18.14.3
Prerequisites: Node.js 16+, just
Run just
to see the available commands (defined in justfile
), e.g.
just install
to install node modulesjust doc
to regenerate the API documentation