UNPKG

openhim-core

Version:

The OpenHIM core application that provides logging and routing of http requests

145 lines (108 loc) 4.14 kB
var Q, SDC, application, authorisation, basicAuthentication, compress, config, domain, events, getRawBody, koa, messageStore, os, pollingBypassAuthentication, pollingBypassAuthorisation, proxy, rawBodyReader, requestMatching, rerunBypassAuthentication, rerunBypassAuthorisation, rerunUpdateTransactionTask, retrieveTCPTransaction, rewrite, router, sdc, stats, tcpAdapter, tcpBypassAuthentication, tlsAuthentication; koa = require('koa'); router = require('./middleware/router'); messageStore = require('./middleware/messageStore'); basicAuthentication = require('./middleware/basicAuthentication'); tlsAuthentication = require("./middleware/tlsAuthentication"); rerunBypassAuthentication = require("./middleware/rerunBypassAuthentication"); rerunBypassAuthorisation = require("./middleware/rerunBypassAuthorisation"); rerunUpdateTransactionTask = require("./middleware/rerunUpdateTransactionTask"); tcpBypassAuthentication = require("./middleware/tcpBypassAuthentication"); retrieveTCPTransaction = require("./middleware/retrieveTCPTransaction"); requestMatching = require('./middleware/requestMatching'); authorisation = require('./middleware/authorisation'); stats = require('./stats'); pollingBypassAuthorisation = require('./middleware/pollingBypassAuthorisation'); pollingBypassAuthentication = require('./middleware/pollingBypassAuthentication'); events = require('./middleware/events'); proxy = require('./middleware/proxy'); rewrite = require('./middleware/rewriteUrls'); config = require('./config/config'); config.authentication = config.get('authentication'); getRawBody = require('raw-body'); tcpAdapter = require('./tcpAdapter'); Q = require("q"); config.statsd = config.get('statsd'); application = config.get('application'); SDC = require('statsd-client'); os = require('os'); domain = (os.hostname()) + "." + application.name + ".appMetrics"; sdc = new SDC(config.statsd); compress = require('koa-compress'); rawBodyReader = function*(next) { var body, startTime; if (config.statsd.enabled) { startTime = new Date(); } body = (yield getRawBody(this.req, { length: this.length, encoding: this.charset })); if (body) { this.body = body; } if (config.statsd.enabled) { sdc.timing(domain + ".rawBodyReaderMiddleware", startTime); } return (yield next); }; exports.setupApp = function(done) { var app; app = koa(); if (config.authentication.enableBasicAuthentication) { app.use(basicAuthentication.koaMiddleware); } if (config.authentication.enableMutualTLSAuthentication) { app.use(tlsAuthentication.koaMiddleware); } app.use(rawBodyReader); app.use(requestMatching.koaMiddleware); app.use(authorisation.koaMiddleware); app.use(compress({ threshold: 8, flush: require("zlib").Z_SYNC_FLUSH })); app.use(proxy.koaMiddleware); app.use(messageStore.koaMiddleware); app.use(rewrite.koaMiddleware); app.use(events.koaMiddleware); app.use(router.koaMiddleware); return done(app); }; exports.rerunApp = function(done) { var app; app = koa(); app.use(rawBodyReader); app.use(rerunBypassAuthentication.koaMiddleware); app.use(rerunBypassAuthorisation.koaMiddleware); app.use(rerunUpdateTransactionTask.koaMiddleware); app.use(messageStore.koaMiddleware); app.use(authorisation.koaMiddleware); app.use(events.koaMiddleware); app.use(router.koaMiddleware); return done(app); }; exports.tcpApp = function(done) { var app; app = koa(); app.use(rawBodyReader); app.use(retrieveTCPTransaction.koaMiddleware); app.use(tcpBypassAuthentication.koaMiddleware); app.use(proxy.koaMiddleware); app.use(messageStore.koaMiddleware); app.use(events.koaMiddleware); app.use(router.koaMiddleware); return done(app); }; exports.pollingApp = function(done) { var app; app = koa(); app.use(rawBodyReader); app.use(pollingBypassAuthentication.koaMiddleware); app.use(pollingBypassAuthorisation.koaMiddleware); app.use(messageStore.koaMiddleware); app.use(events.koaMiddleware); app.use(router.koaMiddleware); return done(app); }; //# sourceMappingURL=koaMiddleware.js.map