debugbundle 1.1.2 → 1.1.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2233153d82d41df1121182d5e7f217f02c4b1a0c7348386505c0406e09db3e86
4
- data.tar.gz: d1b0169d3968aa5c11a2eda1751bf9612afa63109818359d48e7ab1f94384c49
3
+ metadata.gz: a7c3b7839eda588014c28fc36b2c0337a754c42b2c75db59b3a18569d0c18dad
4
+ data.tar.gz: 39dabc4e2221bebede01e96faf24f6baa517cdeddb6495f28c0c25d2c5cd41df
5
5
  SHA512:
6
- metadata.gz: 279871a9cf53e67fbbd269eaddc86c6003428993729d81c1b6586aa787780687c29b8a602716cbad9e1f33ca829564a9b936aaad282611c6594e66073d2654d1
7
- data.tar.gz: 6b3b419131b880e0073322aff591c8dabfb5343374331246504b99fb31e1deeb1e79c17769c8a2ce7ad4288b81c186e0d0cd63eaa1ac631a709d13659f0f3554
6
+ metadata.gz: 117cc67dd6b26bd728563e901abe113efbb83b3a661c572f0d29e02bdc1828d326e89f604701fe8320af2b31ba9b1c0c747d87c61dc6f6f3f9cb7bf5319cac52
7
+ data.tar.gz: ea39d1fd9cf648ba1341f9aeb72900f899bb8ab3f384f6f02c6e50ccdd51fd666cf213492933ecb53911d1c224da6a5432a6e9a0e42f36dd07c712fd870d0a0b
@@ -11,6 +11,7 @@ module DebugBundle
11
11
  frontend_breadcrumb
12
12
  request_event
13
13
  probe_event
14
+ analytics_event
14
15
  ].freeze
15
16
  BROWSER_SDK_NAME = '@debugbundle/sdk-browser'
16
17
  DEFAULT_MAX_BODY_BYTES = 262_144
@@ -192,20 +193,22 @@ module DebugBundle
192
193
  'name' => @service || service['name'].to_s,
193
194
  'environment' => @environment || service['environment'].to_s
194
195
  },
195
- 'correlation' => sanitize_correlation(correlation),
196
+ 'correlation' => sanitize_correlation(correlation, event_type),
196
197
  'payload' => payload,
197
198
  'project_token' => @project_token
198
199
  }
199
200
  end
200
201
 
201
- def sanitize_correlation(value)
202
+ def sanitize_correlation(value, event_type)
202
203
  correlation = value.is_a?(Hash) ? value : {}
203
- {
204
- 'request_id' => string_or_nil(correlation['request_id']),
205
- 'trace_id' => string_or_nil(correlation['trace_id']),
206
- 'session_id' => string_or_nil(correlation['session_id']),
207
- 'user_id_hash' => string_or_nil(correlation['user_id_hash'])
208
- }
204
+ keys = if event_type == 'analytics_event'
205
+ %w[session_id visitor_id_hash user_id_hash trace_id deploy_id]
206
+ else
207
+ %w[request_id trace_id session_id user_id_hash]
208
+ end
209
+ keys.each_with_object({}) do |key, sanitized|
210
+ sanitized[key] = string_or_nil(correlation[key]) if correlation.key?(key)
211
+ end
209
212
  end
210
213
 
211
214
  def string_or_nil(value)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DebugBundle
4
- VERSION = '1.1.2'
4
+ VERSION = '1.1.3'
5
5
  end
data/spec/relay_spec.rb CHANGED
@@ -57,6 +57,40 @@ RSpec.describe DebugBundle::Relay::Handler do
57
57
  end
58
58
  end
59
59
 
60
+ it 'preserves analytics correlation fields for analytics relay events' do
61
+ analytics_event = browser_event.merge(
62
+ 'event_type' => 'analytics_event',
63
+ 'correlation' => {
64
+ 'session_id' => 'session-analytics',
65
+ 'visitor_id_hash' => "sha256:#{'a' * 64}",
66
+ 'user_id_hash' => nil,
67
+ 'trace_id' => 'trace-analytics',
68
+ 'deploy_id' => 'deploy-analytics'
69
+ },
70
+ 'payload' => { 'kind' => 'page_view', 'privacy' => { 'mode' => 'standard', 'consent_granted' => true } }
71
+ )
72
+
73
+ Dir.mktmpdir do |directory|
74
+ handler = described_class.new(project_mode: :local_only, project_token: 'dbundle_proj_server',
75
+ local_events_dir: directory)
76
+ response = handler.handle(
77
+ method: 'POST',
78
+ headers: {
79
+ 'host' => 'app.example.com',
80
+ 'origin' => 'https://app.example.com',
81
+ 'content-type' => 'application/json'
82
+ },
83
+ body: JSON.generate('batch' => [analytics_event]),
84
+ ip_address: '127.0.0.2'
85
+ )
86
+
87
+ expect(response.status).to eq(202)
88
+ file_name = Dir.children(directory).find { |entry| entry.end_with?('.events.json') }
89
+ event = JSON.parse(File.read(File.join(directory, file_name))).fetch(0)
90
+ expect(event.fetch('correlation')).to eq(analytics_event.fetch('correlation'))
91
+ end
92
+ end
93
+
60
94
  it 'rejects wrong origins' do
61
95
  handler = described_class.new(project_mode: :local_only, project_token: 'dbundle_proj_server')
62
96
  response = handler.handle(
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debugbundle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - DebugBundle
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-06-19 00:00:00.000000000 Z
10
+ date: 2026-07-16 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: base64