BuildUpstreamHeaders produces the header set for an upstream SDK request. It starts from the prepared client headers, then preserves specific headers from the SDK-built request that must not be overwritten.
(sdkHeader http.Header, clientHeaders http.Header, authHeaderName string)
| 56 | // It starts from the prepared client headers, then preserves specific |
| 57 | // headers from the SDK-built request that must not be overwritten. |
| 58 | func BuildUpstreamHeaders(sdkHeader http.Header, clientHeaders http.Header, authHeaderName string) http.Header { |
| 59 | headers := PrepareClientHeaders(clientHeaders) |
| 60 | |
| 61 | // Preserve the auth header set by the SDK from the provider configuration. |
| 62 | if v := sdkHeader.Get(authHeaderName); v != "" { |
| 63 | headers.Set(authHeaderName, v) |
| 64 | } |
| 65 | |
| 66 | // Preserve actor headers injected by aibridge as per-request SDK options. |
| 67 | for name, values := range sdkHeader { |
| 68 | if IsActorHeader(name) { |
| 69 | headers[name] = values |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | return headers |
| 74 | } |