diff --git a/nexus/external-api/src/lib.rs b/nexus/external-api/src/lib.rs index 6096d80173c..ea53fe2d7cb 100644 --- a/nexus/external-api/src/lib.rs +++ b/nexus/external-api/src/lib.rs @@ -8927,6 +8927,24 @@ pub trait NexusExternalApi { rqctx: RequestContext, ) -> Result, HttpError>; + #[endpoint { + method = GET, + path = "/users", + unpublished = true, + }] + async fn console_silo_users( + rqctx: RequestContext, + ) -> Result, HttpError>; + + #[endpoint { + method = GET, + path = "/groups", + unpublished = true, + }] + async fn console_silo_groups( + rqctx: RequestContext, + ) -> Result, HttpError>; + /// Serve a static asset #[endpoint { method = GET, diff --git a/nexus/src/external_api/http_entrypoints.rs b/nexus/src/external_api/http_entrypoints.rs index 8e72b4ef569..54489388d24 100644 --- a/nexus/src/external_api/http_entrypoints.rs +++ b/nexus/src/external_api/http_entrypoints.rs @@ -8768,6 +8768,18 @@ impl NexusExternalApi for NexusExternalApiImpl { console_api::console_index_or_login_redirect(rqctx).await } + async fn console_silo_users( + rqctx: RequestContext, + ) -> Result, HttpError> { + console_api::console_index_or_login_redirect(rqctx).await + } + + async fn console_silo_groups( + rqctx: RequestContext, + ) -> Result, HttpError> { + console_api::console_index_or_login_redirect(rqctx).await + } + async fn asset( rqctx: RequestContext, path_params: Path, diff --git a/nexus/tests/integration_tests/console_api.rs b/nexus/tests/integration_tests/console_api.rs index 212e4e2da61..97d5e75e6f1 100644 --- a/nexus/tests/integration_tests/console_api.rs +++ b/nexus/tests/integration_tests/console_api.rs @@ -220,6 +220,8 @@ async fn test_console_pages(cptestctx: &ControlPlaneTestContext) { "/images", "/utilization", "/access", + "/users", + "/groups", "/lookup/", "/lookup/abc", ]; diff --git a/nexus/tests/output/uncovered-authz-endpoints.txt b/nexus/tests/output/uncovered-authz-endpoints.txt index c164f37b32f..70ea522ffc7 100644 --- a/nexus/tests/output/uncovered-authz-endpoints.txt +++ b/nexus/tests/output/uncovered-authz-endpoints.txt @@ -4,6 +4,7 @@ console_silo_access (get "/access") asset (get "/assets/{path}") device_auth_success (get "/device/success") device_auth_verify (get "/device/verify") +console_silo_groups (get "/groups") console_silo_images (get "/images") login_begin (get "/login") login_local_begin (get "/login/{silo_name}/local") @@ -14,6 +15,7 @@ console_projects_new (get "/projects-new") console_projects (get "/projects/{path}") console_settings_page (get "/settings/{path}") console_system_page (get "/system/{path}") +console_silo_users (get "/users") console_silo_utilization (get "/utilization") ping (get "/v1/ping") device_auth_request (post "/device/auth")