@thinkingai/ae-cli 6.0.18-1 → 6.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +7 -6
  2. package/README.zh.md +8 -7
  3. package/dist/index.js +11 -6
  4. package/dist/{te-agent-KZRIEN4N.js → te-agent-CYZUC4US.js} +543 -19
  5. package/dist/{te-analysis-VAR4KUOK.js → te-analysis-HJ22TUAA.js} +318 -40
  6. package/dist/te-audience-MYDE5WEH.js +590 -0
  7. package/dist/te-dataops-ZTS7XMXM.js +1842 -0
  8. package/dist/{te-kb-B62KFP2A.js → te-kb-OWM3RQRH.js} +46 -21
  9. package/dist/{te-meta-EPZGQN56.js → te-meta-JVO4QJBH.js} +28 -11
  10. package/package.json +1 -1
  11. package/skills/ae-agent/SKILL.md +103 -4
  12. package/skills/ae-analysis/SKILL.md +66 -19
  13. package/skills/ae-analysis/references/build_attribution_analysis_qp.md +60 -0
  14. package/skills/ae-analysis/references/build_cluster_definition.md +60 -0
  15. package/skills/ae-analysis/references/build_distribution_analysis_qp.md +65 -0
  16. package/skills/ae-analysis/references/build_heat_map_analysis_qp.md +52 -0
  17. package/skills/ae-analysis/references/build_interval_analysis_qp.md +58 -0
  18. package/skills/ae-analysis/references/build_path_analysis_qp.md +51 -0
  19. package/skills/ae-analysis/references/build_rank_list_analysis_qp.md +61 -0
  20. package/skills/ae-analysis/references/build_tag_definition.md +63 -0
  21. package/skills/ae-analysis/references/cancel_query.md +2 -3
  22. package/skills/ae-analysis/references/copy_dashboard.md +33 -0
  23. package/skills/ae-analysis/references/create_id_cluster.md +40 -0
  24. package/skills/ae-analysis/references/create_id_tag.md +39 -0
  25. package/skills/ae-analysis/references/delete_alert.md +27 -0
  26. package/skills/ae-analysis/references/delete_cluster.md +27 -0
  27. package/skills/ae-analysis/references/delete_dashboard.md +30 -0
  28. package/skills/ae-analysis/references/delete_metric.md +27 -0
  29. package/skills/ae-analysis/references/delete_report.md +27 -0
  30. package/skills/ae-analysis/references/delete_tag.md +27 -0
  31. package/skills/ae-analysis/references/drilldown_user_events.md +4 -4
  32. package/skills/ae-analysis/references/drilldown_users.md +3 -3
  33. package/skills/ae-analysis/references/freeze_dashboards.md +29 -0
  34. package/skills/ae-analysis/references/get_table_columns.md +11 -12
  35. package/skills/ae-analysis/references/list_cluster_members.md +4 -4
  36. package/skills/ae-analysis/references/list_clusters.md +3 -3
  37. package/skills/ae-analysis/references/list_dashboards.md +3 -3
  38. package/skills/ae-analysis/references/list_entities.md +1 -1
  39. package/skills/ae-analysis/references/list_events.md +3 -3
  40. package/skills/ae-analysis/references/list_metrics.md +2 -2
  41. package/skills/ae-analysis/references/list_properties.md +3 -3
  42. package/skills/ae-analysis/references/list_reports.md +3 -3
  43. package/skills/ae-analysis/references/list_spaces.md +27 -0
  44. package/skills/ae-analysis/references/list_tag_members.md +4 -4
  45. package/skills/ae-analysis/references/list_tags.md +2 -2
  46. package/skills/ae-analysis/references/move_dashboard.md +33 -0
  47. package/skills/ae-analysis/references/query_adhoc.md +2 -2
  48. package/skills/ae-analysis/references/query_bi_panel_data.md +2 -2
  49. package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -4
  50. package/skills/ae-analysis/references/query_entity_details.md +4 -4
  51. package/skills/ae-analysis/references/query_event_details.md +3 -3
  52. package/skills/ae-analysis/references/query_report_data.md +37 -3
  53. package/skills/ae-analysis/references/update_id_cluster.md +36 -0
  54. package/skills/ae-analysis/references/update_id_tag.md +37 -0
  55. package/skills/ae-analysis/references/update_report.md +35 -0
  56. package/skills/ae-analysis-intent/SKILL.md +1 -1
  57. package/skills/ae-dataops/SKILL.md +54 -522
  58. package/skills/ae-dataops/references/dataops-flow-create.md +78 -75
  59. package/skills/ae-dataops/references/dataops-flow-monitor.md +58 -51
  60. package/skills/ae-dataops/references/dataops-integration.md +80 -41
  61. package/skills/ae-dataops/references/dataops-query.md +54 -53
  62. package/skills/ae-dataops/references/dataops-table.md +28 -59
  63. package/dist/te-audience-KMKYI2YJ.js +0 -400
  64. package/dist/te-dataops-GD3XBYCS.js +0 -1830
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: dataops-integration
3
3
  version: 1.0.0
4
- description: "Datasource and data integration: create datasources, create sync solutions, configure field mapping, execute sync, monitor sync. Trigger keywords: datasource, sync, integration, sync, field mapping, data ingestion, datasource, MySQL, ClickHouse."
4
+ description: "Datasource and data integration: create datasources, configure sync solutions and field mappings, execute and monitor runs. Trigger keywords: datasource, sync, integration, field mapping, data ingestion, MySQL, ClickHouse, DatabricksJdbc."
5
5
  metadata:
6
6
  requires:
7
7
  bins: ["ae-cli"]
@@ -16,6 +16,7 @@ Use the `dataops_integration` subcommand to manage datasources and sync solution
16
16
  **Core Rules:**
17
17
  - Configuration parameters differ significantly between preset repositories (te_etl) and non-preset repositories, must strictly follow templates
18
18
  - sourceConfig/sinkConfig/channelConfig/fieldsMapping are all JSON strings
19
+ - Sync solution updates are not partial patches: call `+get_sync_detail --withParams true` first, then submit complete sourceConfig and sinkConfig JSON. Pass channelConfig and fieldsMapping when keeping or updating them
19
20
  - Test datasource connection before creating sync solution
20
21
 
21
22
  ---
@@ -23,20 +24,22 @@ Use the `dataops_integration` subcommand to manage datasources and sync solution
23
24
  ## Workflow A: Create Datasource
24
25
 
25
26
  ```bash
26
- # Step 1: View supported datasource component types
27
+ # Step 1: View supported datasource component types. No spaceCode is required.
27
28
  ae-cli dataops_integration +list_datasource_components
28
29
 
29
- # Step 2: Test connection (temporary configuration, not saved)
30
- ae-cli dataops_integration +test_datasource_connect --spaceCode "${spaceCode}" \
31
- --componentName "MySQL" \
32
- --configValue '{"host":"localhost","port":3306,"username":"root","password":"xxx","database":"test"}'
30
+ # Step 2: Get envJsonList template for one component
31
+ ae-cli dataops_integration +get_datasource_component_template \
32
+ --componentName "MySQL"
33
33
 
34
34
  # Step 3: Create datasource
35
35
  ae-cli dataops_integration +add_datasource --spaceCode "${spaceCode}" \
36
36
  --componentName "MySQL" --dataSourceName "Production MySQL" \
37
37
  --sharedConfig true \
38
- --envJsonList '[{"host":"localhost","port":3306,"username":"root","password":"xxx"}]' \
39
- --confirmed true
38
+ --envJsonList '[{"host":"localhost","port":3306,"username":"root","password":"xxx"}]'
39
+
40
+ # Step 4: Test the saved datasource connection by name.
41
+ ae-cli dataops_integration +test_datasource_connect --spaceCode "${spaceCode}" \
42
+ --datasourceName "Production MySQL"
40
43
  ```
41
44
 
42
45
  ---
@@ -49,8 +52,12 @@ ae-cli dataops_integration +add_datasource --spaceCode "${spaceCode}" \
49
52
  # View all datasources in workspace
50
53
  ae-cli dataops_integration +list_space_datasources --spaceCode "${spaceCode}"
51
54
 
55
+ # View one datasource detail when connection config or failure reason is needed
56
+ ae-cli dataops_integration +get_datasource_detail --spaceCode "${spaceCode}" \
57
+ --datasourceName "${datasourceName}"
58
+
52
59
  # View datasources available for sync (categorized by source/sink)
53
- ae-cli dataops_integration +list_sync_datasources --spaceCode "${spaceCode}"
60
+ ae-cli dataops_integration +list_sync_datasources --spaceCode "${spaceCode}" --env DEV
54
61
  ```
55
62
 
56
63
  ### Step 2: Browse Source Table Structure
@@ -63,10 +70,12 @@ ae-cli dataops_integration +list_datasource_databases --spaceCode "${spaceCode}"
63
70
  # List tables under database
64
71
  ae-cli dataops_integration +list_datasource_tables --spaceCode "${spaceCode}" \
65
72
  --datasourceId "${datasourceId}" --database "test"
73
+ # For catalog-based sources such as Databricks, add --catalog "${catalog}".
66
74
 
67
- # Get table structure (column definitions, partitions)
75
+ # Get table structure (columns and partitionColumns)
68
76
  ae-cli dataops_integration +get_table_structure --spaceCode "${spaceCode}" \
69
77
  --datasourceId "${datasourceId}" --database "test" --tablePath "users"
78
+ # For catalog-based sources such as Databricks, add --catalog "${catalog}".
70
79
  ```
71
80
 
72
81
  ### Step 3: Create Sync Solution
@@ -77,12 +86,11 @@ ae-cli dataops_integration +get_table_structure --spaceCode "${spaceCode}" \
77
86
  ae-cli dataops_integration +add_sync_solution --spaceCode "${spaceCode}" \
78
87
  --syncName "MySQL to Preset Repository Sync" \
79
88
  --srcComponent "MySQL" --srcDatasourceId "${mysqlDatasourceId}" \
80
- --sinkComponent "hive" --sinkDatasourceId "te_etl@TASK_ENGINE_TRINO" \
89
+ --sinkComponent "te_etl" --sinkDatasourceId "te_etl@TASK_ENGINE_TRINO" \
81
90
  --sourceConfig '{"component":"MySQL","datasourceId":"xxx","database":"test","tablePath":"users"}' \
82
- --sinkConfig '{"component":"hive","datasourceId":"te_etl@TASK_ENGINE_TRINO","database":"","tablePath":"ods_users_mysql","tableType":"PHYSICAL_TABLE","bizClassify":"CURRENT","dbBizType":"TASK_ENV_DB","authedSpace":"","partitionKeys":[],"dataSaveMode":1,"batchSize":20000}' \
91
+ --sinkConfig '{"component":"te_etl","datasourceId":"te_etl@TASK_ENGINE_TRINO","database":"","tablePath":"ods_users_mysql","tableType":"PHYSICAL_TABLE","bizClassify":"CURRENT","dbBizType":"TASK_ENV_DB","authedSpace":"","partitionKeys":[],"dataSaveMode":1,"batchSize":20000}' \
83
92
  --channelConfig '{"limitType":"0","gatewayConfig":{"engineFlag":"TASK_ENGINE_TRINO","companyId":1,"appDefinition":"APP_GAIA","bizFlag":"BIZ_GAIA_TASK_RELEASE","repoCode":"te_etl","spaceCode":"default"}}' \
84
- --fieldsMapping '{"mapping":[{"source":{"name":"id","type":"int","manual":false,"partitionKey":false,"primaryKey":false,"shardingKey":false,"sortingKey":false,"upsertKey":false},"target":{"name":"id","type":"int","manual":false,"partitionKey":false,"primaryKey":false,"shardingKey":false,"sortingKey":false,"upsertKey":false}}]}' \
85
- --confirmed true
93
+ --fieldsMapping '{"mapping":[{"source":{"name":"id","type":"int","manual":false,"partitionKey":false,"primaryKey":false,"shardingKey":false,"sortingKey":false,"upsertKey":false},"target":{"name":"id","type":"int","manual":false,"partitionKey":false,"primaryKey":false,"shardingKey":false,"sortingKey":false,"upsertKey":false}}]}'
86
94
  ```
87
95
 
88
96
  ### Step 4: Execute Sync
@@ -90,30 +98,42 @@ ae-cli dataops_integration +add_sync_solution --spaceCode "${spaceCode}" \
90
98
  ```bash
91
99
  # Manually execute sync solution
92
100
  ae-cli dataops_integration +exec_sync_solution --spaceCode "${spaceCode}" \
93
- --syncId "${syncId}" --confirmed true
101
+ --syncId "${syncId}" --baseDate "${baseDate}"
94
102
 
95
- # View execution history
96
- ae-cli dataops_integration +list_sync_exec_histories --spaceCode "${spaceCode}" \
103
+ # List manual sync runs
104
+ ae-cli dataops_integration +list_sync_runs --spaceCode "${spaceCode}" \
97
105
  --syncId "${syncId}" --limit 20
98
106
 
99
- # View execution details
100
- ae-cli dataops_integration +get_sync_exec_info --spaceCode "${spaceCode}" \
101
- --syncId "${syncId}" --taskId "${taskId}"
102
-
103
107
  # Stop execution if necessary
104
108
  ae-cli dataops_integration +stop_sync_solution --spaceCode "${spaceCode}" \
105
- --syncId "${syncId}" --taskId "${taskId}" --confirmed true
109
+ --syncId "${syncId}" --taskId "${taskId}"
106
110
  ```
107
111
 
108
112
  ---
109
113
 
110
114
  ## JSON Configuration Templates
111
115
 
116
+ ### Preset Repository as Source (sourceConfig)
117
+
118
+ ```json
119
+ {
120
+ "component": "te_etl",
121
+ "datasourceId": "te_etl@TASK_ENGINE_TRINO",
122
+ "tablePath": "source_table",
123
+ "tableType": "PHYSICAL_TABLE",
124
+ "bizClassify": "CURRENT",
125
+ "dbBizType": "TASK_ENV_DB",
126
+ "authedSpace": "",
127
+ "partitionKeys": [],
128
+ "successOnEmpty": false
129
+ }
130
+ ```
131
+
112
132
  ### Preset Repository as Target (Sink)
113
133
 
114
134
  ```json
115
135
  {
116
- "component": "hive",
136
+ "component": "te_etl",
117
137
  "datasourceId": "te_etl@TASK_ENGINE_TRINO",
118
138
  "database": "",
119
139
  "tablePath": "ods_users_mysql",
@@ -191,28 +211,47 @@ ae-cli dataops_integration +stop_sync_solution --spaceCode "${spaceCode}" \
191
211
 
192
212
  | Command | Purpose | Key Flags |
193
213
  |---------|---------|-----------|
194
- | `+list_datasource_components` | List component types | None |
195
- | `+test_datasource_connect` | Test connection | `--spaceCode` `--componentName` `--configValue` |
196
- | `+add_datasource` | Create datasource | `--spaceCode` `--componentName` `--dataSourceName` `--sharedConfig` `--envJsonList` `--confirmed` |
197
- | `+modify_datasource` | Modify datasource | `--spaceCode` `--dataSourceName` `--dataSourceRemark` `--sharedConfig` `--envJsonList` `--confirmed` |
198
- | `+online_datasource` | Online datasource | `--spaceCode` `--dataSourceNames` `--confirmed` |
199
- | `+list_space_datasources` | List datasources | `--spaceCode` `--componentName` `--dataSourceName` |
200
- | `+list_sync_datasources` | Sync datasources | `--spaceCode` `--env` |
201
- | `+list_datasource_databases` | List databases | `--spaceCode` `--datasourceId` `--env` |
202
- | `+list_datasource_tables` | List tables | `--spaceCode` `--datasourceId` `--database` `--env` |
203
- | `+get_table_structure` | Table structure | `--spaceCode` `--datasourceId` `--database` `--tablePath` `--env` |
204
- | `+add_sync_solution` | Create sync solution | `--spaceCode` `--syncName` `--srcComponent` `--srcDatasourceId` `--sinkComponent` `--sinkDatasourceId` `--sourceConfig` `--sinkConfig` `--channelConfig` `--fieldsMapping` `--confirmed` |
205
- | `+save_sync_solution` | Update sync solution | `--spaceCode` `--syncId` `--syncName` `--sourceConfig` `--sinkConfig` `--channelConfig` `--fieldsMapping` `--confirmed` |
214
+ | `+list_datasource_components` | List supported datasource components | None |
215
+ | `+get_datasource_component_template` | Component envJsonList template | `--componentName` |
216
+ | `+test_datasource_connect` | Test saved datasource connection | `--spaceCode` `--datasourceName` |
217
+ | `+add_datasource` | Create datasource | `--spaceCode` `--componentName` `--dataSourceName` `--sharedConfig` `--envJsonList` `[--dataSourceRemark]` |
218
+ | `+modify_datasource` | Modify datasource | `--spaceCode` `--dataSourceName` `[--dataSourceRemark]` `[--sharedConfig]` `[--envJsonList]` |
219
+ | `+online_datasource` | Online datasource | `--spaceCode` `--dataSourceNames` |
220
+ | `+list_space_datasources` | List datasources | `--spaceCode` `[--datasourceName]` `[--componentName]` |
221
+ | `+get_datasource_detail` | Datasource detail | `--spaceCode` `--datasourceName` |
222
+ | `+list_sync_datasources` | Sync datasources | `--spaceCode` `[--env]` |
223
+ | `+list_datasource_databases` | List datasource databases | `--spaceCode` `--datasourceId` `[--catalog]` `[--env]` |
224
+ | `+list_datasource_tables` | List datasource tables | `--spaceCode` `--datasourceId` `--database` `[--catalog]` `[--env]` |
225
+ | `+get_table_structure` | Datasource table structure | `--spaceCode` `--datasourceId` `--database` `--tablePath` `[--catalog]` `[--env]` |
226
+ | `+add_sync_solution` | Create sync solution | `--spaceCode` `--syncName` `--srcComponent` `--srcDatasourceId` `--sinkComponent` `--sinkDatasourceId` `--sourceConfig` `--sinkConfig` `[--channelConfig]` `[--fieldsMapping]` `[--remark]` |
227
+ | `+save_sync_solution` | Update sync solution | `--spaceCode` `--syncId` `--sourceConfig` `--sinkConfig` `[--syncName]` `[--channelConfig]` `[--fieldsMapping]` `[--remark]` |
206
228
  | `+list_sync_solutions` | List sync solutions | `--spaceCode` |
207
- | `+get_sync_detail` | Sync solution details | `--spaceCode` `--syncId` `--withParams` |
208
- | `+exec_sync_solution` | Execute sync | `--spaceCode` `--syncId` `--execParams` `--confirmed` |
209
- | `+list_sync_exec_histories` | Execution history | `--spaceCode` `--syncId` `--execType` `--limit` |
210
- | `+get_sync_exec_info` | Execution details | `--spaceCode` `--syncId` `--taskId` |
211
- | `+stop_sync_solution` | Stop sync | `--spaceCode` `--syncId` `--taskId` `--confirmed` |
229
+ | `+get_sync_detail` | Sync solution detail | `--spaceCode` `--syncId` `[--withParams]` |
230
+ | `+exec_sync_solution` | Execute sync | `--spaceCode` `--syncId` `[--baseDate]` `[--comment]` |
231
+ | `+list_sync_runs` | Manual sync runs | `--spaceCode` `--syncId` `[--limit]` |
232
+ | `+stop_sync_solution` | Stop one running sync execution task | `--spaceCode` `--syncId` `--taskId` |
233
+
234
+ - **Datasource components**: `+list_datasource_components` requires no arguments. It returns an array of `componentName`, `componentType`, and `description`.
235
+ - **Datasource component template**: `+get_datasource_component_template` requires only `--componentName`. It returns component metadata, `requiredFields`, `optionalFields`, `envJsonExampleObject`, and `importantNotes`.
236
+ - **Datasource list**: `+list_space_datasources` requires `--spaceCode`; `--datasourceName` and `--componentName` are optional filters. It returns datasource summary fields including `datasourceId`, `dataSourceComponentName`, `dataSourceName`, `dataSourceRemark`, `dataSourceStatus`, `connectStatus`, `syncTaskNum`, and `sharedConfig`.
237
+ - **Datasource detail**: `+get_datasource_detail` requires `--spaceCode` and `--datasourceName`. It returns `datasourceId`, `dataSourceComponentName`, `dataSourceName`, `dataSourceRemark`, `dataSourceStatus`, `connectStatus`, `syncTaskNum`, `sharedConfig`, masked `connectConfig`, `connectFails`, and `lastConnectTime`.
238
+ - **Datasource creation**: `+add_datasource` creates directly after the CLI write confirmation. `envJsonList` must be a JSON array string using keys from the component template `requiredFields`; `sharedConfig=true` uses one config for DEV/PROD, while `sharedConfig=false` requires two configs (DEV, PROD).
239
+ - **Datasource connection test**: `+test_datasource_connect` requires `--spaceCode` and `--datasourceName`. It tests the saved datasource config and returns `datasourceName`, `connectStatus`, `connectFails`, `lastConnectTime`, and `nextAction`.
240
+ - **Datasource modification**: `+modify_datasource` creates no preview; it updates only provided optional fields after the CLI write confirmation. Use `--envJsonList` with the same JSON array format as `+add_datasource`.
241
+ - **Datasource online**: `+online_datasource` requires `--spaceCode` and `--dataSourceNames`. It executes after the CLI write confirmation and returns `failDataSources` and `successDataSourceNames`.
242
+ - **Sync datasources**: `+list_sync_datasources` requires `--spaceCode`; `--env` is optional and defaults to `DEV`. It returns `sourceComponentSet` and `sinkComponentSet`, grouped by component, with `dataSourceList` and `supportableComponent`.
243
+ - **Datasource databases**: `+list_datasource_databases` requires `--spaceCode` and `--datasourceId`; `--catalog` and `--env` are optional, and `--env` defaults to `DEV`. It returns an array of objects with `databaseName`.
244
+ - **Datasource tables**: `+list_datasource_tables` requires `--spaceCode`, `--datasourceId`, and `--database`; `--catalog` and `--env` are optional, and `--env` defaults to `DEV`. It returns table metadata including `database`, `tableName`, `tableType`, `tableComment`, `engine`, `disabled`, `disabledReasons`, `sameVersion`, and `supportSharding`.
245
+ - **Datasource table structure**: `+get_table_structure` requires `--spaceCode`, `--datasourceId`, `--database`, and `--tablePath`; `--catalog` and `--env` are optional, and `--env` defaults to `DEV`. It returns `columns` and `partitionColumns`.
246
+ - **Sync solution list**: `+list_sync_solutions` requires only `--spaceCode`. It returns sync metadata including `syncId`, `syncName`, source/sink datasource and table fields, last execution/schedule status codes, owner, remark, and timestamps.
247
+ - **Sync detail**: `+get_sync_detail` requires `--spaceCode` and `--syncId`; `--withParams` is optional and defaults to `false`. It returns source, sink, field mapping, last execution/schedule status, owner, and `nextAction`; `withParams=true` also returns `usedParams`.
248
+ - **Sync update**: `+save_sync_solution` requires `--spaceCode`, `--syncId`, `--sourceConfig`, and `--sinkConfig`; `--syncName`, `--channelConfig`, `--fieldsMapping`, and `--remark` are optional. Passing `--syncName` renames the sync solution; omit it to keep the current name. `sourceConfig` and `sinkConfig` must be complete JSON strings from `+get_sync_detail --withParams true`; pass complete `channelConfig` and `fieldsMapping` when keeping or updating them.
249
+ - **Sync runs**: `+list_sync_runs` requires `--spaceCode` and `--syncId`; `--limit` is optional and defaults to `20`. It returns `runs`, `returnedCount`, `limit`, and `nextAction`; each run includes `taskId`, `execType`, `status`, `execTime`, `channelMode`, and `submitter`.
250
+ - **Stop sync run**: `+stop_sync_solution` requires `--spaceCode`, `--syncId`, and `--taskId`. Use `taskId` from `+list_sync_runs` for an active run. It returns `action`, `result` with `execStatus`, `syncId`, and `taskId`, and top-level `status`.
212
251
 
213
252
  ## Component Conditional Required Parameters
214
253
 
215
- Some components have conditional required parameters that vary based on deployment mode. The requiredFields from `+list_datasource_components` may not include these parameters (they are explained in optionalFields or importantNotes). When creating datasources, be sure to supplement corresponding parameters based on the user's selected mode.
254
+ Some components have conditional required parameters that vary based on deployment mode. The requiredFields from `+get_datasource_component_template` may not include these parameters (they are explained in optionalFields or importantNotes). When creating datasources, be sure to supplement corresponding parameters based on the user's selected mode.
216
255
 
217
256
  ### MongoDB
218
257
 
@@ -15,6 +15,10 @@ Use the `dataops_ide` subcommand for data exploration and SQL queries.
15
15
 
16
16
  **Core Rule: IDE only allows query operations, prohibits creating/modifying/deleting data tables (use dataops_datatable for task table DDL).**
17
17
 
18
+ **Table discovery rule:** use `dataops_datatable +dict_search_tables` first for the visible DataOps catalog. Use `dataops_ide +search_tables` only when raw engine metadata is needed, and `dataops_ide +ide_list_tables` only for known catalog/schema browsing.
19
+
20
+ If `spaceCode` is unknown, run `ae-cli dataops_repo +list_spaces` first. Use the only returned `spaceCode` directly; when multiple spaces are returned, choose by user intent or ask the user instead of guessing.
21
+
18
22
  ---
19
23
 
20
24
  ## Workflow A: Browse Data Warehouse Metadata
@@ -22,67 +26,57 @@ Use the `dataops_ide` subcommand for data exploration and SQL queries.
22
26
  Explore data warehouse structure step by step: repository → catalog → schema → table → column.
23
27
 
24
28
  ```bash
25
- # Step 1: List available repositories
26
- ae-cli dataops_ide +list_repos --spaceCode "${spaceCode}"
29
+ # Step 1: List available IDE warehouse repositories
30
+ ae-cli dataops_ide +ide_list_repos --spaceCode "${spaceCode}"
31
+
32
+ # Step 2: List accessible catalogs and schema names. Defaults: connType=SPACE, repoCode=te_etl.
33
+ ae-cli dataops_ide +ide_list_catalogs --spaceCode "${spaceCode}"
27
34
 
28
- # Step 2: List all catalogs and their schemas in repository
29
- ae-cli dataops_ide +list_catalogs --spaceCode "${spaceCode}" --connType "SPACE" --repoCode "${repoCode}"
35
+ # Step 3: List physical tables under one schema. Defaults: connType=SPACE, repoCode=te_etl, entityType=TABLE, pageNum=1, pageSize=20.
36
+ # This command does not support keyword filtering; use +search_tables only for engine-side keyword search.
37
+ ae-cli dataops_ide +ide_list_tables --spaceCode "${spaceCode}" \
38
+ --catalog "${catalog}" --schema "${schema}" --pageSize 20
30
39
 
31
- # Step 3: List tables/views under schema
32
- ae-cli dataops_ide +list_tables --spaceCode "${spaceCode}" --connType "SPACE" --repoCode "${repoCode}" \
33
- --catalog "${catalog}" --schema "${schema}" --isView false --pageNum 1 --pageSize 100
40
+ # To list views under the same schema
41
+ ae-cli dataops_ide +ide_list_tables --spaceCode "${spaceCode}" \
42
+ --catalog "${catalog}" --schema "${schema}" --entityType VIEW --pageSize 20
34
43
 
35
- # Step 4: Get detailed table metadata (column definitions, DDL, partitions, row count)
36
- ae-cli dataops_ide +get_table_detail --spaceCode "${spaceCode}" --connType "SPACE" --repoCode "${repoCode}" \
37
- --catalog "${catalog}" --schema "${schema}" --tableName "${tableName}" \
38
- --engineType "TASK_ENGINE_TRINO" --isView false
44
+ # Step 4: Get engine-side table/view detail. Defaults: connType=SPACE, repoCode=te_etl, engineType=TASK_ENGINE_TRINO; entityType is auto-detected; tableDdl is hidden unless --includeDdl true.
45
+ ae-cli dataops_ide +ide_get_table_detail --spaceCode "${spaceCode}" \
46
+ --catalog "${catalog}" --schema "${schema}" --tableName "${tableName}"
39
47
  ```
40
48
 
41
49
  ---
42
50
 
43
51
  ## Workflow B: Search and View Tables
44
52
 
45
- When you don't know the exact table location, search by keyword.
53
+ When you don't know the exact table location, search by keyword. Prefer `dataops_datatable +dict_search_tables`; use the IDE search below only when raw engine metadata is needed.
46
54
 
47
55
  ```bash
48
- # Fuzzy search tables across catalog/schema
49
- ae-cli dataops_ide +search_tables --spaceCode "${spaceCode}" --connType "SPACE" --repoCode "${repoCode}" \
50
- --searchKey "user" --size 20
51
-
52
- # Fuzzy search column names across tables
53
- ae-cli dataops_ide +search_columns --spaceCode "${spaceCode}" --repoCode "${repoCode}" \
54
- --searchKey "user_id" --tables '[{"catalog":"hive","isView":false,"schema":"ws_default_dev","tableName":"dwd_user"}]' \
55
- --engineType "TASK_ENGINE_TRINO" --pageNum 1 --pageSize 100
56
-
57
- # Generate SELECT SQL based on table and column names
58
- ae-cli dataops_ide +generate_sql --spaceCode "${spaceCode}" --repoCode "${repoCode}" \
59
- --catalog "hive" --schema "ws_default_dev" --tableName "dwd_user" \
60
- --engineType "TASK_ENGINE_TRINO" --selectColumns '["user_id","user_name","age"]'
56
+ # Search engine-side warehouse tables/views by keyword. Defaults: connType=SPACE, repoCode=te_etl, size=20.
57
+ ae-cli dataops_ide +search_tables --spaceCode "${spaceCode}" --searchKey "user"
61
58
  ```
62
59
 
63
60
  ---
64
61
 
65
- ## Workflow C: Execute SQL Query (Complete Async Flow)
62
+ ## Workflow C: Execute SQL Query (Download-Centered Async Flow)
66
63
 
67
- This is the most important workflow, containing 3 steps: execute poll progress get results.
64
+ Use this flow for SQL query execution. Result rows are not returned through MCP/CLI; submit creates a Gaia download-center task directly.
68
65
 
69
66
  ```bash
70
- # Step 1: Execute SQL asynchronously (returns requestId)
71
- ae-cli dataops_ide +execute_sql --spaceCode "${spaceCode}" --repoCode "te_etl" \
67
+ # Step 1: Submit SQL and create a download task. Defaults: repoCode=te_etl, engineType=TASK_ENGINE_TRINO.
68
+ ae-cli dataops_ide +submit_sql_query --spaceCode "${spaceCode}" --repoCode "te_etl" \
72
69
  --sql "SELECT * FROM hive.ws_default_dev.dwd_user LIMIT 10" \
73
- --engineType "TASK_ENGINE_TRINO" --confirmed true
70
+ --engineType "TASK_ENGINE_TRINO"
74
71
 
75
- # Step 2: Query execution progress (use requestId from Step 1, recommend 2-5 second polling)
76
- # state values: QUEUED / RUNNING / FINISHED / FAILED / CANCELLED
77
- ae-cli dataops_ide +get_query_progress --requestId "${requestId}"
72
+ # Step 2: Poll the download task status by spaceCode/downloadTaskId. Rows are not returned through MCP/CLI.
73
+ ae-cli dataops_ide +get_sql_query_status --spaceCode "${spaceCode}" --downloadTaskId ${downloadTaskId}
78
74
 
79
- # Step 3: After state=FINISHED, get query results
80
- # recordId obtained from query history or progress info
81
- ae-cli dataops_ide +get_query_result --spaceCode "${spaceCode}" --connType "SPACE" \
82
- --repoCode "te_etl" --recordId "${recordId}"
75
+ # Step 3: CLI-only local save after downloadStatus=SUCCESS. Use a .zip suffix.
76
+ ae-cli dataops_ide +get_sql_query_status --spaceCode "${spaceCode}" --downloadTaskId ${downloadTaskId} --downloadTo "./result.zip"
83
77
 
84
- # (Optional) Cancel running query
85
- ae-cli dataops_ide +cancel_query --requestId "${requestId}" --confirmed true
78
+ # (Optional) Cancel the download task.
79
+ ae-cli dataops_ide +cancel_sql_query --spaceCode "${spaceCode}" --downloadTaskId ${downloadTaskId}
86
80
  ```
87
81
 
88
82
  ---
@@ -91,21 +85,28 @@ ae-cli dataops_ide +cancel_query --requestId "${requestId}" --confirmed true
91
85
 
92
86
  | Command | Purpose | Key Flags |
93
87
  |---------|---------|-----------|
94
- | `+list_repos` | List repositories | `--spaceCode` |
95
- | `+list_catalogs` | List catalog/schema | `--spaceCode` `--connType` `--repoCode` |
96
- | `+list_tables` | List tables | `--spaceCode` `--connType` `--repoCode` `--catalog` `--schema` `--isView` `--pageNum` `--pageSize` |
97
- | `+get_table_detail` | Table metadata | `--spaceCode` `--connType` `--repoCode` `--catalog` `--schema` `--tableName` `--engineType` `--isView` |
98
- | `+get_schema_info` | Schema statistics | `--spaceCode` `--connType` `--repoCode` `--catalog` `--schema` |
99
- | `+search_tables` | Fuzzy search tables | `--spaceCode` `--connType` `--repoCode` `--searchKey` `--size` |
100
- | `+search_columns` | Fuzzy search columns | `--spaceCode` `--repoCode` `--searchKey` `--tables` (JSON) `--engineType` `--pageNum` `--pageSize` |
101
- | `+generate_sql` | Generate SELECT | `--spaceCode` `--repoCode` `--catalog` `--schema` `--tableName` `--engineType` `--selectColumns` (JSON) |
102
- | `+execute_sql` | Execute SQL | `--spaceCode` `--repoCode` `--sql` `--engineType` `--confirmed` |
103
- | `+get_query_progress` | Query progress | `--requestId` |
104
- | `+get_query_result` | Get results | `--spaceCode` `--connType` `--repoCode` `--recordId` |
105
- | `+cancel_query` | Cancel query | `--requestId` `--confirmed` |
88
+ | `+ide_list_repos` | List IDE repositories grouped by connType | `--spaceCode` |
89
+ | `+ide_list_catalogs` | List IDE catalogs and schemas | `--spaceCode` `[--connType]` `[--repoCode]` |
90
+ | `+ide_list_tables` | List tables or views in one catalog/schema | `--spaceCode` `--catalog` `--schema` `[--connType]` `[--repoCode]` `[--entityType]` `[--pageNum]` `[--pageSize]` |
91
+ | `+ide_get_table_detail` | Get engine-side table/view detail; `tableDdl` only with `--includeDdl true` | `--spaceCode` `--catalog` `--schema` `--tableName` `[--connType]` `[--repoCode]` `[--engineType]` `[--entityType]` `[--includeDdl]` |
92
+ | `+get_schema_info` | Get schema statistics only (`schema/tableNum/viewNum`) | `--spaceCode` `--catalog` `--schema` `[--connType]` `[--repoCode]` |
93
+ | `+search_tables` | Search engine-side warehouse tables/views by keyword | `--spaceCode` `--searchKey` `[--connType]` `[--repoCode]` `[--size]` |
94
+ | `+submit_sql_query` | Submit SQL and create a download task | `--spaceCode` `--sql` `[--repoCode]` `[--engineType]` |
95
+ | `+get_sql_query_status` | Poll download task status; `--downloadTo` is CLI-only local save after `downloadStatus=SUCCESS` | `--spaceCode` `--downloadTaskId` `[--requestId]` `[--downloadTo]` |
96
+ | `+cancel_sql_query` | Cancel download task; `--requestId` is trace-only | `--spaceCode` `--downloadTaskId` `[--requestId]` |
106
97
 
107
98
  ## Parameter Notes
108
99
 
109
100
  - **connType**: `SPACE` (data warehouse for daily queries, default) | `ETL` (ETL engine) | `APP` (app warehouse for external services)
110
- - **engineType**: `TASK_ENGINE_TRINO` (default, interactive queries) | `TASK_ENGINE_STARROCKS` (real-time analytics, high concurrency)
111
- - **isView**: `false` for physical tables | `true` for views
101
+ - **Repository list**: `+ide_list_repos` requires `--spaceCode` and has no optional flags. It returns an array grouped by `connType`; each group has `repos` with `repoCode`, `repoDesc`, and `engineTypes`.
102
+ - **Catalog list**: `+ide_list_catalogs` requires `--spaceCode`; `--connType` and `--repoCode` are optional and default to `SPACE` and `te_etl`. It returns an array of catalogs with `catalog`, `catalogBelongEnum`, `schemaNum`, and `schemas`.
103
+ - **Table list**: `+ide_list_tables` requires `--spaceCode`, `--catalog`, and `--schema`. `--connType`, `--repoCode`, `--entityType`, `--pageNum`, and `--pageSize` are optional and default to `SPACE`, `te_etl`, `TABLE`, `1`, and `20`. It returns `items`, `pageNum`, `pageSize`, `returnedCount`, `hasMoreMaybe`, and `nextAction`.
104
+ - **Table search**: `+search_tables` requires `--spaceCode` and `--searchKey`. `--connType`, `--repoCode`, and `--size` are optional and default to `SPACE`, `te_etl`, and `20`. It returns `items`, `searchKey`, `size`, `totalCount`, `tableCount`, `viewCount`, `returnedCount`, `hasMore`, and `nextAction`.
105
+ - **Table detail**: `+ide_get_table_detail` requires `--spaceCode`, `--catalog`, `--schema`, and `--tableName`. `--connType`, `--repoCode`, `--engineType`, `--entityType`, and `--includeDdl` are optional and default to `SPACE`, `te_etl`, `TASK_ENGINE_TRINO`, auto-detect, and `false`. It returns identity, storage metadata, columns, partitions, partition keys, optional layout fields, and `tableDdl` only when requested.
106
+ - **Schema info**: `+get_schema_info` requires `--spaceCode`, `--catalog`, and `--schema`. `--connType` and `--repoCode` are optional and default to `SPACE` and `te_etl`. It returns only `schema`, `tableNum`, and `viewNum`.
107
+ - **SQL submit**: `+submit_sql_query` requires `--spaceCode` and `--sql`. `--repoCode` and `--engineType` are optional and default to `te_etl` and `TASK_ENGINE_TRINO`. On success it returns `requestId`, `spaceCode`, `repoCode`, `downloadTaskId`, `downloadStatus`, `downloadApi`, `downloadParams`, and `nextAction`; rows are never returned.
108
+ - **SQL status**: `+get_sql_query_status` requires `--spaceCode` and `--downloadTaskId`. `--requestId` is optional trace-only. `--downloadTo` is CLI-only; after `downloadStatus=SUCCESS` it saves the result zip and adds `localFile`. It returns status/progress metadata, `nextAction`, `downloadApi`, and `downloadParams`; rows are never returned.
109
+ - **SQL cancel**: `+cancel_sql_query` requires `--spaceCode` and `--downloadTaskId`. `--requestId` is optional trace-only. It returns cancellation request metadata such as `downloadCancelStatus`.
110
+ - **engineType**: `TASK_ENGINE_TRINO` (default, interactive queries) | `TASK_ENGINE_STARROCKS` (high-concurrency analytics)
111
+ - **entityType**: optional `TABLE` or `VIEW` hint. Omit it unless the target type must be forced.
112
+ - **includeDdl**: defaults to false. Use `--includeDdl true` only when the raw DDL text is needed.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: dataops-table
3
3
  version: 1.0.0
4
- description: "Data table and view management: search tables, view table details, create physical tables/views, batch create linked views. Trigger keywords: create table, table creation, view, data dictionary, table details, linked view, linkview, datatable, DDL."
4
+ description: "Data table and view management: search tables, view table details, create physical tables/views. Trigger keywords: create table, table creation, view, data dictionary, table details, datatable, DDL."
5
5
  metadata:
6
6
  requires:
7
7
  bins: ["ae-cli"]
@@ -15,29 +15,23 @@ Use the `dataops_datatable` subcommand to manage data tables.
15
15
 
16
16
  **Core Rules:**
17
17
  - Creating/modifying/deleting workspace task tables **must use dataops_datatable**, prohibited to use dataops_ide
18
+ - Use `+dict_search_tables` as the default discovery command for the visible DataOps catalog
19
+ - Use `dataops_ide +search_tables` only when raw engine-side metadata is needed
20
+ - Use `dataops_ide +ide_list_tables` only after catalog/schema are known and you need schema browsing
18
21
  - Confirm no table with the same name exists before creation
19
22
  - When creating views or data tables, generate DDL according to **Trino DDL specifications**
20
- - Create task tables in DEV environment first, then PROD environment (can create simultaneously)
23
+ - `+create_table` and `+create_view` create objects in the DEV environment only. Publish PROD separately with `+publish_entity`.
21
24
 
22
25
  ---
23
26
 
24
27
  ## Workflow A: Search and View Table Information
25
28
 
26
29
  ```bash
27
- # Search tables in data dictionary (fuzzy match by table name/description)
30
+ # Default table discovery: search the DataOps table catalog. Prefer precise keywords; avoid broad scans.
28
31
  ae-cli dataops_datatable +dict_search_tables --spaceCode "${spaceCode}" --search "user" --maxResults 20
29
32
 
30
- # Get detailed table information (fields, DDL, data lineage)
33
+ # Get compact detail. TASK_ENV without --env returns DEV and PRODUCT.
31
34
  ae-cli dataops_datatable +get_table_detail --spaceCode "${spaceCode}" --tableName "dwd_user_info"
32
-
33
- # Paginated query of registered tables in workspace
34
- ae-cli dataops_datatable +list_tables_by_page --spaceCode "${spaceCode}" --search "user" --pageNum 1 --pageSize 20
35
-
36
- # Get table hierarchy by repository dimension (repo→catalog→schema→tables)
37
- ae-cli dataops_datatable +struct_by_repo --spaceCode "${spaceCode}"
38
-
39
- # Search system tables (event tables, user tables, dimension tables)
40
- ae-cli dataops_datatable +list_system_tables --spaceCode "${spaceCode}" --projectName "my_project"
41
35
  ```
42
36
 
43
37
  ---
@@ -48,15 +42,13 @@ ae-cli dataops_datatable +list_system_tables --spaceCode "${spaceCode}" --projec
48
42
  # Step 1: Confirm no table with same name exists
49
43
  ae-cli dataops_datatable +dict_search_tables --spaceCode "${spaceCode}" --search "dwd_user_info"
50
44
 
51
- # Step 2: Create physical table in DEV environment (DDL must follow Trino specifications)
45
+ # Step 2: Create physical table in DEV (DDL must follow Trino specifications)
52
46
  ae-cli dataops_datatable +create_table --spaceCode "${spaceCode}" \
53
- --ddl "CREATE TABLE dwd_user_info (user_id VARCHAR, user_name VARCHAR, age INTEGER) WITH (format = 'ORC')" \
54
- --repoCode "te_etl" --catalog "hive" --schema "ws_default_dev" --confirmed true
47
+ --ddl "CREATE TABLE dwd_user_info (user_id VARCHAR, user_name VARCHAR, age INTEGER) WITH (format = 'ORC')"
55
48
 
56
- # Step 3: Create physical table in PROD environment (same DDL, change schema to product database)
57
- ae-cli dataops_datatable +create_table --spaceCode "${spaceCode}" \
58
- --ddl "CREATE TABLE dwd_user_info (user_id VARCHAR, user_name VARCHAR, age INTEGER) WITH (format = 'ORC')" \
59
- --repoCode "te_etl" --catalog "hive" --schema "ws_default_product" --confirmed true
49
+ # Step 3: Publish explicitly. name is enough when it resolves to one TASK_ENV entity.
50
+ ae-cli dataops_datatable +publish_entity --spaceCode "${spaceCode}" \
51
+ --name "dwd_user_info"
60
52
  ```
61
53
 
62
54
  ---
@@ -67,34 +59,13 @@ ae-cli dataops_datatable +create_table --spaceCode "${spaceCode}" \
67
59
  # Step 1: Confirm no view with same name exists
68
60
  ae-cli dataops_datatable +dict_search_tables --spaceCode "${spaceCode}" --search "v_user_info"
69
61
 
70
- # Step 2: Create view (defaults to v_${source_table_name} if view name not specified)
62
+ # Step 2: Create DataOps view in DEV. This example expands ${spaceCode} but keeps ${env} literal.
71
63
  ae-cli dataops_datatable +create_view --spaceCode "${spaceCode}" \
72
- --ddl "CREATE VIEW v_user_info AS SELECT user_id, user_name FROM hive.ws_default_dev.dwd_user_info" \
73
- --repoCode "te_etl" --catalog "hive" --schema "ws_default_dev" --confirmed true
74
- ```
64
+ --ddl "CREATE VIEW v_user_info AS SELECT user_id, user_name FROM hive.ws_${spaceCode}_\${env}.dwd_user_info"
75
65
 
76
- ---
77
-
78
- ## Workflow D: Batch Create Linked Views
79
-
80
- ```bash
81
- # Step 1: List source tables available for creating linked views
82
- ae-cli dataops_datatable +linkview_list_source_tables --spaceCode "${spaceCode}" \
83
- --srcRepoCode "te_etl" --srcCatalog "hive" --srcSchema "ws_default_hidden"
84
-
85
- # Step 2: Batch create linked views (async execution)
86
- ae-cli dataops_datatable +batch_create --spaceCode "${spaceCode}" \
87
- --srcRepoCode "te_etl" --srcCatalog "hive" --srcSchema "ws_default_hidden" \
88
- --processType 2 --batchCreationMode 1 --owner "${ownerOpenId}" \
89
- --viewInfos '[{"viewName":"v_orders","srcTableName":"ta_event_123","srcTableType":"TABLE"}]' \
90
- --confirmed true
91
-
92
- # Step 3: Poll batch creation status (recommend 3-5 second interval)
93
- # status: WAIT / RUNNING / SUCCESS / STOP
94
- ae-cli dataops_datatable +linkview_get_batch_status --spaceCode "${spaceCode}" --batchId "${batchId}"
95
-
96
- # View historical batch creation records
97
- ae-cli dataops_datatable +list_batches --spaceCode "${spaceCode}"
66
+ # Step 3: Publish explicitly. name is enough when it resolves to one TASK_ENV entity.
67
+ ae-cli dataops_datatable +publish_entity --spaceCode "${spaceCode}" \
68
+ --name "v_user_info"
98
69
  ```
99
70
 
100
71
  ---
@@ -103,20 +74,18 @@ ae-cli dataops_datatable +list_batches --spaceCode "${spaceCode}"
103
74
 
104
75
  | Command | Purpose | Key Flags |
105
76
  |---------|---------|-----------|
106
- | `+dict_search_tables` | Data dictionary search | `--spaceCode` `--search` `--maxResults` |
107
- | `+get_table_detail` | Table details | `--spaceCode` `--tableName` |
108
- | `+list_tables_by_page` | Paginated list | `--spaceCode` `--search` `--pageNum` `--pageSize` |
109
- | `+struct_by_repo` | By repository hierarchy | `--spaceCode` `--search` |
110
- | `+list_system_tables` | System table list | `--spaceCode` `--projectId`/`--projectName` `--pageNum` `--pageSize` |
111
- | `+create_table` | Create physical table | `--spaceCode` `--ddl` `--repoCode` `--catalog` `--schema` `--confirmed` |
112
- | `+create_view` | Create view | `--spaceCode` `--ddl` `--repoCode` `--catalog` `--schema` `--confirmed` |
113
- | `+batch_create` | Batch create views | `--spaceCode` `--srcRepoCode` `--srcCatalog` `--srcSchema` `--processType` `--batchCreationMode` `--owner` `--viewInfos` `--confirmed` |
114
- | `+linkview_get_batch_status` | Batch creation status | `--spaceCode` `--batchId` |
115
- | `+list_batches` | Historical batch records | `--spaceCode` `--status` |
77
+ | `+dict_search_tables` | DataOps table catalog search, default 50 results | `--spaceCode` `--search` `--maxResults` |
78
+ | `+get_table_detail` | DataOps catalog detail | `--spaceCode` `--tableName` `--manageMode` `--env` `--entityType TABLE|VIEW` |
79
+ | `+create_table` | Create DataOps physical table in DEV | `--spaceCode` `--ddl` |
80
+ | `+create_view` | Create DataOps view in DEV | `--spaceCode` `--ddl` |
81
+ | `+publish_entity` | Publish table/view from DEV to PROD | `--spaceCode` `--name` `[--entityId]` `[--entityType]` |
116
82
 
117
83
  ## Parameter Notes
118
84
 
119
- - **schema naming**: DEV environment uses `ws_${spaceCode}_dev`, PROD environment uses `ws_${spaceCode}_product`
120
- - **processType**: `1`=DEV only | `2`=DEV+PROD
121
- - **batchCreationMode**: `1`=full sync | `2`=retry failures
85
+ - **dict_search_tables**: Searches task, IDE, system, and authorized-space tables visible to `spaceCode`. Prefer precise `--search`; default `maxResults` is 50 and max is 200. Returns `tables`, `totalCount`, `returnedCount`, `hasMore`, and `hint` when truncated. `comment` and `remark` are returned only when present.
86
+ - **get_table_detail**: Prefer exact `--tableName`. Add `--manageMode` or `--entityType TABLE|VIEW` when ambiguous. TASK_ENV without `--env` returns `environments.DEV/PRODUCT`; otherwise returns `detail`. Empty optional fields are omitted.
87
+ - **create_table**: Requires `--spaceCode` and `--ddl`; no optional flags. Creates a DataOps physical table in DEV only. The backend parses Trino-compatible DDL and saves TASK_ENV metadata in the default workspace warehouse (`repo=te_etl`, `catalog=hive`). Publish by name with `+publish_entity --name <tableName>`.
88
+ - **create_view**: Requires `--spaceCode` and `--ddl`; no optional command flags. Creates a DataOps view in DEV only. The backend saves TASK_ENV metadata through the DataView save flow in the default workspace warehouse (`repo=te_etl`, `catalog=hive`). Publish by name with `+publish_entity --name <viewName>`. Keep the literal `${env}` placeholder when referencing current-space task tables, for example `ws_${spaceCode}_${env}`.
89
+ - **publish_entity**: Requires `--spaceCode` and `--name`. Publishes one existing TASK_ENV table/view from DEV to PROD. Optional `--entityId` disambiguates same-name matches; optional `--entityType TABLE|VIEW` validates the resolved type. Returns `action/result/status`; result includes published ids/names and `ONLINE` status, or `errorType`/`candidates`/`errors`.
90
+ - **schema naming**: DEV environment uses `ws_${spaceCode}_dev`, PROD environment uses `ws_${spaceCode}_product`. Do not hardcode either schema in current-space view DDL; use `ws_${spaceCode}_${env}` with literal `${env}`.
122
91
  - **Table name rule**: `^[a-z][0-9a-z_]{0,127}$`