@@ -557,16 +557,31 @@ func (p *WebhookPublisher) Format(ctx context.Context, event *models.Event) (*ht
557557
558558 req .Header .Set ("Content-Type" , "application/json" )
559559
560- // Add default headers unless disabled
561- if ! p .disableTimestampHeader {
562- req .Header .Set (p .headerPrefix + "timestamp" , fmt .Sprintf ("%d" , now .Unix ()))
563- }
564- if ! p .disableEventIDHeader {
565- req .Header .Set (p .headerPrefix + "event-id" , event .ID )
566- }
567- if ! p .disableTopicHeader {
568- req .Header .Set (p .headerPrefix + "topic" , event .Topic )
560+ // Get merged metadata (system + event metadata) using BasePublisher
561+ metadata := p .BasePublisher .MakeMetadata (event , now )
562+
563+ // Add headers from metadata, respecting disable flags
564+ for key , value := range metadata {
565+ // Check if this specific system header should be disabled
566+ switch key {
567+ case "timestamp" :
568+ if p .disableTimestampHeader {
569+ continue
570+ }
571+ case "event-id" :
572+ if p .disableEventIDHeader {
573+ continue
574+ }
575+ case "topic" :
576+ if p .disableTopicHeader {
577+ continue
578+ }
579+ }
580+ // Add the header with the appropriate prefix
581+ req .Header .Set (p .headerPrefix + key , value )
569582 }
583+
584+ // Add signature header if not disabled
570585 if ! p .disableSignatureHeader {
571586 signatureHeader := p .sm .GenerateSignatureHeader (SignaturePayload {
572587 EventID : event .ID ,
@@ -579,11 +594,6 @@ func (p *WebhookPublisher) Format(ctx context.Context, event *models.Event) (*ht
579594 }
580595 }
581596
582- // Add metadata headers with the specified prefix
583- for key , value := range event .Metadata {
584- req .Header .Set (p .headerPrefix + strings .ToLower (key ), value )
585- }
586-
587597 return req , nil
588598}
589599
0 commit comments