cloudcms-server 0.9.244 → 0.9.249
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.last_command +7 -0
- package/index.js +13 -10
- package/insight/insight.js +1 -1
- package/middleware/awareness/plugins/editorial.js +4 -4
- package/middleware/form/form.js +2 -2
- package/middleware/proxy/proxy.js +1 -2
- package/middleware/virtual-config/virtual-config.js +3 -3
- package/package.json +8 -9
- package/server/index.js +46 -2
- package/server/standalone.js +5 -0
- package/util/cloudcms.js +3 -3
- package/util/proxy-factory.js +15 -5
- package/util/renditions.js +1 -1
- package/util/util.js +14 -1
package/.last_command
ADDED
package/index.js
CHANGED
|
@@ -34,7 +34,7 @@ process.logInfo = process.log = function(text, level)
|
|
|
34
34
|
var Gitana = require("gitana");
|
|
35
35
|
|
|
36
36
|
// default http timeout
|
|
37
|
-
process.defaultHttpTimeoutMs =
|
|
37
|
+
process.defaultHttpTimeoutMs = 60000;
|
|
38
38
|
|
|
39
39
|
if (process.env.DEFAULT_HTTP_TIMEOUT_MS)
|
|
40
40
|
{
|
|
@@ -54,20 +54,18 @@ var HttpsKeepAliveAgent = require('agentkeepalive').HttpsAgent;
|
|
|
54
54
|
http.globalAgent = new HttpKeepAliveAgent({
|
|
55
55
|
keepAlive: true,
|
|
56
56
|
keepAliveMsecs: 1000,
|
|
57
|
-
|
|
57
|
+
maxSockets: 16000,
|
|
58
|
+
maxFreeSockets: 256,
|
|
58
59
|
timeout: process.defaultHttpTimeoutMs,
|
|
59
|
-
|
|
60
|
-
maxFreeSockets: 40,
|
|
61
|
-
rejectUnauthorized: false
|
|
60
|
+
freeSocketTimeout: 30000
|
|
62
61
|
});
|
|
63
62
|
https.globalAgent = new HttpsKeepAliveAgent({
|
|
64
63
|
keepAlive: true,
|
|
65
64
|
keepAliveMsecs: 1000,
|
|
66
|
-
|
|
65
|
+
maxSockets: 16000,
|
|
66
|
+
maxFreeSockets: 256,
|
|
67
67
|
timeout: process.defaultHttpTimeoutMs,
|
|
68
|
-
|
|
69
|
-
maxFreeSockets: 40,
|
|
70
|
-
rejectUnauthorized: false
|
|
68
|
+
freeSocketTimeout: 30000
|
|
71
69
|
});
|
|
72
70
|
|
|
73
71
|
// disable for now
|
|
@@ -138,6 +136,7 @@ exports = module.exports = function()
|
|
|
138
136
|
// not already specified
|
|
139
137
|
var defaultGitanaProxyScheme = "https";
|
|
140
138
|
var defaultGitanaProxyHost = "api.cloudcms.com";
|
|
139
|
+
var defaultGitanaProxyPath = "";
|
|
141
140
|
var defaultGitanaProxyPort = 443;
|
|
142
141
|
|
|
143
142
|
var gitanaJsonPath = path.join(process.env.CLOUDCMS_APPSERVER_BASE_PATH, "gitana.json");
|
|
@@ -149,6 +148,7 @@ exports = module.exports = function()
|
|
|
149
148
|
var parsedUrl = url.parse(gitanaJson.baseURL);
|
|
150
149
|
|
|
151
150
|
defaultGitanaProxyHost = parsedUrl.hostname;
|
|
151
|
+
defaultGitanaProxyPath = parsedUrl.path;
|
|
152
152
|
defaultGitanaProxyScheme = parsedUrl.protocol.substring(0, parsedUrl.protocol.length - 1); // remove the :
|
|
153
153
|
|
|
154
154
|
if (parsedUrl.port)
|
|
@@ -173,13 +173,16 @@ exports = module.exports = function()
|
|
|
173
173
|
if (!process.env.GITANA_PROXY_HOST) {
|
|
174
174
|
process.env.GITANA_PROXY_HOST = defaultGitanaProxyHost;
|
|
175
175
|
}
|
|
176
|
+
if (!process.env.GITANA_PROXY_PATH) {
|
|
177
|
+
process.env.GITANA_PROXY_PATH = defaultGitanaProxyPath;
|
|
178
|
+
}
|
|
176
179
|
if (!process.env.GITANA_PROXY_PORT) {
|
|
177
180
|
process.env.GITANA_PROXY_PORT = defaultGitanaProxyPort;
|
|
178
181
|
}
|
|
179
182
|
|
|
180
183
|
if (cluster.isMaster)
|
|
181
184
|
{
|
|
182
|
-
process.log("Gitana Proxy pointed to: " + util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT));
|
|
185
|
+
process.log("Gitana Proxy pointed to: " + util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH));
|
|
183
186
|
}
|
|
184
187
|
|
|
185
188
|
// all web modules are included by default
|
package/insight/insight.js
CHANGED
|
@@ -131,7 +131,7 @@ var doSend = function(callback)
|
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
// url over to cloud cms
|
|
134
|
-
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT) + "/warehouses/" + warehouseId + "/interactions/_create";
|
|
134
|
+
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH) + "/warehouses/" + warehouseId + "/interactions/_create";
|
|
135
135
|
var requestConfig = {
|
|
136
136
|
"url": URL,
|
|
137
137
|
"qs": {},
|
|
@@ -43,7 +43,7 @@ exports.bindSocket = function(socket, provider)
|
|
|
43
43
|
var acquireEditorialSession = function(socket, provider, sessionKey, repositoryId, branchId, force, callback)
|
|
44
44
|
{
|
|
45
45
|
// send an HTTP command to acquire an editorial session for this repository and branch
|
|
46
|
-
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT) + "/oneteam/editorial/session/acquire";
|
|
46
|
+
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH) + "/oneteam/editorial/session/acquire";
|
|
47
47
|
|
|
48
48
|
var headers = {};
|
|
49
49
|
//headers["Authorization"] = socket.gitana.platform().getDriver().getHttpHeaders()["Authorization"];
|
|
@@ -101,7 +101,7 @@ exports.bindSocket = function(socket, provider)
|
|
|
101
101
|
var releaseEditorialSession = function(socket, provider, sessionKey, repositoryId, branchId, callback)
|
|
102
102
|
{
|
|
103
103
|
// send an HTTP command to release the session
|
|
104
|
-
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT) + "/oneteam/editorial/session/release";
|
|
104
|
+
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH) + "/oneteam/editorial/session/release";
|
|
105
105
|
|
|
106
106
|
var json = {};
|
|
107
107
|
json.repositoryId = repositoryId;
|
|
@@ -152,7 +152,7 @@ exports.bindSocket = function(socket, provider)
|
|
|
152
152
|
*/
|
|
153
153
|
var commitEditorialSession = function(socket, provider, sessionKey, repositoryId, branchId, callback)
|
|
154
154
|
{
|
|
155
|
-
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT) + "/oneteam/editorial/session/commit";
|
|
155
|
+
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH) + "/oneteam/editorial/session/commit";
|
|
156
156
|
|
|
157
157
|
var json = {};
|
|
158
158
|
json.repositoryId = repositoryId;
|
|
@@ -202,7 +202,7 @@ exports.bindSocket = function(socket, provider)
|
|
|
202
202
|
*/
|
|
203
203
|
var editorialSessionInfo = function(socket, provider, sessionKey, repositoryId, branchId, callback)
|
|
204
204
|
{
|
|
205
|
-
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT) + "/oneteam/editorial/session/info";
|
|
205
|
+
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH) + "/oneteam/editorial/session/info";
|
|
206
206
|
|
|
207
207
|
var json = {};
|
|
208
208
|
json.repositoryId = repositoryId;
|
package/middleware/form/form.js
CHANGED
|
@@ -121,7 +121,7 @@ exports = module.exports = function()
|
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
// post form to Cloud CMS using public method
|
|
124
|
-
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT) + url;
|
|
124
|
+
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH) + url;
|
|
125
125
|
|
|
126
126
|
var headers = {};
|
|
127
127
|
headers["Authorization"] = req.gitana.platform().getDriver().getHttpHeaders()["Authorization"];
|
|
@@ -194,7 +194,7 @@ exports = module.exports = function()
|
|
|
194
194
|
|
|
195
195
|
var url = branch.getUri() + "/alpaca/datasource";
|
|
196
196
|
|
|
197
|
-
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT) + url;
|
|
197
|
+
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH) + url;
|
|
198
198
|
|
|
199
199
|
var headers = {};
|
|
200
200
|
headers["Authorization"] = req.gitana.platform().getDriver().getHttpHeaders()["Authorization"];
|
|
@@ -83,7 +83,7 @@ exports = module.exports = function()
|
|
|
83
83
|
|
|
84
84
|
var URL = configuration.virtualDriver.baseURL;
|
|
85
85
|
if (!URL) {
|
|
86
|
-
URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT);
|
|
86
|
+
URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH);
|
|
87
87
|
}
|
|
88
88
|
URL += "/virtual/driver/config";
|
|
89
89
|
var requestConfig = {
|
|
@@ -217,7 +217,7 @@ exports = module.exports = function()
|
|
|
217
217
|
}
|
|
218
218
|
if (!gitanaJson.baseURL)
|
|
219
219
|
{
|
|
220
|
-
gitanaJson.baseURL = util.cleanupURL(util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT));
|
|
220
|
+
gitanaJson.baseURL = util.cleanupURL(util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH));
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
// mark as retrieved from virtual driver
|
|
@@ -340,7 +340,7 @@ exports = module.exports = function()
|
|
|
340
340
|
// defaults
|
|
341
341
|
if (!configuration.baseURL)
|
|
342
342
|
{
|
|
343
|
-
configuration.baseURL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT);
|
|
343
|
+
configuration.baseURL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH);
|
|
344
344
|
}
|
|
345
345
|
if (!configuration.key) {
|
|
346
346
|
configuration.key = "virtual";
|
package/package.json
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
},
|
|
7
7
|
"name": "cloudcms-server",
|
|
8
8
|
"description": "Cloud CMS Application Server Module",
|
|
9
|
-
"version": "0.9.
|
|
9
|
+
"version": "0.9.249",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
12
|
"url": "git://github.com/gitana/cloudcms-server.git"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"accepts": "^1.3.7",
|
|
16
|
-
"agentkeepalive": "^
|
|
16
|
+
"agentkeepalive": "^4.1.3",
|
|
17
17
|
"alpaca": "^1.5.27",
|
|
18
18
|
"archiver": "^1.3.0",
|
|
19
19
|
"async": "^1.5.2",
|
|
@@ -39,12 +39,13 @@
|
|
|
39
39
|
"gitana": "^1.0.315",
|
|
40
40
|
"handlebars": "^4.4.2",
|
|
41
41
|
"hbs": "^4.0.5",
|
|
42
|
-
"
|
|
42
|
+
"helmet": "^4.6.0",
|
|
43
|
+
"http-proxy": "^1.18.1",
|
|
43
44
|
"json5": "^1.0.1",
|
|
44
45
|
"jsonwebtoken": "^8.5.1",
|
|
45
46
|
"klaw": "^1.3.1",
|
|
46
47
|
"lru-cache": "^4.1.5",
|
|
47
|
-
"marked": "^
|
|
48
|
+
"marked": "^1.2.8",
|
|
48
49
|
"memorystore": "^1.6.1",
|
|
49
50
|
"mime": "^1.6.0",
|
|
50
51
|
"mkdirp": "^0.5.1",
|
|
@@ -55,14 +56,14 @@
|
|
|
55
56
|
"object-merge": "^2.5.1",
|
|
56
57
|
"on-headers": "^1.0.2",
|
|
57
58
|
"passport": "^0.4.0",
|
|
58
|
-
"passport-cas": "^0.
|
|
59
|
+
"passport-cas": "^0.0.3",
|
|
59
60
|
"passport-facebook": "^2.1.1",
|
|
60
61
|
"passport-github": "^1.1.0",
|
|
61
62
|
"passport-google-oauth": "^1.0.0",
|
|
62
63
|
"passport-linkedin": "^1.0.0",
|
|
63
64
|
"passport-local": "^1.0.0",
|
|
64
65
|
"passport-oauth": "^1.0.0",
|
|
65
|
-
"passport-saml": "^0.
|
|
66
|
+
"passport-saml": "^2.0.4",
|
|
66
67
|
"passport-twitter": "^1.0.4",
|
|
67
68
|
"pkginfo": "^0.4.1",
|
|
68
69
|
"q": "^1.5.1",
|
|
@@ -85,13 +86,11 @@
|
|
|
85
86
|
"targz": "^1.0.1",
|
|
86
87
|
"temp": "^0.8.3",
|
|
87
88
|
"toobusy-js": "^0.5.1",
|
|
88
|
-
"uuid": "^3.3.
|
|
89
|
+
"uuid": "^3.3.2",
|
|
89
90
|
"vm2": "^3.8.4",
|
|
90
91
|
"watch": "^1.0.2",
|
|
91
92
|
"winston": "^3.3.3"
|
|
92
93
|
},
|
|
93
|
-
"devDependencies": {},
|
|
94
|
-
"optionalDependencies": {},
|
|
95
94
|
"contributors": [
|
|
96
95
|
{
|
|
97
96
|
"name": "Michael Uzquiano",
|
package/server/index.js
CHANGED
|
@@ -37,6 +37,8 @@ var duster = require("../duster/index");
|
|
|
37
37
|
|
|
38
38
|
var coreHelpers = require("../duster/helpers/core/index");
|
|
39
39
|
|
|
40
|
+
var helmet = require("helmet");
|
|
41
|
+
|
|
40
42
|
var toobusy = require("toobusy-js");
|
|
41
43
|
toobusy.maxLag(500); // 500 ms lag in event queue, quite high but usable for now
|
|
42
44
|
toobusy.interval(250);
|
|
@@ -585,6 +587,39 @@ var startSlave = function(config, afterStartFn)
|
|
|
585
587
|
if (!process.env.CLOUDCMS_STANDALONE_HOST) {
|
|
586
588
|
process.env.CLOUDCMS_STANDALONE_HOST = "local";
|
|
587
589
|
}
|
|
590
|
+
|
|
591
|
+
|
|
592
|
+
// auto-configuration for HTTPS
|
|
593
|
+
if (!process.configuration.https) {
|
|
594
|
+
process.configuration.https = {};
|
|
595
|
+
}
|
|
596
|
+
if (process.env.CLOUDCMS_HTTPS) {
|
|
597
|
+
process.configuration.https = JSON.parse(process.env.CLOUDCMS_HTTPS);
|
|
598
|
+
}
|
|
599
|
+
if (process.env.CLOUDCMS_HTTPS_KEY_FILEPATH) {
|
|
600
|
+
process.configuration.https.key = fs.readFileSync(process.env.CLOUDCMS_HTTPS_KEY_FILEPATH);
|
|
601
|
+
}
|
|
602
|
+
if (process.env.CLOUDCMS_HTTPS_CERT_FILEPATH) {
|
|
603
|
+
process.configuration.https.cert = fs.readFileSync(process.env.CLOUDCMS_HTTPS_CERT_FILEPATH);
|
|
604
|
+
}
|
|
605
|
+
if (process.env.CLOUDCMS_HTTPS_PFX_FILEPATH) {
|
|
606
|
+
process.configuration.https.pfx = fs.readFileSync(process.env.CLOUDCMS_HTTPS_PFX_FILEPATH);
|
|
607
|
+
}
|
|
608
|
+
if (process.env.CLOUDCMS_HTTPS_PASSPHRASE) {
|
|
609
|
+
process.configuration.https.passphrase = process.env.CLOUDCMS_HTTPS_PASSPHRASE;
|
|
610
|
+
}
|
|
611
|
+
if (process.env.CLOUDCMS_HTTPS_REQUEST_CERT === "true") {
|
|
612
|
+
process.configuration.https.requestCert = true;
|
|
613
|
+
}
|
|
614
|
+
if (process.env.CLOUDCMS_HTTPS_CA_FILEPATH) {
|
|
615
|
+
process.configuration.https.ca = [ fs.readFileSync(process.env.CLOUDCMS_HTTPS_CA_FILEPATH) ];
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
// if https config is empty, remove it
|
|
619
|
+
if (Object.keys(process.configuration.https).length === 0) {
|
|
620
|
+
delete process.configuration.https;
|
|
621
|
+
}
|
|
622
|
+
|
|
588
623
|
|
|
589
624
|
// session store
|
|
590
625
|
var initializedSession = null;
|
|
@@ -1045,8 +1080,17 @@ var startSlave = function(config, afterStartFn)
|
|
|
1045
1080
|
////////////////////////////////////////////////////////////////////////////
|
|
1046
1081
|
|
|
1047
1082
|
|
|
1048
|
-
//
|
|
1049
|
-
var server =
|
|
1083
|
+
// create the server (either HTTP or HTTPS)
|
|
1084
|
+
var server = null;
|
|
1085
|
+
if (process.configuration.https) {
|
|
1086
|
+
// configure helmet to support auto-upgrade of http->https
|
|
1087
|
+
app.use(helmet());
|
|
1088
|
+
// create https server
|
|
1089
|
+
server = https.createServer(process.configuration.https, app);
|
|
1090
|
+
} else {
|
|
1091
|
+
// legacy
|
|
1092
|
+
server = http.Server(app);
|
|
1093
|
+
}
|
|
1050
1094
|
|
|
1051
1095
|
// request timeout
|
|
1052
1096
|
var requestTimeout = 30000; // 30 seconds
|
package/server/standalone.js
CHANGED
|
@@ -45,6 +45,7 @@ server.report(function(callback) {
|
|
|
45
45
|
console.log("Server Base Path: " + process.env.CLOUDCMS_APPSERVER_BASE_PATH);
|
|
46
46
|
console.log("Gitana Scheme: " + process.env.GITANA_PROXY_SCHEME);
|
|
47
47
|
console.log("Gitana Host: " + process.env.GITANA_PROXY_HOST);
|
|
48
|
+
console.log("Gitana Path: " + process.env.GITANA_PROXY_PATH);
|
|
48
49
|
console.log("Gitana Port: " + process.env.GITANA_PROXY_PORT);
|
|
49
50
|
console.log("CPU Count: " + cpuCount);
|
|
50
51
|
|
|
@@ -68,6 +69,10 @@ server.report(function(callback) {
|
|
|
68
69
|
console.log("Hosts Directory: " + process.env.CLOUDCMS_HOSTS_PATH);
|
|
69
70
|
console.log("LaunchPad Mode: " + process.env.CLOUDCMS_LAUNCHPAD_SETUP);
|
|
70
71
|
console.log("Max Files Detected: " + process.env.CLOUDCMS_MAX_FILES);
|
|
72
|
+
|
|
73
|
+
if (process.configuration.https) {
|
|
74
|
+
console.log("Server is configured to use HTTPS");
|
|
75
|
+
}
|
|
71
76
|
|
|
72
77
|
console.log("");
|
|
73
78
|
|
package/util/cloudcms.js
CHANGED
|
@@ -382,7 +382,7 @@ exports = module.exports = function()
|
|
|
382
382
|
agent = https.globalAgent;
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
-
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT) + uri;
|
|
385
|
+
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH) + uri;
|
|
386
386
|
request({
|
|
387
387
|
"method": "GET",
|
|
388
388
|
"url": URL,
|
|
@@ -536,8 +536,8 @@ exports = module.exports = function()
|
|
|
536
536
|
// ensure stream is closed
|
|
537
537
|
closeWriteStream(tempStream);
|
|
538
538
|
|
|
539
|
-
process.log("_writeToDisk request timed out");
|
|
540
|
-
process.log(e)
|
|
539
|
+
//process.log("_writeToDisk request timed out");
|
|
540
|
+
//process.log(e)
|
|
541
541
|
}).on('end', function (e) {
|
|
542
542
|
|
|
543
543
|
// ensure stream is closed
|
package/util/proxy-factory.js
CHANGED
|
@@ -100,12 +100,22 @@ var createProxyHandler = function(proxyTarget, pathPrefix)
|
|
|
100
100
|
|
|
101
101
|
// error handling
|
|
102
102
|
proxyServer.on("error", function(err, req, res) {
|
|
103
|
-
|
|
104
|
-
res.writeHead(500, {
|
|
105
|
-
'Content-Type': 'text/plain'
|
|
106
|
-
});
|
|
103
|
+
console.log("A proxy error was caught: " + err + ", json: " + JSON.stringify(err) + ", path: " + req.path);
|
|
107
104
|
|
|
108
|
-
|
|
105
|
+
// do our best to send something back
|
|
106
|
+
try
|
|
107
|
+
{
|
|
108
|
+
res.writeHead(500, {
|
|
109
|
+
'Content-Type': 'text/plain'
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch (e) { }
|
|
113
|
+
|
|
114
|
+
try
|
|
115
|
+
{
|
|
116
|
+
res.end('Something went wrong while proxying the request.');
|
|
117
|
+
}
|
|
118
|
+
catch (e) { }
|
|
109
119
|
});
|
|
110
120
|
|
|
111
121
|
// if we're using auth credentials that are picked up in SSO chain, then we listen for a 401
|
package/util/renditions.js
CHANGED
|
@@ -61,7 +61,7 @@ exports = module.exports = function()
|
|
|
61
61
|
|
|
62
62
|
var syncRows = function(rows, callback)
|
|
63
63
|
{
|
|
64
|
-
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT) + "/bulk/pagerenditions";
|
|
64
|
+
var URL = util.asURL(process.env.GITANA_PROXY_SCHEME, process.env.GITANA_PROXY_HOST, process.env.GITANA_PROXY_PORT, process.env.GITANA_PROXY_PATH) + "/bulk/pagerenditions";
|
|
65
65
|
|
|
66
66
|
var agent = http.globalAgent;
|
|
67
67
|
if (process.env.GITANA_PROXY_SCHEME === "https")
|
package/util/util.js
CHANGED
|
@@ -1787,7 +1787,7 @@ var zip = exports.zip = function(directoryPath, writableStream)
|
|
|
1787
1787
|
*
|
|
1788
1788
|
* @type {Function}
|
|
1789
1789
|
*/
|
|
1790
|
-
var asURL = exports.asURL = function(protocol, host, port)
|
|
1790
|
+
var asURL = exports.asURL = function(protocol, host, port, path)
|
|
1791
1791
|
{
|
|
1792
1792
|
// protocol lower case
|
|
1793
1793
|
protocol = protocol.toLowerCase();
|
|
@@ -1813,6 +1813,19 @@ var asURL = exports.asURL = function(protocol, host, port)
|
|
|
1813
1813
|
}
|
|
1814
1814
|
}
|
|
1815
1815
|
|
|
1816
|
+
// include url "path" if defined
|
|
1817
|
+
if (path) {
|
|
1818
|
+
path = '/' + path;
|
|
1819
|
+
path = path.replace(/\/+/g, '/'); // ensure no extra '/' characters
|
|
1820
|
+
if (path.endsWith('/')) {
|
|
1821
|
+
// remove trailing '/' character
|
|
1822
|
+
path = path.substring(0, path.length - 1);
|
|
1823
|
+
}
|
|
1824
|
+
if (path) {
|
|
1825
|
+
url += path;
|
|
1826
|
+
}
|
|
1827
|
+
}
|
|
1828
|
+
|
|
1816
1829
|
return url;
|
|
1817
1830
|
};
|
|
1818
1831
|
|