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.
@@ -29,7 +29,7 @@ function afterTest(count, callback) {
29
29
  args[2] = args[2] || arg2;
30
30
 
31
31
  if (count === i) {
32
- callback.apply(null, args);
32
+ callback(...args);
33
33
  }
34
34
  };
35
35
  }
@@ -74,7 +74,7 @@ function createServer(server_type, clever_options, morgan_options, fn) {
74
74
 
75
75
  server = app;
76
76
  } else {
77
- throw (new Error(`unknown server type: ${server_type}`));
77
+ throw new Error(`unknown server type: ${server_type}`);
78
78
  }
79
79
 
80
80
  return server;
@@ -84,7 +84,9 @@ _.each(["http", "express"], (serverType) => {
84
84
  describe(`middleware for *${serverType}* server: prototype pollution testing`, () => {
85
85
  it("params with toString is stripped", (done) => {
86
86
  var cb = afterTest(2, (err, res, line) => {
87
- if (err) { return done(err); }
87
+ if (err) {
88
+ return done(err);
89
+ }
88
90
  const expected = {
89
91
  method: "GET",
90
92
  path: "/hello/world",
@@ -96,7 +98,6 @@ _.each(["http", "express"], (serverType) => {
96
98
  via: "kayvee-middleware",
97
99
  level: "info",
98
100
  title: "request-finished",
99
- canary: false,
100
101
  deploy_env: "testing",
101
102
  wf_id: "abc",
102
103
  source: "test-app",
@@ -105,12 +106,12 @@ _.each(["http", "express"], (serverType) => {
105
106
  kv_version: "X.X.X",
106
107
  kv_language: "js",
107
108
  routes: [
108
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
109
+ { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
109
110
  ],
110
111
  },
111
112
  };
112
113
  var actual = JSON.parse(line);
113
- actual["response-time"] = 99999; // Masking the two fields that
114
+ actual["response-time"] = 99999; // Masking the two fields that
114
115
  actual._kvmeta.kv_version = "X.X.X"; // are expected to change
115
116
 
116
117
  assert.deepEqual(actual, expected);
@@ -129,18 +130,18 @@ _.each(["http", "express"], (serverType) => {
129
130
  },
130
131
  };
131
132
 
132
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
133
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
133
134
  next();
134
135
  });
135
136
 
136
137
  // this one is logged
137
- request(server)
138
- .get("/hello/world?toString=foo")
139
- .expect(200, cb);
138
+ request(server).get("/hello/world?toString=foo").expect(200, cb);
140
139
  });
141
140
  it("params from actual attack is stripped", (done) => {
142
141
  var cb = afterTest(2, (err, res, line) => {
143
- if (err) { return done(err); }
142
+ if (err) {
143
+ return done(err);
144
+ }
144
145
  const expected = {
145
146
  method: "GET",
146
147
  path: "/hello/world",
@@ -152,7 +153,6 @@ _.each(["http", "express"], (serverType) => {
152
153
  via: "kayvee-middleware",
153
154
  level: "info",
154
155
  title: "request-finished",
155
- canary: false,
156
156
  deploy_env: "testing",
157
157
  wf_id: "abc",
158
158
  source: "test-app",
@@ -161,12 +161,12 @@ _.each(["http", "express"], (serverType) => {
161
161
  kv_version: "X.X.X",
162
162
  kv_language: "js",
163
163
  routes: [
164
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
164
+ { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
165
165
  ],
166
166
  },
167
167
  };
168
168
  var actual = JSON.parse(line);
169
- actual["response-time"] = 99999; // Masking the two fields that
169
+ actual["response-time"] = 99999; // Masking the two fields that
170
170
  actual._kvmeta.kv_version = "X.X.X"; // are expected to change
171
171
 
172
172
  assert.deepEqual(actual, expected);
@@ -185,32 +185,33 @@ _.each(["http", "express"], (serverType) => {
185
185
  },
186
186
  };
187
187
 
188
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
188
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
189
189
  next();
190
190
  });
191
191
 
192
192
  const params = `__proto__[Expect]=xxx
193
193
  &constructor[prototype][Expect]=xxx`;
194
194
  // this one is logged
195
- request(server)
196
- .get(`/hello/world?${params}`)
197
- .expect(200, cb);
195
+ request(server).get(`/hello/world?${params}`).expect(200, cb);
198
196
  });
199
197
  });
200
198
  describe(`middleware for *${serverType}* server`, () => {
201
199
  it("should throw error on intialization if `source` not set in `options`", (done) => {
202
200
  var options = {};
203
- var erroringServer = () => createServer(serverType, options, null, (req, res, next) => {
204
- res.setHeader("some-header", "some-header-value");
205
- next();
206
- });
201
+ var erroringServer = () =>
202
+ createServer(serverType, options, null, (req, res, next) => {
203
+ res.setHeader("some-header", "some-header-value");
204
+ next();
205
+ });
207
206
  assert.throws(erroringServer, Error, "Expected an error to be thrown");
208
207
  return done();
209
208
  });
210
209
 
211
210
  it("should pass default fields", (done) => {
212
211
  var cb = afterTest(2, (err, res, line) => {
213
- if (err) { return done(err); }
212
+ if (err) {
213
+ return done(err);
214
+ }
214
215
  const expected = {
215
216
  method: "GET",
216
217
  path: "/hello/world",
@@ -222,7 +223,6 @@ _.each(["http", "express"], (serverType) => {
222
223
  via: "kayvee-middleware",
223
224
  level: "info",
224
225
  title: "request-finished",
225
- canary: false,
226
226
  deploy_env: "testing",
227
227
  wf_id: "abc",
228
228
  source: "test-app",
@@ -231,145 +231,38 @@ _.each(["http", "express"], (serverType) => {
231
231
  kv_version: "X.X.X",
232
232
  kv_language: "js",
233
233
  routes: [
234
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
234
+ { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
235
235
  ],
236
236
  },
237
237
  };
238
238
 
239
239
  var actual = JSON.parse(line);
240
- actual["response-time"] = 99999; // Masking the two fields that
241
- actual._kvmeta.kv_version = "X.X.X"; // are expected to change
242
-
243
- assert.deepEqual(actual, expected);
244
- return done();
245
- });
246
-
247
- var stream = createLineStream((line) => {
248
- cb(null, null, line);
249
- });
250
-
251
- var options = {source: "test-app"};
252
-
253
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
254
- res.setHeader("some-header", "some-header-value");
255
- next();
256
- });
257
-
258
- request(server)
259
- .get("/hello/world?a=1&b=2")
260
- .expect(200, cb);
261
- });
262
-
263
- it("should set canary flag if env var is present", (done) => {
264
- var cb = afterTest(2, (err, res, line) => {
265
- if (err) { return done(err); }
266
- const expected = {
267
- method: "GET",
268
- path: "/hello/world",
269
- params: "?a=1&b=2",
270
- "response-size": 12345,
271
- "response-time": 99999,
272
- "status-code": 200,
273
- ip: "::ffff:127.0.0.1",
274
- via: "kayvee-middleware",
275
- level: "info",
276
- title: "request-finished",
277
- canary: true,
278
- deploy_env: "testing",
279
- wf_id: "abc",
280
- source: "test-app",
281
- _kvmeta: {
282
- team: "UNSET",
283
- kv_version: "X.X.X",
284
- kv_language: "js",
285
- routes: [
286
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
287
- ],
288
- },
289
- };
290
- var actual = JSON.parse(line);
291
- actual["response-time"] = 99999; // Masking the two fields that
292
- actual._kvmeta.kv_version = "X.X.X"; // are expected to change
293
-
294
- assert.deepEqual(actual, expected);
295
- delete process.env._CANARY;
296
- return done();
297
- });
298
-
299
- process.env._CANARY = "1";
300
- var stream = createLineStream((line) => {
301
- cb(null, null, line);
302
- });
303
-
304
- var options = {source: "test-app"};
305
-
306
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
307
- res.setHeader("some-header", "some-header-value");
308
- next();
309
- });
310
-
311
- request(server)
312
- .get("/hello/world?a=1&b=2")
313
- .expect(200, cb);
314
- });
315
-
316
- it("should set canary flag if shortname includes -canary", (done) => {
317
- var cb = afterTest(2, (err, res, line) => {
318
- if (err) { return done(err); }
319
- const expected = {
320
- method: "GET",
321
- path: "/hello/world",
322
- params: "?a=1&b=2",
323
- "response-size": 12345,
324
- "response-time": 99999,
325
- "status-code": 200,
326
- ip: "::ffff:127.0.0.1",
327
- via: "kayvee-middleware",
328
- level: "info",
329
- title: "request-finished",
330
- canary: true,
331
- deploy_env: "testing",
332
- wf_id: "abc",
333
- source: "test-app",
334
- _kvmeta: {
335
- team: "UNSET",
336
- kv_version: "X.X.X",
337
- kv_language: "js",
338
- routes: [
339
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
340
- ],
341
- },
342
- };
343
- var actual = JSON.parse(line);
344
- actual["response-time"] = 99999; // Masking the two fields that
240
+ actual["response-time"] = 99999; // Masking the two fields that
345
241
  actual._kvmeta.kv_version = "X.X.X"; // are expected to change
346
242
 
347
243
  assert.deepEqual(actual, expected);
348
- delete process.env._POD_SHORTNAME;
349
244
  return done();
350
245
  });
351
246
 
352
- process.env._POD_SHORTNAME = "us-west-1-dev-canary-xxxxxxxx";
353
247
  var stream = createLineStream((line) => {
354
248
  cb(null, null, line);
355
249
  });
356
250
 
357
- var options = {source: "test-app"};
251
+ var options = { source: "test-app" };
358
252
 
359
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
253
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
360
254
  res.setHeader("some-header", "some-header-value");
361
255
  next();
362
256
  });
363
257
 
364
- request(server)
365
- .get("/hello/world?a=1&b=2")
366
- .expect(200, cb);
258
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
367
259
  });
368
260
 
369
-
370
261
  it("should allow logging user-specified request headers", (done) => {
371
262
  var cb = afterTest(2, (err, res, line) => {
372
- if (err) { return done(err); }
263
+ if (err) {
264
+ return done(err);
265
+ }
373
266
  const expected = {
374
267
  "some-header": "some-header-value",
375
268
  "another-header": "another-header-value",
@@ -383,7 +276,6 @@ _.each(["http", "express"], (serverType) => {
383
276
  via: "kayvee-middleware",
384
277
  level: "info",
385
278
  title: "request-finished",
386
- canary: false,
387
279
  deploy_env: "testing",
388
280
  wf_id: "abc",
389
281
  source: "test-app",
@@ -392,12 +284,12 @@ _.each(["http", "express"], (serverType) => {
392
284
  kv_version: "X.X.X",
393
285
  kv_language: "js",
394
286
  routes: [
395
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
287
+ { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
396
288
  ],
397
289
  },
398
290
  };
399
291
  var actual = JSON.parse(line);
400
- actual["response-time"] = 99999; // Masking the two fields that
292
+ actual["response-time"] = 99999; // Masking the two fields that
401
293
  actual._kvmeta.kv_version = "X.X.X"; // are expected to change
402
294
 
403
295
  assert.deepEqual(actual, expected);
@@ -413,20 +305,22 @@ _.each(["http", "express"], (serverType) => {
413
305
  headers: ["some-header", "another-header"],
414
306
  };
415
307
 
416
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
308
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
417
309
  next();
418
310
  });
419
311
 
420
312
  request(server)
421
- .get("/hello/world?a=1&b=2")
422
- .set("some-header", "some-header-value")
423
- .set("another-header", "another-header-value")
424
- .expect(200, cb);
313
+ .get("/hello/world?a=1&b=2")
314
+ .set("some-header", "some-header-value")
315
+ .set("another-header", "another-header-value")
316
+ .expect(200, cb);
425
317
  });
426
318
 
427
319
  it("should allow logging from user-specified handlers", (done) => {
428
320
  var cb = afterTest(2, (err, res, line) => {
429
- if (err) { return done(err); }
321
+ if (err) {
322
+ return done(err);
323
+ }
430
324
  const expected = {
431
325
  global: 1,
432
326
  global2: 2,
@@ -441,7 +335,6 @@ _.each(["http", "express"], (serverType) => {
441
335
  via: "kayvee-middleware",
442
336
  level: "info",
443
337
  title: "request-finished",
444
- canary: false,
445
338
  deploy_env: "testing",
446
339
  wf_id: "abc",
447
340
  source: "test-app",
@@ -450,12 +343,12 @@ _.each(["http", "express"], (serverType) => {
450
343
  kv_version: "X.X.X",
451
344
  kv_language: "js",
452
345
  routes: [
453
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
346
+ { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
454
347
  ],
455
348
  },
456
349
  };
457
350
  var actual = JSON.parse(line);
458
- actual["response-time"] = 99999; // Masking the two fields that
351
+ actual["response-time"] = 99999; // Masking the two fields that
459
352
  actual._kvmeta.kv_version = "X.X.X"; // are expected to change
460
353
 
461
354
  assert.deepEqual(actual, expected);
@@ -468,25 +361,21 @@ _.each(["http", "express"], (serverType) => {
468
361
 
469
362
  var options = {
470
363
  source: "test-app",
471
- handlers: [
472
- () => ({global: 1}),
473
- () => ({global2: 2}),
474
- (req) => ({url: req.url}),
475
- ],
364
+ handlers: [() => ({ global: 1 }), () => ({ global2: 2 }), (req) => ({ url: req.url })],
476
365
  };
477
366
 
478
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
367
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
479
368
  next();
480
369
  });
481
370
 
482
- request(server)
483
- .get("/hello/world?a=1&b=2")
484
- .expect(200, cb);
371
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
485
372
  });
486
373
 
487
374
  it("should not log null or undefined values", (done) => {
488
375
  var cb = afterTest(2, (err, res, line) => {
489
- if (err) { return done(err); }
376
+ if (err) {
377
+ return done(err);
378
+ }
490
379
  const expected = {
491
380
  method: "GET",
492
381
  path: "/hello/world",
@@ -498,7 +387,6 @@ _.each(["http", "express"], (serverType) => {
498
387
  via: "kayvee-middleware",
499
388
  level: "info",
500
389
  title: "request-finished",
501
- canary: false,
502
390
  deploy_env: "testing",
503
391
  wf_id: "abc",
504
392
  source: "test-app",
@@ -507,12 +395,12 @@ _.each(["http", "express"], (serverType) => {
507
395
  kv_version: "X.X.X",
508
396
  kv_language: "js",
509
397
  routes: [
510
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
398
+ { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
511
399
  ],
512
400
  },
513
401
  };
514
402
  var actual = JSON.parse(line);
515
- actual["response-time"] = 99999; // Masking the two fields that
403
+ actual["response-time"] = 99999; // Masking the two fields that
516
404
  actual._kvmeta.kv_version = "X.X.X"; // are expected to change
517
405
 
518
406
  assert.deepEqual(actual, expected);
@@ -527,23 +415,21 @@ _.each(["http", "express"], (serverType) => {
527
415
  source: "test-app",
528
416
  // These values should not be logged
529
417
  headers: ["this-header-dne"],
530
- handlers: [
531
- () => ({undef: undefined}),
532
- ],
418
+ handlers: [() => ({ undef: undefined })],
533
419
  };
534
420
 
535
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
421
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
536
422
  next();
537
423
  });
538
424
 
539
- request(server)
540
- .get("/hello/world?a=1&b=2")
541
- .expect(200, cb);
425
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
542
426
  });
543
427
 
544
428
  it("should keep processing if there are broken user-specified handlers", (done) => {
545
429
  var cb = afterTest(2, (err, res, line) => {
546
- if (err) { return done(err); }
430
+ if (err) {
431
+ return done(err);
432
+ }
547
433
  const expected = {
548
434
  global: 1,
549
435
  method: "GET",
@@ -556,7 +442,6 @@ _.each(["http", "express"], (serverType) => {
556
442
  via: "kayvee-middleware",
557
443
  level: "info",
558
444
  title: "request-finished",
559
- canary: false,
560
445
  deploy_env: "testing",
561
446
  wf_id: "abc",
562
447
  source: "test-app",
@@ -565,12 +450,12 @@ _.each(["http", "express"], (serverType) => {
565
450
  kv_version: "X.X.X",
566
451
  kv_language: "js",
567
452
  routes: [
568
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
453
+ { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
569
454
  ],
570
455
  },
571
456
  };
572
457
  var actual = JSON.parse(line);
573
- actual["response-time"] = 99999; // Masking the two fields that
458
+ actual["response-time"] = 99999; // Masking the two fields that
574
459
  actual._kvmeta.kv_version = "X.X.X"; // are expected to change
575
460
 
576
461
  assert.deepEqual(actual, expected);
@@ -585,24 +470,26 @@ _.each(["http", "express"], (serverType) => {
585
470
  source: "test-app",
586
471
  handlers: [
587
472
  // This handler should be ignored, because it has an error
588
- () => { throw (new Error("handler that throws an error")); },
473
+ () => {
474
+ throw new Error("handler that throws an error");
475
+ },
589
476
  // This handler should still work
590
- () => ({global: 1}),
477
+ () => ({ global: 1 }),
591
478
  ],
592
479
  };
593
480
 
594
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
481
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
595
482
  next();
596
483
  });
597
484
 
598
- request(server)
599
- .get("/hello/world?a=1&b=2")
600
- .expect(200, cb);
485
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
601
486
  });
602
487
 
603
488
  it("should allow the user to override `base_handlers`", (done) => {
604
489
  var cb = afterTest(2, (err, res, line) => {
605
- if (err) { return done(err); }
490
+ if (err) {
491
+ return done(err);
492
+ }
606
493
  const expected = {
607
494
  global: 1,
608
495
  base: 1,
@@ -630,26 +517,22 @@ _.each(["http", "express"], (serverType) => {
630
517
 
631
518
  var options = {
632
519
  source: "test-app",
633
- base_handlers: [
634
- () => ({base: 1}),
635
- ],
636
- handlers: [
637
- () => ({global: 1}),
638
- ],
520
+ base_handlers: [() => ({ base: 1 })],
521
+ handlers: [() => ({ global: 1 })],
639
522
  };
640
523
 
641
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
524
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
642
525
  next();
643
526
  });
644
527
 
645
- request(server)
646
- .get("/hello/world?a=1&b=2")
647
- .expect(200, cb);
528
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
648
529
  });
649
530
 
650
531
  it("should be robust to handlers that return non Objects", (done) => {
651
532
  var cb = afterTest(2, (err, res, line) => {
652
- if (err) { return done(err); }
533
+ if (err) {
534
+ return done(err);
535
+ }
653
536
  const expected = {
654
537
  global: 1,
655
538
  base: 1,
@@ -677,33 +560,21 @@ _.each(["http", "express"], (serverType) => {
677
560
 
678
561
  var options = {
679
562
  source: "test-app",
680
- base_handlers: [
681
- () => (1),
682
- () => ("a"),
683
- () => ([]),
684
- () => ({}),
685
- () => ({base: 1}),
686
- ],
687
- handlers: [
688
- () => (1),
689
- () => ("a"),
690
- () => ([]),
691
- () => ({}),
692
- () => ({global: 1}),
693
- ],
563
+ base_handlers: [() => 1, () => "a", () => [], () => ({}), () => ({ base: 1 })],
564
+ handlers: [() => 1, () => "a", () => [], () => ({}), () => ({ global: 1 })],
694
565
  };
695
566
 
696
- var server = createServer(serverType, options, {stream, skip: null}, (req, res, next) => {
567
+ var server = createServer(serverType, options, { stream, skip: null }, (req, res, next) => {
697
568
  next();
698
569
  });
699
570
 
700
- request(server)
701
- .get("/hello/world?a=1&b=2")
702
- .expect(200, cb);
571
+ request(server).get("/hello/world?a=1&b=2").expect(200, cb);
703
572
  });
704
573
  it("allows ignoring requests to files in a static directory", (done) => {
705
574
  var cb = afterTest(2, (err, res, line) => {
706
- if (err) { return done(err); }
575
+ if (err) {
576
+ return done(err);
577
+ }
707
578
  const expected = {
708
579
  method: "GET",
709
580
  path: "/hello/world",
@@ -715,7 +586,6 @@ _.each(["http", "express"], (serverType) => {
715
586
  via: "kayvee-middleware",
716
587
  level: "info",
717
588
  title: "request-finished",
718
- canary: false,
719
589
  deploy_env: "testing",
720
590
  wf_id: "abc",
721
591
  source: "test-app",
@@ -724,12 +594,12 @@ _.each(["http", "express"], (serverType) => {
724
594
  kv_version: "X.X.X",
725
595
  kv_language: "js",
726
596
  routes: [
727
- {type: "analytics", series: "requests.everything", rule: "all-kv_middleware"},
597
+ { type: "analytics", series: "requests.everything", rule: "all-kv_middleware" },
728
598
  ],
729
599
  },
730
600
  };
731
601
  var actual = JSON.parse(line);
732
- actual["response-time"] = 99999; // Masking the two fields that
602
+ actual["response-time"] = 99999; // Masking the two fields that
733
603
  actual._kvmeta.kv_version = "X.X.X"; // are expected to change
734
604
 
735
605
  assert.deepEqual(actual, expected);
@@ -748,19 +618,15 @@ _.each(["http", "express"], (serverType) => {
748
618
  },
749
619
  };
750
620
 
751
- var server = createServer(serverType, options, {stream}, (req, res, next) => {
621
+ var server = createServer(serverType, options, { stream }, (req, res, next) => {
752
622
  next();
753
623
  });
754
624
 
755
625
  // this line is never logged
756
- request(server)
757
- .get("/empty.css")
758
- .expect(200);
626
+ request(server).get("/empty.css").expect(200);
759
627
 
760
628
  // this one is logged
761
- request(server)
762
- .get("/hello/world")
763
- .expect(200, cb);
629
+ request(server).get("/hello/world").expect(200, cb);
764
630
  });
765
631
  });
766
632
  });