snyk-broker 4.136.0 → 4.137.0

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.
@@ -66,6 +66,28 @@
66
66
  "password": "${JIRA_PASSWORD}"
67
67
  }
68
68
  },
69
+ {
70
+ "//": "used to get createmeta for a jira project & issueType version 9 and above",
71
+ "method": "GET",
72
+ "path": "/rest/api/2/issue/createmeta/:project/issuetypes/:issue",
73
+ "origin": "https://${JIRA_HOSTNAME}",
74
+ "auth": {
75
+ "scheme": "basic",
76
+ "username": "${JIRA_USERNAME}",
77
+ "password": "${JIRA_PASSWORD}"
78
+ }
79
+ },
80
+ {
81
+ "//": "used to get issue type information for version 9 or above",
82
+ "method": "GET",
83
+ "path": "/rest/api/2/issuetype/:issuetype",
84
+ "origin": "https://${JIRA_HOSTNAME}",
85
+ "auth": {
86
+ "scheme": "basic",
87
+ "username": "${JIRA_USERNAME}",
88
+ "password": "${JIRA_PASSWORD}"
89
+ }
90
+ },
69
91
  {
70
92
  "//": "used to get jira issue",
71
93
  "method": "GET",
@@ -9,6 +9,7 @@ module.exports = ({ port = null, config = {}, filters = {} }) => {
9
9
  const identifyingMetadata = {
10
10
  version,
11
11
  filters,
12
+ capabilities: ['post-streams'],
12
13
  };
13
14
  const io = socket({
14
15
  token: config.brokerToken,
@@ -52,14 +53,17 @@ module.exports = ({ port = null, config = {}, filters = {} }) => {
52
53
  const auth = auths[i];
53
54
  const rawCred = rawCreds[i];
54
55
  let { data, errorOccurred: err } = await checkCredentials(auth, config, brokerClientValidationMethod, brokerClientValidationTimeoutMs, isJsonResponse);
55
- data.maskedCredentials = rawCred.length <= 6 ? '***' : `${rawCred.substring(0, 3)}***${rawCred.substring(rawCred.length - 3)}`;
56
+ data.maskedCredentials =
57
+ rawCred.length <= 6
58
+ ? '***'
59
+ : `${rawCred.substring(0, 3)}***${rawCred.substring(rawCred.length - 3)}`;
56
60
  validationResults.push(data);
57
61
  errorOccurred = err;
58
- logger.info("Credentials checked");
62
+ logger.info('Credentials checked');
59
63
  }
60
64
  }
61
65
  else {
62
- logger.info("No credentials specified - checking if target can be accessed without credentials");
66
+ logger.info('No credentials specified - checking if target can be accessed without credentials');
63
67
  let { data, errorOccurred: err } = await checkCredentials(null, config, brokerClientValidationMethod, brokerClientValidationTimeoutMs, isJsonResponse);
64
68
  data.maskedCredentials = null;
65
69
  validationResults.push(data);
@@ -92,8 +96,8 @@ module.exports = ({ port = null, config = {}, filters = {} }) => {
92
96
  };
93
97
  };
94
98
  function credsFromHeader(s) {
95
- if (s.indexOf(" ") >= 0) {
96
- return s.substring(s.indexOf(" ") + 1);
99
+ if (s.indexOf(' ') >= 0) {
100
+ return s.substring(s.indexOf(' ') + 1);
97
101
  }
98
102
  else {
99
103
  return s;
@@ -104,10 +108,11 @@ function loadCredentialsFromConfig(config) {
104
108
  let rawCreds = [];
105
109
  if (config.brokerClientValidationAuthorizationHeaderPool) {
106
110
  auths = config.brokerClientValidationAuthorizationHeaderPool;
107
- rawCreds = config.brokerClientValidationAuthorizationHeaderPool.map(credsFromHeader);
111
+ rawCreds =
112
+ config.brokerClientValidationAuthorizationHeaderPool.map(credsFromHeader);
108
113
  }
109
114
  else if (config.brokerClientValidationBasicAuthPool) {
110
- auths = config.brokerClientValidationBasicAuthPool.map(s => `Basic ${Buffer.from(s).toString('base64')}`);
115
+ auths = config.brokerClientValidationBasicAuthPool.map((s) => `Basic ${Buffer.from(s).toString('base64')}`);
111
116
  rawCreds = config.brokerClientValidationBasicAuthPool;
112
117
  }
113
118
  else if (config.brokerClientValidationAuthorizationHeader) {
@@ -145,7 +150,8 @@ async function checkCredentials(auth, config, brokerClientValidationMethod, brok
145
150
  agentOptions: {
146
151
  ca: config.caCert,
147
152
  },
148
- }).then(response => {
153
+ })
154
+ .then((response) => {
149
155
  // test logic requires to surface internal data
150
156
  // which is best not exposed in production
151
157
  if (process.env.TAP) {
@@ -166,7 +172,8 @@ async function checkCredentials(auth, config, brokerClientValidationMethod, brok
166
172
  }
167
173
  errorOccurred = false;
168
174
  data.ok = true;
169
- }).catch(error => {
175
+ })
176
+ .catch((error) => {
170
177
  // test logic requires to surface internal data
171
178
  // which is best not exposed in production
172
179
  if (process.env.TAP) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/client/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/client/index.js"],"names":[],"mappings":"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"}
@@ -2,21 +2,7 @@ require('../patch-https-request-for-proxying');
2
2
  const Primus = require('primus');
3
3
  const relay = require('../relay');
4
4
  const logger = require('../log');
5
- module.exports = ({ url, token, filters, config, identifyingMetadata }) => {
6
- if (!token) {
7
- // null, undefined, empty, etc.
8
- logger.error({ token }, 'missing client token');
9
- const error = new ReferenceError('BROKER_TOKEN is required to successfully identify itself to the server');
10
- error.code = 'MISSING_BROKER_TOKEN';
11
- throw error;
12
- }
13
- if (!url) {
14
- // null, undefined, empty, etc.
15
- logger.error({ url }, 'missing broker url');
16
- const error = new ReferenceError('BROKER_SERVER_URL is required to connect to the broker server');
17
- error.code = 'MISSING_BROKER_SERVER_URL';
18
- throw error;
19
- }
5
+ function createWebSocket(token, url, config, filters, identifyingMetadata) {
20
6
  const Socket = Primus.createSocket({
21
7
  transformer: 'engine.io',
22
8
  parser: 'EJSON',
@@ -37,6 +23,9 @@ module.exports = ({ url, token, filters, config, identifyingMetadata }) => {
37
23
  pong: parseInt(config.socketPongTimeout) || 10000,
38
24
  timeout: parseInt(config.socketConnectTimeout) || 10000,
39
25
  });
26
+ io.on('identify', (serverData) => {
27
+ io.capabilities = serverData.capabilities;
28
+ });
40
29
  io.on('reconnect scheduled', (opts) => {
41
30
  const attemptIn = Math.floor(opts.scheduled / 1000);
42
31
  logger.warn(`Reconnect retry #${opts.attempt} of ${opts.retries} in about ${attemptIn}s`);
@@ -52,7 +41,7 @@ module.exports = ({ url, token, filters, config, identifyingMetadata }) => {
52
41
  // RS note: this bind doesn't feel right, it feels like a sloppy way of
53
42
  // getting the filters into the request function.
54
43
  io.on('chunk', streamingResponse(token));
55
- io.on('request', response());
44
+ io.on('request', response(token));
56
45
  io.on('error', ({ type, description }) => {
57
46
  if (type === 'TransportError') {
58
47
  logger.error({ type, description }, 'Failed to connect to broker server');
@@ -69,8 +58,27 @@ module.exports = ({ url, token, filters, config, identifyingMetadata }) => {
69
58
  io.on('close', () => {
70
59
  logger.warn({ url, token }, 'websocket connection to the broker server was closed');
71
60
  });
61
+ io.socketVersion = 1;
62
+ io.socketType = 'client';
72
63
  // only required if we're manually opening the connection
73
64
  // io.open();
74
65
  return io;
66
+ }
67
+ module.exports = ({ url, token, filters, config, identifyingMetadata }) => {
68
+ if (!token) {
69
+ // null, undefined, empty, etc.
70
+ logger.error({ token }, 'missing client token');
71
+ const error = new ReferenceError('BROKER_TOKEN is required to successfully identify itself to the server');
72
+ error.code = 'MISSING_BROKER_TOKEN';
73
+ throw error;
74
+ }
75
+ if (!url) {
76
+ // null, undefined, empty, etc.
77
+ logger.error({ url }, 'missing broker url');
78
+ const error = new ReferenceError('BROKER_SERVER_URL is required to connect to the broker server');
79
+ error.code = 'MISSING_BROKER_SERVER_URL';
80
+ throw error;
81
+ }
82
+ return createWebSocket(token, url, config, filters, identifyingMetadata);
75
83
  };
76
84
  //# sourceMappingURL=socket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../lib/client/socket.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../lib/client/socket.js"],"names":[],"mappings":"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"}
@@ -17,9 +17,9 @@ function expandValue(obj, value) {
17
17
  const variableMatcher = value.match(variableRegex);
18
18
  if (variableMatcher) {
19
19
  for (const key of variableMatcher) {
20
- if (key[0] === "$" && obj[(key.slice(1) + "_POOL")]) {
20
+ if (key[0] === '$' && obj[key.slice(1) + '_POOL']) {
21
21
  keyWithPool = key.slice(1);
22
- poolFound = (key.slice(1) + "_POOL");
22
+ poolFound = key.slice(1) + '_POOL';
23
23
  break;
24
24
  }
25
25
  }
@@ -31,14 +31,14 @@ function expandValue(obj, value) {
31
31
  pool = obj[poolFound];
32
32
  }
33
33
  else {
34
- pool = obj[poolFound].split(",").map(s => s.trim());
34
+ pool = obj[poolFound].split(',').map((s) => s.trim());
35
35
  obj[poolFound] = pool;
36
36
  }
37
37
  for (const o of pool) {
38
38
  values.push(value.replace(variableRegex, (all, key) => {
39
39
  if (key[0] === '$') {
40
40
  const keyToReplace = key.slice(1);
41
- return keyToReplace === keyWithPool ? o : (obj[keyToReplace] || key);
41
+ return keyToReplace === keyWithPool ? o : obj[keyToReplace] || key;
42
42
  }
43
43
  return key;
44
44
  }));
@@ -61,7 +61,7 @@ function expand(obj) {
61
61
  const value = expandValue(obj, obj[key]);
62
62
  if (value && Array.isArray(value)) {
63
63
  // This will get camel-cased later on
64
- obj[(key + "_POOL")] = value;
64
+ obj[key + '_POOL'] = value;
65
65
  }
66
66
  else if (value !== obj[key]) {
67
67
  obj[key] = value;
@@ -81,8 +81,9 @@ if (res.caCert) {
81
81
  res.caCert = fs.readFileSync(path.resolve(process.cwd(), res.caCert));
82
82
  }
83
83
  for (const [key, value] of Object.entries(res)) {
84
- if ((key.endsWith("Pool") || key.endsWith("_POOL")) && !Array.isArray(value)) {
85
- res[key] = value.split(",").map(s => s.trim());
84
+ if ((key.endsWith('Pool') || key.endsWith('_POOL')) &&
85
+ !Array.isArray(value)) {
86
+ res[key] = value.split(',').map((s) => s.trim());
86
87
  }
87
88
  }
88
89
  module.exports = res;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.js"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ module.exports = (ruleSource) => {
42
42
  // array of entries with
43
43
  const tests = rules.map((entry) => {
44
44
  const keys = [];
45
- let { method, origin, path: entryPath, valid } = entry;
45
+ let { method, origin, path: entryPath, valid, requiredCapabilities, } = entry;
46
46
  const baseOrigin = origin;
47
47
  const { stream } = entry;
48
48
  method = (method || 'get').toLowerCase();
@@ -65,6 +65,7 @@ module.exports = (ruleSource) => {
65
65
  logger.info({ method, path: entryPath }, 'adding new filter rule');
66
66
  const regexp = pathRegexp(entryPath, keys);
67
67
  return (req) => {
68
+ var _a, _b;
68
69
  // check the request method
69
70
  if (req.method.toLowerCase() !== method && method !== 'any') {
70
71
  return false;
@@ -136,6 +137,23 @@ module.exports = (ruleSource) => {
136
137
  return false;
137
138
  }
138
139
  }
140
+ if (requiredCapabilities) {
141
+ let matchedAll = true;
142
+ for (const c of requiredCapabilities) {
143
+ if (!((_a = req === null || req === void 0 ? void 0 : req.locals) === null || _a === void 0 ? void 0 : _a.capabilities.includes(c))) {
144
+ matchedAll = false;
145
+ logger.warn({
146
+ path: entryPath,
147
+ capability: c,
148
+ clientCapabilities: (_b = req === null || req === void 0 ? void 0 : req.locals) === null || _b === void 0 ? void 0 : _b.capabilities,
149
+ }, 'client does not report support for capability');
150
+ }
151
+ }
152
+ if (!matchedAll) {
153
+ // We have to throw to avoid it getting approved by a generic matcher later on
154
+ throw new Error('client does not support all required capabilities for endpoint');
155
+ }
156
+ }
139
157
  const origin = replace(baseOrigin, config);
140
158
  logger.debug({ path: entryPath, origin, url, querystring }, 'rule matched');
141
159
  querystring = querystring ? `?${querystring}` : '';
@@ -149,12 +167,18 @@ module.exports = (ruleSource) => {
149
167
  return (payload, callback) => {
150
168
  let res = false;
151
169
  logger.debug({ rulesCount: tests.length }, 'looking for a rule match');
152
- for (const test of tests) {
153
- res = test(payload);
154
- if (res) {
155
- break;
170
+ try {
171
+ for (const test of tests) {
172
+ res = test(payload);
173
+ if (res) {
174
+ break;
175
+ }
156
176
  }
157
177
  }
178
+ catch (e) {
179
+ logger.warn({ error: e }, 'caught error checking request against rules');
180
+ res = false;
181
+ }
158
182
  if (!res) {
159
183
  return callback(Error('blocked'));
160
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../lib/filters.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../lib/filters.js"],"names":[],"mappings":"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"}
package/dist/lib/relay.js CHANGED
@@ -13,16 +13,53 @@ const stream = require('stream');
13
13
  const NodeCache = require('node-cache');
14
14
  const metrics = require('./metrics');
15
15
  const config = require('./config');
16
+ const { initStream, pipeStream } = require('./stream-posts');
17
+ class StreamResponseHandler {
18
+ constructor(streamingID, streamBuffer, response) {
19
+ this.streamSize = 0;
20
+ this.writeStatusAndHeaders = (statusAndHeaders) => {
21
+ this.response.status(statusAndHeaders.status).set(statusAndHeaders.headers);
22
+ };
23
+ this.writeChunk = (chunk, waitForDrainCb) => {
24
+ this.streamSize += chunk.length;
25
+ if (!this.streamBuffer.write(chunk) && waitForDrainCb) {
26
+ waitForDrainCb(this.streamBuffer);
27
+ }
28
+ };
29
+ this.finished = () => {
30
+ this.streamBuffer.end();
31
+ streams.del(this.streamingID);
32
+ metrics.observeResponseSize({
33
+ bytes: this.streamSize,
34
+ isStreaming: true,
35
+ });
36
+ };
37
+ this.streamingID = streamingID;
38
+ this.streamBuffer = streamBuffer;
39
+ this.response = response;
40
+ }
41
+ static create(streamingID) {
42
+ const stream = streams.get(streamingID);
43
+ if (!stream) {
44
+ return null;
45
+ }
46
+ const { streamBuffer, response } = stream;
47
+ return new StreamResponseHandler(streamingID, streamBuffer, response);
48
+ }
49
+ }
16
50
  module.exports = {
17
- request: requestHandler,
18
- response: responseHandler,
51
+ request: forwardHttpRequest,
52
+ response: forwardWebSocketRequest,
19
53
  streamingResponse: streamResponseHandler,
54
+ StreamResponseHandler: StreamResponseHandler,
20
55
  };
21
56
  const streams = new NodeCache({
22
57
  stdTTL: parseInt(config.cacheExpiry) || 3600,
23
58
  checkperiod: parseInt(config.cacheCheckPeriod) || 60,
24
59
  useClones: false,
25
60
  });
61
+ /**
62
+ * @deprecated Deprecated in favour of {@link StreamResponseHandler} */
26
63
  function streamResponseHandler(token) {
27
64
  return (streamingID, chunk, finished, ioResponse) => {
28
65
  const streamFromId = streams.get(streamingID);
@@ -61,7 +98,7 @@ function streamResponseHandler(token) {
61
98
  // 3. Relay over websocket conn (logged)
62
99
  // 4. Get response over websocket conn (logged)
63
100
  // 5. Send response over HTTP conn
64
- function requestHandler(filterRules) {
101
+ function forwardHttpRequest(filterRules) {
65
102
  const filters = Filters(filterRules);
66
103
  return (req, res) => {
67
104
  const logContext = {
@@ -73,6 +110,7 @@ function requestHandler(filterRules) {
73
110
  };
74
111
  logger.debug(logContext, 'received request over HTTP connection');
75
112
  filters(req, (error, result) => {
113
+ var _a, _b;
76
114
  if (error) {
77
115
  const reason = 'Request does not match any accept rule, blocking HTTP request';
78
116
  error.reason = reason;
@@ -86,9 +124,9 @@ function requestHandler(filterRules) {
86
124
  req.url = result.url;
87
125
  logContext.ioUrl = result.url;
88
126
  // check if this is a streaming request for binary data
89
- if (result.stream) {
127
+ if (result.stream || ((_b = (_a = res === null || res === void 0 ? void 0 : res.locals) === null || _a === void 0 ? void 0 : _a.capabilities) === null || _b === void 0 ? void 0 : _b.includes('post-streams'))) {
90
128
  const streamingID = uuid();
91
- const streamBuffer = new stream.PassThrough();
129
+ const streamBuffer = new stream.PassThrough({ highWaterMark: 1048576 });
92
130
  logContext.streamingID = streamingID;
93
131
  logger.debug(logContext, 'sending stream request over websocket connection');
94
132
  streams.set(streamingID, {
@@ -178,7 +216,7 @@ function requestHandler(filterRules) {
178
216
  // 3. Relay over HTTP conn (logged)
179
217
  // 4. Get response over HTTP conn (logged)
180
218
  // 5. Send response over websocket conn
181
- function responseHandler(filterRules, config, io) {
219
+ function forwardWebSocketRequest(filterRules, config, io) {
182
220
  const filters = Filters(filterRules);
183
221
  return (brokerToken) => ({ url, headers = {}, method, body = null, streamingID = '' } = {}, emit) => {
184
222
  var _a, _b, _c;
@@ -191,8 +229,29 @@ function responseHandler(filterRules, config, io) {
191
229
  maskedToken: maskToken(brokerToken),
192
230
  transport: (_c = (_b = (_a = io === null || io === void 0 ? void 0 : io.socket) === null || _a === void 0 ? void 0 : _a.transport) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : 'unknown',
193
231
  };
232
+ const realEmit = emit;
233
+ emit = (responseData) => {
234
+ if (responseData instanceof request.Request) {
235
+ logger.trace(logContext, 'posting streaming response back to Broker Server');
236
+ pipeStream(responseData, logContext, config, brokerToken, streamingID);
237
+ }
238
+ else if (streamingID) {
239
+ // Only for responses generated internally in the Broker Client/Server
240
+ const body = responseData.body;
241
+ delete responseData.body;
242
+ logger.trace({ ...logContext, responseData, body }, "posting internal response back to Broker Server as it's expecting streaming response");
243
+ const buffer = initStream(config, brokerToken, streamingID, JSON.stringify(responseData));
244
+ buffer.write(JSON.stringify(body));
245
+ buffer.end();
246
+ }
247
+ else {
248
+ logger.trace({ ...logContext, responseData }, 'sending fixed response over WebSocket connection');
249
+ realEmit(responseData);
250
+ }
251
+ };
194
252
  logger.debug(logContext, 'received request over websocket connection');
195
253
  filters({ url, method, body, headers }, (filterError, result) => {
254
+ var _a;
196
255
  if (filterError) {
197
256
  const reason = 'Response does not match any accept rule, blocking websocket request';
198
257
  logContext.error = filterError;
@@ -277,12 +336,20 @@ function responseHandler(filterRules, config, io) {
277
336
  'content-length',
278
337
  'host',
279
338
  'accept-encoding',
280
- 'content-encoding'
339
+ 'content-encoding',
281
340
  ].map((_) => delete headers[_]);
282
- if (brokerToken) {
341
+ if (brokerToken && (io === null || io === void 0 ? void 0 : io.socketType) === 'server') {
283
342
  Object.assign(headers, { 'X-Broker-Token': brokerToken });
284
343
  }
285
344
  logger.debug(logContext, 'sending websocket request over HTTP connection');
345
+ // Sometimes we receive the body as a {type, data} object
346
+ // Unsure why - possibly Primus?
347
+ if ((body === null || body === void 0 ? void 0 : body.type) === 'Buffer')
348
+ body = Buffer.of(body.data);
349
+ // Request library is buggy and will throw an error if we're POST'ing an empty body without an explicit Content-Length header
350
+ if (!body || body.length === 0) {
351
+ headers['Content-Length'] = '0';
352
+ }
286
353
  const req = {
287
354
  url: result.url,
288
355
  headers: headers,
@@ -295,36 +362,49 @@ function responseHandler(filterRules, config, io) {
295
362
  // check if this is a streaming request for binary data
296
363
  if (streamingID) {
297
364
  logger.debug(logContext, 'serving stream request');
298
- req.encoding = null; // no encoding for binary data
299
365
  let prevPartialChunk;
300
366
  let isResponseJson;
301
- request(req)
302
- .on('response', (response) => {
303
- const status = (response && response.statusCode) || 500;
304
- logResponse(logContext, status, response, config);
305
- isResponseJson = isJson(response.headers);
306
- io.send('chunk', streamingID, '', false, {
307
- status,
308
- headers: response.headers,
309
- });
310
- })
311
- .on('data', (chunk) => {
312
- if (config.RES_BODY_URL_SUB && isResponseJson) {
313
- const { newChunk, partial } = replaceUrlPartialChunk(Buffer.from(chunk).toString(), prevPartialChunk, config);
314
- prevPartialChunk = partial;
315
- chunk = newChunk;
367
+ try {
368
+ const rqst = request(req);
369
+ // This only works client -> server, it's not possible to post data server -> client
370
+ if ((_a = io.capabilities) === null || _a === void 0 ? void 0 : _a.includes('receive-post-streams')) {
371
+ emit(rqst);
316
372
  }
317
- io.send('chunk', streamingID, chunk, false);
318
- })
319
- .on('end', () => {
320
- io.send('chunk', streamingID, '', true);
321
- })
322
- .on('error', (error) => {
323
- logError(logContext, error);
324
- io.send('chunk', streamingID, error.message, true, {
325
- status: 500,
326
- });
327
- });
373
+ else {
374
+ logger.warn(logContext, 'server did not advertise receive-post-streams capability - falling back to legacy streaming');
375
+ // Fall back to older streaming method if somehow connected to older server version
376
+ rqst
377
+ .on('response', (response) => {
378
+ const status = (response && response.statusCode) || 500;
379
+ logResponse(logContext, status, response, config);
380
+ isResponseJson = isJson(response.headers);
381
+ io.send('chunk', streamingID, '', false, {
382
+ status,
383
+ headers: response.headers,
384
+ });
385
+ })
386
+ .on('data', (chunk) => {
387
+ if (config.RES_BODY_URL_SUB && isResponseJson) {
388
+ const { newChunk, partial } = replaceUrlPartialChunk(Buffer.from(chunk).toString(), prevPartialChunk, config);
389
+ prevPartialChunk = partial;
390
+ chunk = newChunk;
391
+ }
392
+ io.send('chunk', streamingID, chunk, false);
393
+ })
394
+ .on('end', () => {
395
+ io.send('chunk', streamingID, '', true);
396
+ })
397
+ .on('error', (error) => {
398
+ logError(logContext, error);
399
+ io.send('chunk', streamingID, error.message, true, {
400
+ status: 500,
401
+ });
402
+ });
403
+ }
404
+ }
405
+ catch (e) {
406
+ logger.error({ ...logContext, error: e }, 'caught error sending HTTP response back to caller');
407
+ }
328
408
  return;
329
409
  }
330
410
  request(req, (error, response, responseBody) => {
@@ -343,15 +423,15 @@ function responseHandler(filterRules, config, io) {
343
423
  if (contentLength && contentLength > maxLength) {
344
424
  const errorMessage = `body size of ${contentLength} is greater than max allowed of ${maxLength} bytes`;
345
425
  logError(logContext, {
346
- errorMessage
426
+ errorMessage,
347
427
  });
348
428
  return emit({
349
429
  status: 502,
350
430
  errorType: 'BODY_TOO_LARGE',
351
431
  originalBodySize: contentLength,
352
432
  body: {
353
- message: errorMessage
354
- }
433
+ message: errorMessage,
434
+ },
355
435
  });
356
436
  }
357
437
  const status = (response && response.statusCode) || 500;