Susana Ferreira
47b3846bca
feat: use coder specific header for aibridge authentication from AI proxy ( #21590 )
...
## Description
Introduces a new `X-Coder-Token` header for authenticating requests from
AI Proxy to AI Bridge. Previously, the proxy overwrote the
`Authorization` header with the Coder token, which prevented the
original authentication headers from flowing through to upstream
providers.
With this change, AI Proxy sets the Coder token in a separate header,
preserving the original `Authorization` and `X-Api-Key` headers. AI
Bridge uses this header for authentication and removes it before
forwarding requests to upstream providers. For requests that don't come
through AI Proxy, AI Bridge continues to use `Authorization` and
`X-Api-Key` for authentication.
## Changes
* Add `HeaderCoderAuth` constant and update `ExtractAuthToken` to check
headers in the following order: `X-Coder-Token` > `Authorization` >
`X-Api-Key`
* Update AI Proxy to set `X-Coder-Token` instead of overwriting
`Authorization`
* Remove `X-Coder-Token` in AI Bridge before forwarding to upstream
providers
* Add tests for header handling and token extraction priority
Related to: https://github.com/coder/internal/issues/1235
2026-01-21 19:06:19 +00:00
..
2026-01-08 15:24:11 +04:00
2025-06-20 13:16:55 -06:00
2026-01-21 19:06:19 +00:00
2026-01-21 12:48:56 +00:00
2025-10-23 15:38:49 -05:00
2024-09-18 21:47:53 +10:00
2026-01-08 15:24:11 +04:00
2026-01-12 18:19:19 -08:00
2025-12-15 13:44:44 -09:00
2026-01-15 16:37:05 +00:00
2025-10-16 01:56:43 +11:00
2026-01-08 15:24:11 +04:00
2026-01-21 13:18:43 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-08-19 10:41:33 +02:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-15 16:37:05 +00:00
2026-01-15 12:41:28 +03:00
2026-01-21 13:18:43 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-15 12:41:28 +03:00
2025-10-15 17:37:37 +00:00
2025-08-16 01:31:00 +10:00
2026-01-21 10:56:31 +00:00
2026-01-08 15:24:11 +04:00
2025-12-15 17:41:47 +00:00
2026-01-09 11:33:34 -06:00
2025-10-23 15:38:49 -05:00
2025-06-17 09:00:32 -08:00
2025-03-18 00:02:47 +01:00
2026-01-12 18:19:19 -08:00
2025-06-20 13:16:55 -06:00
2025-07-08 14:31:05 +00:00
2025-08-07 11:00:31 +10:00
2026-01-08 15:24:11 +04:00
2026-01-09 15:40:26 -07:00
2026-01-08 15:24:11 +04:00
2025-12-14 03:00:03 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-08-22 16:32:35 +10:00
2025-06-20 13:16:55 -06:00
2026-01-09 15:40:26 -07:00
2026-01-08 15:24:11 +04:00
2026-01-19 12:36:33 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-03-31 10:55:44 -04:00
2025-12-15 11:26:41 -06:00
2025-11-17 13:24:12 +00:00
2025-12-29 14:25:14 +00:00
2026-01-08 15:24:11 +04:00
2025-09-26 11:56:34 +02:00
2025-10-24 12:33:56 +01:00
2026-01-09 15:40:26 -07:00
2024-08-01 12:07:19 -05:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-10-27 17:14:16 -06:00
2026-01-08 15:24:11 +04:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2026-01-20 10:28:52 +11:00
2026-01-08 15:24:11 +04:00
2026-01-15 16:37:05 +00:00
2026-01-15 16:37:05 +00:00
2025-06-25 13:03:32 +00:00
2024-06-11 12:22:59 +10:00
2025-04-22 16:21:15 +00:00
2025-06-24 09:14:41 +01:00
2026-01-12 18:19:19 -08:00
2025-12-15 17:41:47 +00:00
2025-09-04 14:28:29 +10:00
2026-01-08 15:24:11 +04:00
2025-12-15 11:26:41 -06:00
2025-05-15 15:32:52 +01:00
2025-06-20 13:16:55 -06:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2025-08-19 10:41:33 +02:00
2025-08-19 10:41:33 +02:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2025-03-26 01:56:39 -05:00
2026-01-08 15:24:11 +04:00
2025-09-30 23:54:21 +01:00
2026-01-12 18:19:19 -08:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-15 12:41:28 +03:00
2026-01-15 12:41:28 +03:00
2026-01-15 12:41:28 +03:00
2025-07-03 18:33:47 +02:00
2026-01-15 12:41:28 +03:00
2025-10-22 15:18:42 -05:00
2024-07-25 16:07:53 -05:00
2024-08-28 13:24:28 -05:00
2025-07-15 14:55:34 +10:00
2025-07-15 14:55:34 +10:00
2025-07-28 20:41:49 -05:00
2025-10-02 09:32:40 -05:00
2025-06-24 12:19:19 +02:00
2025-07-28 15:02:26 +01:00
2025-08-21 16:03:34 -04:00
2025-08-21 16:03:34 -04:00
2025-06-20 13:16:55 -06:00
2025-10-06 13:58:37 +02:00
2026-01-08 15:24:11 +04:00
2024-07-25 16:07:53 -05:00
2026-01-12 18:19:19 -08:00
2025-09-26 11:43:32 +02:00
2025-09-26 11:43:32 +02:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2026-01-12 18:19:19 -08:00
2026-01-09 11:13:16 -06:00
2026-01-12 18:19:19 -08:00
2026-01-09 15:40:26 -07:00
2025-06-20 13:16:55 -06:00
2026-01-12 18:19:19 -08:00
2026-01-09 15:40:26 -07:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-03-27 10:03:53 +00:00
2025-03-27 10:03:53 +00:00
2026-01-12 18:19:19 -08:00
2025-06-18 14:07:53 +00:00
2026-01-19 12:36:33 +00:00
2026-01-21 13:18:43 +00:00
2026-01-19 12:36:33 +00:00
2025-12-22 10:21:39 +04:00
2025-09-03 10:38:42 +04:00
2026-01-08 15:24:11 +04:00
2025-06-20 13:16:55 -06:00
2025-09-26 11:56:34 +02:00
2026-01-08 15:24:11 +04:00
2026-01-19 12:36:33 +00:00
2025-12-15 11:26:41 -06:00
2026-01-08 15:24:11 +04:00
2026-01-14 09:47:50 -08:00
2026-01-14 09:47:50 -08:00
2025-04-16 10:37:09 -06:00
2026-01-08 15:24:11 +04:00