dd-trace 4.0.0 → 4.1.1

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.
Files changed (98) hide show
  1. package/LICENSE-3rdparty.csv +1 -0
  2. package/MIGRATING.md +39 -0
  3. package/README.md +18 -11
  4. package/package.json +3 -2
  5. package/packages/datadog-esbuild/index.js +13 -1
  6. package/packages/datadog-instrumentations/src/cucumber.js +13 -0
  7. package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -0
  8. package/packages/datadog-instrumentations/src/http/client.js +2 -1
  9. package/packages/datadog-instrumentations/src/http/server.js +14 -0
  10. package/packages/datadog-instrumentations/src/http2/client.js +4 -0
  11. package/packages/datadog-instrumentations/src/jest.js +2 -3
  12. package/packages/datadog-instrumentations/src/next.js +2 -2
  13. package/packages/datadog-instrumentations/src/pg.js +14 -11
  14. package/packages/datadog-instrumentations/src/playwright.js +1 -1
  15. package/packages/datadog-instrumentations/src/sequelize.js +51 -0
  16. package/packages/datadog-plugin-amqp10/src/consumer.js +1 -3
  17. package/packages/datadog-plugin-amqp10/src/producer.js +1 -3
  18. package/packages/datadog-plugin-amqplib/src/client.js +4 -3
  19. package/packages/datadog-plugin-amqplib/src/consumer.js +1 -3
  20. package/packages/datadog-plugin-amqplib/src/producer.js +1 -3
  21. package/packages/datadog-plugin-cucumber/src/index.js +2 -2
  22. package/packages/datadog-plugin-cypress/src/plugin.js +150 -30
  23. package/packages/datadog-plugin-cypress/src/support.js +6 -3
  24. package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +4 -3
  25. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +1 -3
  26. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +1 -3
  27. package/packages/datadog-plugin-http/src/client.js +70 -68
  28. package/packages/datadog-plugin-http2/src/client.js +50 -47
  29. package/packages/datadog-plugin-jest/src/index.js +5 -4
  30. package/packages/datadog-plugin-kafkajs/src/consumer.js +1 -4
  31. package/packages/datadog-plugin-kafkajs/src/producer.js +1 -3
  32. package/packages/datadog-plugin-memcached/src/index.js +2 -3
  33. package/packages/datadog-plugin-mocha/src/index.js +4 -2
  34. package/packages/datadog-plugin-pg/src/index.js +1 -1
  35. package/packages/datadog-plugin-redis/src/index.js +2 -13
  36. package/packages/datadog-plugin-rhea/src/consumer.js +1 -3
  37. package/packages/datadog-plugin-rhea/src/producer.js +1 -5
  38. package/packages/datadog-plugin-router/src/index.js +12 -1
  39. package/packages/dd-trace/src/appsec/blocked_templates.js +2 -101
  40. package/packages/dd-trace/src/appsec/blocking.js +60 -11
  41. package/packages/dd-trace/src/appsec/channels.js +3 -2
  42. package/packages/dd-trace/src/appsec/iast/analyzers/analyzers.js +7 -5
  43. package/packages/dd-trace/src/appsec/iast/analyzers/index.js +3 -0
  44. package/packages/dd-trace/src/appsec/iast/analyzers/insecure-cookie-analyzer.js +31 -0
  45. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +4 -0
  46. package/packages/dd-trace/src/appsec/iast/analyzers/set-cookies-header-interceptor.js +47 -0
  47. package/packages/dd-trace/src/appsec/iast/analyzers/sql-injection-analyzer.js +30 -5
  48. package/packages/dd-trace/src/appsec/iast/analyzers/ssrf-analyzer.js +26 -0
  49. package/packages/dd-trace/src/appsec/iast/analyzers/vulnerability-analyzer.js +35 -3
  50. package/packages/dd-trace/src/appsec/iast/path-line.js +14 -7
  51. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +19 -4
  52. package/packages/dd-trace/src/appsec/iast/telemetry/logs.js +1 -1
  53. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +25 -2
  54. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/url-sensitive-analyzer.js +49 -0
  55. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +3 -1
  56. package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +7 -5
  57. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +0 -33
  58. package/packages/dd-trace/src/appsec/recommended.json +45 -46
  59. package/packages/dd-trace/src/appsec/remote_config/capabilities.js +3 -1
  60. package/packages/dd-trace/src/appsec/remote_config/index.js +4 -0
  61. package/packages/dd-trace/src/appsec/rule_manager.js +49 -6
  62. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +2 -7
  63. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +1 -1
  64. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +1 -6
  65. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +10 -4
  66. package/packages/dd-trace/src/config.js +36 -5
  67. package/packages/dd-trace/src/encode/coverage-ci-visibility.js +11 -3
  68. package/packages/dd-trace/src/exporters/common/util.js +9 -0
  69. package/packages/dd-trace/src/exporters/common/writer.js +3 -2
  70. package/packages/dd-trace/src/plugin_manager.js +2 -0
  71. package/packages/dd-trace/src/plugins/cache.js +7 -0
  72. package/packages/dd-trace/src/plugins/ci_plugin.js +2 -0
  73. package/packages/dd-trace/src/plugins/client.js +3 -2
  74. package/packages/dd-trace/src/plugins/consumer.js +14 -2
  75. package/packages/dd-trace/src/plugins/database.js +2 -2
  76. package/packages/dd-trace/src/plugins/inbound.js +7 -0
  77. package/packages/dd-trace/src/plugins/{outgoing.js → outbound.js} +2 -2
  78. package/packages/dd-trace/src/plugins/producer.js +19 -2
  79. package/packages/dd-trace/src/plugins/server.js +2 -2
  80. package/packages/dd-trace/src/plugins/storage.js +2 -0
  81. package/packages/dd-trace/src/plugins/tracing.js +11 -0
  82. package/packages/dd-trace/src/plugins/util/ci.js +1 -1
  83. package/packages/dd-trace/src/profiling/config.js +4 -2
  84. package/packages/dd-trace/src/service-naming/index.js +30 -0
  85. package/packages/dd-trace/src/service-naming/schemas/definition.js +24 -0
  86. package/packages/dd-trace/src/service-naming/schemas/index.js +6 -0
  87. package/packages/dd-trace/src/service-naming/schemas/util.js +5 -0
  88. package/packages/dd-trace/src/service-naming/schemas/v0/index.js +5 -0
  89. package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +64 -0
  90. package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +33 -0
  91. package/packages/dd-trace/src/service-naming/schemas/v1/index.js +5 -0
  92. package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +52 -0
  93. package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +21 -0
  94. package/packages/dd-trace/src/telemetry/index.js +5 -6
  95. package/packages/dd-trace/src/telemetry/send-data.js +17 -5
  96. package/packages/dd-trace/src/tracer.js +3 -3
  97. package/version.js +8 -4
  98. package/packages/dd-trace/src/plugins/incoming.js +0 -7
@@ -1,4 +1,20 @@
1
1
  const request = require('../exporters/common/request')
2
+
3
+ function getHeaders (config, application, reqType) {
4
+ const headers = {
5
+ 'content-type': 'application/json',
6
+ 'dd-telemetry-api-version': 'v1',
7
+ 'dd-telemetry-request-type': reqType,
8
+ 'dd-client-library-language': application.language_name,
9
+ 'dd-client-library-version': application.tracer_version
10
+ }
11
+ const debug = config.telemetry && config.telemetry.debug
12
+ if (debug) {
13
+ headers['dd-telemetry-debug-enabled'] = 'true'
14
+ }
15
+ return headers
16
+ }
17
+
2
18
  let seqId = 0
3
19
 
4
20
  function getPayload (payload) {
@@ -25,11 +41,7 @@ function sendData (config, application, host, reqType, payload = {}) {
25
41
  port,
26
42
  method: 'POST',
27
43
  path: '/telemetry/proxy/api/v2/apmtelemetry',
28
- headers: {
29
- 'content-type': 'application/json',
30
- 'dd-telemetry-api-version': 'v1',
31
- 'dd-telemetry-request-type': reqType
32
- }
44
+ headers: getHeaders(config, application, reqType)
33
45
  }
34
46
  const data = JSON.stringify({
35
47
  api_version: 'v1',
@@ -7,7 +7,7 @@ const { storage } = require('../../datadog-core')
7
7
  const { isError } = require('./util')
8
8
  const { setStartupLogConfig } = require('./startup-log')
9
9
  const { ERROR_MESSAGE, ERROR_TYPE, ERROR_STACK } = require('../../dd-trace/src/constants')
10
- const { MAJOR } = require('../../../version')
10
+ const { DD_MAJOR } = require('../../../version')
11
11
 
12
12
  const SPAN_TYPE = tags.SPAN_TYPE
13
13
  const RESOURCE_NAME = tags.RESOURCE_NAME
@@ -27,7 +27,7 @@ class DatadogTracer extends Tracer {
27
27
  childOf: this.scope().active()
28
28
  }, options)
29
29
 
30
- if (!options.childOf && options.orphanable === false && MAJOR < 4) {
30
+ if (!options.childOf && options.orphanable === false && DD_MAJOR < 4) {
31
31
  return fn(null, () => {})
32
32
  }
33
33
 
@@ -82,7 +82,7 @@ class DatadogTracer extends Tracer {
82
82
  optionsObj = optionsObj.apply(this, arguments)
83
83
  }
84
84
 
85
- if (optionsObj && optionsObj.orphanable === false && !tracer.scope().active() && MAJOR < 4) {
85
+ if (optionsObj && optionsObj.orphanable === false && !tracer.scope().active() && DD_MAJOR < 4) {
86
86
  return fn.apply(this, arguments)
87
87
  }
88
88
 
package/version.js CHANGED
@@ -1,9 +1,13 @@
1
1
  'use strict'
2
2
 
3
- const matches = require('./package.json').version.match(/^(\d+)\.(\d+)\.(\d+)/)
3
+ const ddMatches = require('./package.json').version.match(/^(\d+)\.(\d+)\.(\d+)/)
4
+ const nodeMatches = process.versions.node.match(/^(\d+)\.(\d+)\.(\d+)/)
4
5
 
5
6
  module.exports = {
6
- MAJOR: parseInt(matches[1]),
7
- MINOR: parseInt(matches[2]),
8
- PATCH: parseInt(matches[3])
7
+ DD_MAJOR: parseInt(ddMatches[1]),
8
+ DD_MINOR: parseInt(ddMatches[2]),
9
+ DD_PATCH: parseInt(ddMatches[3]),
10
+ NODE_MAJOR: parseInt(nodeMatches[1]),
11
+ NODE_MINOR: parseInt(nodeMatches[2]),
12
+ NODE_PATCH: parseInt(nodeMatches[3])
9
13
  }
@@ -1,7 +0,0 @@
1
- 'use strict'
2
-
3
- const TracingPlugin = require('./tracing')
4
-
5
- class IncomingPlugin extends TracingPlugin {}
6
-
7
- module.exports = IncomingPlugin