From 33cd34c2ac6d9f2dedebbff6650dcae13311afcb Mon Sep 17 00:00:00 2001 From: dawn Date: Sat, 24 Oct 2026 00:16:44 +0300 Subject: [PATCH] tranquil-gate: serve delegation createAccount under the org.tangled name too Signed-off-by: dawn --- crates/tranquil-gate/src/lib.rs | 2 ++ crates/tranquil-gate/src/tests.rs | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/crates/tranquil-gate/src/lib.rs b/crates/tranquil-gate/src/lib.rs index 5520c77a5..06164996b 100644 --- a/crates/tranquil-gate/src/lib.rs +++ b/crates/tranquil-gate/src/lib.rs @@ -326,6 +326,8 @@ pub fn router(app: App) -> Router { Router::new() .route("/xrpc/_health", get(health)) .route("/.well-known/did.json", get(did_document)) + .route("/xrpc/org.tangled.delegation.createAccount", post(create)) + // old web builds still post here .route("/xrpc/sh.tangled.delegation.createAccount", post(create)) .layer(DefaultBodyLimit::max(4096)) .with_state(app) diff --git a/crates/tranquil-gate/src/tests.rs b/crates/tranquil-gate/src/tests.rs index d8044b7e9..80cd11389 100644 --- a/crates/tranquil-gate/src/tests.rs +++ b/crates/tranquil-gate/src/tests.rs @@ -82,9 +82,15 @@ fn token(app: &App, aud: &str, lxm: &str, exp: u64, key: Option<&SigningKey>) -> format!("{input}.{}", URL_SAFE_NO_PAD.encode(signature.to_bytes())) } +const ROUTE: &str = "/xrpc/org.tangled.delegation.createAccount"; +const LEGACY_ROUTE: &str = "/xrpc/sh.tangled.delegation.createAccount"; + async fn request(app: App, token: Option<&str>) -> Response { - let mut request = Request::post("/xrpc/sh.tangled.delegation.createAccount") - .header("content-type", "application/json"); + request_at(ROUTE, app, token).await +} + +async fn request_at(route: &str, app: App, token: Option<&str>) -> Response { + let mut request = Request::post(route).header("content-type", "application/json"); if let Some(token) = token { request = request.header("authorization", format!("Bearer {token}")); } @@ -240,6 +246,13 @@ async fn rejects_missing_nonce() { assert!(app.verify_claims(&claims).await.is_err()); } +#[tokio::test] +async fn the_legacy_route_reaches_the_handler() { + let (app, _) = setup().await; + let response = request_at(LEGACY_ROUTE, app, None).await; + assert_eq!(response.status(), StatusCode::UNAUTHORIZED); +} + #[tokio::test] async fn forwards_the_create_token_without_controller_overrides() { let (app, server) = setup().await; -- 2.54.0