Integrate the terminal with the logs ui

This commit is contained in:
Johannes Zellner
2017-08-15 20:00:52 +02:00
committed by Girish Ramakrishnan
parent f98e68edc1
commit 50074b936a
16 changed files with 1021 additions and 931 deletions
+21 -16
View File
@@ -28,6 +28,9 @@ function initializeExpressSync() {
var app = express();
var httpServer = http.createServer(app);
// enabled websocket handling
require('express-ws')(app, httpServer);
var QUERY_LIMIT = '1mb', // max size for json and urlencoded queries (see also client_max_body_size in nginx)
FIELD_LIMIT = 2 * 1024 * 1024; // max fields that can appear in multipart
@@ -56,7 +59,7 @@ function initializeExpressSync() {
router.del = router.delete; // amend router.del for readability further on
app
.use(middleware.timeout(REQUEST_TIMEOUT))
// .use(middleware.timeout(REQUEST_TIMEOUT))
.use(json)
.use(urlencoded)
.use(middleware.cookieParser())
@@ -189,6 +192,7 @@ function initializeExpressSync() {
router.get ('/api/v1/apps/:id/logstream', appsScope, routes.user.requireAdmin, routes.apps.getLogStream);
router.get ('/api/v1/apps/:id/logs', appsScope, routes.user.requireAdmin, routes.apps.getLogs);
router.get ('/api/v1/apps/:id/exec', routes.developer.enabled, appsScope, routes.user.requireAdmin, routes.apps.exec);
router.ws ('/api/v1/apps/:id/exec', routes.apps.execWebSocket);
router.post('/api/v1/apps/:id/clone', appsScope, routes.user.requireAdmin, routes.apps.cloneApp);
// settings routes (these are for the settings tab - avatar & name have public routes for normal users. see above)
@@ -232,22 +236,23 @@ function initializeExpressSync() {
// we rely on nginx for timeouts on the TCP level (see client_header_timeout)
httpServer.setTimeout(0);
// upgrade handler
httpServer.on('upgrade', function (req, socket, head) {
// create a node response object for express
var res = new http.ServerResponse({});
res.assignSocket(socket);
res.sendUpgradeHandshake = function () { // could extend express.response as well
socket.write('HTTP/1.1 101 TCP Handshake\r\n' +
'Upgrade: tcp\r\n' +
'Connection: Upgrade\r\n' +
'\r\n');
};
// route through express middleware. if we provide no callback, express will provide a 'finalhandler'
// TODO: it's not clear if socket needs to be destroyed
app(req, res);
});
// upgrade handler
// httpServer.on('upgrade', function (req, socket, head) {
// // create a node response object for express
// var res = new http.ServerResponse({});
// res.assignSocket(socket);
// res.sendUpgradeHandshake = function () { // could extend express.response as well
// socket.write('HTTP/1.1 101 TCP Handshake\r\n' +
// 'Upgrade: tcp\r\n' +
// 'Connection: Upgrade\r\n' +
// '\r\n');
// };
// // route through express middleware. if we provide no callback, express will provide a 'finalhandler'
// // TODO: it's not clear if socket needs to be destroyed
// app(req, res);
// });
return httpServer;
}