If you need to interact with lydian or mixolydian in JavaScript, use this.

npm install indaba-js-sdk
38 downloads in the last week
40 downloads in the last month


If you need to interact with lydian or mixolydian in JavaScript, use this.

Node.js Installation

npm install --save git+ssh://

Node.js Usage

As a client

var indaba = require('indaba-js-sdk')({
  lydianEndpoint: '', // optional

Providing a login endpoint

var indaba = require('indaba-js-sdk');
var app = express();
app.use('/login', indaba.loginMiddleware({
  lydianEndpoint: '',
  clientId: 'lydian client id',
  clientSecret: 'lydian client secret',

Check index.js for more stuff.

Browser Usage

Undocumented, see admin project for examples


To test login, you must set client id, client secret, username and password in your ENV.

npm test

Fetch API

Low level fetch API makes HTTP requests. No funny business.

  • Namespaced
  • A special option all: true can be used to fetch all pages.

// opportunity read
indaba.opportunity.fetch(opts, cb)
indaba.opportunity.fetchArchive(opts, cb)
indaba.opportunity.fetchEnteredByUser(user, opts, cb)
indaba.opportunity.fetchOne(id, cb)

// opportunity write
indaba.opportunity.enter(opp, cb)
indaba.opportunity.update(opp, cb)

// submission read
indaba.submission.fetchByOpportunity(opportunity, options, cb)
indaba.submission.fetchByUser(user, options, cb)
indaba.submission.fetchVotedForByUser(user, options, cb)
indaba.submission.fetchOne(id, cb)

// submission write
indaba.submission.update(submission, cb), cb)
indaba.submission.unvote(submission, cb)

// user read
indaba.user.fetch(opts, cb)
indaba.user.fetchEnteredInOpportunity(opportunity, opts, cb)
indaba.user.fetchVotedForSubmission(submission, opts, cb)
indaba.user.fetchFollowers(user, opts, cb)
indaba.user.fetchFollowing(user, opts, cb)
indaba.user.fetchOne(id, cb)

// user write
indaba.user.update(user, cb)
indaba.user.follow(user, cb)
indaba.user.unfollow(user, cb)

// timed comments read
indaba.timedComments.fetchBySubmission(submission, opts, cb)
indaba.timedComments.fetchByUser(user, opts, cb)
indaba.timedComments.fetchOne(timedComment, cb)

// timed comments write
indaba.timedComments.create(timedComment, cb)
indaba.timedComments.delete(timedComment, cb)

// whoami
npm loves you