dd-trace 5.81.0 → 5.82.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.
Files changed (321) hide show
  1. package/index.d.ts +7 -0
  2. package/loader-hook.mjs +7 -2
  3. package/package.json +13 -18
  4. package/packages/datadog-core/src/utils/src/parse-tags.js +1 -1
  5. package/packages/datadog-esbuild/index.js +8 -7
  6. package/packages/datadog-esbuild/src/utils.js +14 -2
  7. package/packages/datadog-instrumentations/src/aerospike.js +3 -2
  8. package/packages/datadog-instrumentations/src/ai.js +2 -2
  9. package/packages/datadog-instrumentations/src/amqp10.js +1 -1
  10. package/packages/datadog-instrumentations/src/amqplib.js +4 -4
  11. package/packages/datadog-instrumentations/src/anthropic.js +2 -2
  12. package/packages/datadog-instrumentations/src/apollo-server-core.js +2 -2
  13. package/packages/datadog-instrumentations/src/apollo-server.js +1 -1
  14. package/packages/datadog-instrumentations/src/apollo.js +3 -2
  15. package/packages/datadog-instrumentations/src/avsc.js +1 -1
  16. package/packages/datadog-instrumentations/src/aws-sdk.js +1 -1
  17. package/packages/datadog-instrumentations/src/azure-event-hubs.js +4 -3
  18. package/packages/datadog-instrumentations/src/azure-functions.js +2 -2
  19. package/packages/datadog-instrumentations/src/azure-service-bus.js +3 -4
  20. package/packages/datadog-instrumentations/src/bluebird.js +1 -1
  21. package/packages/datadog-instrumentations/src/bullmq.js +11 -0
  22. package/packages/datadog-instrumentations/src/bunyan.js +1 -1
  23. package/packages/datadog-instrumentations/src/cassandra-driver.js +1 -1
  24. package/packages/datadog-instrumentations/src/child_process.js +2 -2
  25. package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +3 -3
  26. package/packages/datadog-instrumentations/src/couchbase.js +1 -1
  27. package/packages/datadog-instrumentations/src/crypto.js +1 -1
  28. package/packages/datadog-instrumentations/src/cucumber.js +12 -13
  29. package/packages/datadog-instrumentations/src/cypress.js +1 -1
  30. package/packages/datadog-instrumentations/src/dns.js +1 -1
  31. package/packages/datadog-instrumentations/src/elasticsearch.js +1 -1
  32. package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +1 -1
  33. package/packages/datadog-instrumentations/src/express.js +1 -1
  34. package/packages/datadog-instrumentations/src/fs.js +1 -1
  35. package/packages/datadog-instrumentations/src/generic-pool.js +1 -1
  36. package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +137 -15
  37. package/packages/datadog-instrumentations/src/google-cloud-vertexai.js +2 -3
  38. package/packages/datadog-instrumentations/src/google-genai.js +3 -3
  39. package/packages/datadog-instrumentations/src/graphql.js +1 -1
  40. package/packages/datadog-instrumentations/src/grpc/client.js +1 -1
  41. package/packages/datadog-instrumentations/src/grpc/server.js +1 -1
  42. package/packages/datadog-instrumentations/src/helpers/bundler-register.js +1 -1
  43. package/packages/datadog-instrumentations/src/helpers/hook.js +1 -1
  44. package/packages/datadog-instrumentations/src/helpers/hooks.js +4 -1
  45. package/packages/datadog-instrumentations/src/helpers/instrument.js +1 -1
  46. package/packages/datadog-instrumentations/src/helpers/register.js +6 -4
  47. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +2 -2
  48. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/bullmq.json +106 -0
  49. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +2 -1
  50. package/packages/datadog-instrumentations/src/helpers/router-helper.js +1 -1
  51. package/packages/datadog-instrumentations/src/helpers/shared-utils.js +9 -0
  52. package/packages/datadog-instrumentations/src/hono.js +55 -10
  53. package/packages/datadog-instrumentations/src/ioredis.js +1 -1
  54. package/packages/datadog-instrumentations/src/iovalkey.js +1 -1
  55. package/packages/datadog-instrumentations/src/jest.js +2 -2
  56. package/packages/datadog-instrumentations/src/kafkajs.js +3 -3
  57. package/packages/datadog-instrumentations/src/knex.js +1 -1
  58. package/packages/datadog-instrumentations/src/ldapjs.js +1 -1
  59. package/packages/datadog-instrumentations/src/light-my-request.js +93 -0
  60. package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
  61. package/packages/datadog-instrumentations/src/lodash.js +1 -2
  62. package/packages/datadog-instrumentations/src/mariadb.js +1 -2
  63. package/packages/datadog-instrumentations/src/memcached.js +1 -1
  64. package/packages/datadog-instrumentations/src/mongodb-core.js +1 -1
  65. package/packages/datadog-instrumentations/src/mongodb.js +1 -1
  66. package/packages/datadog-instrumentations/src/mongoose.js +1 -1
  67. package/packages/datadog-instrumentations/src/mquery.js +1 -1
  68. package/packages/datadog-instrumentations/src/mysql.js +1 -1
  69. package/packages/datadog-instrumentations/src/mysql2.js +1 -1
  70. package/packages/datadog-instrumentations/src/net.js +1 -1
  71. package/packages/datadog-instrumentations/src/next.js +1 -1
  72. package/packages/datadog-instrumentations/src/nyc.js +1 -1
  73. package/packages/datadog-instrumentations/src/openai.js +2 -2
  74. package/packages/datadog-instrumentations/src/opensearch.js +1 -1
  75. package/packages/datadog-instrumentations/src/oracledb.js +1 -1
  76. package/packages/datadog-instrumentations/src/otel-sdk-trace.js +1 -1
  77. package/packages/datadog-instrumentations/src/pg.js +3 -3
  78. package/packages/datadog-instrumentations/src/pino.js +1 -1
  79. package/packages/datadog-instrumentations/src/playwright.js +1 -1
  80. package/packages/datadog-instrumentations/src/prisma.js +52 -37
  81. package/packages/datadog-instrumentations/src/process.js +1 -1
  82. package/packages/datadog-instrumentations/src/promise-js.js +1 -1
  83. package/packages/datadog-instrumentations/src/promise.js +1 -1
  84. package/packages/datadog-instrumentations/src/protobufjs.js +1 -1
  85. package/packages/datadog-instrumentations/src/q.js +1 -1
  86. package/packages/datadog-instrumentations/src/redis.js +1 -1
  87. package/packages/datadog-instrumentations/src/rhea.js +1 -1
  88. package/packages/datadog-instrumentations/src/selenium.js +1 -1
  89. package/packages/datadog-instrumentations/src/sequelize.js +1 -2
  90. package/packages/datadog-instrumentations/src/sharedb.js +1 -1
  91. package/packages/datadog-instrumentations/src/tedious.js +1 -1
  92. package/packages/datadog-instrumentations/src/undici.js +4 -4
  93. package/packages/datadog-instrumentations/src/url.js +1 -1
  94. package/packages/datadog-instrumentations/src/vitest.js +1 -1
  95. package/packages/datadog-instrumentations/src/vm.js +1 -1
  96. package/packages/datadog-instrumentations/src/when.js +1 -1
  97. package/packages/datadog-instrumentations/src/winston.js +1 -1
  98. package/packages/datadog-instrumentations/src/ws.js +3 -2
  99. package/packages/datadog-plugin-amqp10/src/index.js +1 -1
  100. package/packages/datadog-plugin-amqplib/src/index.js +1 -1
  101. package/packages/datadog-plugin-anthropic/src/index.js +1 -1
  102. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +1 -1
  103. package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +4 -4
  104. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +2 -2
  105. package/packages/datadog-plugin-aws-sdk/src/util.js +3 -3
  106. package/packages/datadog-plugin-azure-event-hubs/src/index.js +1 -1
  107. package/packages/datadog-plugin-azure-event-hubs/src/producer.js +19 -5
  108. package/packages/datadog-plugin-azure-service-bus/src/index.js +1 -1
  109. package/packages/datadog-plugin-azure-service-bus/src/producer.js +4 -0
  110. package/packages/datadog-plugin-bullmq/src/consumer.js +60 -0
  111. package/packages/datadog-plugin-bullmq/src/index.js +18 -0
  112. package/packages/datadog-plugin-bullmq/src/producer.js +178 -0
  113. package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
  114. package/packages/datadog-plugin-cypress/src/plugin.js +1 -1
  115. package/packages/datadog-plugin-express/src/index.js +1 -1
  116. package/packages/datadog-plugin-fastify/src/index.js +1 -1
  117. package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +13 -3
  118. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +171 -12
  119. package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +1 -2
  120. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +160 -13
  121. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +217 -0
  122. package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +1 -1
  123. package/packages/datadog-plugin-google-genai/src/index.js +1 -1
  124. package/packages/datadog-plugin-graphql/src/resolve.js +1 -1
  125. package/packages/datadog-plugin-grpc/src/index.js +1 -1
  126. package/packages/datadog-plugin-http/src/client.js +2 -1
  127. package/packages/datadog-plugin-http/src/index.js +25 -5
  128. package/packages/datadog-plugin-http2/src/client.js +2 -2
  129. package/packages/datadog-plugin-http2/src/index.js +1 -1
  130. package/packages/datadog-plugin-kafkajs/src/index.js +1 -1
  131. package/packages/datadog-plugin-langchain/src/index.js +1 -1
  132. package/packages/datadog-plugin-moleculer/src/index.js +1 -1
  133. package/packages/datadog-plugin-mongodb-core/src/index.js +6 -2
  134. package/packages/datadog-plugin-openai/src/index.js +1 -1
  135. package/packages/datadog-plugin-openai/src/stream-helpers.js +30 -10
  136. package/packages/datadog-plugin-openai/src/tracing.js +2 -2
  137. package/packages/datadog-plugin-rhea/src/index.js +1 -1
  138. package/packages/datadog-plugin-ws/src/close.js +56 -3
  139. package/packages/datadog-plugin-ws/src/index.js +4 -0
  140. package/packages/datadog-plugin-ws/src/producer.js +39 -4
  141. package/packages/datadog-plugin-ws/src/receiver.js +39 -3
  142. package/packages/datadog-plugin-ws/src/server.js +13 -1
  143. package/packages/datadog-plugin-ws/src/util.js +107 -0
  144. package/packages/datadog-shimmer/src/shimmer.js +2 -2
  145. package/packages/dd-trace/src/aiguard/sdk.js +3 -3
  146. package/packages/dd-trace/src/appsec/graphql.js +2 -2
  147. package/packages/dd-trace/src/appsec/iast/analyzers/code-injection-analyzer.js +1 -1
  148. package/packages/dd-trace/src/appsec/iast/analyzers/command-injection-analyzer.js +1 -1
  149. package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +1 -1
  150. package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +1 -1
  151. package/packages/dd-trace/src/appsec/iast/analyzers/injection-analyzer.js +1 -1
  152. package/packages/dd-trace/src/appsec/iast/analyzers/ldap-injection-analyzer.js +1 -1
  153. package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +3 -3
  154. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +1 -1
  155. package/packages/dd-trace/src/appsec/iast/analyzers/ssrf-analyzer.js +1 -1
  156. package/packages/dd-trace/src/appsec/iast/analyzers/untrusted-deserialization-analyzer.js +1 -1
  157. package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +1 -1
  158. package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +1 -1
  159. package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +3 -2
  160. package/packages/dd-trace/src/appsec/iast/analyzers/weak-randomness-analyzer.js +1 -1
  161. package/packages/dd-trace/src/appsec/iast/iast-plugin.js +3 -3
  162. package/packages/dd-trace/src/appsec/iast/index.js +5 -5
  163. package/packages/dd-trace/src/appsec/iast/security-controls/index.js +1 -1
  164. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +1 -2
  165. package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +1 -1
  166. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -1
  167. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +10 -14
  168. package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +1 -1
  169. package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +1 -1
  170. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +3 -3
  171. package/packages/dd-trace/src/appsec/index.js +8 -8
  172. package/packages/dd-trace/src/appsec/rasp/command_injection.js +1 -1
  173. package/packages/dd-trace/src/appsec/rasp/index.js +1 -1
  174. package/packages/dd-trace/src/appsec/rasp/lfi.js +1 -1
  175. package/packages/dd-trace/src/appsec/rc-products.js +10 -0
  176. package/packages/dd-trace/src/appsec/recommended.json +230 -3
  177. package/packages/dd-trace/src/appsec/remote_config.js +177 -0
  178. package/packages/dd-trace/src/appsec/reporter.js +3 -3
  179. package/packages/dd-trace/src/appsec/rule_manager.js +37 -20
  180. package/packages/dd-trace/src/appsec/sdk/index.js +1 -1
  181. package/packages/dd-trace/src/appsec/sdk/set_user.js +1 -1
  182. package/packages/dd-trace/src/appsec/sdk/track_event.js +2 -2
  183. package/packages/dd-trace/src/appsec/sdk/user_blocking.js +2 -2
  184. package/packages/dd-trace/src/appsec/user_tracking.js +2 -2
  185. package/packages/dd-trace/src/appsec/waf/index.js +17 -3
  186. package/packages/dd-trace/src/appsec/waf/waf_manager.js +11 -0
  187. package/packages/dd-trace/src/azure_metadata.js +8 -2
  188. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +6 -0
  189. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +2 -2
  190. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +1 -1
  191. package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +1 -1
  192. package/packages/dd-trace/src/config/remote_config.js +34 -0
  193. package/packages/dd-trace/src/config.js +29 -28
  194. package/packages/dd-trace/src/config_defaults.js +2 -1
  195. package/packages/dd-trace/src/constants.js +5 -0
  196. package/packages/dd-trace/src/crashtracking/crashtracker.js +10 -1
  197. package/packages/dd-trace/src/datastreams/checkpointer.js +2 -2
  198. package/packages/dd-trace/src/datastreams/index.js +1 -1
  199. package/packages/dd-trace/src/datastreams/pathway.js +7 -7
  200. package/packages/dd-trace/src/datastreams/processor.js +2 -2
  201. package/packages/dd-trace/src/datastreams/writer.js +2 -2
  202. package/packages/dd-trace/src/debugger/config.js +1 -0
  203. package/packages/dd-trace/src/debugger/devtools_client/config.js +1 -1
  204. package/packages/dd-trace/src/debugger/devtools_client/index.js +7 -2
  205. package/packages/dd-trace/src/debugger/devtools_client/send.js +3 -3
  206. package/packages/dd-trace/src/debugger/devtools_client/session.js +1 -1
  207. package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +5 -5
  208. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +2 -2
  209. package/packages/dd-trace/src/debugger/devtools_client/state.js +1 -1
  210. package/packages/dd-trace/src/debugger/devtools_client/status.js +2 -2
  211. package/packages/dd-trace/src/debugger/index.js +1 -1
  212. package/packages/dd-trace/src/dogstatsd.js +3 -2
  213. package/packages/dd-trace/src/encode/0.4.js +1 -1
  214. package/packages/dd-trace/src/encode/agentless-ci-visibility.js +2 -2
  215. package/packages/dd-trace/src/encode/coverage-ci-visibility.js +1 -1
  216. package/packages/dd-trace/src/encode/span-stats.js +6 -1
  217. package/packages/dd-trace/src/exporter.js +2 -2
  218. package/packages/dd-trace/src/exporters/agent/index.js +1 -1
  219. package/packages/dd-trace/src/exporters/common/agent-info-exporter.js +1 -1
  220. package/packages/dd-trace/src/exporters/common/request.js +2 -2
  221. package/packages/dd-trace/src/exporters/common/writer.js +1 -1
  222. package/packages/dd-trace/src/exporters/span-stats/index.js +1 -1
  223. package/packages/dd-trace/src/external-logger/src/index.js +1 -2
  224. package/packages/dd-trace/src/flare/index.js +1 -1
  225. package/packages/dd-trace/src/guardrails/index.js +6 -3
  226. package/packages/dd-trace/src/id.js +1 -1
  227. package/packages/dd-trace/src/index.js +1 -1
  228. package/packages/dd-trace/src/lambda/handler.js +4 -4
  229. package/packages/dd-trace/src/lambda/index.js +1 -1
  230. package/packages/dd-trace/src/lambda/runtime/patch.js +4 -4
  231. package/packages/dd-trace/src/lambda/runtime/ritm.js +1 -1
  232. package/packages/dd-trace/src/llmobs/constants/tags.js +7 -1
  233. package/packages/dd-trace/src/llmobs/index.js +8 -9
  234. package/packages/dd-trace/src/llmobs/plugins/ai/index.js +38 -7
  235. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +30 -9
  236. package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +3 -3
  237. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +2 -2
  238. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chain.js +1 -1
  239. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +1 -1
  240. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/embedding.js +1 -1
  241. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/llm.js +1 -1
  242. package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +1 -1
  243. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +16 -0
  244. package/packages/dd-trace/src/llmobs/plugins/openai/index.js +16 -1
  245. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +22 -10
  246. package/packages/dd-trace/src/llmobs/plugins/vertexai.js +1 -1
  247. package/packages/dd-trace/src/llmobs/sdk.js +15 -22
  248. package/packages/dd-trace/src/llmobs/span_processor.js +9 -13
  249. package/packages/dd-trace/src/llmobs/telemetry.js +3 -4
  250. package/packages/dd-trace/src/llmobs/writers/base.js +2 -2
  251. package/packages/dd-trace/src/llmobs/writers/spans.js +1 -2
  252. package/packages/dd-trace/src/log/index.js +1 -1
  253. package/packages/dd-trace/src/noop/proxy.js +2 -2
  254. package/packages/dd-trace/src/noop/span.js +1 -1
  255. package/packages/dd-trace/src/openfeature/index.js +2 -2
  256. package/packages/dd-trace/src/openfeature/noop.js +14 -14
  257. package/packages/dd-trace/src/openfeature/remote_config.js +31 -0
  258. package/packages/dd-trace/src/openfeature/writers/base.js +5 -5
  259. package/packages/dd-trace/src/openfeature/writers/exposures.js +9 -9
  260. package/packages/dd-trace/src/opentelemetry/context_manager.js +2 -2
  261. package/packages/dd-trace/src/opentelemetry/logs/logger.js +1 -1
  262. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +4 -4
  263. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +9 -8
  264. package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +3 -3
  265. package/packages/dd-trace/src/opentelemetry/metrics/meter.js +2 -2
  266. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +4 -4
  267. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +36 -11
  268. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +11 -10
  269. package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +1 -1
  270. package/packages/dd-trace/src/opentelemetry/span.js +2 -2
  271. package/packages/dd-trace/src/opentelemetry/tracer.js +3 -3
  272. package/packages/dd-trace/src/opentracing/propagation/text_map.js +24 -8
  273. package/packages/dd-trace/src/opentracing/span.js +3 -3
  274. package/packages/dd-trace/src/opentracing/tracer.js +5 -5
  275. package/packages/dd-trace/src/payload-tagging/index.js +6 -2
  276. package/packages/dd-trace/src/plugin_manager.js +1 -1
  277. package/packages/dd-trace/src/plugins/apollo.js +1 -1
  278. package/packages/dd-trace/src/plugins/ci_plugin.js +27 -27
  279. package/packages/dd-trace/src/plugins/database.js +1 -1
  280. package/packages/dd-trace/src/plugins/index.js +5 -1
  281. package/packages/dd-trace/src/plugins/log_plugin.js +1 -1
  282. package/packages/dd-trace/src/plugins/outbound.js +1 -1
  283. package/packages/dd-trace/src/plugins/tracing.js +1 -1
  284. package/packages/dd-trace/src/plugins/util/ci.js +1 -1
  285. package/packages/dd-trace/src/plugins/util/git.js +8 -8
  286. package/packages/dd-trace/src/plugins/util/stacktrace.js +1 -1
  287. package/packages/dd-trace/src/plugins/util/test.js +24 -24
  288. package/packages/dd-trace/src/plugins/util/user-provided-git.js +1 -1
  289. package/packages/dd-trace/src/plugins/util/web.js +8 -5
  290. package/packages/dd-trace/src/priority_sampler.js +15 -16
  291. package/packages/dd-trace/src/process-tags/index.js +31 -29
  292. package/packages/dd-trace/src/profiling/config.js +32 -21
  293. package/packages/dd-trace/src/profiling/exporter_cli.js +4 -4
  294. package/packages/dd-trace/src/profiling/exporters/agent.js +5 -5
  295. package/packages/dd-trace/src/profiling/index.js +1 -1
  296. package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
  297. package/packages/dd-trace/src/profiling/profiler.js +4 -5
  298. package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +1 -1
  299. package/packages/dd-trace/src/profiling/profilers/events.js +2 -2
  300. package/packages/dd-trace/src/profiling/profilers/wall.js +4 -4
  301. package/packages/dd-trace/src/proxy.js +12 -18
  302. package/packages/dd-trace/src/remote_config/index.js +541 -137
  303. package/packages/dd-trace/src/require-package-json.js +1 -1
  304. package/packages/dd-trace/src/ritm.js +50 -27
  305. package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +1 -1
  306. package/packages/dd-trace/src/serverless.js +16 -0
  307. package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +8 -0
  308. package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +8 -0
  309. package/packages/dd-trace/src/span_format.js +1 -1
  310. package/packages/dd-trace/src/span_processor.js +2 -2
  311. package/packages/dd-trace/src/span_stats.js +6 -4
  312. package/packages/dd-trace/src/standalone/index.js +1 -1
  313. package/packages/dd-trace/src/startup-log.js +3 -3
  314. package/packages/dd-trace/src/supported-configurations.json +3 -0
  315. package/packages/dd-trace/src/telemetry/dependencies.js +3 -3
  316. package/packages/dd-trace/src/telemetry/endpoints.js +8 -8
  317. package/packages/dd-trace/src/telemetry/logs/index.js +1 -1
  318. package/packages/dd-trace/src/telemetry/telemetry.js +11 -6
  319. package/packages/dd-trace/src/tracer.js +3 -3
  320. package/packages/dd-trace/src/tracer_metadata.js +19 -15
  321. package/packages/dd-trace/src/remote_config/manager.js +0 -368
@@ -1,6 +1,9 @@
1
1
  'use strict'
2
2
 
3
3
  const rfdc = require('../../../../vendor/dist/rfdc')({ proto: false, circles: false })
4
+ const log = require('../log')
5
+ const telemetryMetrics = require('../telemetry/metrics')
6
+ const tracerVersion = require('../../../../package.json').version
4
7
  const NoopAIGuard = require('./noop')
5
8
  const executeRequest = require('./client')
6
9
  const {
@@ -14,9 +17,6 @@ const {
14
17
  AI_GUARD_TELEMETRY_REQUESTS,
15
18
  AI_GUARD_TELEMETRY_TRUNCATED
16
19
  } = require('./tags')
17
- const log = require('../log')
18
- const telemetryMetrics = require('../telemetry/metrics')
19
- const tracerVersion = require('../../../../package.json').version
20
20
 
21
21
  const appsecMetrics = telemetryMetrics.manager.namespace('appsec')
22
22
 
@@ -1,16 +1,16 @@
1
1
  'use strict'
2
2
 
3
3
  const { storage } = require('../../../datadog-core')
4
+ const log = require('../log')
5
+ const web = require('../plugins/util/web')
4
6
  const {
5
7
  addSpecificEndpoint,
6
8
  specificBlockingTypes,
7
9
  getBlockingData,
8
10
  getBlockingAction
9
11
  } = require('./blocking')
10
- const log = require('../log')
11
12
  const waf = require('./waf')
12
13
  const addresses = require('./addresses')
13
- const web = require('../plugins/util/web')
14
14
  const {
15
15
  startGraphqlResolve,
16
16
  graphqlMiddlewareChannel,
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
3
  const { CODE_INJECTION } = require('../vulnerabilities')
4
- const StoredInjectionAnalyzer = require('./stored-injection-analyzer')
5
4
  const { INSTRUMENTED_SINK } = require('../telemetry/iast-metric')
6
5
  const { storage } = require('../../../../../datadog-core')
7
6
  const { getIastContext } = require('../iast-context')
7
+ const StoredInjectionAnalyzer = require('./stored-injection-analyzer')
8
8
 
9
9
  class CodeInjectionAnalyzer extends StoredInjectionAnalyzer {
10
10
  constructor () {
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
- const InjectionAnalyzer = require('./injection-analyzer')
3
2
  const { COMMAND_INJECTION } = require('../vulnerabilities')
3
+ const InjectionAnalyzer = require('./injection-analyzer')
4
4
 
5
5
  class CommandInjectionAnalyzer extends InjectionAnalyzer {
6
6
  constructor () {
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
- const Analyzer = require('./vulnerability-analyzer')
4
3
  const { getNodeModulesPaths } = require('../path-line')
4
+ const Analyzer = require('./vulnerability-analyzer')
5
5
 
6
6
  const EXCLUDED_PATHS = [
7
7
  // Express
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
- const Analyzer = require('./vulnerability-analyzer')
4
3
  const { getRelativePath } = require('../path-line')
4
+ const Analyzer = require('./vulnerability-analyzer')
5
5
 
6
6
  class HardcodedBaseAnalyzer extends Analyzer {
7
7
  constructor (type, allRules = [], valueOnlyRules = []) {
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
- const Analyzer = require('./vulnerability-analyzer')
3
2
  const { getRanges } = require('../taint-tracking/operations')
4
3
  const { SQL_ROW_VALUE } = require('../taint-tracking/source-types')
4
+ const Analyzer = require('./vulnerability-analyzer')
5
5
 
6
6
  class InjectionAnalyzer extends Analyzer {
7
7
  _isVulnerable (value, iastContext) {
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
- const InjectionAnalyzer = require('./injection-analyzer')
3
2
  const { LDAP_INJECTION } = require('../vulnerabilities')
4
3
  const { getNodeModulesPaths } = require('../path-line')
4
+ const InjectionAnalyzer = require('./injection-analyzer')
5
5
 
6
6
  const EXCLUDED_PATHS = getNodeModulesPaths('ldapjs-promise')
7
7
 
@@ -1,16 +1,16 @@
1
1
  'use strict'
2
2
 
3
- const InjectionAnalyzer = require('./injection-analyzer')
4
3
  const { NOSQL_MONGODB_INJECTION } = require('../vulnerabilities')
5
4
  const { getRanges, addSecureMark } = require('../taint-tracking/operations')
6
5
  const { getNodeModulesPaths } = require('../path-line')
7
6
  const { storage } = require('../../../../../datadog-core')
8
7
  const { getIastContext } = require('../iast-context')
9
8
  const { HTTP_REQUEST_PARAMETER, HTTP_REQUEST_BODY } = require('../taint-tracking/source-types')
10
-
11
- const EXCLUDED_PATHS_FROM_STACK = getNodeModulesPaths('mongodb', 'mongoose', 'mquery')
12
9
  const { NOSQL_MONGODB_INJECTION_MARK } = require('../taint-tracking/secure-marks')
13
10
  const { iterateObjectStrings } = require('../utils')
11
+ const InjectionAnalyzer = require('./injection-analyzer')
12
+
13
+ const EXCLUDED_PATHS_FROM_STACK = getNodeModulesPaths('mongodb', 'mongoose', 'mquery')
14
14
 
15
15
  const SAFE_OPERATORS = new Set(['$eq', '$gt', '$gte', '$in', '$lt', '$lte', '$ne', '$nin',
16
16
  '$exists', '$type', '$mod', '$bitsAllClear', '$bitsAllSet', '$bitsAnyClear', '$bitsAnySet'])
@@ -2,10 +2,10 @@
2
2
 
3
3
  const path = require('path')
4
4
 
5
- const InjectionAnalyzer = require('./injection-analyzer')
6
5
  const { getIastContext } = require('../iast-context')
7
6
  const { storage } = require('../../../../../datadog-core')
8
7
  const { PATH_TRAVERSAL } = require('../vulnerabilities')
8
+ const InjectionAnalyzer = require('./injection-analyzer')
9
9
 
10
10
  const ignoredOperations = new Set(['dir.close', 'close'])
11
11
 
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
- const InjectionAnalyzer = require('./injection-analyzer')
4
3
  const { SSRF } = require('../vulnerabilities')
4
+ const InjectionAnalyzer = require('./injection-analyzer')
5
5
 
6
6
  class SSRFAnalyzer extends InjectionAnalyzer {
7
7
  constructor () {
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
- const InjectionAnalyzer = require('./injection-analyzer')
4
3
  const { UNTRUSTED_DESERIALIZATION } = require('../vulnerabilities')
4
+ const InjectionAnalyzer = require('./injection-analyzer')
5
5
 
6
6
  class UntrustedDeserializationAnalyzer extends InjectionAnalyzer {
7
7
  constructor () {
@@ -1,6 +1,5 @@
1
1
  'use strict'
2
2
 
3
- const InjectionAnalyzer = require('./injection-analyzer')
4
3
  const { UNVALIDATED_REDIRECT } = require('../vulnerabilities')
5
4
  const { getNodeModulesPaths } = require('../path-line')
6
5
  const { getRanges } = require('../taint-tracking/operations')
@@ -8,6 +7,7 @@ const {
8
7
  HTTP_REQUEST_BODY,
9
8
  HTTP_REQUEST_PARAMETER
10
9
  } = require('../taint-tracking/source-types')
10
+ const InjectionAnalyzer = require('./injection-analyzer')
11
11
 
12
12
  const EXCLUDED_PATHS = [
13
13
  getNodeModulesPaths('express/lib/response.js'),
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
- const Analyzer = require('./vulnerability-analyzer')
3
2
  const { WEAK_CIPHER } = require('../vulnerabilities')
3
+ const Analyzer = require('./vulnerability-analyzer')
4
4
 
5
5
  const INSECURE_CIPHERS = new Set([
6
6
  'des', 'des-cbc', 'des-cfb', 'des-cfb1', 'des-cfb8', 'des-ecb', 'des-ede', 'des-ede-cbc', 'des-ede-cfb',
@@ -3,8 +3,8 @@
3
3
  const path = require('path')
4
4
 
5
5
  const { getNodeModulesPaths } = require('../path-line')
6
- const Analyzer = require('./vulnerability-analyzer')
7
6
  const { WEAK_HASH } = require('../vulnerabilities')
7
+ const Analyzer = require('./vulnerability-analyzer')
8
8
 
9
9
  const INSECURE_HASH_ALGORITHMS = new Set([
10
10
  'md4', 'md4WithRSAEncryption', 'RSA-MD4',
@@ -23,7 +23,8 @@ const EXCLUDED_LOCATIONS = getNodeModulesPaths(
23
23
  'ws/lib/websocket-server.js',
24
24
  'google-gax/build/src/grpc.js',
25
25
  'cookie-signature/index.js',
26
- 'express-session/index.js'
26
+ 'express-session/index.js',
27
+ 'node-preload/preload-list-env.js'
27
28
  )
28
29
 
29
30
  const EXCLUDED_PATHS_FROM_STACK = [
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
- const Analyzer = require('./vulnerability-analyzer')
3
2
  const { WEAK_RANDOMNESS } = require('../vulnerabilities')
3
+ const Analyzer = require('./vulnerability-analyzer')
4
4
 
5
5
  class WeakRandomnessAnalyzer extends Analyzer {
6
6
  constructor () {
@@ -3,13 +3,13 @@
3
3
  const { channel } = require('dc-polyfill')
4
4
 
5
5
  const Plugin = require('../../plugins/plugin')
6
+ const { storage } = require('../../../../datadog-core')
7
+ const instrumentations = require('../../../../datadog-instrumentations/src/helpers/instrumentations')
8
+ const log = require('../../log')
6
9
  const iastTelemetry = require('./telemetry')
7
10
  const { getInstrumentedMetric, getExecutedMetric, TagKey, EXECUTED_SOURCE, formatTags } =
8
11
  require('./telemetry/iast-metric')
9
- const { storage } = require('../../../../datadog-core')
10
12
  const { getIastContext } = require('./iast-context')
11
- const instrumentations = require('../../../../datadog-instrumentations/src/helpers/instrumentations')
12
- const log = require('../../log')
13
13
 
14
14
  /**
15
15
  * Used by vulnerability sources and sinks to subscribe diagnostic channel events
@@ -1,11 +1,13 @@
1
1
  'use strict'
2
2
 
3
- const vulnerabilityReporter = require('./vulnerability-reporter')
4
- const { enableAllAnalyzers, disableAllAnalyzers } = require('./analyzers')
3
+ const dc = require('dc-polyfill')
5
4
  const web = require('../../plugins/util/web')
6
5
  const { storage } = require('../../../../datadog-core')
6
+ const { enable: enableFsPlugin, disable: disableFsPlugin, IAST_MODULE } = require('../rasp/fs-plugin')
7
+ const { incomingHttpRequestStart, incomingHttpRequestEnd, responseWriteHead } = require('../channels')
8
+ const vulnerabilityReporter = require('./vulnerability-reporter')
9
+ const { enableAllAnalyzers, disableAllAnalyzers } = require('./analyzers')
7
10
  const overheadController = require('./overhead-controller')
8
- const dc = require('dc-polyfill')
9
11
  const iastContextFunctions = require('./iast-context')
10
12
  const {
11
13
  enableTaintTracking,
@@ -16,9 +18,7 @@ const {
16
18
  } = require('./taint-tracking')
17
19
  const { IAST_ENABLED_TAG_KEY } = require('./tags')
18
20
  const iastTelemetry = require('./telemetry')
19
- const { enable: enableFsPlugin, disable: disableFsPlugin, IAST_MODULE } = require('../rasp/fs-plugin')
20
21
  const securityControls = require('./security-controls')
21
- const { incomingHttpRequestStart, incomingHttpRequestEnd, responseWriteHead } = require('../channels')
22
22
 
23
23
  const collectedResponseHeaders = new WeakMap()
24
24
 
@@ -5,10 +5,10 @@ const dc = require('dc-polyfill')
5
5
  const { storage } = require('../../../../../datadog-core')
6
6
  const shimmer = require('../../../../../datadog-shimmer')
7
7
  const log = require('../../../log')
8
- const { parse, SANITIZER_TYPE } = require('./parser')
9
8
  const TaintTrackingOperations = require('../taint-tracking/operations')
10
9
  const { getIastContext } = require('../iast-context')
11
10
  const { iterateObjectStrings } = require('../utils')
11
+ const { parse, SANITIZER_TYPE } = require('./parser')
12
12
 
13
13
  // esm
14
14
  const moduleLoadStartChannel = dc.channel('dd-trace:moduleLoadStart')
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ const kafkaContextPlugin = require('../context/kafka-ctx-plugin')
3
4
  const {
4
5
  createTransaction,
5
6
  removeTransaction,
@@ -11,8 +12,6 @@ const {
11
12
  const taintTrackingPlugin = require('./plugin')
12
13
  const kafkaConsumerPlugin = require('./plugins/kafka')
13
14
 
14
- const kafkaContextPlugin = require('../context/kafka-ctx-plugin')
15
-
16
15
  module.exports = {
17
16
  enableTaintTracking (config, telemetryVerbosity) {
18
17
  enableTaintOperations(telemetryVerbosity)
@@ -2,8 +2,8 @@
2
2
 
3
3
  const TaintedUtils = require('@datadog/native-iast-taint-tracking')
4
4
  const { IAST_TRANSACTION_ID } = require('../iast-context')
5
- const { HTTP_REQUEST_PARAMETER } = require('./source-types')
6
5
  const log = require('../../../log')
6
+ const { HTTP_REQUEST_PARAMETER } = require('./source-types')
7
7
 
8
8
  const SEPARATOR = '\u0000' // Unit Separator (cannot be in URL keys)
9
9
 
@@ -3,6 +3,7 @@
3
3
  const { SourceIastPlugin } = require('../iast-plugin')
4
4
  const { getIastContext } = require('../iast-context')
5
5
  const { storage } = require('../../../../../datadog-core')
6
+ const { EXECUTED_SOURCE } = require('../telemetry/iast-metric')
6
7
  const { taintObject, newTaintedString, getRanges, taintQueryWithCache } = require('./operations')
7
8
  const {
8
9
  HTTP_REQUEST_BODY,
@@ -15,7 +16,6 @@ const {
15
16
  HTTP_REQUEST_URI,
16
17
  SQL_ROW_VALUE
17
18
  } = require('./source-types')
18
- const { EXECUTED_SOURCE } = require('../telemetry/iast-metric')
19
19
 
20
20
  const REQ_HEADER_TAGS = EXECUTED_SOURCE.formatTags(HTTP_REQUEST_HEADER_VALUE, HTTP_REQUEST_HEADER_NAME)
21
21
  const REQ_URI_TAGS = EXECUTED_SOURCE.formatTags(HTTP_REQUEST_URI)
@@ -5,18 +5,18 @@
5
5
  const Module = require('module')
6
6
  const { pathToFileURL } = require('url')
7
7
  const { MessageChannel } = require('worker_threads')
8
+ const { isMainThread } = require('worker_threads')
9
+ const dc = require('dc-polyfill')
8
10
  const shimmer = require('../../../../../datadog-shimmer')
9
- const { isPrivateModule, isDdTrace } = require('./filter')
10
- const { csiMethods } = require('./csi-methods')
11
11
  const { getName } = require('../telemetry/verbosity')
12
12
  const telemetry = require('../telemetry')
13
- const { incrementTelemetryIfNeeded } = require('./rewriter-telemetry')
14
- const dc = require('dc-polyfill')
15
13
  const log = require('../../../log')
16
- const { isMainThread } = require('worker_threads')
17
- const { LOG_MESSAGE, REWRITTEN_MESSAGE } = require('./constants')
18
14
  const orchestrionConfig = require('../../../../../datadog-instrumentations/src/orchestrion-config')
19
15
  const { getEnvironmentVariable } = require('../../../config-helper')
16
+ const { LOG_MESSAGE, REWRITTEN_MESSAGE } = require('./constants')
17
+ const { incrementTelemetryIfNeeded } = require('./rewriter-telemetry')
18
+ const { csiMethods } = require('./csi-methods')
19
+ const { isPrivateModule, isDdTrace } = require('./filter')
20
20
 
21
21
  let config
22
22
  const hardcodedSecretCh = dc.channel('datadog:secrets:result')
@@ -183,14 +183,10 @@ function enableRewriter (telemetryVerbosity) {
183
183
  }
184
184
 
185
185
  function isEsmConfigured () {
186
- const hasLoaderArg = isFlagPresent('--loader') || isFlagPresent('--experimental-loader')
187
- if (hasLoaderArg) return true
188
-
189
- // Fast path for common case when enabled
190
- if (require.cache[`${process.cwd()}/node_modules/import-in-the-middle/hook.js`]) {
191
- return true
192
- }
193
- return Object.keys(require.cache).some(file => file.endsWith('import-in-the-middle/hook.js'))
186
+ return (isFlagPresent('--loader') ||
187
+ isFlagPresent('--experimental-loader') ||
188
+ isFlagPresent('dd-trace/initialize.mjs')) ||
189
+ isFlagPresent('dd-trace/register.js')
194
190
  }
195
191
 
196
192
  let enableEsmRewriter = function (telemetryVerbosity) {
@@ -6,8 +6,8 @@ const { storage } = require('../../../../../datadog-core')
6
6
  const iastContextFunctions = require('../iast-context')
7
7
  const { EXECUTED_PROPAGATION } = require('../telemetry/iast-metric')
8
8
  const { isDebugAllowed } = require('../telemetry/verbosity')
9
- const { taintObject } = require('./operations-taint-object')
10
9
  const log = require('../../../log')
10
+ const { taintObject } = require('./operations-taint-object')
11
11
 
12
12
  const mathRandomCallCh = dc.channel('datadog:random:call')
13
13
  const evalCallCh = dc.channel('datadog:eval:call')
@@ -2,8 +2,8 @@
2
2
 
3
3
  const log = require('../../../log')
4
4
  const { Namespace } = require('../../../telemetry/metrics')
5
- const { addMetricsToSpan } = require('./span-tags')
6
5
  const { IAST_TRACE_METRIC_PREFIX } = require('../tags')
6
+ const { addMetricsToSpan } = require('./span-tags')
7
7
 
8
8
  const DD_IAST_METRICS_NAMESPACE = Symbol('_dd.iast.request.metrics.namespace')
9
9
 
@@ -1,12 +1,12 @@
1
1
  'use strict'
2
2
 
3
3
  const { LRUCache } = require('../../../../../vendor/dist/lru-cache')
4
- const vulnerabilitiesFormatter = require('./vulnerabilities-formatter')
5
- const { IAST_ENABLED_TAG_KEY, IAST_JSON_TAG_KEY } = require('./tags')
6
4
  const { keepTrace } = require('../../priority_sampler')
7
5
  const { reportStackTrace, getCallsiteFrames, canReportStackTrace, STACK_TRACE_NAMESPACES } = require('../stack_trace')
8
- const { getOriginalPathAndLineFromSourceMap } = require('./taint-tracking/rewriter')
9
6
  const { ASM } = require('../../standalone/product')
7
+ const vulnerabilitiesFormatter = require('./vulnerabilities-formatter')
8
+ const { IAST_ENABLED_TAG_KEY, IAST_JSON_TAG_KEY } = require('./tags')
9
+ const { getOriginalPathAndLineFromSourceMap } = require('./taint-tracking/rewriter')
10
10
 
11
11
  const VULNERABILITIES_KEY = 'vulnerabilities'
12
12
  const VULNERABILITY_HASHES_MAX_SIZE = 1000
@@ -1,8 +1,13 @@
1
1
  'use strict'
2
2
 
3
3
  const log = require('../log')
4
+ const web = require('../plugins/util/web')
5
+ const { extractIp } = require('../plugins/util/ip_extractor')
6
+ const { HTTP_CLIENT_IP } = require('../../../../ext/tags')
7
+ const { storage } = require('../../../datadog-core')
8
+ const { isInServerlessEnvironment } = require('../serverless')
4
9
  const RuleManager = require('./rule_manager')
5
- const remoteConfig = require('../remote_config')
10
+ const appsecRemoteConfig = require('./remote_config')
6
11
  const {
7
12
  bodyParser,
8
13
  cookieParser,
@@ -31,15 +36,10 @@ const addresses = require('./addresses')
31
36
  const Reporter = require('./reporter')
32
37
  const appsecTelemetry = require('./telemetry')
33
38
  const apiSecuritySampler = require('./api_security_sampler')
34
- const web = require('../plugins/util/web')
35
- const { extractIp } = require('../plugins/util/ip_extractor')
36
- const { HTTP_CLIENT_IP } = require('../../../../ext/tags')
37
39
  const { isBlocked, block, callBlockDelegation, setTemplates, getBlockingAction } = require('./blocking')
38
40
  const UserTracking = require('./user_tracking')
39
- const { storage } = require('../../../datadog-core')
40
41
  const graphql = require('./graphql')
41
42
  const rasp = require('./rasp')
42
- const { isInServerlessEnvironment } = require('../serverless')
43
43
 
44
44
  const responseAnalyzedSet = new WeakSet()
45
45
  const storedResponseHeaders = new WeakMap()
@@ -63,7 +63,7 @@ function enable (_config) {
63
63
 
64
64
  RuleManager.loadRules(_config.appsec)
65
65
 
66
- remoteConfig.enableWafUpdate(_config.appsec)
66
+ appsecRemoteConfig.enableWafUpdate(_config.appsec)
67
67
 
68
68
  Reporter.init(_config.appsec)
69
69
 
@@ -373,7 +373,7 @@ function disable () {
373
373
  graphql.disable()
374
374
  rasp.disable()
375
375
 
376
- remoteConfig.disableWafUpdate()
376
+ appsecRemoteConfig.disableWafUpdate()
377
377
 
378
378
  apiSecuritySampler.disable()
379
379
 
@@ -1,10 +1,10 @@
1
1
  'use strict'
2
2
 
3
3
  const { childProcessExecutionTracingChannel } = require('../channels')
4
- const { RULE_TYPES, handleResult } = require('./utils')
5
4
  const { storage } = require('../../../../datadog-core')
6
5
  const addresses = require('../addresses')
7
6
  const waf = require('../waf')
7
+ const { RULE_TYPES, handleResult } = require('./utils')
8
8
 
9
9
  let config
10
10
 
@@ -8,11 +8,11 @@ const {
8
8
  routerMiddlewareError
9
9
  } = require('../channels')
10
10
  const { block, registerBlockDelegation, isBlocked } = require('../blocking')
11
+ const { updateRaspRuleMatchMetricTags } = require('../telemetry')
11
12
  const ssrf = require('./ssrf')
12
13
  const sqli = require('./sql_injection')
13
14
  const lfi = require('./lfi')
14
15
  const cmdi = require('./command_injection')
15
- const { updateRaspRuleMatchMetricTags } = require('../telemetry')
16
16
 
17
17
  const { DatadogRaspAbortError } = require('./utils')
18
18
 
@@ -4,9 +4,9 @@ const { isAbsolute } = require('path')
4
4
 
5
5
  const { fsOperationStart, incomingHttpRequestStart, expressResponseRenderStart } = require('../channels')
6
6
  const { storage } = require('../../../../datadog-core')
7
- const { enable: enableFsPlugin, disable: disableFsPlugin, RASP_MODULE } = require('./fs-plugin')
8
7
  const { FS_OPERATION_PATH } = require('../addresses')
9
8
  const waf = require('../waf')
9
+ const { enable: enableFsPlugin, disable: disableFsPlugin, RASP_MODULE } = require('./fs-plugin')
10
10
  const { RULE_TYPES, handleResult } = require('./utils')
11
11
 
12
12
  let config
@@ -0,0 +1,10 @@
1
+ 'use strict'
2
+
3
+ // Remote Config product names used by ASM/WAF.
4
+ const ASM_WAF_PRODUCTS = ['ASM', 'ASM_DD', 'ASM_DATA']
5
+ const ASM_WAF_PRODUCTS_SET = new Set(ASM_WAF_PRODUCTS)
6
+
7
+ module.exports = {
8
+ ASM_WAF_PRODUCTS,
9
+ ASM_WAF_PRODUCTS_SET
10
+ }