laas-admin-api
Version:
LaaS admin api server.
36 lines (32 loc) • 1.24 kB
JavaScript
(function () {
'use strict';
var config = require('./config');
var MC = require('master-cluster');
var app = require('express')();
var responseTime = require('response-time');
var basic = require('./middleware/basic-auth');
var logger = require('./lib/logger')('laas-admin-api');
var docs = require('./lib/docs');
var osprey = require('osprey');
var parser = require('raml-parser');
var definitionPath = __dirname + '/api.raml';
app.disable('x-powered-by');
app.use(logger.middleware());
app.use(responseTime({ header: 'x-response-time' }));
if (config.ldap.enabled) app.use(basic());
parser.loadFile(definitionPath).then(function (raml) {
docs.create(raml, function (err, html) {
app.get('/docs', docs.serve(html));
var api = osprey.createServer(raml);
api.use(require('./middleware/onerror')());
app.use(api);
app.get('/heartbeat', require('@atlassian/heartbeat').http);
app.use('/services', require('./routes/services'));
MC.createHttpServer(app, config.port);
console.log('Server listening on %d', config.port);
});
}, function (err) {
console.error({ err: err }, 'Error parsing: %s', definitionPath);
process.exit(1);
});
})();