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)
| 70 | // It starts from the prepared client headers, then preserves specific |
| 71 | // headers from the SDK-built request that must not be overwritten. |
| 72 | func BuildUpstreamHeaders(sdkHeader http.Header, clientHeaders http.Header, authHeaderName string) http.Header { |
| 73 | headers := PrepareClientHeaders(clientHeaders) |
| 74 | |
| 75 | // Preserve the auth header set by the SDK from the provider configuration. |
| 76 | if v := sdkHeader.Get(authHeaderName); v != "" { |
| 77 | headers.Set(authHeaderName, v) |
| 78 | } |
| 79 | |
| 80 | // Preserve actor headers injected by aibridge as per-request SDK options. |
| 81 | for name, values := range sdkHeader { |
| 82 | if IsActorHeader(name) { |
| 83 | headers[name] = values |
| 84 | } |
| 85 | } |
| 86 | |
| 87 | return headers |
| 88 | } |