@graffiti-garden/byo-storage
v1.0.11
Published
Encrypted and shareable pub-sub bring-your-own storage
Downloads
16
Readme
Bring-Your-Own Storage
Usage
Install using either npm:
npm install @graffiti-garden/byo-storage
or in the browser, use jsdelivr or another CDN:
<script type="module">
import BYOStorage from 'https://cdn.jsdelivr.net/npm/@graffiti-garden/byo-storage';
</script>
Then go to the Dropbox developer console and create an app. Select "Full Dropbox" rather than "App Folder" - while this library only uses one folder, full access is necessary to enable link sharing.
In "Permissions" enable "files.content.write", "files.content.read" and "sharing.write". In "Settings" under "Development Users" select "Enable Additional Users" to allow other users to user the app. In "Settings" under "OAuth 2" add your app's domain to the "OAuth 2: Redirect URIs" section, as well as any local development URIs you may use.
Finally, copy the App key and use it to create a new BYOStorage instance:
const byos = new BYOStorage({ clientId: 'YOUR_APP_KEY' });
Testing
Go to the Dropbox developer console and create a new, if you don't already have one. Then generate an access token and put it in the .env
file:
ACCESS_TOKEN=sl.rAnDOmRaWRXDkdjfk...
Then run the tests:
npm test
TODO
- [x] Have directories specific to a particular public key, and sign the shared links to those directories to prove that the data is from the correct source
- [x] Make posts immediately available without waiting for roundtrip
- [ ] Add support for other storage providers
- [ ] Bundle posts together for faster loading
- [ ] Frequency based watching. When a lot of channels are being watched, poll active channels more frequently than inactive ones
- [ ] When multiple channels are being watched, batch the requests to the same channel together