a github-powered database
Create a new Hubdb instance. This is a database-like wrapper for a branch of a GitHub repository that treats JSON objects in that branch as documents.
Hubdb shines where GitHub itself makes sense: you can take advantage of GitHub's well-architected APIs and user permissions. A good example of hubdb in practice is in stickshift, where it powers a lightweight query storage for an analytics app.
Takes a configuration object with options:
usernamethe user's name of the repository. this is not necessary the user that's logged in.repothe repository namebranchthe branch of the repository to use as a database.tokena GitHub token. You'll need to get this by OAuth'ing into GitHub or use an applicaton token.
| parameter | type | description |
|---|---|---|
options | Object |
vardb=Hubdb({token: 'MY_TOKEN',username: 'mapbox',repo: 'hubdb',branch: 'db'});db.add({grass: 'green'},function(){db.list(function(err,res){// [{// path: '2e959f35c6022428943b9c96d974498d.json'// data: { grass: 'green' }// }]});});List documents within this database. If successful, the given
callback is called with an array of documents as
{ path: string, data: object } objects.
| parameter | type | description |
|---|---|---|
callback | Function | called with (err, contents): contents is an array of { path: string, data: object } |
Add a new object to the database. If successful, the callback is called
with (err, res) in which res reveals the id internally chosen
for this new item.
| parameter | type | description |
|---|---|---|
data | Object | |
callback | Function | called with (err, result, id) |
Remove an item from the database given its id and a callback.
| parameter | type | description |
|---|---|---|
id | String | |
callback | Function | called with (err, result, id) |
Get an item from the database given its id and a callback.
| parameter | type | description |
|---|---|---|
id | String | |
callback | Function | called with (err, contents): contents are given as parsed JSON |
Update an object in the database, given its id, new data, and a callback.
| parameter | type | description |
|---|---|---|
id | String | |
data | Object | as any JSON-serializable object |
callback | Function | called with (err, result, id) |
Requires nodejs.
$ npm install hubdb$ npm test