Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Send DSN with SentryEnvelopeHeader #873

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dart/lib/src/sentry_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ class SentryClient {
final envelope = SentryEnvelope.fromEvent(
preparedEvent,
_options.sdk,
_options.dsn,
attachments: scope?.attachements,
);

Expand Down
9 changes: 5 additions & 4 deletions dart/lib/src/sentry_envelope.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,12 @@ class SentryEnvelope {
/// Create an [SentryEnvelope] with containing one [SentryEnvelopeItem] which holds the [SentryEvent] data.
factory SentryEnvelope.fromEvent(
SentryEvent event,
SdkVersion sdkVersion, {
SdkVersion sdkVersion,
String? dsn, {
List<SentryAttachment>? attachments,
}) {
return SentryEnvelope(
SentryEnvelopeHeader(event.eventId, sdkVersion),
SentryEnvelopeHeader(event.eventId, sdkVersion, dsn),
[
SentryEnvelopeItem.fromEvent(event),
if (attachments != null)
Expand All @@ -39,7 +40,7 @@ class SentryEnvelope {
SdkVersion sdkVersion,
) {
return SentryEnvelope(
SentryEnvelopeHeader(feedback.eventId, sdkVersion),
SentryEnvelopeHeader(feedback.eventId, sdkVersion, null),
[SentryEnvelopeItem.fromUserFeedback(feedback)],
);
}
Expand All @@ -51,7 +52,7 @@ class SentryEnvelope {
List<SentryAttachment>? attachments,
}) {
return SentryEnvelope(
SentryEnvelopeHeader(transaction.eventId, sdkVersion),
SentryEnvelopeHeader(transaction.eventId, sdkVersion, null),
[
SentryEnvelopeItem.fromTransaction(transaction),
if (attachments != null)
Expand Down
11 changes: 9 additions & 2 deletions dart/lib/src/sentry_envelope_header.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,21 @@ import 'protocol/sdk_version.dart';

/// Header containing `SentryId` and `SdkVersion`.
class SentryEnvelopeHeader {
SentryEnvelopeHeader(this.eventId, this.sdkVersion);
SentryEnvelopeHeader(this.eventId, this.sdkVersion, this.dsn);
SentryEnvelopeHeader.newEventId()
: eventId = SentryId.newId(),
sdkVersion = null;
sdkVersion = null,
dsn = null;

/// The identifier of encoded `SentryEvent`.
final SentryId? eventId;

/// The `SdkVersion` with which the envelope was send.
final SdkVersion? sdkVersion;

/// The `DSN` of the Sentry project.
final String? dsn;

/// Header encoded as JSON
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
Expand All @@ -25,6 +29,9 @@ class SentryEnvelopeHeader {
if (tempSdkVersion != null) {
json['sdk'] = tempSdkVersion.toJson();
}
if (dsn != null) {
json['dsn'] = dsn;
}
return json;
}
}
5 changes: 4 additions & 1 deletion dart/test/mocks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,10 @@ typedef EventProcessorFunction = FutureOr<SentryEvent?>
Function(SentryEvent event, {dynamic hint});

var fakeEnvelope = SentryEnvelope.fromEvent(
fakeEvent, SdkVersion(name: 'sdk1', version: '1.0.0'));
fakeEvent,
SdkVersion(name: 'sdk1', version: '1.0.0'),
fakeDsn,
);

class MockRateLimiter implements RateLimiter {
bool filterReturnsNull = false;
Expand Down
4 changes: 2 additions & 2 deletions dart/test/sentry_envelope_header_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:test/test.dart';
void main() {
group('SentryEnvelopeHeader', () {
test('toJson empty', () {
final sut = SentryEnvelopeHeader(null, null);
final sut = SentryEnvelopeHeader(null, null, null);
final expected = <String, dynamic>{};
expect(sut.toJson(), expected);
});
Expand All @@ -16,7 +16,7 @@ void main() {
name: 'fixture-sdkName',
version: 'fixture-version',
);
final sut = SentryEnvelopeHeader(eventId, sdkVersion);
final sut = SentryEnvelopeHeader(eventId, sdkVersion, null);
final expextedSkd = sdkVersion.toJson();
final expected = <String, dynamic>{
'event_id': eventId.toString(),
Expand Down
11 changes: 9 additions & 2 deletions dart/test/sentry_envelope_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ void main() {

final item = SentryEnvelopeItem(itemHeader, dataFactory);

final header = SentryEnvelopeHeader(eventId, null);
final header = SentryEnvelopeHeader(eventId, null, null);
final sut = SentryEnvelope(header, [item, item]);

final expectedHeaderJson = header.toJson();
Expand All @@ -53,7 +53,9 @@ void main() {
final sentryEvent = SentryEvent(eventId: eventId);
final sdkVersion =
SdkVersion(name: 'fixture-name', version: 'fixture-version');
final sut = SentryEnvelope.fromEvent(sentryEvent, sdkVersion);
final fakeDsn = 'https://[email protected]/1234567';
final sut =
SentryEnvelope.fromEvent(sentryEvent, sdkVersion, fakeDsn);

final expectedEnvelopeItem = SentryEnvelopeItem.fromEvent(sentryEvent);

Expand Down Expand Up @@ -111,16 +113,19 @@ void main() {
final sentryEvent = SentryEvent(eventId: eventId);
final sdkVersion =
SdkVersion(name: 'fixture-name', version: 'fixture-version');
final fakeDsn = 'https://[email protected]/1234567';

final sut = SentryEnvelope.fromEvent(
sentryEvent,
sdkVersion,
fakeDsn,
attachments: [attachment],
);

final expectedEnvelopeItem = SentryEnvelope.fromEvent(
sentryEvent,
sdkVersion,
fakeDsn,
);

final sutEnvelopeData = <int>[];
Expand All @@ -140,12 +145,14 @@ void main() {
// This is a test for https://github.com/getsentry/sentry-dart/issues/523
test('serialize with non-serializable class', () async {
final event = SentryEvent(extra: {'non-ecodable': NonEncodable()});
final fakeDsn = 'https://[email protected]/1234567';
final sut = SentryEnvelope.fromEvent(
event,
SdkVersion(
name: 'test',
version: '1',
),
fakeDsn,
);

final _ = sut.envelopeStream(SentryOptions()).map((e) => e);
Expand Down
4 changes: 3 additions & 1 deletion dart/test/sentry_envelope_vm_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ void main() {

final eventId = SentryId.fromId('3b382f22ee67491f80f7dee18016a7b1');
final sdkVersion = SdkVersion(name: 'test', version: 'version');
final header = SentryEnvelopeHeader(eventId, sdkVersion);
final header = SentryEnvelopeHeader(eventId, sdkVersion, null);
final envelope = SentryEnvelope(header, [attachmentItem]);

final envelopeData = <int>[];
Expand All @@ -51,10 +51,12 @@ void main() {
final sdkVersion = SdkVersion(name: '', version: '');
final attachment =
IoSentryAttachment.fromPath('this_path_does_not_exist.txt');
final fakeDsn = 'https://[email protected]/1234567';

final envelope = SentryEnvelope.fromEvent(
event,
sdkVersion,
fakeDsn,
attachments: [attachment],
);

Expand Down
14 changes: 9 additions & 5 deletions dart/test/transport/http_transport_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import '../mocks.dart';

void main() {
SentryEnvelope givenEnvelope() {
final filteredEnvelopeHeader = SentryEnvelopeHeader(SentryId.empty(), null);
final filteredEnvelopeHeader = SentryEnvelopeHeader(SentryId.empty(), null, null);
final filteredItemHeader =
SentryEnvelopeItemHeader(SentryItemType.event, () async {
return 2;
Expand Down Expand Up @@ -66,8 +66,9 @@ void main() {
final sut = fixture.getSut(httpMock, mockRateLimiter);

final sentryEvent = SentryEvent();
final fakeDsn = 'https://[email protected]/1234567';
final envelope =
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk);
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk, fakeDsn);
await sut.send(envelope);

final envelopeData = <int>[];
Expand All @@ -90,8 +91,9 @@ void main() {
final sut = fixture.getSut(httpMock, mockRateLimiter);

final sentryEvent = SentryEvent();
final fakeDsn = 'https://[email protected]/1234567';
final envelope =
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk);
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk, fakeDsn);
final eventId = await sut.send(envelope);

expect(eventId, SentryId.empty());
Expand All @@ -114,8 +116,9 @@ void main() {
final sut = fixture.getSut(httpMock, mockRateLimiter);

final sentryEvent = SentryEvent();
final fakeDsn = 'https://[email protected]/1234567';
final envelope =
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk);
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk, fakeDsn);
await sut.send(envelope);

expect(mockRateLimiter.envelopeToFilter?.header.eventId,
Expand All @@ -135,8 +138,9 @@ void main() {
final sut = fixture.getSut(httpMock, mockRateLimiter);

final sentryEvent = SentryEvent();
final fakeDsn = 'https://[email protected]/1234567';
final envelope =
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk);
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk, fakeDsn);
await sut.send(envelope);

expect(mockRateLimiter.errorCode, 200);
Expand Down
3 changes: 3 additions & 0 deletions dio/test/mocks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,12 @@ class FunctionEventProcessor extends EventProcessor {
typedef EventProcessorFunction = FutureOr<SentryEvent?>
Function(SentryEvent event, {dynamic hint});

final fakeDsn = 'https://[email protected]/1234567';

var fakeEnvelope = SentryEnvelope.fromEvent(
fakeEvent,
SdkVersion(name: 'sdk1', version: '1.0.0'),
fakeDsn,
);

class MockRateLimiter implements RateLimiter {
Expand Down
3 changes: 2 additions & 1 deletion flutter/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ dependencies:
sdk: flutter
flutter_web_plugins:
sdk: flutter
sentry: ^6.5.1
sentry:
path: ../dart
marandaneto marked this conversation as resolved.
Show resolved Hide resolved
package_info_plus: ^1.0.0
meta: ^1.3.0

Expand Down
9 changes: 6 additions & 3 deletions flutter/test/file_system_transport_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ void main() {
final event = SentryEvent();
final sdkVersion =
SdkVersion(name: 'fixture-sdkName', version: 'fixture-sdkVersion');
final fakeDsn = 'https://[email protected]/1234567';

final envelope = SentryEnvelope.fromEvent(event, sdkVersion);
final envelope = SentryEnvelope.fromEvent(event, sdkVersion, fakeDsn);
final sentryId = await transport.send(envelope);

expect(sentryId, sentryId);
Expand All @@ -44,8 +45,9 @@ void main() {
final event = SentryEvent();
final sdkVersion =
SdkVersion(name: 'fixture-sdkName', version: 'fixture-sdkVersion');
final fakeDsn = 'https://[email protected]/1234567';

final envelope = SentryEnvelope.fromEvent(event, sdkVersion);
final envelope = SentryEnvelope.fromEvent(event, sdkVersion, fakeDsn);
final sentryId = await transport.send(envelope);

expect(SentryId.empty(), sentryId);
Expand All @@ -63,7 +65,8 @@ void main() {
SentryEvent(message: SentryMessage('hi I am a special char ◤'));
final sdkVersion =
SdkVersion(name: 'fixture-sdkName', version: 'fixture-sdkVersion');
final envelope = SentryEnvelope.fromEvent(event, sdkVersion);
final fakeDsn = 'https://[email protected]/1234567';
final envelope = SentryEnvelope.fromEvent(event, sdkVersion, fakeDsn);
await transport.send(envelope);

final envelopeList = arguments as List;
Expand Down