From 270c0f4fd8039aa0c209856157cdb90f950250b1 Mon Sep 17 00:00:00 2001 From: phil-accelbyte <225106921+phil-accelbyte@users.noreply.github.com> Date: Wed, 24 Jun 2026 21:03:25 +0800 Subject: [PATCH] feat(csm): add managed-resource commands (sql, nosql, key-value, app-ui) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New sql, key-value, app-ui, and files resources — sql cluster lifecycle, databases, credentials and list-apps; key-value clusters, limit config and Extend-app integration; app-ui instances with asset upload; files get — plus an apps apply command and a nosql create-credentials path correction. Adds "stop" to the confirmation keyword list so stop-cluster prompts before running. Regenerates the command catalogue and CSM contract baseline. --- docs/reference/cli-command-catalogue.md | 36 +- specs/csm.json.gz | Bin 19720 -> 26585 bytes src/catalogue/manifest.rs | 8 + src/runtime/dispatch/confirmation.rs | 9 +- .../baselines/csm_input_contract.json | 567 +++++++++++++++++- 5 files changed, 613 insertions(+), 7 deletions(-) diff --git a/docs/reference/cli-command-catalogue.md b/docs/reference/cli-command-catalogue.md index 7f910e2..b3826a0 100644 --- a/docs/reference/cli-command-catalogue.md +++ b/docs/reference/cli-command-catalogue.md @@ -5,7 +5,7 @@ Auto-generated from `specs/*.json.gz` via `scripts/generate_cli_command_catalogu Lists every operation the CLI dispatches. Deprecated operations and the `internal` resource are excluded. Each row corresponds to a concrete `--api-scope` / `--api-version` combination. **Services:** 24 -**Operations:** 1962 +**Operations:** 1990 ## achievement @@ -393,11 +393,16 @@ Lists every operation the CLI dispatches. Deprecated operations and the `interna ## csm - Spec name: `csm` -- Resources: 9 -- Operations: 52 +- Resources: 13 +- Operations: 80 | Resource | Method | Scope | Version | HTTP | Path | Summary | |----------|--------|-------|---------|------|------|---------| +| `app-ui` | `create` | admin | v1 | POST | `/csm/v1/admin/namespaces/{namespace}/app-ui` | Creates an App UI instance | +| `app-ui` | `delete` | admin | v1 | DELETE | `/csm/v1/admin/namespaces/{namespace}/app-ui/{appUiName}` | Deletes an App UI instance | +| `app-ui` | `list` | admin | v1 | GET | `/csm/v1/admin/namespaces/{namespace}/app-ui` | Lists all App UI instances in a namespace | +| `app-ui` | `upload-assets` | admin | v1 | POST | `/csm/v1/admin/namespaces/{namespace}/app-ui/{appUiName}/files/upload` | Uploads App UI assets as a ZIP archive | +| `apps` | `apply` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/apply` | Creates or updates an Extend app from a declarative spec | | `apps` | `create` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}` | Creates a new extend app | | `apps` | `delete` | admin | v2 | DELETE | `/csm/v2/admin/namespaces/{namespace}/apps/{app}` | Deletes the extend app by name | | `apps` | `get` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/apps/{app}` | Retrieves the extend app by name | @@ -420,11 +425,23 @@ Lists every operation the CLI dispatches. Deprecated operations and the `interna | `deployments` | `delete` | admin | v2 | DELETE | `/csm/v2/admin/namespaces/{namespace}/deployments/{deploymentId}` | Deletes a deployment by ID | | `deployments` | `get` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/deployments/{deploymentId}` | Retrieves a deployment by ID | | `deployments` | `list` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/deployments` | Fetches the List of Deployments | +| `files` | `get` | admin | v1 | GET | `/csm/v1/admin/namespaces/{namespace}/files/{filePath}` | Retrieves a hosted static file | | `images` | `delete` | admin | v2 | DELETE | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/images` | Deletes app images | | `images` | `list` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/images` | Lists container images for the app | +| `key-value` | `create-cluster` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/keyvalue/clusters` | Creates Key-Value Cluster | +| `key-value` | `create-credentials` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/keyvalue/credentials` | Generates a Key-Value credential for an integrated Extend app | +| `key-value` | `create-integration` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/keyvalue/integrations` | Integrates an Extend app with a Key-Value cluster | +| `key-value` | `delete-cluster` | admin | v2 | DELETE | `/csm/v2/admin/namespaces/{namespace}/keyvalue/clusters/{resourceId}` | Deletes the Key-Value cluster | +| `key-value` | `delete-integration` | admin | v2 | DELETE | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/keyvalue/integrations` | Removes an Extend app's Key-Value integration | +| `key-value` | `get-cluster` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/keyvalue/cluster/{resourceId}` | Retrieves Key-Value cluster information | +| `key-value` | `get-integration` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/keyvalue/integrations` | Retrieves an Extend app's Key-Value integration | +| `key-value` | `get-limit-config` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/keyvalue/clusters/limitconfig` | Retrieves Key-Value cluster limit configuration | +| `key-value` | `list-clusters` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/keyvalue/clusters` | Lists Key-Value clusters | +| `key-value` | `list-integrations` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/keyvalue/{resourceId}/integrations` | Lists Extend apps integrated with a Key-Value cluster | +| `key-value` | `update-cluster` | admin | v2 | PUT | `/csm/v2/admin/namespaces/{namespace}/keyvalue/clusters/{resourceId}` | Updates Key-Value cluster configuration | | `nosql` | `create` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/nosql/databases` | Creates NoSQL Database for Extend App | | `nosql` | `create-cluster` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/nosql/clusters` | Creates NoSQL Cluster | -| `nosql` | `create-credentials` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/nosql/crendentials` | Creates a new database credential for the customer | +| `nosql` | `create-credentials` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/nosql/credentials` | Creates a NoSQL database credential for an Extend app | | `nosql` | `delete` | admin | v2 | DELETE | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/nosql/databases` | Deletes NoSQL Database for Extend App | | `nosql` | `delete-cluster` | admin | v2 | DELETE | `/csm/v2/admin/namespaces/{namespace}/nosql/clusters` | Deletes the NoSQL cluster | | `nosql` | `get` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/nosql/databases` | Retrieves the NoSQL database for the extend app | @@ -436,6 +453,17 @@ Lists every operation the CLI dispatches. Deprecated operations and the `interna | `nosql` | `update-cluster` | admin | v2 | PUT | `/csm/v2/admin/namespaces/{namespace}/nosql/clusters` | Updates the NoSQL cluster configuration | | `resource-limits` | `list` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/resources/limits` | Retrieves configurable resource limits for extend apps | | `service-messages` | `list` | public | v1 | GET | `/csm/v1/messages` | Retrieves service messages | +| `sql` | `create` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/sql/databases` | Creates SQL Database for Extend App | +| `sql` | `create-cluster` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/sql/clusters` | Creates SQL Cluster | +| `sql` | `create-credentials` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/sql/credentials` | Creates a SQL database credential for an Extend app | +| `sql` | `delete` | admin | v2 | DELETE | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/sql/databases` | Deletes SQL Database for Extend App | +| `sql` | `delete-cluster` | admin | v2 | DELETE | `/csm/v2/admin/namespaces/{namespace}/sql/clusters` | Deletes the SQL cluster | +| `sql` | `get` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/sql/databases` | Retrieves the SQL database for an Extend app | +| `sql` | `get-cluster` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/sql/clusters` | Retrieves SQL cluster information | +| `sql` | `list-apps` | admin | v2 | GET | `/csm/v2/admin/namespaces/{namespace}/sql/{resourceId}/apps` | Lists Extend apps using a SQL cluster | +| `sql` | `start-cluster` | admin | v2 | PUT | `/csm/v2/admin/namespaces/{namespace}/sql/clusters/start` | Starts the SQL cluster | +| `sql` | `stop-cluster` | admin | v2 | PUT | `/csm/v2/admin/namespaces/{namespace}/sql/clusters/stop` | Stops the SQL cluster | +| `sql` | `update-cluster` | admin | v2 | PUT | `/csm/v2/admin/namespaces/{namespace}/sql/clusters` | Updates SQL cluster configuration | | `subscriptions` | `add` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/subscriptions` | Subscribes users to app notifications | | `subscriptions` | `add-my` | admin | v2 | POST | `/csm/v2/admin/namespaces/{namespace}/apps/{app}/subscriptions/me` | Subscribes the authenticated user to app notifications | | `subscriptions` | `delete` | admin | v3 | DELETE | `/csm/v3/admin/namespaces/{namespace}/apps/{app}/subscriptions` | Removes a user's notification subscription by user ID or email | diff --git a/specs/csm.json.gz b/specs/csm.json.gz index d398e94b9ea90ba405b158968e67792ab94aa6d2..df951f3f56b4d5346325b115f754d08dc73d39a6 100644 GIT binary patch literal 26585 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

&oR|sGI_G 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 c3BUCU?Yunv{ZBM*@`vyLA3GeK^^>v%0A^9)O8@`> literal 19720 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 )xij9R9iTHvMEA);n!ZvL7|R^O($pU@I>IQJ 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