@contrast/assess 1.36.0 → 1.38.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.
- package/lib/crypto-analysis/install/crypto.js +1 -1
- package/lib/dataflow/propagation/install/JSON/parse.js +1 -0
- package/lib/dataflow/propagation/install/JSON/stringify.js +1 -0
- package/lib/dataflow/propagation/install/array-prototype-join.js +1 -0
- package/lib/dataflow/propagation/install/buffer.js +1 -0
- package/lib/dataflow/propagation/install/contrast-methods/number.js +1 -0
- package/lib/dataflow/propagation/install/contrast-methods/string.js +1 -0
- package/lib/dataflow/propagation/install/contrast-methods/tag.js +1 -0
- package/lib/dataflow/propagation/install/decode-uri-component.js +1 -0
- package/lib/dataflow/propagation/install/ejs/escape-xml.js +1 -0
- package/lib/dataflow/propagation/install/ejs/template.js +1 -0
- package/lib/dataflow/propagation/install/encode-uri.js +1 -0
- package/lib/dataflow/propagation/install/escape-html.js +1 -0
- package/lib/dataflow/propagation/install/escape.js +1 -0
- package/lib/dataflow/propagation/install/fastify-send.js +1 -0
- package/lib/dataflow/propagation/install/handlebars-utils-escape-expression.js +1 -0
- package/lib/dataflow/propagation/install/isnumeric-0.js +1 -0
- package/lib/dataflow/propagation/install/joi/boolean.js +2 -1
- package/lib/dataflow/propagation/install/joi/expression.js +2 -1
- package/lib/dataflow/propagation/install/joi/index.js +3 -1
- package/lib/dataflow/propagation/install/joi/keys.js +1 -0
- package/lib/dataflow/propagation/install/joi/number.js +2 -1
- package/lib/dataflow/propagation/install/joi/string-schema.js +3 -1
- package/lib/dataflow/propagation/install/joi/values.js +2 -1
- package/lib/dataflow/propagation/install/mongoose/schema-map.js +2 -0
- package/lib/dataflow/propagation/install/mongoose/schema-mixed.js +2 -0
- package/lib/dataflow/propagation/install/mongoose/schema-string.js +101 -1
- package/lib/dataflow/propagation/install/mongoose/schema-string.test.js +41 -2
- package/lib/dataflow/propagation/install/mustache-escape.js +1 -0
- package/lib/dataflow/propagation/install/mysql-connection-escape.js +3 -0
- package/lib/dataflow/propagation/install/parse-int.js +1 -0
- package/lib/dataflow/propagation/install/path/basename.js +1 -0
- package/lib/dataflow/propagation/install/path/dirname.js +1 -0
- package/lib/dataflow/propagation/install/path/extname.js +1 -0
- package/lib/dataflow/propagation/install/path/format.js +1 -0
- package/lib/dataflow/propagation/install/path/join-and-resolve.js +1 -0
- package/lib/dataflow/propagation/install/path/normalize.js +1 -0
- package/lib/dataflow/propagation/install/path/parse.js +2 -1
- package/lib/dataflow/propagation/install/path/relative.js +1 -0
- package/lib/dataflow/propagation/install/path/toNamespacedPath.js +1 -0
- package/lib/dataflow/propagation/install/pug/index.js +1 -0
- package/lib/dataflow/propagation/install/pug-runtime-escape.js +1 -0
- package/lib/dataflow/propagation/install/querystring/escape.js +2 -1
- package/lib/dataflow/propagation/install/querystring/parse.js +1 -0
- package/lib/dataflow/propagation/install/querystring/stringify.js +2 -1
- package/lib/dataflow/propagation/install/reg-exp-prototype-exec.js +1 -0
- package/lib/dataflow/propagation/install/send.js +1 -0
- package/lib/dataflow/propagation/install/sequelize/query-generator.js +1 -0
- package/lib/dataflow/propagation/install/sequelize/sql-string.js +1 -0
- package/lib/dataflow/propagation/install/sql-template-strings.js +1 -0
- package/lib/dataflow/propagation/install/string/concat.js +1 -1
- package/lib/dataflow/propagation/install/string/format-methods.js +1 -1
- package/lib/dataflow/propagation/install/string/html-methods.js +1 -1
- package/lib/dataflow/propagation/install/string/index.js +1 -1
- package/lib/dataflow/propagation/install/string/match-all.js +1 -1
- package/lib/dataflow/propagation/install/string/match.js +1 -1
- package/lib/dataflow/propagation/install/string/replace.js +1 -1
- package/lib/dataflow/propagation/install/string/slice.js +1 -1
- package/lib/dataflow/propagation/install/string/split.js +1 -1
- package/lib/dataflow/propagation/install/string/substring.js +1 -1
- package/lib/dataflow/propagation/install/string/trim.js +3 -3
- package/lib/dataflow/propagation/install/unescape.js +1 -0
- package/lib/dataflow/propagation/install/url/domain-parsers.js +1 -0
- package/lib/dataflow/propagation/install/url/parse.js +2 -1
- package/lib/dataflow/propagation/install/url/searchParams.js +3 -1
- package/lib/dataflow/propagation/install/url/url.js +2 -1
- package/lib/dataflow/propagation/install/util-format.js +1 -0
- package/lib/dataflow/propagation/install/validator/hooks.js +2 -0
- package/lib/dataflow/sinks/install/child-process.js +1 -1
- package/lib/dataflow/sinks/install/express/unvalidated-redirect.js +1 -1
- package/lib/dataflow/sinks/install/fastify/unvalidated-redirect.js +1 -1
- package/lib/dataflow/sinks/install/fs-original.js +170 -0
- package/lib/dataflow/sinks/install/fs.js +1 -1
- package/lib/dataflow/sinks/install/function.js +1 -1
- package/lib/dataflow/sinks/install/hapi/unvalidated-redirect.js +1 -1
- package/lib/dataflow/sinks/install/http/request.js +1 -1
- package/lib/dataflow/sinks/install/koa/unvalidated-redirect.js +1 -1
- package/lib/dataflow/sinks/install/libxmljs.js +1 -1
- package/lib/dataflow/sinks/install/marsdb.js +1 -1
- package/lib/dataflow/sinks/install/mongodb.js +1 -1
- package/lib/dataflow/sinks/install/mysql.js +1 -1
- package/lib/dataflow/sinks/install/postgres.js +1 -1
- package/lib/dataflow/sinks/install/sequelize.js +1 -1
- package/lib/dataflow/sinks/install/vm.js +1 -1
- package/lib/sampler.js +1 -1
- package/lib/sampler.test.js +10 -5
- package/lib/session-configuration/install/express-session.js +1 -1
- package/lib/session-configuration/install/fastify-cookie.js +1 -1
- package/lib/session-configuration/install/hapi.js +1 -1
- package/lib/session-configuration/install/koa.js +1 -1
- package/package.json +9 -9
package/lib/sampler.js
CHANGED
|
@@ -71,9 +71,9 @@ module.exports = function assess(core) {
|
|
|
71
71
|
assess.sampler = SamplerFactory[strategy](opts);
|
|
72
72
|
}
|
|
73
73
|
} else {
|
|
74
|
+
if (assess.sampler) logger.info('assess sampling disabled');
|
|
74
75
|
// disable sampling by setting sampler to null
|
|
75
76
|
assess.sampler = null;
|
|
76
|
-
logger.info('assess sampling disabled');
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
|
package/lib/sampler.test.js
CHANGED
|
@@ -4,6 +4,7 @@ const { EventEmitter } = require('events');
|
|
|
4
4
|
const { expect } = require('chai');
|
|
5
5
|
const { Event } = require('@contrast/common');
|
|
6
6
|
const mocks = require('@contrast/test/mocks');
|
|
7
|
+
const { devNull } = require('node:os');
|
|
7
8
|
|
|
8
9
|
const TRIALS = 1000;
|
|
9
10
|
const ZSCORE = 3.891; // 99.99% confidence
|
|
@@ -135,7 +136,11 @@ describe('assess sampler', function() {
|
|
|
135
136
|
|
|
136
137
|
it('sampler behavior adjusts to series of TS updates', function() {
|
|
137
138
|
// setup
|
|
139
|
+
const cfgPath = process.env.CONTRAST_CONFIG_PATH;
|
|
140
|
+
process.env.CONTRAST_CONFIG_PATH = devNull;
|
|
138
141
|
const core = initMockCore();
|
|
142
|
+
process.env.CONTRAST_CONFIG_PATH = cfgPath;
|
|
143
|
+
|
|
139
144
|
core.config.setValue('assess.enable', true, 'CONTRAST_UI');
|
|
140
145
|
core.config.setValue('assess.probabilistic_sampling.enable', false, 'DEFAULT_VALUE');
|
|
141
146
|
core.config.setValue('assess.probabilistic_sampling.base_probability', 0.50, 'CONTRAST_UI');
|
|
@@ -193,8 +198,6 @@ describe('assess sampler', function() {
|
|
|
193
198
|
|
|
194
199
|
// test logging throughout init/updates
|
|
195
200
|
expect(core.logger.info.getCalls().map(c => c.args)).to.deep.equal([
|
|
196
|
-
// when initialized
|
|
197
|
-
['assess sampling disabled'],
|
|
198
201
|
// update 1: env=PRODUCTION enables sampling
|
|
199
202
|
[
|
|
200
203
|
{ strategy: 'probabilistic', opts: { base_probability: 0.5 } },
|
|
@@ -218,11 +221,11 @@ describe('assess sampler', function() {
|
|
|
218
221
|
|
|
219
222
|
function initMockCore() {
|
|
220
223
|
const { CONTRAST_CONFIG_PATH } = process.env;
|
|
224
|
+
process.env.CONTRAST_CONFIG_PATH = devNull;
|
|
225
|
+
|
|
221
226
|
let core;
|
|
222
227
|
|
|
223
228
|
try {
|
|
224
|
-
// ensure default config if devs use this
|
|
225
|
-
process.env.CONTRAST_CONFIG_PATH = '';
|
|
226
229
|
core = {
|
|
227
230
|
// sampler needs this namespace to exist
|
|
228
231
|
assess: {},
|
|
@@ -235,12 +238,14 @@ function initMockCore() {
|
|
|
235
238
|
require('@contrast/config')(core);
|
|
236
239
|
core.config.setValue('assess.enable', true, 'CONTRAST_UI');
|
|
237
240
|
} catch (err) {
|
|
241
|
+
process.env.CONTRAST_CONFIG_PATH = CONTRAST_CONFIG_PATH;
|
|
242
|
+
|
|
238
243
|
console.dir(err);
|
|
239
244
|
throw err;
|
|
240
245
|
}
|
|
241
246
|
|
|
242
247
|
// reset to orig value
|
|
243
|
-
|
|
248
|
+
process.env.CONTRAST_CONFIG_PATH = CONTRAST_CONFIG_PATH;
|
|
244
249
|
|
|
245
250
|
return core;
|
|
246
251
|
}
|
|
@@ -26,7 +26,7 @@ const { patchType } = require('../common');
|
|
|
26
26
|
module.exports = function (core) {
|
|
27
27
|
const {
|
|
28
28
|
assess: {
|
|
29
|
-
inspect, //
|
|
29
|
+
inspect, // TODO NODE-3455: remove
|
|
30
30
|
getSourceContext,
|
|
31
31
|
eventFactory: { createSessionEvent },
|
|
32
32
|
sessionConfiguration: {
|
|
@@ -26,7 +26,7 @@ const { patchType } = require('../common');
|
|
|
26
26
|
module.exports = function (core) {
|
|
27
27
|
const {
|
|
28
28
|
assess: {
|
|
29
|
-
inspect, //
|
|
29
|
+
inspect, // TODO NODE-3455: remove
|
|
30
30
|
getSourceContext,
|
|
31
31
|
eventFactory: { createSessionEvent },
|
|
32
32
|
sessionConfiguration: {
|
|
@@ -25,7 +25,7 @@ const { patchType } = require('../common');
|
|
|
25
25
|
module.exports = function (core) {
|
|
26
26
|
const {
|
|
27
27
|
assess: {
|
|
28
|
-
inspect, //
|
|
28
|
+
inspect, // TODO NODE-3455: remove
|
|
29
29
|
getSourceContext,
|
|
30
30
|
eventFactory: { createSessionEvent },
|
|
31
31
|
sessionConfiguration: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contrast/assess",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.38.0",
|
|
4
4
|
"description": "Contrast service providing framework-agnostic Assess support",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Contrast Security <nodejs@contrastsecurity.com> (https://www.contrastsecurity.com)",
|
|
@@ -18,15 +18,15 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@contrast/common": "1.26.0",
|
|
21
|
-
"@contrast/config": "1.
|
|
22
|
-
"@contrast/core": "1.
|
|
23
|
-
"@contrast/dep-hooks": "1.
|
|
21
|
+
"@contrast/config": "1.35.0",
|
|
22
|
+
"@contrast/core": "1.40.0",
|
|
23
|
+
"@contrast/dep-hooks": "1.8.0",
|
|
24
24
|
"@contrast/distringuish": "^5.1.0",
|
|
25
|
-
"@contrast/instrumentation": "1.
|
|
26
|
-
"@contrast/logger": "1.
|
|
27
|
-
"@contrast/patcher": "1.
|
|
28
|
-
"@contrast/rewriter": "1.
|
|
29
|
-
"@contrast/scopes": "1.
|
|
25
|
+
"@contrast/instrumentation": "1.18.0",
|
|
26
|
+
"@contrast/logger": "1.13.0",
|
|
27
|
+
"@contrast/patcher": "1.12.0",
|
|
28
|
+
"@contrast/rewriter": "1.16.0",
|
|
29
|
+
"@contrast/scopes": "1.9.0",
|
|
30
30
|
"semver": "^7.6.0"
|
|
31
31
|
}
|
|
32
32
|
}
|