From 3de37df2124c7bcdabf5d78e67c370e1083a090d Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Wed, 24 Jun 2026 16:01:28 -0700 Subject: [PATCH] fix(proxy): sync rust control-plane api types --- .github/workflows/test-unit-proxy-infra.yml | 1 + ui/litellm-dashboard/src/lib/http/schema.d.ts | 75 +++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/.github/workflows/test-unit-proxy-infra.yml b/.github/workflows/test-unit-proxy-infra.yml index 2681400e8b7..2436c0498e1 100644 --- a/.github/workflows/test-unit-proxy-infra.yml +++ b/.github/workflows/test-unit-proxy-infra.yml @@ -26,6 +26,7 @@ jobs: tests/test_litellm/proxy/middleware tests/test_litellm/proxy/spend_tracking tests/test_litellm/proxy/pass_through_endpoints + tests/test_litellm/proxy/rust_control_plane tests/test_litellm/proxy/_experimental tests/test_litellm/proxy/experimental tests/test_litellm/proxy/common_utils diff --git a/ui/litellm-dashboard/src/lib/http/schema.d.ts b/ui/litellm-dashboard/src/lib/http/schema.d.ts index 3669acae67e..aa889ce16c6 100644 --- a/ui/litellm-dashboard/src/lib/http/schema.d.ts +++ b/ui/litellm-dashboard/src/lib/http/schema.d.ts @@ -17236,6 +17236,37 @@ export interface paths { patch?: never; trace?: never; }; + "/v1/rust_control_plane/authentication": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Verify Key + * @description Verify a virtual key on behalf of the Rust ai-gateway (data plane). + * + * The Rust gateway forwards the client's virtual key here; this delegates to + * the proxy's existing ``user_api_key_auth`` validation and returns the + * resolved ``UserAPIKeyAuth`` as JSON so the data plane can enforce the same + * limits the control plane would. + * + * Gated by ``require_data_plane_key`` (the dedicated data-plane secret, not + * the master key). + * + * On any auth failure the response is a 401 with a minimal body so internals + * are not leaked to the caller. + */ + post: operations["verify_key_v1_rust_control_plane_authentication_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/v1/rust_control_plane/logs": { parameters: { query?: never; @@ -32763,6 +32794,15 @@ export interface components { /** Vector Store Name */ vector_store_name?: string | null; }; + /** VerifyKeyRequest */ + VerifyKeyRequest: { + /** Api Key */ + api_key: string; + /** Model */ + model?: string | null; + /** Route */ + route: string; + }; /** WorkerRegistryEntry */ WorkerRegistryEntry: { /** Name */ @@ -54757,6 +54797,41 @@ export interface operations { }; }; }; + verify_key_v1_rust_control_plane_authentication_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["VerifyKeyRequest"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; ingest_callback_logs_v1_rust_control_plane_logs_post: { parameters: { query?: never;