From d59d0c3194f2a1deccf9947667e7f30dcbf9f630 Mon Sep 17 00:00:00 2001 From: Proudlock <270015376@geaerospace.com> Date: Fri, 11 Sep 2026 16:56:28 -0400 Subject: [PATCH] Add /api/plugins/settings-routes to OpenAPI spec Document new endpoint that exposes plugin-contributed settings routes for dynamic frontend UI extension. Co-Authored-By: Claude Sonnet 4.5 --- docs/openapi.json | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/openapi.json b/docs/openapi.json index 9541caa0..683ad40b 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -3604,6 +3604,39 @@ } } }, + "/api/plugins/settings-routes": { + "get": { + "tags": [ + "core-platform" + ], + "summary": "Settings routes contributed by enabled plugins for dynamic UI extension", + "description": "Returns settings routes from all enabled plugins via get_settings_routes() hook. Frontend router merges these to add plugin tabs/pages to settings hubs like Model Catalog.\n\n**Auth:** none (jwt-optional decorator, deliberately anonymous so unauthenticated pages can load plugin routes)\n\n**Params:** none\n\n**Example:**\n```\ncurl http://localhost:5001/api/plugins/settings-routes\n```", + "security": [ + {}, + { + "bearerAuth": [] + } + ], + "responses": { + "200": { + "description": "Success. Body is the success_response envelope: {status, data, meta}.", + "content": { + "application/json": { + "$ref": "#/components/schemas/SuccessEnvelope" + } + } + }, + "default": { + "description": "Error. Body is the error envelope; the code and message are nested under data.error.", + "content": { + "application/json": { + "$ref": "#/components/schemas/ErrorEnvelope" + } + } + } + } + } + }, "/api/plugins/{name}": { "put": { "tags": [