Skip to content

refactor(connectors)!: move connector routes to /v1alpha/admin/connectors#5659

Open
mattf wants to merge 3 commits intoogx-ai:mainfrom
mattf:move-connectors-api
Open

refactor(connectors)!: move connector routes to /v1alpha/admin/connectors#5659
mattf wants to merge 3 commits intoogx-ai:mainfrom
mattf:move-connectors-api

Conversation

@mattf
Copy link
Copy Markdown
Collaborator

@mattf mattf commented Apr 29, 2026

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.

…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>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 29, 2026

✱ Stainless preview builds

This PR will update the llama-stack-client SDKs with the following commit message.

refactor(connectors)!: move connector routes to /v1alpha/admin/connectors

Edit this comment to update it. It will appear in the SDK's changelogs.

llama-stack-client-go studio · conflict

Your SDK build had at least one new note diagnostic, which is a regression from the base state.

New diagnostics (4 note)
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}/tools/{tool_name}`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}/tools`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}`
llama-stack-client-node studio · conflict

Your SDK build had at least one new note diagnostic, which is a regression from the base state.

New diagnostics (4 note)
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}/tools/{tool_name}`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}/tools`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}`
llama-stack-client-openapi studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️

New diagnostics (4 note)
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}/tools/{tool_name}`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}/tools`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}`
llama-stack-client-python studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ⏭️lint ⏭️test ✅

New diagnostics (4 note)
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}/tools/{tool_name}`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}/tools`
💡 Endpoint/NotConfigured: Skipped endpoint because it's not in your Stainless config: `get /v1alpha/admin/connectors/{connector_id}`

This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push.
If you push custom code to the preview branch, re-run this workflow to update the comment.
Last updated: 2026-04-29 15:38:34 UTC

@leseb
Copy link
Copy Markdown
Collaborator

leseb commented Apr 29, 2026

Connectors are admin controlled resources.

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?

@mattf
Copy link
Copy Markdown
Collaborator Author

mattf commented Apr 29, 2026

Connectors are admin controlled resources.

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.

@mattf mattf marked this pull request as ready for review April 29, 2026 15:41
@leseb
Copy link
Copy Markdown
Collaborator

leseb commented Apr 29, 2026

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?

@mattf
Copy link
Copy Markdown
Collaborator Author

mattf commented Apr 29, 2026

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?

the connectors should only be a narrow set of options, defined in the api -

image

maybe an admin wants to extend this with an internal tool where the user isn't allowed to know the url. for everything else the user knows the url and should just pass it directly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants