datadog 2.16.0 → 2.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.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +72 -1
  3. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +12 -46
  4. data/ext/datadog_profiling_native_extension/collectors_stack.c +227 -49
  5. data/ext/datadog_profiling_native_extension/collectors_stack.h +19 -3
  6. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +63 -12
  7. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +1 -0
  8. data/ext/datadog_profiling_native_extension/encoded_profile.c +22 -12
  9. data/ext/datadog_profiling_native_extension/encoded_profile.h +1 -0
  10. data/ext/datadog_profiling_native_extension/extconf.rb +7 -0
  11. data/ext/datadog_profiling_native_extension/heap_recorder.c +239 -363
  12. data/ext/datadog_profiling_native_extension/heap_recorder.h +4 -6
  13. data/ext/datadog_profiling_native_extension/http_transport.c +45 -72
  14. data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +22 -0
  15. data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +8 -5
  16. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +1 -0
  17. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +6 -3
  18. data/ext/datadog_profiling_native_extension/ruby_helpers.c +1 -13
  19. data/ext/datadog_profiling_native_extension/ruby_helpers.h +2 -10
  20. data/ext/datadog_profiling_native_extension/stack_recorder.c +156 -60
  21. data/ext/libdatadog_api/crashtracker.c +10 -3
  22. data/ext/libdatadog_api/extconf.rb +2 -2
  23. data/ext/libdatadog_api/library_config.c +54 -12
  24. data/ext/libdatadog_api/library_config.h +6 -0
  25. data/ext/libdatadog_api/macos_development.md +3 -3
  26. data/ext/libdatadog_api/process_discovery.c +2 -7
  27. data/ext/libdatadog_extconf_helpers.rb +2 -2
  28. data/lib/datadog/appsec/api_security/lru_cache.rb +56 -0
  29. data/lib/datadog/appsec/api_security/route_extractor.rb +65 -0
  30. data/lib/datadog/appsec/api_security/sampler.rb +59 -0
  31. data/lib/datadog/appsec/api_security.rb +23 -0
  32. data/lib/datadog/appsec/assets/waf_rules/recommended.json +257 -85
  33. data/lib/datadog/appsec/assets/waf_rules/strict.json +10 -78
  34. data/lib/datadog/appsec/component.rb +30 -54
  35. data/lib/datadog/appsec/configuration/settings.rb +60 -2
  36. data/lib/datadog/appsec/context.rb +6 -6
  37. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +1 -1
  38. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +27 -16
  39. data/lib/datadog/appsec/processor/rule_loader.rb +5 -6
  40. data/lib/datadog/appsec/remote.rb +15 -55
  41. data/lib/datadog/appsec/security_engine/engine.rb +194 -0
  42. data/lib/datadog/appsec/security_engine/runner.rb +10 -11
  43. data/lib/datadog/appsec.rb +4 -7
  44. data/lib/datadog/core/buffer/random.rb +18 -2
  45. data/lib/datadog/core/configuration/agent_settings.rb +52 -0
  46. data/lib/datadog/core/configuration/agent_settings_resolver.rb +4 -46
  47. data/lib/datadog/core/configuration/components.rb +31 -24
  48. data/lib/datadog/core/configuration/components_state.rb +23 -0
  49. data/lib/datadog/core/configuration/option.rb +27 -27
  50. data/lib/datadog/core/configuration/option_definition.rb +4 -4
  51. data/lib/datadog/core/configuration/options.rb +1 -1
  52. data/lib/datadog/core/configuration/settings.rb +32 -20
  53. data/lib/datadog/core/configuration/stable_config.rb +1 -2
  54. data/lib/datadog/core/configuration.rb +16 -16
  55. data/lib/datadog/core/crashtracking/component.rb +2 -1
  56. data/lib/datadog/core/crashtracking/tag_builder.rb +4 -22
  57. data/lib/datadog/core/encoding.rb +1 -1
  58. data/lib/datadog/core/environment/cgroup.rb +10 -12
  59. data/lib/datadog/core/environment/container.rb +38 -40
  60. data/lib/datadog/core/environment/ext.rb +6 -6
  61. data/lib/datadog/core/environment/identity.rb +3 -3
  62. data/lib/datadog/core/environment/platform.rb +3 -3
  63. data/lib/datadog/core/error.rb +11 -9
  64. data/lib/datadog/core/logger.rb +2 -2
  65. data/lib/datadog/core/metrics/client.rb +12 -14
  66. data/lib/datadog/core/metrics/logging.rb +5 -5
  67. data/lib/datadog/core/process_discovery/tracer_memfd.rb +15 -0
  68. data/lib/datadog/core/process_discovery.rb +5 -1
  69. data/lib/datadog/core/rate_limiter.rb +4 -2
  70. data/lib/datadog/core/remote/client.rb +32 -31
  71. data/lib/datadog/core/remote/component.rb +3 -3
  72. data/lib/datadog/core/remote/configuration/digest.rb +7 -7
  73. data/lib/datadog/core/remote/configuration/path.rb +1 -1
  74. data/lib/datadog/core/remote/configuration/repository.rb +12 -0
  75. data/lib/datadog/core/remote/transport/http/client.rb +1 -1
  76. data/lib/datadog/core/remote/transport/http/config.rb +21 -5
  77. data/lib/datadog/core/remote/transport/http/negotiation.rb +1 -1
  78. data/lib/datadog/core/runtime/metrics.rb +3 -3
  79. data/lib/datadog/core/tag_builder.rb +56 -0
  80. data/lib/datadog/core/telemetry/component.rb +39 -24
  81. data/lib/datadog/core/telemetry/emitter.rb +7 -1
  82. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +66 -0
  83. data/lib/datadog/core/telemetry/event/app_closing.rb +18 -0
  84. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +33 -0
  85. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +18 -0
  86. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +58 -0
  87. data/lib/datadog/core/telemetry/event/app_started.rb +269 -0
  88. data/lib/datadog/core/telemetry/event/base.rb +40 -0
  89. data/lib/datadog/core/telemetry/event/distributions.rb +18 -0
  90. data/lib/datadog/core/telemetry/event/generate_metrics.rb +43 -0
  91. data/lib/datadog/core/telemetry/event/log.rb +76 -0
  92. data/lib/datadog/core/telemetry/event/message_batch.rb +42 -0
  93. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +43 -0
  94. data/lib/datadog/core/telemetry/event.rb +17 -475
  95. data/lib/datadog/core/telemetry/logger.rb +5 -4
  96. data/lib/datadog/core/telemetry/logging.rb +11 -5
  97. data/lib/datadog/core/telemetry/metric.rb +3 -3
  98. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +2 -2
  99. data/lib/datadog/core/telemetry/transport/telemetry.rb +0 -1
  100. data/lib/datadog/core/telemetry/worker.rb +48 -27
  101. data/lib/datadog/core/transport/http/adapters/net.rb +17 -2
  102. data/lib/datadog/core/transport/http/adapters/test.rb +2 -1
  103. data/lib/datadog/core/transport/http/builder.rb +14 -14
  104. data/lib/datadog/core/transport/http/env.rb +8 -0
  105. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +6 -6
  106. data/lib/datadog/core/utils/duration.rb +32 -32
  107. data/lib/datadog/core/utils/forking.rb +2 -2
  108. data/lib/datadog/core/utils/network.rb +6 -6
  109. data/lib/datadog/core/utils/only_once_successful.rb +16 -5
  110. data/lib/datadog/core/utils/time.rb +10 -2
  111. data/lib/datadog/core/utils/truncation.rb +21 -0
  112. data/lib/datadog/core/utils.rb +7 -0
  113. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -1
  114. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +8 -8
  115. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +7 -7
  116. data/lib/datadog/core/worker.rb +1 -1
  117. data/lib/datadog/core/workers/async.rb +9 -10
  118. data/lib/datadog/di/instrumenter.rb +52 -2
  119. data/lib/datadog/di/probe_notification_builder.rb +31 -41
  120. data/lib/datadog/di/probe_notifier_worker.rb +9 -1
  121. data/lib/datadog/di/serializer.rb +6 -2
  122. data/lib/datadog/di/transport/http/input.rb +10 -0
  123. data/lib/datadog/di/transport/input.rb +10 -2
  124. data/lib/datadog/error_tracking/component.rb +2 -2
  125. data/lib/datadog/profiling/collectors/code_provenance.rb +18 -9
  126. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +4 -0
  127. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -0
  128. data/lib/datadog/profiling/collectors/thread_context.rb +16 -1
  129. data/lib/datadog/profiling/component.rb +7 -9
  130. data/lib/datadog/profiling/ext.rb +0 -13
  131. data/lib/datadog/profiling/flush.rb +1 -1
  132. data/lib/datadog/profiling/http_transport.rb +3 -8
  133. data/lib/datadog/profiling/profiler.rb +2 -0
  134. data/lib/datadog/profiling/scheduler.rb +10 -2
  135. data/lib/datadog/profiling/stack_recorder.rb +5 -5
  136. data/lib/datadog/profiling/tag_builder.rb +5 -41
  137. data/lib/datadog/profiling/tasks/setup.rb +2 -0
  138. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +15 -0
  139. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +19 -12
  140. data/lib/datadog/tracing/contrib/action_pack/ext.rb +2 -0
  141. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +4 -1
  142. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +33 -0
  143. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +4 -0
  144. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +2 -4
  145. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +10 -0
  146. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +5 -1
  147. data/lib/datadog/tracing/contrib/http/instrumentation.rb +1 -5
  148. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +1 -5
  149. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +1 -5
  150. data/lib/datadog/tracing/contrib/lograge/patcher.rb +4 -2
  151. data/lib/datadog/tracing/contrib/patcher.rb +5 -2
  152. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +1 -0
  153. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +5 -2
  154. data/lib/datadog/tracing/contrib/support.rb +28 -0
  155. data/lib/datadog/tracing/metadata/errors.rb +4 -4
  156. data/lib/datadog/tracing/sync_writer.rb +1 -1
  157. data/lib/datadog/tracing/trace_operation.rb +12 -4
  158. data/lib/datadog/tracing/tracer.rb +6 -2
  159. data/lib/datadog/version.rb +1 -1
  160. metadata +31 -12
  161. data/lib/datadog/appsec/assets/waf_rules/processors.json +0 -321
  162. data/lib/datadog/appsec/assets/waf_rules/scanners.json +0 -1023
  163. data/lib/datadog/appsec/processor/rule_merger.rb +0 -171
  164. data/lib/datadog/appsec/processor.rb +0 -107
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.16.0
4
+ version: 2.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-19 00:00:00.000000000 Z
11
+ date: 2025-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -50,28 +50,28 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 1.22.0.0.2
53
+ version: 1.24.1.0.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 1.22.0.0.2
60
+ version: 1.24.1.0.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: libdatadog
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 16.0.1.1.0
67
+ version: 18.1.0.1.0
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 16.0.1.1.0
74
+ version: 18.1.0.1.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: logger
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -168,14 +168,16 @@ files:
168
168
  - lib/datadog/appsec/actions_handler.rb
169
169
  - lib/datadog/appsec/actions_handler/serializable_backtrace.rb
170
170
  - lib/datadog/appsec/anonymizer.rb
171
+ - lib/datadog/appsec/api_security.rb
172
+ - lib/datadog/appsec/api_security/lru_cache.rb
173
+ - lib/datadog/appsec/api_security/route_extractor.rb
174
+ - lib/datadog/appsec/api_security/sampler.rb
171
175
  - lib/datadog/appsec/assets.rb
172
176
  - lib/datadog/appsec/assets/blocked.html
173
177
  - lib/datadog/appsec/assets/blocked.json
174
178
  - lib/datadog/appsec/assets/blocked.text
175
179
  - lib/datadog/appsec/assets/waf_rules/README.md
176
- - lib/datadog/appsec/assets/waf_rules/processors.json
177
180
  - lib/datadog/appsec/assets/waf_rules/recommended.json
178
- - lib/datadog/appsec/assets/waf_rules/scanners.json
179
181
  - lib/datadog/appsec/assets/waf_rules/strict.json
180
182
  - lib/datadog/appsec/autoload.rb
181
183
  - lib/datadog/appsec/component.rb
@@ -249,14 +251,13 @@ files:
249
251
  - lib/datadog/appsec/metrics/telemetry.rb
250
252
  - lib/datadog/appsec/monitor.rb
251
253
  - lib/datadog/appsec/monitor/gateway/watcher.rb
252
- - lib/datadog/appsec/processor.rb
253
254
  - lib/datadog/appsec/processor/rule_loader.rb
254
- - lib/datadog/appsec/processor/rule_merger.rb
255
255
  - lib/datadog/appsec/rate_limiter.rb
256
256
  - lib/datadog/appsec/remote.rb
257
257
  - lib/datadog/appsec/response.rb
258
258
  - lib/datadog/appsec/sample_rate.rb
259
259
  - lib/datadog/appsec/security_engine.rb
260
+ - lib/datadog/appsec/security_engine/engine.rb
260
261
  - lib/datadog/appsec/security_engine/result.rb
261
262
  - lib/datadog/appsec/security_engine/runner.rb
262
263
  - lib/datadog/appsec/security_event.rb
@@ -272,10 +273,12 @@ files:
272
273
  - lib/datadog/core/buffer/thread_safe.rb
273
274
  - lib/datadog/core/chunker.rb
274
275
  - lib/datadog/core/configuration.rb
276
+ - lib/datadog/core/configuration/agent_settings.rb
275
277
  - lib/datadog/core/configuration/agent_settings_resolver.rb
276
278
  - lib/datadog/core/configuration/agentless_settings_resolver.rb
277
279
  - lib/datadog/core/configuration/base.rb
278
280
  - lib/datadog/core/configuration/components.rb
281
+ - lib/datadog/core/configuration/components_state.rb
279
282
  - lib/datadog/core/configuration/ext.rb
280
283
  - lib/datadog/core/configuration/option.rb
281
284
  - lib/datadog/core/configuration/option_definition.rb
@@ -318,6 +321,7 @@ files:
318
321
  - lib/datadog/core/metrics/options.rb
319
322
  - lib/datadog/core/pin.rb
320
323
  - lib/datadog/core/process_discovery.rb
324
+ - lib/datadog/core/process_discovery/tracer_memfd.rb
321
325
  - lib/datadog/core/rate_limiter.rb
322
326
  - lib/datadog/core/remote.rb
323
327
  - lib/datadog/core/remote/client.rb
@@ -345,9 +349,22 @@ files:
345
349
  - lib/datadog/core/runtime/ext.rb
346
350
  - lib/datadog/core/runtime/metrics.rb
347
351
  - lib/datadog/core/semaphore.rb
352
+ - lib/datadog/core/tag_builder.rb
348
353
  - lib/datadog/core/telemetry/component.rb
349
354
  - lib/datadog/core/telemetry/emitter.rb
350
355
  - lib/datadog/core/telemetry/event.rb
356
+ - lib/datadog/core/telemetry/event/app_client_configuration_change.rb
357
+ - lib/datadog/core/telemetry/event/app_closing.rb
358
+ - lib/datadog/core/telemetry/event/app_dependencies_loaded.rb
359
+ - lib/datadog/core/telemetry/event/app_heartbeat.rb
360
+ - lib/datadog/core/telemetry/event/app_integrations_change.rb
361
+ - lib/datadog/core/telemetry/event/app_started.rb
362
+ - lib/datadog/core/telemetry/event/base.rb
363
+ - lib/datadog/core/telemetry/event/distributions.rb
364
+ - lib/datadog/core/telemetry/event/generate_metrics.rb
365
+ - lib/datadog/core/telemetry/event/log.rb
366
+ - lib/datadog/core/telemetry/event/message_batch.rb
367
+ - lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb
351
368
  - lib/datadog/core/telemetry/ext.rb
352
369
  - lib/datadog/core/telemetry/http/adapters/net.rb
353
370
  - lib/datadog/core/telemetry/logger.rb
@@ -391,6 +408,7 @@ files:
391
408
  - lib/datadog/core/utils/safe_dup.rb
392
409
  - lib/datadog/core/utils/sequence.rb
393
410
  - lib/datadog/core/utils/time.rb
411
+ - lib/datadog/core/utils/truncation.rb
394
412
  - lib/datadog/core/utils/url.rb
395
413
  - lib/datadog/core/vendor/multipart-post/LICENSE
396
414
  - lib/datadog/core/vendor/multipart-post/multipart.rb
@@ -889,6 +907,7 @@ files:
889
907
  - lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb
890
908
  - lib/datadog/tracing/contrib/sucker_punch/integration.rb
891
909
  - lib/datadog/tracing/contrib/sucker_punch/patcher.rb
910
+ - lib/datadog/tracing/contrib/support.rb
892
911
  - lib/datadog/tracing/contrib/trilogy/configuration/settings.rb
893
912
  - lib/datadog/tracing/contrib/trilogy/ext.rb
894
913
  - lib/datadog/tracing/contrib/trilogy/instrumentation.rb
@@ -974,8 +993,8 @@ licenses:
974
993
  - Apache-2.0
975
994
  metadata:
976
995
  allowed_push_host: https://rubygems.org
977
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.16.0/CHANGELOG.md
978
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.16.0
996
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.18.0/CHANGELOG.md
997
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.18.0
979
998
  post_install_message:
980
999
  rdoc_options: []
981
1000
  require_paths:
@@ -1,321 +0,0 @@
1
- [
2
- {
3
- "id": "http-endpoint-fingerprint",
4
- "generator": "http_endpoint_fingerprint",
5
- "conditions": [
6
- {
7
- "operator": "exists",
8
- "parameters": {
9
- "inputs": [
10
- {
11
- "address": "waf.context.event"
12
- },
13
- {
14
- "address": "server.business_logic.users.login.failure"
15
- },
16
- {
17
- "address": "server.business_logic.users.login.success"
18
- }
19
- ]
20
- }
21
- }
22
- ],
23
- "parameters": {
24
- "mappings": [
25
- {
26
- "method": [
27
- {
28
- "address": "server.request.method"
29
- }
30
- ],
31
- "uri_raw": [
32
- {
33
- "address": "server.request.uri.raw"
34
- }
35
- ],
36
- "body": [
37
- {
38
- "address": "server.request.body"
39
- }
40
- ],
41
- "query": [
42
- {
43
- "address": "server.request.query"
44
- }
45
- ],
46
- "output": "_dd.appsec.fp.http.endpoint"
47
- }
48
- ]
49
- },
50
- "evaluate": false,
51
- "output": true
52
- },
53
- {
54
- "id": "extract-content",
55
- "generator": "extract_schema",
56
- "conditions": [
57
- {
58
- "operator": "equals",
59
- "parameters": {
60
- "inputs": [
61
- {
62
- "address": "waf.context.processor",
63
- "key_path": [
64
- "extract-schema"
65
- ]
66
- }
67
- ],
68
- "type": "boolean",
69
- "value": true
70
- }
71
- }
72
- ],
73
- "parameters": {
74
- "mappings": [
75
- {
76
- "inputs": [
77
- {
78
- "address": "server.request.body"
79
- }
80
- ],
81
- "output": "_dd.appsec.s.req.body"
82
- },
83
- {
84
- "inputs": [
85
- {
86
- "address": "server.request.cookies"
87
- }
88
- ],
89
- "output": "_dd.appsec.s.req.cookies"
90
- },
91
- {
92
- "inputs": [
93
- {
94
- "address": "server.request.query"
95
- }
96
- ],
97
- "output": "_dd.appsec.s.req.query"
98
- },
99
- {
100
- "inputs": [
101
- {
102
- "address": "server.request.path_params"
103
- }
104
- ],
105
- "output": "_dd.appsec.s.req.params"
106
- },
107
- {
108
- "inputs": [
109
- {
110
- "address": "server.response.body"
111
- }
112
- ],
113
- "output": "_dd.appsec.s.res.body"
114
- },
115
- {
116
- "inputs": [
117
- {
118
- "address": "graphql.server.all_resolvers"
119
- }
120
- ],
121
- "output": "_dd.appsec.s.graphql.all_resolvers"
122
- },
123
- {
124
- "inputs": [
125
- {
126
- "address": "graphql.server.resolver"
127
- }
128
- ],
129
- "output": "_dd.appsec.s.graphql.resolver"
130
- }
131
- ],
132
- "scanners": [
133
- {
134
- "tags": {
135
- "category": "payment"
136
- }
137
- },
138
- {
139
- "tags": {
140
- "category": "pii"
141
- }
142
- }
143
- ]
144
- },
145
- "evaluate": false,
146
- "output": true
147
- },
148
- {
149
- "id": "extract-headers",
150
- "generator": "extract_schema",
151
- "conditions": [
152
- {
153
- "operator": "equals",
154
- "parameters": {
155
- "inputs": [
156
- {
157
- "address": "waf.context.processor",
158
- "key_path": [
159
- "extract-schema"
160
- ]
161
- }
162
- ],
163
- "type": "boolean",
164
- "value": true
165
- }
166
- }
167
- ],
168
- "parameters": {
169
- "mappings": [
170
- {
171
- "inputs": [
172
- {
173
- "address": "server.request.headers.no_cookies"
174
- }
175
- ],
176
- "output": "_dd.appsec.s.req.headers"
177
- },
178
- {
179
- "inputs": [
180
- {
181
- "address": "server.response.headers.no_cookies"
182
- }
183
- ],
184
- "output": "_dd.appsec.s.res.headers"
185
- }
186
- ],
187
- "scanners": [
188
- {
189
- "tags": {
190
- "category": "credentials"
191
- }
192
- },
193
- {
194
- "tags": {
195
- "category": "pii"
196
- }
197
- }
198
- ]
199
- },
200
- "evaluate": false,
201
- "output": true
202
- },
203
- {
204
- "id": "http-header-fingerprint",
205
- "generator": "http_header_fingerprint",
206
- "conditions": [
207
- {
208
- "operator": "exists",
209
- "parameters": {
210
- "inputs": [
211
- {
212
- "address": "waf.context.event"
213
- },
214
- {
215
- "address": "server.business_logic.users.login.failure"
216
- },
217
- {
218
- "address": "server.business_logic.users.login.success"
219
- }
220
- ]
221
- }
222
- }
223
- ],
224
- "parameters": {
225
- "mappings": [
226
- {
227
- "headers": [
228
- {
229
- "address": "server.request.headers.no_cookies"
230
- }
231
- ],
232
- "output": "_dd.appsec.fp.http.header"
233
- }
234
- ]
235
- },
236
- "evaluate": false,
237
- "output": true
238
- },
239
- {
240
- "id": "http-network-fingerprint",
241
- "generator": "http_network_fingerprint",
242
- "conditions": [
243
- {
244
- "operator": "exists",
245
- "parameters": {
246
- "inputs": [
247
- {
248
- "address": "waf.context.event"
249
- },
250
- {
251
- "address": "server.business_logic.users.login.failure"
252
- },
253
- {
254
- "address": "server.business_logic.users.login.success"
255
- }
256
- ]
257
- }
258
- }
259
- ],
260
- "parameters": {
261
- "mappings": [
262
- {
263
- "headers": [
264
- {
265
- "address": "server.request.headers.no_cookies"
266
- }
267
- ],
268
- "output": "_dd.appsec.fp.http.network"
269
- }
270
- ]
271
- },
272
- "evaluate": false,
273
- "output": true
274
- },
275
- {
276
- "id": "session-fingerprint",
277
- "generator": "session_fingerprint",
278
- "conditions": [
279
- {
280
- "operator": "exists",
281
- "parameters": {
282
- "inputs": [
283
- {
284
- "address": "waf.context.event"
285
- },
286
- {
287
- "address": "server.business_logic.users.login.failure"
288
- },
289
- {
290
- "address": "server.business_logic.users.login.success"
291
- }
292
- ]
293
- }
294
- }
295
- ],
296
- "parameters": {
297
- "mappings": [
298
- {
299
- "cookies": [
300
- {
301
- "address": "server.request.cookies"
302
- }
303
- ],
304
- "session_id": [
305
- {
306
- "address": "usr.session_id"
307
- }
308
- ],
309
- "user_id": [
310
- {
311
- "address": "usr.id"
312
- }
313
- ],
314
- "output": "_dd.appsec.fp.session"
315
- }
316
- ]
317
- },
318
- "evaluate": false,
319
- "output": true
320
- }
321
- ]