dd-trace 4.47.1 → 4.49.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 (156) hide show
  1. package/LICENSE-3rdparty.csv +1 -1
  2. package/ext/types.d.ts +1 -0
  3. package/ext/types.js +1 -0
  4. package/index.d.ts +361 -0
  5. package/package.json +18 -13
  6. package/packages/datadog-code-origin/index.js +38 -0
  7. package/packages/datadog-core/index.js +2 -2
  8. package/packages/datadog-core/src/utils/src/parse-tags.js +33 -0
  9. package/packages/datadog-esbuild/index.js +4 -2
  10. package/packages/datadog-instrumentations/src/amqplib.js +65 -5
  11. package/packages/datadog-instrumentations/src/avsc.js +37 -0
  12. package/packages/datadog-instrumentations/src/azure-functions.js +48 -0
  13. package/packages/datadog-instrumentations/src/child_process.js +144 -27
  14. package/packages/datadog-instrumentations/src/express.js +37 -4
  15. package/packages/datadog-instrumentations/src/fastify.js +12 -1
  16. package/packages/datadog-instrumentations/src/fs.js +27 -7
  17. package/packages/datadog-instrumentations/src/helpers/hooks.js +6 -0
  18. package/packages/datadog-instrumentations/src/helpers/register.js +9 -0
  19. package/packages/datadog-instrumentations/src/jest.js +2 -1
  20. package/packages/datadog-instrumentations/src/kafkajs.js +123 -63
  21. package/packages/datadog-instrumentations/src/mocha/common.js +1 -1
  22. package/packages/datadog-instrumentations/src/mocha/utils.js +2 -2
  23. package/packages/datadog-instrumentations/src/multer.js +37 -0
  24. package/packages/datadog-instrumentations/src/mysql2.js +220 -1
  25. package/packages/datadog-instrumentations/src/openai.js +2 -2
  26. package/packages/datadog-instrumentations/src/protobufjs.js +127 -0
  27. package/packages/datadog-instrumentations/src/url.js +84 -0
  28. package/packages/datadog-instrumentations/src/utils/src/extract-package-and-module-path.js +7 -4
  29. package/packages/datadog-instrumentations/src/winston.js +22 -0
  30. package/packages/datadog-plugin-amqplib/src/consumer.js +4 -4
  31. package/packages/datadog-plugin-avsc/src/index.js +9 -0
  32. package/packages/datadog-plugin-avsc/src/schema_iterator.js +169 -0
  33. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +1 -0
  34. package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +1 -0
  35. package/packages/datadog-plugin-aws-sdk/src/services/s3.js +1 -0
  36. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +1 -0
  37. package/packages/datadog-plugin-azure-functions/src/index.js +77 -0
  38. package/packages/datadog-plugin-fastify/src/code_origin.js +31 -0
  39. package/packages/datadog-plugin-fastify/src/index.js +10 -12
  40. package/packages/datadog-plugin-fastify/src/tracing.js +19 -0
  41. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +8 -1
  42. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +8 -0
  43. package/packages/datadog-plugin-grpc/src/client.js +3 -0
  44. package/packages/datadog-plugin-grpc/src/server.js +3 -0
  45. package/packages/datadog-plugin-kafkajs/src/batch-consumer.js +6 -3
  46. package/packages/datadog-plugin-kafkajs/src/consumer.js +8 -4
  47. package/packages/datadog-plugin-kafkajs/src/producer.js +10 -4
  48. package/packages/datadog-plugin-mocha/src/index.js +4 -1
  49. package/packages/datadog-plugin-openai/src/index.js +9 -1015
  50. package/packages/datadog-plugin-openai/src/tracing.js +1023 -0
  51. package/packages/datadog-plugin-protobufjs/src/index.js +14 -0
  52. package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +180 -0
  53. package/packages/dd-trace/src/appsec/addresses.js +8 -1
  54. package/packages/dd-trace/src/appsec/channels.js +7 -1
  55. package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +13 -1
  56. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +8 -1
  57. package/packages/dd-trace/src/appsec/iast/iast-plugin.js +1 -1
  58. package/packages/dd-trace/src/appsec/iast/index.js +3 -0
  59. package/packages/dd-trace/src/appsec/iast/taint-tracking/csi-methods.js +1 -0
  60. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +55 -7
  61. package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +15 -0
  62. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -2
  63. package/packages/dd-trace/src/appsec/index.js +61 -43
  64. package/packages/dd-trace/src/appsec/rasp/command_injection.js +49 -0
  65. package/packages/dd-trace/src/appsec/rasp/fs-plugin.js +99 -0
  66. package/packages/dd-trace/src/appsec/rasp/index.js +27 -10
  67. package/packages/dd-trace/src/appsec/rasp/lfi.js +112 -0
  68. package/packages/dd-trace/src/appsec/rasp/sql_injection.js +24 -4
  69. package/packages/dd-trace/src/appsec/rasp/ssrf.js +4 -3
  70. package/packages/dd-trace/src/appsec/rasp/utils.js +4 -2
  71. package/packages/dd-trace/src/appsec/recommended.json +3 -7
  72. package/packages/dd-trace/src/appsec/remote_config/capabilities.js +6 -1
  73. package/packages/dd-trace/src/appsec/remote_config/index.js +10 -0
  74. package/packages/dd-trace/src/appsec/reporter.js +17 -9
  75. package/packages/dd-trace/src/appsec/sdk/track_event.js +10 -3
  76. package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +1 -1
  77. package/packages/dd-trace/src/appsec/waf/waf_manager.js +4 -0
  78. package/packages/dd-trace/src/azure_metadata.js +120 -0
  79. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +97 -0
  80. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +90 -0
  81. package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +2 -14
  82. package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +19 -1
  83. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +53 -0
  84. package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +8 -1
  85. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +43 -0
  86. package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +53 -0
  87. package/packages/dd-trace/src/config.js +86 -6
  88. package/packages/dd-trace/src/constants.js +3 -1
  89. package/packages/dd-trace/src/datastreams/pathway.js +1 -0
  90. package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +25 -17
  91. package/packages/dd-trace/src/debugger/devtools_client/config.js +2 -0
  92. package/packages/dd-trace/src/debugger/devtools_client/index.js +52 -5
  93. package/packages/dd-trace/src/debugger/devtools_client/remote_config.js +4 -4
  94. package/packages/dd-trace/src/debugger/devtools_client/send.js +29 -2
  95. package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +187 -0
  96. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +40 -0
  97. package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +252 -0
  98. package/packages/dd-trace/src/debugger/devtools_client/snapshot/symbols.js +6 -0
  99. package/packages/dd-trace/src/debugger/devtools_client/state.js +19 -4
  100. package/packages/dd-trace/src/debugger/index.js +10 -3
  101. package/packages/dd-trace/src/exporters/common/request.js +8 -34
  102. package/packages/dd-trace/src/exporters/common/url-to-http-options-polyfill.js +31 -0
  103. package/packages/dd-trace/src/llmobs/constants/tags.js +34 -0
  104. package/packages/dd-trace/src/llmobs/constants/text.js +6 -0
  105. package/packages/dd-trace/src/llmobs/constants/writers.js +13 -0
  106. package/packages/dd-trace/src/llmobs/index.js +103 -0
  107. package/packages/dd-trace/src/llmobs/noop.js +82 -0
  108. package/packages/dd-trace/src/llmobs/plugins/base.js +65 -0
  109. package/packages/dd-trace/src/llmobs/plugins/openai.js +205 -0
  110. package/packages/dd-trace/src/llmobs/sdk.js +377 -0
  111. package/packages/dd-trace/src/llmobs/span_processor.js +195 -0
  112. package/packages/dd-trace/src/llmobs/storage.js +7 -0
  113. package/packages/dd-trace/src/llmobs/tagger.js +322 -0
  114. package/packages/dd-trace/src/llmobs/util.js +176 -0
  115. package/packages/dd-trace/src/llmobs/writers/base.js +111 -0
  116. package/packages/dd-trace/src/llmobs/writers/evaluations.js +29 -0
  117. package/packages/dd-trace/src/llmobs/writers/spans/agentProxy.js +23 -0
  118. package/packages/dd-trace/src/llmobs/writers/spans/agentless.js +17 -0
  119. package/packages/dd-trace/src/llmobs/writers/spans/base.js +49 -0
  120. package/packages/dd-trace/src/noop/proxy.js +3 -0
  121. package/packages/dd-trace/src/noop/span.js +3 -0
  122. package/packages/dd-trace/src/opentelemetry/span.js +1 -1
  123. package/packages/dd-trace/src/opentelemetry/tracer.js +1 -0
  124. package/packages/dd-trace/src/opentracing/propagation/text_map.js +73 -12
  125. package/packages/dd-trace/src/opentracing/span.js +12 -0
  126. package/packages/dd-trace/src/opentracing/tracer.js +8 -1
  127. package/packages/dd-trace/src/payload-tagging/config/aws.json +71 -3
  128. package/packages/dd-trace/src/payload-tagging/index.js +1 -1
  129. package/packages/dd-trace/src/payload-tagging/jsonpath-plus.js +2094 -0
  130. package/packages/dd-trace/src/plugin_manager.js +4 -2
  131. package/packages/dd-trace/src/plugins/ci_plugin.js +2 -0
  132. package/packages/dd-trace/src/plugins/index.js +3 -0
  133. package/packages/dd-trace/src/plugins/log_plugin.js +1 -1
  134. package/packages/dd-trace/src/plugins/outbound.js +9 -0
  135. package/packages/dd-trace/src/plugins/schema.js +35 -0
  136. package/packages/dd-trace/src/plugins/util/ci.js +23 -1
  137. package/packages/dd-trace/src/plugins/util/serverless.js +7 -0
  138. package/packages/dd-trace/src/plugins/util/stacktrace.js +94 -0
  139. package/packages/dd-trace/src/plugins/util/tags.js +7 -0
  140. package/packages/dd-trace/src/plugins/util/test.js +20 -22
  141. package/packages/dd-trace/src/plugins/util/web.js +6 -4
  142. package/packages/dd-trace/src/priority_sampler.js +16 -0
  143. package/packages/dd-trace/src/profiling/config.js +3 -1
  144. package/packages/dd-trace/src/profiling/exporters/agent.js +7 -5
  145. package/packages/dd-trace/src/profiling/profiler.js +24 -14
  146. package/packages/dd-trace/src/profiling/profilers/events.js +3 -3
  147. package/packages/dd-trace/src/profiling/profilers/wall.js +95 -66
  148. package/packages/dd-trace/src/proxy.js +20 -1
  149. package/packages/dd-trace/src/service-naming/schemas/v0/index.js +2 -1
  150. package/packages/dd-trace/src/service-naming/schemas/v0/serverless.js +12 -0
  151. package/packages/dd-trace/src/service-naming/schemas/v1/index.js +2 -1
  152. package/packages/dd-trace/src/service-naming/schemas/v1/serverless.js +12 -0
  153. package/packages/dd-trace/src/span_processor.js +5 -0
  154. package/packages/dd-trace/src/telemetry/index.js +11 -1
  155. package/packages/datadog-core/src/storage/async_resource.js +0 -108
  156. package/packages/datadog-core/src/storage/index.js +0 -5
@@ -0,0 +1,49 @@
1
+ 'use strict'
2
+
3
+ const { EVP_EVENT_SIZE_LIMIT, EVP_PAYLOAD_SIZE_LIMIT } = require('../../constants/writers')
4
+ const { DROPPED_VALUE_TEXT } = require('../../constants/text')
5
+ const { DROPPED_IO_COLLECTION_ERROR } = require('../../constants/tags')
6
+ const BaseWriter = require('../base')
7
+ const logger = require('../../../log')
8
+
9
+ class LLMObsSpanWriter extends BaseWriter {
10
+ constructor (options) {
11
+ super({
12
+ ...options,
13
+ eventType: 'span'
14
+ })
15
+ }
16
+
17
+ append (event) {
18
+ const eventSizeBytes = Buffer.from(JSON.stringify(event)).byteLength
19
+ if (eventSizeBytes > EVP_EVENT_SIZE_LIMIT) {
20
+ logger.warn(`Dropping event input/output because its size (${eventSizeBytes}) exceeds the 1MB event size limit`)
21
+ event = this._truncateSpanEvent(event)
22
+ }
23
+
24
+ if (this._bufferSize + eventSizeBytes > EVP_PAYLOAD_SIZE_LIMIT) {
25
+ logger.debug('Flusing queue because queing next event will exceed EvP payload limit')
26
+ this.flush()
27
+ }
28
+
29
+ super.append(event, eventSizeBytes)
30
+ }
31
+
32
+ makePayload (events) {
33
+ return {
34
+ '_dd.stage': 'raw',
35
+ event_type: this._eventType,
36
+ spans: events
37
+ }
38
+ }
39
+
40
+ _truncateSpanEvent (event) {
41
+ event.meta.input = { value: DROPPED_VALUE_TEXT }
42
+ event.meta.output = { value: DROPPED_VALUE_TEXT }
43
+
44
+ event.collection_errors = [DROPPED_IO_COLLECTION_ERROR]
45
+ return event
46
+ }
47
+ }
48
+
49
+ module.exports = LLMObsSpanWriter
@@ -3,16 +3,19 @@
3
3
  const NoopTracer = require('./tracer')
4
4
  const NoopAppsecSdk = require('../appsec/sdk/noop')
5
5
  const NoopDogStatsDClient = require('./dogstatsd')
6
+ const NoopLLMObsSDK = require('../llmobs/noop')
6
7
 
7
8
  const noop = new NoopTracer()
8
9
  const noopAppsec = new NoopAppsecSdk()
9
10
  const noopDogStatsDClient = new NoopDogStatsDClient()
11
+ const noopLLMObs = new NoopLLMObsSDK(noop)
10
12
 
11
13
  class Tracer {
12
14
  constructor () {
13
15
  this._tracer = noop
14
16
  this.appsec = noopAppsec
15
17
  this.dogstatsd = noopDogStatsDClient
18
+ this.llmobs = noopLLMObs
16
19
  }
17
20
 
18
21
  init () {
@@ -16,6 +16,9 @@ class NoopSpan {
16
16
  setOperationName (name) { return this }
17
17
  setBaggageItem (key, value) { return this }
18
18
  getBaggageItem (key) {}
19
+ getAllBaggageItems () {}
20
+ removeBaggageItem (key) { return this }
21
+ removeAllBaggageItems () { return this }
19
22
  setTag (key, value) { return this }
20
23
  addTags (keyValueMap) { return this }
21
24
  addLink (link) { return this }
@@ -142,7 +142,7 @@ class Span {
142
142
  context: spanContext._ddContext,
143
143
  startTime,
144
144
  hostname: _tracer._hostname,
145
- integrationName: 'otel',
145
+ integrationName: parentTracer?._isOtelLibrary ? 'otel.library' : 'otel',
146
146
  tags: {
147
147
  [SERVICE_NAME]: _tracer._service,
148
148
  [RESOURCE_NAME]: spanName
@@ -16,6 +16,7 @@ class Tracer {
16
16
  this._tracerProvider = tracerProvider
17
17
  // Is there a reason this is public?
18
18
  this.instrumentationLibrary = library
19
+ this._isOtelLibrary = library?.name?.startsWith('@opentelemetry/instrumentation-')
19
20
  this._spanLimits = {}
20
21
  }
21
22
 
@@ -53,6 +53,8 @@ class TextMapPropagator {
53
53
  }
54
54
 
55
55
  inject (spanContext, carrier) {
56
+ if (!spanContext || !carrier) return
57
+
56
58
  this._injectBaggageItems(spanContext, carrier)
57
59
  this._injectDatadog(spanContext, carrier)
58
60
  this._injectB3MultipleHeaders(spanContext, carrier)
@@ -107,10 +109,35 @@ class TextMapPropagator {
107
109
  }
108
110
  }
109
111
 
112
+ _encodeOtelBaggageKey (key) {
113
+ let encoded = encodeURIComponent(key)
114
+ encoded = encoded.replaceAll('(', '%28')
115
+ encoded = encoded.replaceAll(')', '%29')
116
+ return encoded
117
+ }
118
+
110
119
  _injectBaggageItems (spanContext, carrier) {
111
- spanContext._baggageItems && Object.keys(spanContext._baggageItems).forEach(key => {
112
- carrier[baggagePrefix + key] = String(spanContext._baggageItems[key])
113
- })
120
+ if (this._config.legacyBaggageEnabled) {
121
+ spanContext._baggageItems && Object.keys(spanContext._baggageItems).forEach(key => {
122
+ carrier[baggagePrefix + key] = String(spanContext._baggageItems[key])
123
+ })
124
+ }
125
+ if (this._hasPropagationStyle('inject', 'baggage')) {
126
+ let baggage = ''
127
+ let itemCounter = 0
128
+ let byteCounter = 0
129
+
130
+ for (const [key, value] of Object.entries(spanContext._baggageItems)) {
131
+ const item = `${this._encodeOtelBaggageKey(String(key).trim())}=${encodeURIComponent(String(value).trim())},`
132
+ itemCounter += 1
133
+ byteCounter += item.length
134
+ if (itemCounter > this._config.baggageMaxItems || byteCounter > this._config.baggageMaxBytes) break
135
+ baggage += item
136
+ }
137
+
138
+ baggage = baggage.slice(0, baggage.length - 1)
139
+ if (baggage) carrier.baggage = baggage
140
+ }
114
141
  }
115
142
 
116
143
  _injectTags (spanContext, carrier) {
@@ -299,6 +326,11 @@ class TextMapPropagator {
299
326
  default:
300
327
  log.warn(`Unknown propagation style: ${extractor}`)
301
328
  }
329
+
330
+ if (this._config.tracePropagationStyle.extract.includes('baggage') && carrier.baggage) {
331
+ spanContext = spanContext || new DatadogSpanContext()
332
+ this._extractBaggageItems(carrier, spanContext)
333
+ }
302
334
  }
303
335
 
304
336
  return spanContext || this._extractSqsdContext(carrier)
@@ -310,7 +342,7 @@ class TextMapPropagator {
310
342
  if (!spanContext) return spanContext
311
343
 
312
344
  this._extractOrigin(carrier, spanContext)
313
- this._extractBaggageItems(carrier, spanContext)
345
+ this._extractLegacyBaggageItems(carrier, spanContext)
314
346
  this._extractSamplingPriority(carrier, spanContext)
315
347
  this._extractTags(carrier, spanContext)
316
348
 
@@ -383,7 +415,7 @@ class TextMapPropagator {
383
415
  return null
384
416
  }
385
417
  const matches = headerValue.trim().match(traceparentExpr)
386
- if (matches.length) {
418
+ if (matches?.length) {
387
419
  const [version, traceId, spanId, flags, tail] = matches.slice(1)
388
420
  const traceparent = { version }
389
421
  const tracestate = TraceState.fromString(carrier.tracestate)
@@ -444,7 +476,7 @@ class TextMapPropagator {
444
476
  }
445
477
  })
446
478
 
447
- this._extractBaggageItems(carrier, spanContext)
479
+ this._extractLegacyBaggageItems(carrier, spanContext)
448
480
  return spanContext
449
481
  }
450
482
  return null
@@ -528,14 +560,43 @@ class TextMapPropagator {
528
560
  }
529
561
  }
530
562
 
531
- _extractBaggageItems (carrier, spanContext) {
532
- Object.keys(carrier).forEach(key => {
533
- const match = key.match(baggageExpr)
563
+ _decodeOtelBaggageKey (key) {
564
+ let decoded = decodeURIComponent(key)
565
+ decoded = decoded.replaceAll('%28', '(')
566
+ decoded = decoded.replaceAll('%29', ')')
567
+ return decoded
568
+ }
534
569
 
535
- if (match) {
536
- spanContext._baggageItems[match[1]] = carrier[key]
570
+ _extractLegacyBaggageItems (carrier, spanContext) {
571
+ if (this._config.legacyBaggageEnabled) {
572
+ Object.keys(carrier).forEach(key => {
573
+ const match = key.match(baggageExpr)
574
+
575
+ if (match) {
576
+ spanContext._baggageItems[match[1]] = carrier[key]
577
+ }
578
+ })
579
+ }
580
+ }
581
+
582
+ _extractBaggageItems (carrier, spanContext) {
583
+ const baggages = carrier.baggage.split(',')
584
+ for (const keyValue of baggages) {
585
+ if (!keyValue.includes('=')) {
586
+ spanContext._baggageItems = {}
587
+ return
537
588
  }
538
- })
589
+ let [key, value] = keyValue.split('=')
590
+ key = this._decodeOtelBaggageKey(key.trim())
591
+ value = decodeURIComponent(value.trim())
592
+ if (!key || !value) {
593
+ spanContext._baggageItems = {}
594
+ return
595
+ }
596
+ // the current code assumes precedence of ot-baggage- (legacy opentracing baggage) over baggage
597
+ if (key in spanContext._baggageItems) return
598
+ spanContext._baggageItems[key] = value
599
+ }
539
600
  }
540
601
 
541
602
  _extractSamplingPriority (carrier, spanContext) {
@@ -145,6 +145,18 @@ class DatadogSpan {
145
145
  return this._spanContext._baggageItems[key]
146
146
  }
147
147
 
148
+ getAllBaggageItems () {
149
+ return JSON.stringify(this._spanContext._baggageItems)
150
+ }
151
+
152
+ removeBaggageItem (key) {
153
+ delete this._spanContext._baggageItems[key]
154
+ }
155
+
156
+ removeAllBaggageItems () {
157
+ this._spanContext._baggageItems = {}
158
+ }
159
+
148
160
  setTag (key, value) {
149
161
  this._addTags({ [key]: value })
150
162
  return this
@@ -52,8 +52,15 @@ class DatadogTracer {
52
52
  ? getContext(options.childOf)
53
53
  : getParent(options.references)
54
54
 
55
+ // as per spec, allow the setting of service name through options
55
56
  const tags = {
56
- 'service.name': this._service
57
+ 'service.name': options?.tags?.service ? String(options.tags.service) : this._service
58
+ }
59
+
60
+ // As per unified service tagging spec if a span is created with a service name different from the global
61
+ // service name it will not inherit the global version value
62
+ if (options?.tags?.service && options.tags.service !== this._service) {
63
+ options.tags.version = undefined
57
64
  }
58
65
 
59
66
  const span = new Span(this, this._processor, this._prioritySampler, {
@@ -17,14 +17,82 @@
17
17
  "$.Attributes.Token",
18
18
  "$.Endpoints.*.Token",
19
19
  "$.PhoneNumber",
20
- "$.PhoneNumbers",
21
- "$.phoneNumbers",
22
20
  "$.PlatformApplication.*.PlatformCredential",
23
21
  "$.PlatformApplication.*.PlatformPrincipal",
24
- "$.Subscriptions.*.Endpoint"
22
+ "$.Subscriptions.*.Endpoint",
23
+ "$.PhoneNumbers[*].PhoneNumber",
24
+ "$.phoneNumbers[*]"
25
25
  ],
26
26
  "expand": [
27
27
  "$.MessageAttributes.*.StringValue"
28
28
  ]
29
+ },
30
+ "eventbridge": {
31
+ "request": [
32
+ "$.AuthParameters.OAuthParameters.OAuthHttpParameters.HeaderParameters[*].Value",
33
+ "$.AuthParameters.OAuthParameters.OAuthHttpParameters.QueryStringParameters[*].Value",
34
+ "$.AuthParameters.OAuthParameters.OAuthHttpParameters.BodyParameters[*].Value",
35
+ "$.AuthParameters.InvocationHttpParameters.HeaderParameters[*].Value",
36
+ "$.AuthParameters.InvocationHttpParameters.QueryStringParameters[*].Value",
37
+ "$.AuthParameters.InvocationHttpParameters.BodyParameters[*].Value",
38
+ "$.Targets[*].RedshiftDataParameters.Sql",
39
+ "$.Targets[*].RedshiftDataParameters.Sqls",
40
+ "$.Targets[*].AppSyncParameters.GraphQLOperation",
41
+ "$.AuthParameters.BasicAuthParameters.Password",
42
+ "$.AuthParameters.OAuthParameters.ClientParameters.ClientSecret",
43
+ "$.AuthParameters.ApiKeyAuthParameters.ApiKeyValue"
44
+ ],
45
+ "response": [
46
+ "$.AuthParameters.OAuthParameters.OAuthHttpParameters.HeaderParameters[*].Value",
47
+ "$.AuthParameters.OAuthParameters.OAuthHttpParameters.QueryStringParameters[*].Value",
48
+ "$.AuthParameters.OAuthParameters.OAuthHttpParameters.BodyParameters[*].Value",
49
+ "$.AuthParameters.InvocationHttpParameters.HeaderParameters[*].Value",
50
+ "$.AuthParameters.InvocationHttpParameters.QueryStringParameters[*].Value",
51
+ "$.AuthParameters.InvocationHttpParameters.BodyParameters[*].Value",
52
+ "$.Targets[*].RedshiftDataParameters.Sql",
53
+ "$.Targets[*].RedshiftDataParameters.Sqls",
54
+ "$.Targets[*].AppSyncParameters.GraphQLOperation"
55
+ ],
56
+ "expand": [
57
+ ]
58
+ },
59
+ "s3": {
60
+ "request": [
61
+ "$.SSEKMSKeyId",
62
+ "$.SSEKMSEncryptionContext",
63
+ "$.ServerSideEncryptionConfiguration.Rules[*].ApplyServerSideEncryptionByDefault.KMSMasterKeyID",
64
+ "$.InventoryConfiguration.Destination.S3BucketDestination.Encryption.SSEKMS.KeyId",
65
+ "$.SSECustomerKey",
66
+ "$.CopySourceSSECustomerKey",
67
+ "$.RestoreRequest.OutputLocation.S3.Encryption.KMSKeyId"
68
+
69
+ ],
70
+ "response": [
71
+ "$.SSEKMSKeyId",
72
+ "$.SSEKMSEncryptionContext",
73
+ "$.ServerSideEncryptionConfiguration.Rules[*].ApplyServerSideEncryptionByDefault.KMSMasterKeyID",
74
+ "$.InventoryConfiguration.Destination.S3BucketDestination.Encryption.SSEKMS.KeyId",
75
+ "$.Credentials.SecretAccessKey",
76
+ "$.Credentials.SessionToken",
77
+ "$.InventoryConfigurationList[*].Destination.S3BucketDestination.Encryption.SSEKMS.KeyId"
78
+ ],
79
+ "expand": [
80
+ ]
81
+ },
82
+ "sqs": {
83
+ "request": [
84
+ ],
85
+ "response": [
86
+ ],
87
+ "expand": [
88
+ ]
89
+ },
90
+ "kinesis": {
91
+ "request": [
92
+ ],
93
+ "response": [
94
+ ],
95
+ "expand": [
96
+ ]
29
97
  }
30
98
  }
@@ -5,7 +5,7 @@ const {
5
5
  PAYLOAD_TAG_RESPONSE_PREFIX
6
6
  } = require('../constants')
7
7
 
8
- const jsonpath = require('jsonpath-plus').JSONPath
8
+ const jsonpath = require('./jsonpath-plus.js').JSONPath
9
9
 
10
10
  const { tagsFromObject } = require('./tagging')
11
11