0.0.2 • Published 5 years ago

@zkpki/storage v0.0.2

Weekly downloads
-
License
-
Repository
github
Last release
5 years ago

ZkpkiStorage

A simple data storage abstraction for Zkpki.

ZkpkiStorage hides the details of encrypting and storing data. There is a pluggable provider facility that allows implementations for multiple storage mechanisms.

Usage

// File may be replaced with alternative storage implementation
const storage = require('../../lib/storage').file

// Open a storage using associated key and options.
var data = await storage.open(key, options);

// get the contents of the data as a Buffer
var buf = await data.get();

// set the contents of the data to specified Buffer
await data.set(buf);

// Delete the data associated with a key and options
await storage.delete(key, options);

The key argument is always a 32 byte Buffer. ZkpkiStorage providers guarentee that a data created/opened with a key can be opened again (or deleted) using the same key.

To "rename" a data, the caller would do something like the following:

var data = await storage.open(oldkey,options);
var buf = await data.get();
var newData = await storage.create(newKey,options);
await newData.set(buf);
await storage.delete((oldkey,options);

Providers and Options

The options parmeter is defined by the provider implementation.

file

The file provider stores data in a local filesystem directory specified by the caller.

var options = {
	// The data storage path where data will be stored
	path: "/home/petrsnm/.zkpki/storage"
}

Other provider options (coming soon)

As new providers are implemented, documentation of their options will be documented here...