datadog 2.12.1 → 2.13.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 (123) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -2
  3. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +14 -13
  4. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +8 -0
  5. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +89 -0
  6. data/lib/datadog/appsec/actions_handler.rb +22 -1
  7. data/lib/datadog/appsec/anonymizer.rb +16 -0
  8. data/lib/datadog/appsec/configuration/settings.rb +62 -10
  9. data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -1
  10. data/lib/datadog/appsec/contrib/devise/configuration.rb +7 -31
  11. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +79 -0
  12. data/lib/datadog/appsec/contrib/devise/ext.rb +21 -0
  13. data/lib/datadog/appsec/contrib/devise/integration.rb +0 -1
  14. data/lib/datadog/appsec/contrib/devise/patcher.rb +36 -23
  15. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +102 -0
  16. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +69 -0
  17. data/lib/datadog/appsec/contrib/devise/{patcher/rememberable_patch.rb → patches/skip_signin_tracking_patch.rb} +2 -2
  18. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +93 -0
  19. data/lib/datadog/appsec/contrib/rack/ext.rb +34 -0
  20. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +27 -0
  21. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +3 -2
  22. data/lib/datadog/appsec/event.rb +1 -1
  23. data/lib/datadog/appsec/ext.rb +4 -2
  24. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +4 -2
  25. data/lib/datadog/appsec/instrumentation/gateway/middleware.rb +24 -0
  26. data/lib/datadog/appsec/instrumentation/gateway.rb +17 -22
  27. data/lib/datadog/appsec/monitor/gateway/watcher.rb +8 -3
  28. data/lib/datadog/appsec/processor/rule_merger.rb +2 -1
  29. data/lib/datadog/appsec/remote.rb +7 -0
  30. data/lib/datadog/appsec/security_engine/runner.rb +2 -2
  31. data/lib/datadog/appsec/utils.rb +0 -2
  32. data/lib/datadog/core/configuration/components.rb +2 -1
  33. data/lib/datadog/core/configuration/ext.rb +4 -0
  34. data/lib/datadog/core/configuration/options.rb +2 -2
  35. data/lib/datadog/core/configuration/settings.rb +53 -30
  36. data/lib/datadog/core/environment/agent_info.rb +4 -3
  37. data/lib/datadog/core/remote/component.rb +3 -6
  38. data/lib/datadog/core/remote/configuration/repository.rb +2 -1
  39. data/lib/datadog/core/remote/negotiation.rb +9 -9
  40. data/lib/datadog/core/remote/transport/config.rb +4 -3
  41. data/lib/datadog/core/remote/transport/http/client.rb +4 -3
  42. data/lib/datadog/core/remote/transport/http/config.rb +6 -32
  43. data/lib/datadog/core/remote/transport/http/negotiation.rb +6 -32
  44. data/lib/datadog/core/remote/transport/http.rb +22 -57
  45. data/lib/datadog/core/remote/transport/negotiation.rb +4 -3
  46. data/lib/datadog/core/runtime/metrics.rb +8 -1
  47. data/lib/datadog/core/telemetry/http/adapters/net.rb +1 -1
  48. data/lib/datadog/core/transport/http/api/instance.rb +17 -0
  49. data/lib/datadog/core/transport/http/api/spec.rb +17 -0
  50. data/lib/datadog/core/transport/http/builder.rb +5 -3
  51. data/lib/datadog/core/transport/http.rb +39 -2
  52. data/lib/datadog/di/component.rb +0 -2
  53. data/lib/datadog/di/probe_notifier_worker.rb +16 -16
  54. data/lib/datadog/di/transport/diagnostics.rb +4 -3
  55. data/lib/datadog/di/transport/http/api.rb +2 -12
  56. data/lib/datadog/di/transport/http/client.rb +4 -3
  57. data/lib/datadog/di/transport/http/diagnostics.rb +7 -33
  58. data/lib/datadog/di/transport/http/input.rb +7 -33
  59. data/lib/datadog/di/transport/http.rb +14 -56
  60. data/lib/datadog/di/transport/input.rb +4 -3
  61. data/lib/datadog/di/utils.rb +5 -0
  62. data/lib/datadog/kit/appsec/events.rb +9 -0
  63. data/lib/datadog/kit/identity.rb +5 -1
  64. data/lib/datadog/opentelemetry/api/baggage.rb +90 -0
  65. data/lib/datadog/opentelemetry/api/baggage.rbs +26 -0
  66. data/lib/datadog/opentelemetry/api/context.rb +16 -2
  67. data/lib/datadog/opentelemetry/sdk/trace/span.rb +1 -1
  68. data/lib/datadog/opentelemetry.rb +2 -1
  69. data/lib/datadog/profiling/collectors/thread_context.rb +1 -1
  70. data/lib/datadog/profiling.rb +5 -2
  71. data/lib/datadog/tracing/component.rb +15 -12
  72. data/lib/datadog/tracing/configuration/ext.rb +7 -1
  73. data/lib/datadog/tracing/configuration/settings.rb +18 -2
  74. data/lib/datadog/tracing/context_provider.rb +1 -1
  75. data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -1
  76. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -5
  77. data/lib/datadog/tracing/contrib/excon/middleware.rb +5 -3
  78. data/lib/datadog/tracing/contrib/faraday/middleware.rb +5 -3
  79. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -1
  80. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +3 -0
  81. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +0 -15
  82. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +4 -1
  83. data/lib/datadog/tracing/contrib/http/instrumentation.rb +5 -5
  84. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +5 -11
  85. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +6 -10
  86. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -3
  87. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +6 -1
  88. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +3 -0
  89. data/lib/datadog/tracing/correlation.rb +9 -2
  90. data/lib/datadog/tracing/distributed/baggage.rb +131 -0
  91. data/lib/datadog/tracing/distributed/datadog.rb +2 -0
  92. data/lib/datadog/tracing/distributed/propagation.rb +25 -4
  93. data/lib/datadog/tracing/distributed/propagation_policy.rb +42 -0
  94. data/lib/datadog/tracing/metadata/ext.rb +5 -0
  95. data/lib/datadog/tracing/metadata/metastruct.rb +36 -0
  96. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +42 -0
  97. data/lib/datadog/tracing/metadata.rb +2 -0
  98. data/lib/datadog/tracing/sampling/span/rule.rb +0 -1
  99. data/lib/datadog/tracing/span.rb +10 -1
  100. data/lib/datadog/tracing/span_operation.rb +8 -2
  101. data/lib/datadog/tracing/sync_writer.rb +1 -2
  102. data/lib/datadog/tracing/trace_digest.rb +9 -2
  103. data/lib/datadog/tracing/trace_operation.rb +29 -17
  104. data/lib/datadog/tracing/trace_segment.rb +6 -4
  105. data/lib/datadog/tracing/tracer.rb +38 -2
  106. data/lib/datadog/tracing/transport/http/api.rb +2 -10
  107. data/lib/datadog/tracing/transport/http/client.rb +5 -4
  108. data/lib/datadog/tracing/transport/http/traces.rb +13 -41
  109. data/lib/datadog/tracing/transport/http.rb +11 -44
  110. data/lib/datadog/tracing/transport/serializable_trace.rb +3 -1
  111. data/lib/datadog/tracing/transport/trace_formatter.rb +7 -0
  112. data/lib/datadog/tracing/transport/traces.rb +21 -9
  113. data/lib/datadog/tracing/workers/trace_writer.rb +2 -6
  114. data/lib/datadog/tracing/writer.rb +2 -6
  115. data/lib/datadog/tracing.rb +16 -3
  116. data/lib/datadog/version.rb +2 -2
  117. metadata +20 -13
  118. data/lib/datadog/appsec/contrib/devise/event.rb +0 -54
  119. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +0 -72
  120. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +0 -47
  121. data/lib/datadog/appsec/contrib/devise/resource.rb +0 -35
  122. data/lib/datadog/appsec/contrib/devise/tracking.rb +0 -57
  123. data/lib/datadog/appsec/utils/trace_operation.rb +0 -15
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.12.1
4
+ version: 2.13.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-03-06 00:00:00.000000000 Z
11
+ date: 2025-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.18.0.0.1
47
+ version: 1.21.0.0.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.18.0.0.1
54
+ version: 1.21.0.0.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: libdatadog
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -152,6 +152,8 @@ files:
152
152
  - lib/datadog.rb
153
153
  - lib/datadog/appsec.rb
154
154
  - lib/datadog/appsec/actions_handler.rb
155
+ - lib/datadog/appsec/actions_handler/serializable_backtrace.rb
156
+ - lib/datadog/appsec/anonymizer.rb
155
157
  - lib/datadog/appsec/assets.rb
156
158
  - lib/datadog/appsec/assets/blocked.html
157
159
  - lib/datadog/appsec/assets/blocked.json
@@ -171,15 +173,14 @@ files:
171
173
  - lib/datadog/appsec/contrib/active_record/patcher.rb
172
174
  - lib/datadog/appsec/contrib/auto_instrument.rb
173
175
  - lib/datadog/appsec/contrib/devise/configuration.rb
174
- - lib/datadog/appsec/contrib/devise/event.rb
176
+ - lib/datadog/appsec/contrib/devise/data_extractor.rb
175
177
  - lib/datadog/appsec/contrib/devise/ext.rb
176
178
  - lib/datadog/appsec/contrib/devise/integration.rb
177
179
  - lib/datadog/appsec/contrib/devise/patcher.rb
178
- - lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb
179
- - lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb
180
- - lib/datadog/appsec/contrib/devise/patcher/rememberable_patch.rb
181
- - lib/datadog/appsec/contrib/devise/resource.rb
182
- - lib/datadog/appsec/contrib/devise/tracking.rb
180
+ - lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb
181
+ - lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb
182
+ - lib/datadog/appsec/contrib/devise/patches/skip_signin_tracking_patch.rb
183
+ - lib/datadog/appsec/contrib/devise/tracking_middleware.rb
183
184
  - lib/datadog/appsec/contrib/excon/integration.rb
184
185
  - lib/datadog/appsec/contrib/excon/patcher.rb
185
186
  - lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb
@@ -226,6 +227,7 @@ files:
226
227
  - lib/datadog/appsec/instrumentation.rb
227
228
  - lib/datadog/appsec/instrumentation/gateway.rb
228
229
  - lib/datadog/appsec/instrumentation/gateway/argument.rb
230
+ - lib/datadog/appsec/instrumentation/gateway/middleware.rb
229
231
  - lib/datadog/appsec/metrics.rb
230
232
  - lib/datadog/appsec/metrics/collector.rb
231
233
  - lib/datadog/appsec/metrics/exporter.rb
@@ -246,7 +248,6 @@ files:
246
248
  - lib/datadog/appsec/utils/http.rb
247
249
  - lib/datadog/appsec/utils/http/media_range.rb
248
250
  - lib/datadog/appsec/utils/http/media_type.rb
249
- - lib/datadog/appsec/utils/trace_operation.rb
250
251
  - lib/datadog/auto_instrument.rb
251
252
  - lib/datadog/auto_instrument_base.rb
252
253
  - lib/datadog/core.rb
@@ -420,6 +421,8 @@ files:
420
421
  - lib/datadog/kit/enable_core_dumps.rb
421
422
  - lib/datadog/kit/identity.rb
422
423
  - lib/datadog/opentelemetry.rb
424
+ - lib/datadog/opentelemetry/api/baggage.rb
425
+ - lib/datadog/opentelemetry/api/baggage.rbs
423
426
  - lib/datadog/opentelemetry/api/context.rb
424
427
  - lib/datadog/opentelemetry/api/trace/span.rb
425
428
  - lib/datadog/opentelemetry/sdk/configurator.rb
@@ -863,12 +866,14 @@ files:
863
866
  - lib/datadog/tracing/diagnostics/health.rb
864
867
  - lib/datadog/tracing/distributed/b3_multi.rb
865
868
  - lib/datadog/tracing/distributed/b3_single.rb
869
+ - lib/datadog/tracing/distributed/baggage.rb
866
870
  - lib/datadog/tracing/distributed/datadog.rb
867
871
  - lib/datadog/tracing/distributed/datadog_tags_codec.rb
868
872
  - lib/datadog/tracing/distributed/fetcher.rb
869
873
  - lib/datadog/tracing/distributed/helpers.rb
870
874
  - lib/datadog/tracing/distributed/none.rb
871
875
  - lib/datadog/tracing/distributed/propagation.rb
876
+ - lib/datadog/tracing/distributed/propagation_policy.rb
872
877
  - lib/datadog/tracing/distributed/trace_context.rb
873
878
  - lib/datadog/tracing/event.rb
874
879
  - lib/datadog/tracing/flush.rb
@@ -876,6 +881,8 @@ files:
876
881
  - lib/datadog/tracing/metadata/analytics.rb
877
882
  - lib/datadog/tracing/metadata/errors.rb
878
883
  - lib/datadog/tracing/metadata/ext.rb
884
+ - lib/datadog/tracing/metadata/metastruct.rb
885
+ - lib/datadog/tracing/metadata/metastruct_tagging.rb
879
886
  - lib/datadog/tracing/metadata/tagging.rb
880
887
  - lib/datadog/tracing/pipeline.rb
881
888
  - lib/datadog/tracing/pipeline/span_filter.rb
@@ -930,8 +937,8 @@ licenses:
930
937
  - Apache-2.0
931
938
  metadata:
932
939
  allowed_push_host: https://rubygems.org
933
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.12.1/CHANGELOG.md
934
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.12.1
940
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.13.0/CHANGELOG.md
941
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.13.0
935
942
  post_install_message:
936
943
  rdoc_options: []
937
944
  require_paths:
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Datadog
4
- module AppSec
5
- module Contrib
6
- module Devise
7
- # Class to extract event information from the resource
8
- class Event
9
- UUID_REGEX = /^\h{8}-\h{4}-\h{4}-\h{4}-\h{12}$/.freeze
10
-
11
- attr_reader :user_id
12
-
13
- def initialize(resource, mode)
14
- @resource = resource
15
- @mode = mode
16
- @user_id = nil
17
- @email = nil
18
- @username = nil
19
-
20
- extract if @resource
21
- end
22
-
23
- def to_h
24
- return @event if defined?(@event)
25
-
26
- @event = {}
27
- @event[:email] = @email if @email
28
- @event[:username] = @username if @username
29
- @event
30
- end
31
-
32
- private
33
-
34
- def extract
35
- @user_id = @resource.id
36
-
37
- case @mode
38
- when AppSec::Configuration::Settings::IDENTIFICATION_AUTO_USER_INSTRUMENTATION_MODE
39
- @email = @resource.email
40
- @username = @resource.username
41
- when AppSec::Configuration::Settings::ANONYMIZATION_AUTO_USER_INSTRUMENTATION_MODE
42
- @user_id = nil unless @user_id && @user_id.to_s =~ UUID_REGEX
43
- else
44
- Datadog.logger.warn(
45
- "Invalid auto_user_instrumentation.mode: `#{@mode}`. " \
46
- "Supported modes are: #{AppSec::Configuration::Settings::AUTO_USER_INSTRUMENTATION_MODES.join(' | ')}."
47
- )
48
- end
49
- end
50
- end
51
- end
52
- end
53
- end
54
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../configuration'
4
- require_relative '../tracking'
5
- require_relative '../resource'
6
- require_relative '../event'
7
-
8
- module Datadog
9
- module AppSec
10
- module Contrib
11
- module Devise
12
- module Patcher
13
- # Hook in devise validate method
14
- module AuthenticatablePatch
15
- # rubocop:disable Metrics/MethodLength
16
- def validate(resource, &block)
17
- result = super
18
-
19
- return result unless AppSec.enabled?
20
- return result if @_datadog_appsec_skip_track_login_event
21
- return result unless Configuration.auto_user_instrumentation_enabled?
22
- return result unless AppSec.active_context
23
-
24
- devise_resource = resource ? Resource.new(resource) : nil
25
- event_information = Event.new(devise_resource, Configuration.auto_user_instrumentation_mode)
26
-
27
- if result
28
- if event_information.user_id
29
- Datadog.logger.debug { 'AppSec: User successful login event' }
30
- else
31
- Datadog.logger.debug do
32
- "AppSec: User successful login event, but can't extract user ID. Tracking empty event"
33
- end
34
- end
35
-
36
- Tracking.track_login_success(
37
- AppSec.active_context.trace,
38
- AppSec.active_context.span,
39
- user_id: event_information.user_id,
40
- **event_information.to_h
41
- )
42
-
43
- return result
44
- end
45
-
46
- user_exists = nil
47
-
48
- if resource
49
- user_exists = true
50
- Datadog.logger.debug { 'AppSec: User failed login event, but user exists' }
51
- else
52
- user_exists = false
53
- Datadog.logger.debug { 'AppSec: User failed login event and user does not exist' }
54
- end
55
-
56
- Tracking.track_login_failure(
57
- AppSec.active_context.trace,
58
- AppSec.active_context.span,
59
- user_id: event_information.user_id,
60
- user_exists: user_exists,
61
- **event_information.to_h
62
- )
63
-
64
- result
65
- end
66
- # rubocop:enable Metrics/MethodLength
67
- end
68
- end
69
- end
70
- end
71
- end
72
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../configuration'
4
- require_relative '../tracking'
5
- require_relative '../resource'
6
- require_relative '../event'
7
-
8
- module Datadog
9
- module AppSec
10
- module Contrib
11
- module Devise
12
- module Patcher
13
- # Hook in devise registration controller
14
- module RegistrationControllerPatch
15
- def create
16
- return super unless AppSec.enabled?
17
- return super unless Configuration.auto_user_instrumentation_enabled?
18
- return super unless AppSec.active_context
19
-
20
- super do |resource|
21
- if resource.persisted?
22
- devise_resource = Resource.new(resource)
23
- event_information = Event.new(devise_resource, Configuration.auto_user_instrumentation_mode)
24
-
25
- if event_information.user_id
26
- Datadog.logger.debug { 'AppSec: User signup event' }
27
- else
28
- Datadog.logger.warn { "AppSec: User signup event, but can't extract user ID. Tracking empty event" }
29
- end
30
-
31
- Tracking.track_signup(
32
- AppSec.active_context.trace,
33
- AppSec.active_context.span,
34
- user_id: event_information.user_id,
35
- **event_information.to_h
36
- )
37
- end
38
-
39
- yield resource if block_given?
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Datadog
4
- module AppSec
5
- module Contrib
6
- module Devise
7
- # Class to encpasulate extracting information from a Devise resource
8
- # Normally a devise resource would be an Active::Record instance
9
- class Resource
10
- def initialize(resource)
11
- @resource = resource
12
- end
13
-
14
- def id
15
- extract(:id) || extract(:uuid)
16
- end
17
-
18
- def email
19
- extract(:email)
20
- end
21
-
22
- def username
23
- extract(:username)
24
- end
25
-
26
- private
27
-
28
- def extract(method)
29
- @resource.send(method) if @resource.respond_to?(method)
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../../kit/identity'
4
-
5
- module Datadog
6
- module AppSec
7
- module Contrib
8
- module Devise
9
- # Internal module to track user events
10
- module Tracking
11
- LOGIN_SUCCESS_EVENT = 'users.login.success'
12
- LOGIN_FAILURE_EVENT = 'users.login.failure'
13
- SIGNUP_EVENT = 'users.signup'
14
-
15
- def self.track_login_success(trace, span, user_id:, **others)
16
- return if trace.nil? || span.nil?
17
-
18
- track(LOGIN_SUCCESS_EVENT, trace, span, **others)
19
-
20
- Kit::Identity.set_user(trace, span, id: user_id.to_s, **others) if user_id
21
- end
22
-
23
- def self.track_login_failure(trace, span, user_id:, user_exists:, **others)
24
- return if trace.nil? || span.nil?
25
-
26
- track(LOGIN_FAILURE_EVENT, trace, span, **others)
27
-
28
- span.set_tag('appsec.events.users.login.failure.usr.id', user_id) if user_id
29
- span.set_tag('appsec.events.users.login.failure.usr.exists', user_exists)
30
- end
31
-
32
- def self.track_signup(trace, span, user_id:, **others)
33
- return if trace.nil? || span.nil?
34
-
35
- track(SIGNUP_EVENT, trace, span, **others)
36
- Kit::Identity.set_user(trace, id: user_id.to_s, **others) if user_id
37
- end
38
-
39
- def self.track(event, trace, span, **others)
40
- return if trace.nil? || span.nil?
41
-
42
- span.set_tag("appsec.events.#{event}.track", 'true')
43
- span.set_tag("_dd.appsec.events.#{event}.auto.mode", Configuration.track_user_events_mode)
44
-
45
- others.each do |k, v|
46
- raise ArgumentError, 'key cannot be :track' if k.to_sym == :track
47
-
48
- span.set_tag("appsec.events.#{event}.#{k}", v) unless v.nil?
49
- end
50
-
51
- trace.keep!
52
- end
53
- end
54
- end
55
- end
56
- end
57
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Datadog
4
- module AppSec
5
- module Utils
6
- # Utility class to to AppSec-specific trace operations
7
- class TraceOperation
8
- def self.appsec_standalone_reject?(trace)
9
- Datadog.configuration.appsec.standalone.enabled &&
10
- (trace.nil? || trace.get_tag(Datadog::AppSec::Ext::TAG_DISTRIBUTED_APPSEC_EVENT) != '1')
11
- end
12
- end
13
- end
14
- end
15
- end