Install
openclaw skills install alibabacloud-dts-task-managerCreate, view, and manage Alibaba Cloud DTS data migration/synchronization tasks interactively. Automatically triggered when the user mentions keywords such as "DTS task", "DTS migration", "DTS sync", "data migration task", "data sync task", "create migration", "create DTS", "new DTS", "DTS status", "migration status", "sync status", "stop migration", "suspend DTS", "release DTS".
openclaw skills install alibabacloud-dts-task-managerManage Alibaba Cloud DTS (Data Transmission Service) tasks: create data migration/synchronization tasks, view task status/latency, stop/start/release tasks. All operations are guided interactively.
Determine the operation mode based on user input, and read the corresponding references file for detailed workflow:
| User Intent | Keywords | Action | Reference File |
|---|---|---|---|
| Create migration task | empty / "create" / "new" / "migration" | Interactive creation | references/create-task.md |
| Create sync task | "sync" / "synchronization" | Interactive sync task creation | references/create-task.md |
| View task list | "list" / "view" / "ls" | List all tasks | references/list-tasks.md |
| View task status | "status ID" | View specified task details | references/task-status.md |
| Stop task | "stop ID" / "suspend ID" / "pause ID" | Suspend specified task | references/suspend-task.md |
| Start/Resume task | "start ID" / "resume ID" | Start or resume task | references/start-task.md |
| Release task | "release ID" / "delete ID" / "remove ID" | Release (delete) task | references/delete-task.md |
| Environment setup | "setup" / "configure" / "init" | Check and configure environment | references/setup.md |
When no parameters are provided, ask the user to choose the desired operation.
Steps (full details in references/create-task.md):
******) and confirmExample input: "Create a MySQL to Kafka sync task" Example output:
DTS task created successfully!
Instance ID: <dts-instance-id>
Job ID: <job-id>
Status: Initializing
To check status: aliyun dts DescribeDtsJobDetail --DtsJobId <job-id> --RegionId cn-hangzhou
Steps (full details in references/list-tasks.md):
Example input: "List my DTS tasks" Example output:
| Task ID | Name | Type | Status | Source | Destination | Delay |
|----------------|------------------------------|-----------|----------------|--------------|--------------|--------|
| <job-id-1> | migration-mysql-mysql-0401 | MIGRATION | Migrating | RDS MySQL | RDS MySQL | - |
| <job-id-2> | sync-mysql-kafka-0401 | SYNC | Synchronizing | RDS MySQL | Kafka | 128ms |
Steps (full details in references/task-status.md):
Example input: "Check status of <job-id>" Example output:
Task: <job-id> (migration-mysql-mysql-0401)
Type: MIGRATION
Status: Migrating
Progress:
Schema migration: Finished
Full data migration: Finished (1,234,567 rows)
Incremental: Running, delay 236ms
Source: RDS MySQL <source-instance-id> (cn-hangzhou)
Destination: RDS MySQL <dest-instance-id> (cn-hangzhou)
Stop (full details in references/suspend-task.md):
Start/Resume (full details in references/start-task.md):
Release/Delete (full details in references/delete-task.md):
Steps (full details in references/setup.md):
DescribeDtsJobDetail uses --DtsInstanceID (uppercase D), while DeleteDtsJob/ConfigureDtsJob use --DtsInstanceId (lowercase d). Always verify with aliyun dts <API> help before calling.--read-timeout 30 --connect-timeout 10. CreateDtsInstance includes --ClientToken (UUID) for idempotent retries.--JobType parameter defaults to MIGRATION; omitting it silently drops sync/subscribe tasks. Never use --Type (causes InvalidParameter).--SourceEndpointDatabaseName in ConfigureDtsJob.Important: All information gathering must use interactive selections to avoid workflow interruption from free-text questions.
Applicable to scenarios with fixed choices: task type, engine type, access method, instance selection, migration type, specification selection, etc.
Applicable to scenarios requiring user free input: IP address, port, username, password, database name, table name, etc. Provide common default values as options; users can select or enter custom values. Consolidate related input items into as few interaction rounds as possible.
CRITICAL: Passwords, AccessKey Secrets, certificates, and private keys must NEVER appear in plaintext anywhere in the conversation — this applies to ALL stages:
****** for password fields.'******', never the actual value. The real value is only used internally when executing the command.Use single quotes around passwords in actual CLI execution to prevent shell expansion.
Before executing any operation, the following checks must be performed:
which aliyun
If not installed, prompt the user:
brew install aliyun-clialiyun configure to set up authenticationaliyun configure list
If not configured, guide the user through setup:
aliyun configure --mode AK
Requires: AccessKey ID, AccessKey Secret, Region Id
Important: Never display the user's AccessKey Secret in the conversation. Protect sensitive information.
Let the user select a Region using interactive choices, not text input.
Supported Region list:
Mainland China:
| Region ID | Name |
|---|---|
| cn-beijing | China North 2 (Beijing) |
| cn-hangzhou | China East 1 (Hangzhou) |
| cn-shanghai | China East 2 (Shanghai) |
| cn-shenzhen | China South 1 (Shenzhen) |
| cn-guangzhou | China South 3 (Guangzhou) |
| cn-qingdao | China North 1 (Qingdao) |
| cn-zhangjiakou | China North 3 (Zhangjiakou) |
| cn-huhehaote | China North 5 (Hohhot) |
| cn-wulanchabu | China North 6 (Ulanqab) |
| cn-heyuan | China South 2 (Heyuan) |
| cn-chengdu | China Southwest 1 (Chengdu) |
| cn-nanjing | China East 5 (Nanjing - Local Region) |
| cn-fuzhou | China East 6 (Fuzhou - Local Region) |
| cn-wuhan-lr | China Central 1 (Wuhan - Local Region) |
Hong Kong (China) and International:
| Region ID | Name |
|---|---|
| cn-hongkong | China (Hong Kong) |
| ap-southeast-1 | Singapore |
| ap-southeast-3 | Malaysia (Kuala Lumpur) |
| ap-southeast-5 | Indonesia (Jakarta) |
| ap-southeast-6 | Philippines (Manila) |
| ap-southeast-7 | Thailand (Bangkok) |
| ap-northeast-1 | Japan (Tokyo) |
| ap-northeast-2 | South Korea (Seoul) |
| eu-central-1 | Germany (Frankfurt) |
| eu-west-1 | UK (London) |
| us-east-1 | US (Virginia) |
| us-west-1 | US (Silicon Valley) |
| me-east-1 | UAE (Dubai) |
| na-south-1 | Mexico |
Interactive pagination:
This step can be combined with Step 1 (task type) to reduce interaction rounds.
InvalidAccessKeyId.NotFound - Invalid AccessKey, check configurationForbidden.RAM - Insufficient RAM permissions, requires AliyunDTSFullAccess policyInvalidParameter - Parameter error, check inputUnSupportedTaskType - Unsupported link combination, suggest changing engine or access methodOperationDenied - Operation denied, task status may not allow this operation--user-agent AlibabaCloud-Agent-Skills parameter (except local configuration commands like aliyun configure)--read-timeout 30 --connect-timeout 10CRITICAL: Before constructing any CLI command, ALL user-provided input parameters must be validated and sanitized to prevent command injection.
Validation rules by parameter type:
| Parameter | Validation Rule |
|---|---|
| IP address | Must match IPv4 pattern (^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$), each octet 0-255 |
| Port | Integer only, range 1-65535 |
| Instance ID | Alphanumeric, hyphens, and underscores only (^[a-zA-Z0-9_-]+$) |
| Database name | Alphanumeric, underscores, hyphens only (^[a-zA-Z0-9_-]+$) |
| Table name | Alphanumeric, underscores, hyphens, dots only (^[a-zA-Z0-9_.\-]+$) |
| Username | Alphanumeric, underscores, hyphens, dots only (^[a-zA-Z0-9_.\-]+$) |
| Region ID | Must match known Region ID list or pattern ^[a-z]{2}-[a-z]+-?\d*$ |
| DtsJobName | Alphanumeric, hyphens, underscores, dots only, max 128 chars |
Shell injection prevention:
'...') when passed to CLI commands, not just passwords'), or escape them properly ('\''); | & $ ` ( ) { } \n) for parameters where they are never valid (IP, port, instance ID, username, database name)--DbList****** in confirmation summaries