Alibabacloud Cms Dataset
/install alibabacloud-cms-dataset
CMS Dataset Lifecycle Management and Querying
Manage CloudMonitor (CMS) dataset resources — list, inspect, create, update, delete datasets and execute dataset-level queries — using the aliyun CLI.
Architecture: CMS Workspace + Dataset (Schema + Fields) + ExecuteQuery
Installation
Install Aliyun CLI
Run aliyun version to verify if version >= 3.3.3. If not installed or outdated, follow the doc references/cli-installation-guide.md to install or update.
Ensure plugins up-to-date
[MUST] run
aliyun configure set --auto-plugin-install trueto enable automatic plugin installation. [MUST] runaliyun plugin updateto ensure that any existing plugins are always up-to-date.
AI-Mode Lifecycle
At the start of the Core Workflow (before any CLI invocation): [MUST] Enable AI-Mode — AI-mode is required for Agent Skill execution.
aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cms-dataset"
[MUST] Disable AI-Mode at EVERY exit point — Before delivering the final response for ANY reason, always disable AI-mode first. This applies to ALL exit paths: workflow success, workflow failure, error/exception, user cancellation, session end, or any other scenario where no further CLI commands will be executed.
aliyun configure ai-mode disable
Authentication
Pre-check: Alibaba Cloud Credentials Required
Security Rules:
- NEVER read, echo, or print AK/SK values (e.g.,
echo $ALIBABA_CLOUD_ACCESS_KEY_IDis FORBIDDEN)- NEVER ask the user to input AK/SK directly in the conversation or command line
- NEVER use
aliyun configure setwith literal credential values- ONLY use
aliyun configure listto check credential statusaliyun configure listCheck the output for a valid profile (AK, STS, or OAuth identity).
If no valid profile exists, STOP here.
- Obtain credentials from Alibaba Cloud Console
- Configure credentials outside of this session (via
aliyun configurein terminal or environment variables in shell profile)- Return and re-run after
aliyun configure listshows a valid profile
RAM Policy
See references/ram-policies.md for the full permission list.
Minimum required actions: cms:ListDatasets, cms:GetDataset, cms:CreateDataset, cms:UpdateDataset, cms:DeleteDataset, cms:ExecuteQuery.
[MUST] Permission Failure Handling: When any command or API call fails due to permission errors at any point during execution, follow this process:
- Read
references/ram-policies.mdto get the full list of permissions required by this SKILL- Use
ram-permission-diagnoseskill to guide the user through requesting the necessary permissions- Pause and wait until the user confirms that the required permissions have been granted
Parameter Confirmation
IMPORTANT: Parameter Confirmation — Before executing any command or API call, ALL user-customizable parameters (e.g., RegionId, instance names, CIDR blocks, passwords, domain names, resource specifications, etc.) MUST be confirmed with the user. Do NOT assume or use default values without explicit user approval.
| Parameter | Required/Optional | Description | Default Value |
|---|---|---|---|
workspace |
Required | CMS workspace ID | — |
dataset-name |
Required (except ListDatasets) | Dataset name (4-63 chars) | — |
region |
Optional | Region ID | CLI profile region |
schema |
Required (CreateDataset) | Schema JSON object | — |
description |
Optional | Dataset description | — |
query |
Required (ExecuteQuery) | Query text | — |
type |
Auto-filled (ExecuteQuery) | Query type placeholder. Always SQL, do not ask user |
SQL |
max-results |
Optional (ListDatasets) | Max results per page | — |
next-token |
Optional (ListDatasets) | Pagination token for next page | — |
Naming Rules
Dataset names and schema field names must satisfy:
- Length: 4-63 characters
- Start with a lowercase letter
- Only lowercase letters, digits, and underscores
- No leading/trailing underscore, no consecutive underscores
Regex: ^[a-z](?!.*__)[a-z0-9_]{2,61}[a-z0-9]$
Invalid names must NOT be silently normalized. Ask the user for a valid replacement.
Core Workflow
[CRITICAL] Product Binding: All dataset operations in this skill use the
cmsproduct ONLY. The correct command pattern isaliyun cms \x3Caction> --api-version 2024-03-30. DO NOT use any other product for dataset operations —dataworks,adb,sls,maxcompute,opensearch,pai,dashvector, or any other service are WRONG for this scenario. If a command fails, check parameters and permissions — do NOT switch to a different product.
All commands use --api-version 2024-03-30. Do not pass --endpoint by default. Use --region (not --region-id) when specifying a region.
0. Verify Workspace Exists
[MUST] Before executing any dataset operation, call
get-workspaceto verify the workspace exists. Do NOT skip this step or use ListDatasets to infer workspace existence.
aliyun cms get-workspace --api-version 2024-03-30 \
--workspace \x3Cworkspace>
If the workspace does not exist (returns error), create it via put-workspace:
aliyun cms put-workspace --api-version 2024-03-30 \
--workspace-name \x3Cworkspace> \
--sls-project \x3Csls-project>
--sls-project is required. If the user does not specify one, use the same value as the workspace name.
1. List Datasets
aliyun cms list-datasets --api-version 2024-03-30 \
--workspace \x3Cworkspace> \
[--dataset-name \x3Cfilter>] \
[--max-results \x3Cn>] \
[--next-token \x3Ctoken>]
2. Get Dataset
aliyun cms get-dataset --api-version 2024-03-30 \
--workspace \x3Cworkspace> \
--dataset-name \x3Cdataset-name>
3. Create Dataset
Safety: Before creating, check whether the dataset already exists via ListDatasets. If the dataset already exists, inform the user and ask whether to proceed (the API will return an error for duplicates). Always call CreateDataset when the user requests creation — do not silently skip it.
Pass the schema JSON directly as a single-quoted string:
aliyun cms create-dataset --api-version 2024-03-30 \
--workspace \x3Cworkspace> \
--dataset-name \x3Cdataset-name> \
--schema '{"message_text":{"type":"text","chn":true,"embedding":"text-embedding-v4"},"service_name":{"type":"text","chn":false}}' \
[--description "\x3Cdescription>"]
Schema rules:
- The
--schemavalue is the field definitions object directly (not wrapped in an API body). - Each top-level key is a field name. Each value has:
type, optionalchn, optionalembedding, optionaljsonKeys. - Only
type: "text"fields may enableembedding. Reject embedding on non-text fields. jsonKeysdefines nested JSON key structures. Nested keys supporttypeandchnonly (noembedding):
{
"event_data": {
"type": "text",
"chn": false,
"jsonKeys": {
"source": {
"type": "text",
"chn": false
},
"message": {
"type": "text",
"chn": true
}
}
}
}
4. Update Dataset
Safety: Read and show the current description before updating.
Limitation: UpdateDataset can only modify the description. Schema cannot be updated through this API. If the user needs to change the schema, they must delete and recreate the dataset.
# Show current state
aliyun cms get-dataset --api-version 2024-03-30 \
--workspace \x3Cworkspace> --dataset-name \x3Cdataset-name>
# Update after user confirms
aliyun cms update-dataset --api-version 2024-03-30 \
--workspace \x3Cworkspace> \
--dataset-name \x3Cdataset-name> \
--description "\x3Cnew-description>"
5. Delete Dataset
Safety: Read and show the dataset, then ask for explicit confirmation identifying workspace and dataset name before deleting.
# Show dataset to confirm
aliyun cms get-dataset --api-version 2024-03-30 \
--workspace \x3Cworkspace> --dataset-name \x3Cdataset-name>
# Delete after explicit confirmation
aliyun cms delete-dataset --api-version 2024-03-30 \
--workspace \x3Cworkspace> \
--dataset-name \x3Cdataset-name>
6. Execute Query
Safety: When possible, inspect the dataset schema first via GetDataset so field names come from the actual schema.
aliyun cms execute-query --api-version 2024-03-30 \
--workspace \x3Cworkspace> \
--dataset-name \x3Cdataset-name> \
--type SQL \
--query '\x3Cquery>'
--typeis a required placeholder. Always passSQL.- If the user provides a complete query, preserve it except for safe shell quoting.
- Natural-language to query: When the user describes an analysis intent in natural language instead of providing a query, first call GetDataset to retrieve the actual schema and field names, then generate a query based on those field names. Never guess field names without inspecting the schema.
- Present the full JSON response first, then summarize: progress, returned rows, affected rows, and elapsed time.
Success Verification
See references/verification-method.md for step-by-step verification commands for each operation.
Cleanup
To remove a dataset created during this session:
aliyun cms delete-dataset --api-version 2024-03-30 \
--workspace \x3Cworkspace> \
--dataset-name \x3Cdataset-name>
Output Expectations
- Show complete JSON first for any API response.
- Then provide a short human-readable summary.
- For write previews: include workspace, dataset name, region, description, and full schema.
- For query results: include progress, row count, affected rows, and elapsed time.
Command Tables
See references/related-commands.md for the full command reference.
| Command | Description |
|---|---|
aliyun cms get-workspace |
Verify workspace exists |
aliyun cms put-workspace |
Create or update a workspace |
aliyun cms list-datasets |
List datasets in a workspace |
aliyun cms get-dataset |
Get dataset details and schema |
aliyun cms create-dataset |
Create a new dataset with schema |
aliyun cms update-dataset |
Update dataset description |
aliyun cms delete-dataset |
Delete a dataset |
aliyun cms execute-query |
Execute a query against a dataset |
Best Practices
- Always specify
--api-version 2024-03-30— the default CMS version (2019-01-01) does not support dataset operations. - Validate dataset names and field names against the naming regex before calling CreateDataset.
- Use GetDataset to inspect schema before generating queries — use actual field names, not guesses.
- Pass schema JSON directly as a single-quoted string to avoid shell quoting issues.
- Always confirm write operations (Create, Update, Delete) with the user before execution.
- Check dataset existence before creating to avoid duplicates.
- Use
--region(not--region-id) when specifying a region explicitly. - Do not pass
--endpointunless explicitly required; if needed, usecms.\x3Cregion>.aliyuncs.com. - For ExecuteQuery, always pass
--type SQLas a required placeholder. - Prefer inline JSON for
--schemato avoid temporary file management. - Never switch products. If a
cmscommand fails, debug parameters/permissions — do not trydataworks,adb,sls,maxcompute, or other products. The "workspace" in this skill is a CMS workspace, not a DataWorks/SLS/MaxCompute project. - Set explicit timeouts. Use
--read-timeout 30 --connect-timeout 10for metadata operations (list/get/create/update/delete). For ExecuteQuery use--read-timeout 120 --connect-timeout 10as queries may take longer.
Reference Links
| Reference | Description |
|---|---|
| references/ram-policies.md | RAM permission requirements |
| references/related-commands.md | Full CLI command reference |
| references/verification-method.md | Success verification steps |
| references/acceptance-criteria.md | Correct/incorrect pattern examples |
| references/cli-installation-guide.md | CLI installation guide |
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install alibabacloud-cms-dataset - 安装完成后,直接呼叫该 Skill 的名称或使用
/alibabacloud-cms-dataset触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Alibabacloud Cms Dataset 是什么?
Alicloud CMS Dataset lifecycle management and querying skill. Covers listing, inspecting, creating, updating, deleting datasets and executing dataset queries... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 97 次。
如何安装 Alibabacloud Cms Dataset?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install alibabacloud-cms-dataset」即可一键安装,无需额外配置。
Alibabacloud Cms Dataset 是免费的吗?
是的,Alibabacloud Cms Dataset 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Alibabacloud Cms Dataset 支持哪些平台?
Alibabacloud Cms Dataset 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Alibabacloud Cms Dataset?
由 alibabacloud-skills-team(@sdk-team)开发并维护,当前版本 v0.0.1。