From f461290ac352de2cf0a5a00f8a1f9264ad5b29da Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Fri, 18 Jul 2025 10:52:42 -0400 Subject: [PATCH] collab: Add `POST /users/:id/refresh_llm_tokens` endpoint (#34714) This PR adds a new `POST /users/:id/refresh_llm_tokens` endpoint to Collab so that we can refresh LLM tokens from Cloud. Release Notes: - N/A --- crates/collab/src/api.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/crates/collab/src/api.rs b/crates/collab/src/api.rs index 7fca27c5c2b9580b7ef6546e4188c0aac7f73e3c..8f1433a26f1a09fd820e8272684b08ff1b6d9581 100644 --- a/crates/collab/src/api.rs +++ b/crates/collab/src/api.rs @@ -100,6 +100,7 @@ pub fn routes(rpc_server: Arc) -> Router<(), Body> { .route("/user", get(update_or_create_authenticated_user)) .route("/users/look_up", get(look_up_user)) .route("/users/:id/access_tokens", post(create_access_token)) + .route("/users/:id/refresh_llm_tokens", post(refresh_llm_tokens)) .route("/rpc_server_snapshot", get(get_rpc_server_snapshot)) .merge(billing::router()) .merge(contributors::router()) @@ -334,3 +335,15 @@ async fn create_access_token( encrypted_access_token, })) } + +#[derive(Serialize)] +struct RefreshLlmTokensResponse {} + +async fn refresh_llm_tokens( + Path(user_id): Path, + Extension(rpc_server): Extension>, +) -> Result> { + rpc_server.refresh_llm_tokens_for_user(user_id).await; + + Ok(Json(RefreshLlmTokensResponse {})) +}