UNPKG

openhim-core

Version:

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

239 lines (164 loc) 10.8 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupApp = setupApp; var _koa = require('koa'); var _koa2 = _interopRequireDefault(_koa); var _koaRoute = require('koa-route'); var _koaRoute2 = _interopRequireDefault(_koaRoute); var _kcors = require('kcors'); var _kcors2 = _interopRequireDefault(_kcors); var _koaBodyparser = require('koa-bodyparser'); var _koaBodyparser2 = _interopRequireDefault(_koaBodyparser); var _authentication = require('./api/authentication'); var authentication = _interopRequireWildcard(_authentication); var _users = require('./api/users'); var users = _interopRequireWildcard(_users); var _clients = require('./api/clients'); var clients = _interopRequireWildcard(_clients); var _roles = require('./api/roles'); var roles = _interopRequireWildcard(_roles); var _transactions = require('./api/transactions'); var transactions = _interopRequireWildcard(_transactions); var _channels = require('./api/channels'); var channels = _interopRequireWildcard(_channels); var _tasks = require('./api/tasks'); var tasks = _interopRequireWildcard(_tasks); var _contactGroups = require('./api/contactGroups'); var contactGroups = _interopRequireWildcard(_contactGroups); var _events = require('./api/events'); var events = _interopRequireWildcard(_events); var _mediators = require('./api/mediators'); var mediators = _interopRequireWildcard(_mediators); var _metrics = require('./api/metrics'); var metrics = _interopRequireWildcard(_metrics); var _keystore = require('./api/keystore'); var keystore = _interopRequireWildcard(_keystore); var _restart = require('./api/restart'); var serverRestart = _interopRequireWildcard(_restart); var _audits = require('./api/audits'); var audits = _interopRequireWildcard(_audits); var _config = require('./config'); var _heartbeat = require('./api/heartbeat'); var heartbeat = _interopRequireWildcard(_heartbeat); var _certificateAuthority = require('./api/certificateAuthority'); var certificateAuthority = _interopRequireWildcard(_certificateAuthority); var _logs = require('./api/logs'); var logs = _interopRequireWildcard(_logs); var _metadata = require('./api/metadata'); var metadata = _interopRequireWildcard(_metadata); var _visualizers = require('./api/visualizers'); var visualizers = _interopRequireWildcard(_visualizers); var _about = require('./api/about'); var about = _interopRequireWildcard(_about); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function setupApp(done) { // Create an instance of the koa-server and add a body-parser const app = new _koa2.default(); app.use((0, _kcors2.default)({ allowMethods: 'GET,HEAD,PUT,POST,DELETE' })); const limitMB = _config.config.api.maxPayloadSizeMB || 16; app.use((0, _koaBodyparser2.default)({ jsonLimit: limitMB * 1024 * 1024 })); // Expose uptime server stats route before the auth middleware so that it is publicly accessible app.use(_koaRoute2.default.get('/heartbeat', heartbeat.getHeartbeat)); // Expose the set-user-password route before the auth middleware so that it is publicly accessible app.use(_koaRoute2.default.get('/password-reset-request/:email', users.userPasswordResetRequest)); app.use(_koaRoute2.default.get('/token/:token', users.getUserByToken)); app.use(_koaRoute2.default.put('/token/:token', users.updateUserByToken)); // Expose the authenticate route before the auth middleware so that it is publicly accessible app.use(_koaRoute2.default.get('/authenticate/:username', users.authenticate)); // Authenticate the API request app.use(authentication.authenticate); // Define the api routes app.use(_koaRoute2.default.get('/users', users.getUsers)); app.use(_koaRoute2.default.get('/users/:email', users.getUser)); app.use(_koaRoute2.default.post('/users', users.addUser)); app.use(_koaRoute2.default.put('/users/:email', users.updateUser)); app.use(_koaRoute2.default.delete('/users/:email', users.removeUser)); app.use(_koaRoute2.default.get('/clients', clients.getClients)); app.use(_koaRoute2.default.get('/clients/:clientId', clients.getClient)); app.use(_koaRoute2.default.post('/clients', clients.addClient)); app.use(_koaRoute2.default.get('/clients/domain/:clientDomain', clients.findClientByDomain)); app.use(_koaRoute2.default.put('/clients/:clientId', clients.updateClient)); app.use(_koaRoute2.default.delete('/clients/:clientId', clients.removeClient)); app.use(_koaRoute2.default.get('/clients/:clientId/:property', clients.getClient)); app.use(_koaRoute2.default.get('/roles', roles.getRoles)); app.use(_koaRoute2.default.post('/roles', roles.addRole)); app.use(_koaRoute2.default.get('/roles/:name', roles.getRole)); app.use(_koaRoute2.default.put('/roles/:name', roles.updateRole)); app.use(_koaRoute2.default.delete('/roles/:name', roles.deleteRole)); app.use(_koaRoute2.default.get('/transactions', transactions.getTransactions)); app.use(_koaRoute2.default.post('/transactions', transactions.addTransaction)); app.use(_koaRoute2.default.get('/transactions/:transactionId', transactions.getTransactionById)); app.use(_koaRoute2.default.get('/transactions/clients/:clientId', transactions.findTransactionByClientId)); app.use(_koaRoute2.default.put('/transactions/:transactionId', transactions.updateTransaction)); app.use(_koaRoute2.default.delete('/transactions/:transactionId', transactions.removeTransaction)); app.use(_koaRoute2.default.get('/groups', contactGroups.getContactGroups)); app.use(_koaRoute2.default.get('/groups/:contactGroupId', contactGroups.getContactGroup)); app.use(_koaRoute2.default.post('/groups', contactGroups.addContactGroup)); app.use(_koaRoute2.default.put('/groups/:contactGroupId', contactGroups.updateContactGroup)); app.use(_koaRoute2.default.delete('/groups/:contactGroupId', contactGroups.removeContactGroup)); app.use(_koaRoute2.default.get('/channels', channels.getChannels)); app.use(_koaRoute2.default.post('/channels', channels.addChannel)); app.use(_koaRoute2.default.get('/channels/:channelId', channels.getChannel)); app.use(_koaRoute2.default.get('/channels/:channelId/audits', channels.getChannelAudits)); app.use(_koaRoute2.default.post('/channels/:channelId/trigger', channels.triggerChannel)); app.use(_koaRoute2.default.put('/channels/:channelId', channels.updateChannel)); app.use(_koaRoute2.default.delete('/channels/:channelId', channels.removeChannel)); app.use(_koaRoute2.default.get('/tasks', tasks.getTasks)); app.use(_koaRoute2.default.post('/tasks', tasks.addTask)); app.use(_koaRoute2.default.get('/tasks/:taskId', tasks.getTask)); app.use(_koaRoute2.default.put('/tasks/:taskId', tasks.updateTask)); app.use(_koaRoute2.default.delete('/tasks/:taskId', tasks.removeTask)); app.use(_koaRoute2.default.get('/metrics', ctx => metrics.getMetrics(ctx, false))); app.use(_koaRoute2.default.get('/metrics/channels', ctx => metrics.getMetrics(ctx, true))); app.use(_koaRoute2.default.get('/metrics/channels/:channelID', (ctx, channelID) => metrics.getMetrics(ctx, true, null, channelID))); app.use(_koaRoute2.default.get('/metrics/timeseries/:timeSeries', (ctx, timeseries) => metrics.getMetrics(ctx, false, timeseries))); app.use(_koaRoute2.default.get('/metrics/timeseries/:timeSeries/channels', (ctx, timeseries) => metrics.getMetrics(ctx, true, timeseries))); app.use(_koaRoute2.default.get('/metrics/timeseries/:timeSeries/channels/:channelID', (ctx, timeseries, channelID) => metrics.getMetrics(ctx, true, timeseries, channelID))); app.use(_koaRoute2.default.get('/mediators', mediators.getAllMediators)); app.use(_koaRoute2.default.get('/mediators/:uuid', mediators.getMediator)); app.use(_koaRoute2.default.post('/mediators', mediators.addMediator)); app.use(_koaRoute2.default.delete('/mediators/:urn', mediators.removeMediator)); app.use(_koaRoute2.default.post('/mediators/:urn/heartbeat', mediators.heartbeat)); app.use(_koaRoute2.default.put('/mediators/:urn/config', mediators.setConfig)); app.use(_koaRoute2.default.post('/mediators/:urn/channels', mediators.loadDefaultChannels)); app.use(_koaRoute2.default.get('/keystore/cert', keystore.getServerCert)); app.use(_koaRoute2.default.post('/keystore/cert', keystore.setServerCert)); app.use(_koaRoute2.default.get('/keystore/ca', keystore.getCACerts)); app.use(_koaRoute2.default.get('/keystore/ca/:certId', keystore.getCACert)); app.use(_koaRoute2.default.delete('/keystore/ca/:certId', keystore.removeCACert)); app.use(_koaRoute2.default.post('/keystore/key', keystore.setServerKey)); app.use(_koaRoute2.default.post('/keystore/ca/cert', keystore.addTrustedCert)); app.use(_koaRoute2.default.get('/keystore/validity', keystore.verifyServerKeys)); app.use(_koaRoute2.default.post('/keystore/passphrase', keystore.setServerPassphrase)); // Metadata endpoints app.use(_koaRoute2.default.get('/metadata', metadata.getMetadata)); app.use(_koaRoute2.default.post('/metadata/validate', metadata.validateMetadata)); app.use(_koaRoute2.default.post('/metadata', metadata.importMetadata)); // Server restart endpoint app.use(_koaRoute2.default.post('/restart', serverRestart.restart)); // AuditRecord endpoint app.use(_koaRoute2.default.post('/audits', audits.addAudit)); app.use(_koaRoute2.default.get('/audits', audits.getAudits)); app.use(_koaRoute2.default.get('/audits/:auditId', audits.getAuditById)); app.use(_koaRoute2.default.get('/audits-filter-options', audits.getAuditsFilterOptions)); // Ceritficates endpoint app.use(_koaRoute2.default.post('/certificates', certificateAuthority.generateCert)); // Logs endpoint app.use(_koaRoute2.default.get('/logs', logs.getLogs)); // Events endpoint app.use(_koaRoute2.default.get('/events/:receivedTime', events.getLatestEvents)); // Version endpoint app.use(_koaRoute2.default.get('/about', about.getAboutInformation)); // Visualizer endpoint app.use(_koaRoute2.default.get('/visualizers', visualizers.getVisualizers)); app.use(_koaRoute2.default.get('/visualizers/:visualizerId', visualizers.getVisualizer)); app.use(_koaRoute2.default.post('/visualizers', visualizers.addVisualizer)); app.use(_koaRoute2.default.put('/visualizers/:visualizerId', visualizers.updateVisualizer)); app.use(_koaRoute2.default.delete('/visualizers/:visualizerId', visualizers.removeVisualizer)); // Return the result return done(app); } //# sourceMappingURL=koaApi.js.map