refactor(connectors)!: move connector routes to /v1alpha/admin/connectors#5659
Conversation
…tors Connectors are admin controlled resources. Connector routes previously served at /v1beta/connectors/* are now served at /v1alpha/admin/connectors/* as part of the admin router. Admin protocol now extends Connectors, so AdminImpl satisfies both protocols. AdminImpl delegates connector methods to the injected ConnectorServiceImpl. The standalone connectors FastAPI router is removed; admin/fastapi_routes.py owns all connector routes. Signed-off-by: Matthew Farrellee <matt@cs.wisc.edu>
✱ Stainless preview buildsThis PR will update the Edit this comment to update it. It will appear in the SDK's changelogs. ✅ llama-stack-client-go studio · conflict
✅ llama-stack-client-node studio · conflict
✅ llama-stack-client-openapi studio · code · diff
✅ llama-stack-client-python studio · code · diff
This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push. |
Can you expand on that? I'd say so are all our server configs (inference, vector db etc) - what's so unique about Connectors versus other resources? |
inference is definitely also an admin controlled resource, we don't let users install new inference providers vector dbs are user scoped resources, while the available vector providers are admin controlled resources connectors are a shorthand in Responses that are cross user. |
|
i find it strange that users have to go through an /admin endpoint to list available connectors, feels off. to me connectors are no different than tools at this point and they don't serve through /admin? |
|
@leseb @franciscojavierarceo @cdoern @raghotham please weigh in |
|
I agree with @mattf fwiw |
leseb
left a comment
There was a problem hiding this comment.
the only reason for me for this to go behind /v1/admin is that user have no apis to fetch those connector and they are only described in the api
|
@mattf if we do this, then the /v1/tools endpoint should also move to /v1/admin |
cdoern
left a comment
There was a problem hiding this comment.
+1 on the logic of why this should be behind admin. lets get this in
# What does this PR do? Moves the `GET /v1/tools` endpoint to `GET /v1/admin/tools`, following the same pattern as ogx-ai#5659 (connectors → admin). Tools are admin-controlled resources configured at the distribution level, not user-scoped — users don't register or unregister tool groups. The rationale is identical to the connectors move. **Pattern followed from ogx-ai#5659:** - `Admin` protocol gains `list_tools` method - `AdminImpl` delegates to the `ToolGroupsRoutingTable` via `self.deps` - Tools `fastapi_routes.py` deleted; route served by the admin router - Admin router restructured with sub-routers to support both `/v1alpha` (existing admin endpoints) and `/v1` (tools) prefixes **BREAKING CHANGE:** `GET /v1/tools` is removed. Use `GET /v1/admin/tools` instead. ## Test Plan 1. Pre-commit checks pass (all except `api-conformance` which is expected for breaking changes — the `refactor!:` commit message signals intentional breakage) 2. Unit tests pass: `uv run pytest tests/unit/core/ --tb=short -q -k "tool or route or admin"` — 77 passed 3. mypy passes with no errors 4. OpenAPI specs regenerated and validated --------- Signed-off-by: Sébastien Han <seb@redhat.com> Signed-off-by: Charlie Doern <cdoern@redhat.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Charlie Doern <cdoern@redhat.com>

Connectors are admin controlled resources.
Connector routes previously served at /v1beta/connectors/* are now served at /v1alpha/admin/connectors/* as part of the admin router.
Admin protocol now extends Connectors, so AdminImpl satisfies both protocols. AdminImpl delegates connector methods to the injected ConnectorServiceImpl. The standalone connectors FastAPI router is removed; admin/fastapi_routes.py owns all connector routes.