kayvee 3.16.0 → 3.18.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.
@@ -18,13 +18,13 @@ kayee_logger.setGlobalRouting(path.join(__dirname, "/kvconfig.yml"));
18
18
  function afterTest(count, callback) {
19
19
  var args = new Array(3);
20
20
  var i = 0;
21
- return function (err, arg1, arg2) {
22
- assert.ok(i++ < count, "callback called " + count + " times");
21
+ return (err, arg1, arg2) => {
22
+ assert.ok(i++ < count, `callback called ${count} times`);
23
23
  args[0] = args[0] || err;
24
24
  args[1] = args[1] || arg1;
25
25
  args[2] = args[2] || arg2;
26
26
  if (count === i) {
27
- callback.apply(null, args);
27
+ callback(...args);
28
28
  }
29
29
  };
30
30
  }
@@ -39,10 +39,10 @@ function createServer(server_type, clever_options, morgan_options, fn) {
39
39
  var middle = fn || noopMiddleware;
40
40
  var server = null;
41
41
  if (server_type === "http") {
42
- server = http.createServer(function (req, res) {
43
- logger(req, res, function (err) {
42
+ server = http.createServer((req, res) => {
43
+ logger(req, res, (err) => {
44
44
  // allow req, res alterations
45
- middle(req, res, function () {
45
+ middle(req, res, () => {
46
46
  if (err) {
47
47
  res.statusCode = 500;
48
48
  res.end(err.message);
@@ -57,26 +57,26 @@ function createServer(server_type, clever_options, morgan_options, fn) {
57
57
  else if (server_type === "express") {
58
58
  var app = express();
59
59
  app.use(logger);
60
- app.use(express.static(__dirname + "/static"));
61
- app.get("*", function (req, res) {
60
+ app.use(express.static(`${__dirname}/static`));
61
+ app.get("*", (req, res) => {
62
62
  res.header("Content-Length", 12345);
63
63
  res.end();
64
64
  });
65
65
  server = app;
66
66
  }
67
67
  else {
68
- throw (new Error("unknown server type: " + server_type));
68
+ throw new Error(`unknown server type: ${server_type}`);
69
69
  }
70
70
  return server;
71
71
  }
72
- _.each(["http", "express"], function (serverType) {
73
- describe("middleware for *" + serverType + "* server: prototype pollution testing", function () {
74
- it("params with toString is stripped", function (done) {
75
- var cb = afterTest(2, function (err, res, line) {
72
+ _.each(["http", "express"], (serverType) => {
73
+ describe(`middleware for *${serverType}* server: prototype pollution testing`, () => {
74
+ it("params with toString is stripped", (done) => {
75
+ var cb = afterTest(2, (err, res, line) => {
76
76
  if (err) {
77
77
  return done(err);
78
78
  }
79
- var expected = {
79
+ const expected = {
80
80
  method: "GET",
81
81
  path: "/hello/world",
82
82
  params: "?",
@@ -87,7 +87,6 @@ _.each(["http", "express"], function (serverType) {
87
87
  via: "kayvee-middleware",
88
88
  level: "info",
89
89
  title: "request-finished",
90
- canary: false,
91
90
  deploy_env: "testing",
92
91
  wf_id: "abc",
93
92
  source: "test-app",
@@ -106,29 +105,27 @@ _.each(["http", "express"], function (serverType) {
106
105
  assert.deepEqual(actual, expected);
107
106
  return done();
108
107
  });
109
- var stream = createLineStream(function (line) {
108
+ var stream = createLineStream((line) => {
110
109
  cb(null, null, line);
111
110
  });
112
111
  var options = {
113
112
  source: "test-app",
114
113
  ignore_dir: {
115
- directory: __dirname + "/static",
114
+ directory: `${__dirname}/static`,
116
115
  },
117
116
  };
118
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
117
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
119
118
  next();
120
119
  });
121
120
  // this one is logged
122
- request(server)
123
- .get("/hello/world?toString=foo")
124
- .expect(200, cb);
121
+ request(server).get("/hello/world?toString=foo").expect(200, cb);
125
122
  });
126
- it("params from actual attack is stripped", function (done) {
127
- var cb = afterTest(2, function (err, res, line) {
123
+ it("params from actual attack is stripped", (done) => {
124
+ var cb = afterTest(2, (err, res, line) => {
128
125
  if (err) {
129
126
  return done(err);
130
127
  }
131
- var expected = {
128
+ const expected = {
132
129
  method: "GET",
133
130
  path: "/hello/world",
134
131
  params: "?",
@@ -139,7 +136,6 @@ _.each(["http", "express"], function (serverType) {
139
136
  via: "kayvee-middleware",
140
137
  level: "info",
141
138
  title: "request-finished",
142
- canary: false,
143
139
  deploy_env: "testing",
144
140
  wf_id: "abc",
145
141
  source: "test-app",
@@ -158,88 +154,40 @@ _.each(["http", "express"], function (serverType) {
158
154
  assert.deepEqual(actual, expected);
159
155
  return done();
160
156
  });
161
- var stream = createLineStream(function (line) {
157
+ var stream = createLineStream((line) => {
162
158
  cb(null, null, line);
163
159
  });
164
160
  var options = {
165
161
  source: "test-app",
166
162
  ignore_dir: {
167
- directory: __dirname + "/static",
163
+ directory: `${__dirname}/static`,
168
164
  },
169
165
  };
170
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
166
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
171
167
  next();
172
168
  });
173
- var params = "__proto__[Expect]=xxx\n &constructor[prototype][Expect]=xxx";
169
+ const params = `__proto__[Expect]=xxx
170
+ &constructor[prototype][Expect]=xxx`;
174
171
  // this one is logged
175
- request(server)
176
- .get("/hello/world?" + params)
177
- .expect(200, cb);
172
+ request(server).get(`/hello/world?${params}`).expect(200, cb);
178
173
  });
179
174
  });
180
- describe("middleware for *" + serverType + "* server", function () {
181
- it("should throw error on intialization if `source` not set in `options`", function (done) {
175
+ describe(`middleware for *${serverType}* server`, () => {
176
+ it("should throw error on intialization if `source` not set in `options`", (done) => {
182
177
  var options = {};
183
- var erroringServer = function () { return createServer(serverType, options, null, function (req, res, next) {
178
+ var erroringServer = () => createServer(serverType, options, null, (req, res, next) => {
184
179
  res.setHeader("some-header", "some-header-value");
185
180
  next();
186
- }); };
181
+ });
187
182
  assert.throws(erroringServer, Error, "Expected an error to be thrown");
188
183
  return done();
189
184
  });
190
- it("should pass default fields", function (done) {
191
- var cb = afterTest(2, function (err, res, line) {
192
- if (err) {
193
- return done(err);
194
- }
195
- var expected = {
196
- method: "GET",
197
- path: "/hello/world",
198
- params: "?a=1&b=2",
199
- "response-size": 12345,
200
- "response-time": 99999,
201
- "status-code": 200,
202
- ip: "::ffff:127.0.0.1",
203
- via: "kayvee-middleware",
204
- level: "info",
205
- title: "request-finished",
206
- canary: false,
207
- deploy_env: "testing",
208
- wf_id: "abc",
209
- source: "test-app",
210
- _kvmeta: {
211
- team: "UNSET",
212
- kv_version: "X.X.X",
213
- kv_language: "js",
214
- routes: [
215
- { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
216
- ],
217
- },
218
- };
219
- var actual = JSON.parse(line);
220
- actual["response-time"] = 99999; // Masking the two fields that
221
- actual._kvmeta.kv_version = "X.X.X"; // are expected to change
222
- assert.deepEqual(actual, expected);
223
- return done();
224
- });
225
- var stream = createLineStream(function (line) {
226
- cb(null, null, line);
227
- });
228
- var options = { source: "test-app" };
229
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
230
- res.setHeader("some-header", "some-header-value");
231
- next();
232
- });
233
- request(server)
234
- .get("/hello/world?a=1&b=2")
235
- .expect(200, cb);
236
- });
237
- it("should set canary flag if env var is present", function (done) {
238
- var cb = afterTest(2, function (err, res, line) {
185
+ it("should pass default fields", (done) => {
186
+ var cb = afterTest(2, (err, res, line) => {
239
187
  if (err) {
240
188
  return done(err);
241
189
  }
242
- var expected = {
190
+ const expected = {
243
191
  method: "GET",
244
192
  path: "/hello/world",
245
193
  params: "?a=1&b=2",
@@ -250,7 +198,6 @@ _.each(["http", "express"], function (serverType) {
250
198
  via: "kayvee-middleware",
251
199
  level: "info",
252
200
  title: "request-finished",
253
- canary: true,
254
201
  deploy_env: "testing",
255
202
  wf_id: "abc",
256
203
  source: "test-app",
@@ -267,77 +214,24 @@ _.each(["http", "express"], function (serverType) {
267
214
  actual["response-time"] = 99999; // Masking the two fields that
268
215
  actual._kvmeta.kv_version = "X.X.X"; // are expected to change
269
216
  assert.deepEqual(actual, expected);
270
- delete process.env._CANARY;
271
217
  return done();
272
218
  });
273
- process.env._CANARY = "1";
274
- var stream = createLineStream(function (line) {
219
+ var stream = createLineStream((line) => {
275
220
  cb(null, null, line);
276
221
  });
277
222
  var options = { source: "test-app" };
278
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
223
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
279
224
  res.setHeader("some-header", "some-header-value");
280
225
  next();
281
226
  });
282
- request(server)
283
- .get("/hello/world?a=1&b=2")
284
- .expect(200, cb);
227
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
285
228
  });
286
- it("should set canary flag if shortname includes -canary", function (done) {
287
- var cb = afterTest(2, function (err, res, line) {
229
+ it("should allow logging user-specified request headers", (done) => {
230
+ var cb = afterTest(2, (err, res, line) => {
288
231
  if (err) {
289
232
  return done(err);
290
233
  }
291
- var expected = {
292
- method: "GET",
293
- path: "/hello/world",
294
- params: "?a=1&b=2",
295
- "response-size": 12345,
296
- "response-time": 99999,
297
- "status-code": 200,
298
- ip: "::ffff:127.0.0.1",
299
- via: "kayvee-middleware",
300
- level: "info",
301
- title: "request-finished",
302
- canary: true,
303
- deploy_env: "testing",
304
- wf_id: "abc",
305
- source: "test-app",
306
- _kvmeta: {
307
- team: "UNSET",
308
- kv_version: "X.X.X",
309
- kv_language: "js",
310
- routes: [
311
- { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
312
- ],
313
- },
314
- };
315
- var actual = JSON.parse(line);
316
- actual["response-time"] = 99999; // Masking the two fields that
317
- actual._kvmeta.kv_version = "X.X.X"; // are expected to change
318
- assert.deepEqual(actual, expected);
319
- delete process.env._POD_SHORTNAME;
320
- return done();
321
- });
322
- process.env._POD_SHORTNAME = "us-west-1-dev-canary-xxxxxxxx";
323
- var stream = createLineStream(function (line) {
324
- cb(null, null, line);
325
- });
326
- var options = { source: "test-app" };
327
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
328
- res.setHeader("some-header", "some-header-value");
329
- next();
330
- });
331
- request(server)
332
- .get("/hello/world?a=1&b=2")
333
- .expect(200, cb);
334
- });
335
- it("should allow logging user-specified request headers", function (done) {
336
- var cb = afterTest(2, function (err, res, line) {
337
- if (err) {
338
- return done(err);
339
- }
340
- var expected = {
234
+ const expected = {
341
235
  "some-header": "some-header-value",
342
236
  "another-header": "another-header-value",
343
237
  method: "GET",
@@ -350,7 +244,6 @@ _.each(["http", "express"], function (serverType) {
350
244
  via: "kayvee-middleware",
351
245
  level: "info",
352
246
  title: "request-finished",
353
- canary: false,
354
247
  deploy_env: "testing",
355
248
  wf_id: "abc",
356
249
  source: "test-app",
@@ -369,14 +262,14 @@ _.each(["http", "express"], function (serverType) {
369
262
  assert.deepEqual(actual, expected);
370
263
  return done();
371
264
  });
372
- var stream = createLineStream(function (line) {
265
+ var stream = createLineStream((line) => {
373
266
  cb(null, null, line);
374
267
  });
375
268
  var options = {
376
269
  source: "test-app",
377
270
  headers: ["some-header", "another-header"],
378
271
  };
379
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
272
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
380
273
  next();
381
274
  });
382
275
  request(server)
@@ -385,12 +278,12 @@ _.each(["http", "express"], function (serverType) {
385
278
  .set("another-header", "another-header-value")
386
279
  .expect(200, cb);
387
280
  });
388
- it("should allow logging from user-specified handlers", function (done) {
389
- var cb = afterTest(2, function (err, res, line) {
281
+ it("should allow logging from user-specified handlers", (done) => {
282
+ var cb = afterTest(2, (err, res, line) => {
390
283
  if (err) {
391
284
  return done(err);
392
285
  }
393
- var expected = {
286
+ const expected = {
394
287
  global: 1,
395
288
  global2: 2,
396
289
  url: "/hello/world?a=1&b=2",
@@ -404,7 +297,6 @@ _.each(["http", "express"], function (serverType) {
404
297
  via: "kayvee-middleware",
405
298
  level: "info",
406
299
  title: "request-finished",
407
- canary: false,
408
300
  deploy_env: "testing",
409
301
  wf_id: "abc",
410
302
  source: "test-app",
@@ -423,30 +315,24 @@ _.each(["http", "express"], function (serverType) {
423
315
  assert.deepEqual(actual, expected);
424
316
  return done();
425
317
  });
426
- var stream = createLineStream(function (line) {
318
+ var stream = createLineStream((line) => {
427
319
  cb(null, null, line);
428
320
  });
429
321
  var options = {
430
322
  source: "test-app",
431
- handlers: [
432
- function () { return ({ global: 1 }); },
433
- function () { return ({ global2: 2 }); },
434
- function (req) { return ({ url: req.url }); },
435
- ],
323
+ handlers: [() => ({ global: 1 }), () => ({ global2: 2 }), (req) => ({ url: req.url })],
436
324
  };
437
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
325
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
438
326
  next();
439
327
  });
440
- request(server)
441
- .get("/hello/world?a=1&b=2")
442
- .expect(200, cb);
328
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
443
329
  });
444
- it("should not log null or undefined values", function (done) {
445
- var cb = afterTest(2, function (err, res, line) {
330
+ it("should not log null or undefined values", (done) => {
331
+ var cb = afterTest(2, (err, res, line) => {
446
332
  if (err) {
447
333
  return done(err);
448
334
  }
449
- var expected = {
335
+ const expected = {
450
336
  method: "GET",
451
337
  path: "/hello/world",
452
338
  params: "?a=1&b=2",
@@ -457,7 +343,6 @@ _.each(["http", "express"], function (serverType) {
457
343
  via: "kayvee-middleware",
458
344
  level: "info",
459
345
  title: "request-finished",
460
- canary: false,
461
346
  deploy_env: "testing",
462
347
  wf_id: "abc",
463
348
  source: "test-app",
@@ -476,30 +361,26 @@ _.each(["http", "express"], function (serverType) {
476
361
  assert.deepEqual(actual, expected);
477
362
  return done();
478
363
  });
479
- var stream = createLineStream(function (line) {
364
+ var stream = createLineStream((line) => {
480
365
  cb(null, null, line);
481
366
  });
482
367
  var options = {
483
368
  source: "test-app",
484
369
  // These values should not be logged
485
370
  headers: ["this-header-dne"],
486
- handlers: [
487
- function () { return ({ undef: undefined }); },
488
- ],
371
+ handlers: [() => ({ undef: undefined })],
489
372
  };
490
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
373
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
491
374
  next();
492
375
  });
493
- request(server)
494
- .get("/hello/world?a=1&b=2")
495
- .expect(200, cb);
376
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
496
377
  });
497
- it("should keep processing if there are broken user-specified handlers", function (done) {
498
- var cb = afterTest(2, function (err, res, line) {
378
+ it("should keep processing if there are broken user-specified handlers", (done) => {
379
+ var cb = afterTest(2, (err, res, line) => {
499
380
  if (err) {
500
381
  return done(err);
501
382
  }
502
- var expected = {
383
+ const expected = {
503
384
  global: 1,
504
385
  method: "GET",
505
386
  path: "/hello/world",
@@ -511,7 +392,6 @@ _.each(["http", "express"], function (serverType) {
511
392
  via: "kayvee-middleware",
512
393
  level: "info",
513
394
  title: "request-finished",
514
- canary: false,
515
395
  deploy_env: "testing",
516
396
  wf_id: "abc",
517
397
  source: "test-app",
@@ -530,31 +410,31 @@ _.each(["http", "express"], function (serverType) {
530
410
  assert.deepEqual(actual, expected);
531
411
  return done();
532
412
  });
533
- var stream = createLineStream(function (line) {
413
+ var stream = createLineStream((line) => {
534
414
  cb(null, null, line);
535
415
  });
536
416
  var options = {
537
417
  source: "test-app",
538
418
  handlers: [
539
419
  // This handler should be ignored, because it has an error
540
- function () { throw (new Error("handler that throws an error")); },
420
+ () => {
421
+ throw new Error("handler that throws an error");
422
+ },
541
423
  // This handler should still work
542
- function () { return ({ global: 1 }); },
424
+ () => ({ global: 1 }),
543
425
  ],
544
426
  };
545
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
427
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
546
428
  next();
547
429
  });
548
- request(server)
549
- .get("/hello/world?a=1&b=2")
550
- .expect(200, cb);
430
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
551
431
  });
552
- it("should allow the user to override `base_handlers`", function (done) {
553
- var cb = afterTest(2, function (err, res, line) {
432
+ it("should allow the user to override `base_handlers`", (done) => {
433
+ var cb = afterTest(2, (err, res, line) => {
554
434
  if (err) {
555
435
  return done(err);
556
436
  }
557
- var expected = {
437
+ const expected = {
558
438
  global: 1,
559
439
  base: 1,
560
440
  deploy_env: "testing",
@@ -572,31 +452,25 @@ _.each(["http", "express"], function (serverType) {
572
452
  assert.deepEqual(actual, expected);
573
453
  return done();
574
454
  });
575
- var stream = createLineStream(function (line) {
455
+ var stream = createLineStream((line) => {
576
456
  cb(null, null, line);
577
457
  });
578
458
  var options = {
579
459
  source: "test-app",
580
- base_handlers: [
581
- function () { return ({ base: 1 }); },
582
- ],
583
- handlers: [
584
- function () { return ({ global: 1 }); },
585
- ],
460
+ base_handlers: [() => ({ base: 1 })],
461
+ handlers: [() => ({ global: 1 })],
586
462
  };
587
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
463
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
588
464
  next();
589
465
  });
590
- request(server)
591
- .get("/hello/world?a=1&b=2")
592
- .expect(200, cb);
466
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
593
467
  });
594
- it("should be robust to handlers that return non Objects", function (done) {
595
- var cb = afterTest(2, function (err, res, line) {
468
+ it("should be robust to handlers that return non Objects", (done) => {
469
+ var cb = afterTest(2, (err, res, line) => {
596
470
  if (err) {
597
471
  return done(err);
598
472
  }
599
- var expected = {
473
+ const expected = {
600
474
  global: 1,
601
475
  base: 1,
602
476
  source: "test-app",
@@ -614,39 +488,25 @@ _.each(["http", "express"], function (serverType) {
614
488
  assert.deepEqual(actual, expected);
615
489
  return done();
616
490
  });
617
- var stream = createLineStream(function (line) {
491
+ var stream = createLineStream((line) => {
618
492
  cb(null, null, line);
619
493
  });
620
494
  var options = {
621
495
  source: "test-app",
622
- base_handlers: [
623
- function () { return (1); },
624
- function () { return ("a"); },
625
- function () { return ([]); },
626
- function () { return ({}); },
627
- function () { return ({ base: 1 }); },
628
- ],
629
- handlers: [
630
- function () { return (1); },
631
- function () { return ("a"); },
632
- function () { return ([]); },
633
- function () { return ({}); },
634
- function () { return ({ global: 1 }); },
635
- ],
496
+ base_handlers: [() => 1, () => "a", () => [], () => ({}), () => ({ base: 1 })],
497
+ handlers: [() => 1, () => "a", () => [], () => ({}), () => ({ global: 1 })],
636
498
  };
637
- var server = createServer(serverType, options, { stream: stream, skip: null }, function (req, res, next) {
499
+ var server = createServer(serverType, options, { stream, skip: null }, (req, res, next) => {
638
500
  next();
639
501
  });
640
- request(server)
641
- .get("/hello/world?a=1&b=2")
642
- .expect(200, cb);
502
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
643
503
  });
644
- it("allows ignoring requests to files in a static directory", function (done) {
645
- var cb = afterTest(2, function (err, res, line) {
504
+ it("allows ignoring requests to files in a static directory", (done) => {
505
+ var cb = afterTest(2, (err, res, line) => {
646
506
  if (err) {
647
507
  return done(err);
648
508
  }
649
- var expected = {
509
+ const expected = {
650
510
  method: "GET",
651
511
  path: "/hello/world",
652
512
  params: "?",
@@ -657,7 +517,6 @@ _.each(["http", "express"], function (serverType) {
657
517
  via: "kayvee-middleware",
658
518
  level: "info",
659
519
  title: "request-finished",
660
- canary: false,
661
520
  deploy_env: "testing",
662
521
  wf_id: "abc",
663
522
  source: "test-app",
@@ -676,26 +535,22 @@ _.each(["http", "express"], function (serverType) {
676
535
  assert.deepEqual(actual, expected);
677
536
  return done();
678
537
  });
679
- var stream = createLineStream(function (line) {
538
+ var stream = createLineStream((line) => {
680
539
  cb(null, null, line);
681
540
  });
682
541
  var options = {
683
542
  source: "test-app",
684
543
  ignore_dir: {
685
- directory: __dirname + "/static",
544
+ directory: `${__dirname}/static`,
686
545
  },
687
546
  };
688
- var server = createServer(serverType, options, { stream: stream }, function (req, res, next) {
547
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
689
548
  next();
690
549
  });
691
550
  // this line is never logged
692
- request(server)
693
- .get("/empty.css")
694
- .expect(200);
551
+ request(server).get("/empty.css").expect(200);
695
552
  // this one is logged
696
- request(server)
697
- .get("/hello/world")
698
- .expect(200, cb);
553
+ request(server).get("/hello/world").expect(200, cb);
699
554
  });
700
555
  });
701
556
  });