22 DsnComponents ,
33 Event ,
44 EventEnvelope ,
5+ EventEnvelopeHeaders ,
56 EventItem ,
67 SdkInfo ,
78 SdkMetadata ,
@@ -10,7 +11,7 @@ import {
1011 SessionEnvelope ,
1112 SessionItem ,
1213} from '@sentry/types' ;
13- import { createBaggage , createEnvelope , dsnToString , serializeBaggage } from '@sentry/utils' ;
14+ import { BaggageObj , createBaggage , createEnvelope , dsnToString , serializeBaggage } from '@sentry/utils' ;
1415
1516/** Extract sdk info from from the API metadata */
1617function getSdkMetadataForEnvelopeHeader ( metadata ?: SdkMetadata ) : SdkInfo | undefined {
@@ -101,15 +102,29 @@ export function createEventEnvelope(
101102 // TODO: This is NOT part of the hack - DO NOT DELETE
102103 delete event . sdkProcessingMetadata ;
103104
104- const baggage = createBaggage ( { environment : event . environment , release : event . release } ) ;
105-
106- const envelopeHeaders = {
105+ let envelopeHeaders : EventEnvelopeHeaders = {
107106 event_id : event . event_id as string ,
108107 sent_at : new Date ( ) . toISOString ( ) ,
109- baggage : serializeBaggage ( baggage ) ,
110108 ...( sdkInfo && { sdk : sdkInfo } ) ,
111109 ...( ! ! tunnel && { dsn : dsnToString ( dsn ) } ) ,
112110 } ;
111+
112+ if ( eventType === 'transaction' ) {
113+ const baggage = createBaggage ( {
114+ environment : event . environment ,
115+ release : event . release ,
116+ transaction : event . transaction ,
117+ userid : event . user && event . user . id ,
118+ // TODO user.segment currently doesn't exist explicitly in interface User (just as a record key)
119+ usersegment : event . user && event . user . segment ,
120+ } as BaggageObj ) ;
121+
122+ envelopeHeaders = {
123+ ...envelopeHeaders ,
124+ baggage : serializeBaggage ( baggage ) ,
125+ } ;
126+ }
127+
113128 const eventItem : EventItem = [
114129 {
115130 type : eventType ,
0 commit comments