From 8dce2171d666c8aed70566845679e594e919ab21 Mon Sep 17 00:00:00 2001 From: James Liounis Date: Fri, 21 Aug 2026 17:00:34 -0400 Subject: [PATCH] fix(parallel_ai): register the extract route with the gateway allowlist and types Three CI failures from adding the route: - test_gateway_plus_backend_covers_full_app requires every app route to be exposed by a component; /parallel_ai/ joins the pass-through prefixes. - The route appears in the proxy OpenAPI spec, so the dashboard types gain the path and its operation. - tests/.../parallel_ai/extract/ had no __init__.py while its parent package does, so pytest named the module by basename alone and it collided with fal_ai/test_cost_calculator.py. --- gateway/routes/allowlist.py | 1 + .../llms/parallel_ai/extract/__init__.py | 0 ui/litellm-dashboard/src/lib/http/schema.d.ts | 37 +++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 tests/test_litellm/llms/parallel_ai/extract/__init__.py diff --git a/gateway/routes/allowlist.py b/gateway/routes/allowlist.py index 05baf98bbb5..b42c433c05c 100644 --- a/gateway/routes/allowlist.py +++ b/gateway/routes/allowlist.py @@ -94,6 +94,7 @@ GATEWAY_PATH_PREFIXES: tuple[str, ...] = ( "/langfuse/", "/vllm/", "/mistral/", + "/parallel_ai/", "/groq/", "/voyage/", "/cursor/", diff --git a/tests/test_litellm/llms/parallel_ai/extract/__init__.py b/tests/test_litellm/llms/parallel_ai/extract/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/ui/litellm-dashboard/src/lib/http/schema.d.ts b/ui/litellm-dashboard/src/lib/http/schema.d.ts index f823577c336..b0f0e2ea20a 100644 --- a/ui/litellm-dashboard/src/lib/http/schema.d.ts +++ b/ui/litellm-dashboard/src/lib/http/schema.d.ts @@ -9842,6 +9842,23 @@ export interface paths { patch?: never; trace?: never; }; + "/parallel_ai/v1/extract": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Parallel Ai Extract Proxy Route */ + post: operations["parallel_ai_extract_proxy_route_parallel_ai_v1_extract_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/plugin-proxy/{plugin_name}/{path}": { parameters: { query?: never; @@ -49691,6 +49708,26 @@ export interface operations { }; }; }; + parallel_ai_extract_proxy_route_parallel_ai_v1_extract_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; plugin_proxy_plugin_proxy__plugin_name___path__get: { parameters: { query?: never;