@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.
- package/README.md +7 -6
- package/README.zh.md +8 -7
- package/dist/index.js +11 -6
- package/dist/{te-agent-KZRIEN4N.js → te-agent-CYZUC4US.js} +543 -19
- package/dist/{te-analysis-VAR4KUOK.js → te-analysis-HJ22TUAA.js} +318 -40
- package/dist/te-audience-MYDE5WEH.js +590 -0
- package/dist/te-dataops-ZTS7XMXM.js +1842 -0
- package/dist/{te-kb-B62KFP2A.js → te-kb-OWM3RQRH.js} +46 -21
- package/dist/{te-meta-EPZGQN56.js → te-meta-JVO4QJBH.js} +28 -11
- package/package.json +1 -1
- package/skills/ae-agent/SKILL.md +103 -4
- package/skills/ae-analysis/SKILL.md +66 -19
- package/skills/ae-analysis/references/build_attribution_analysis_qp.md +60 -0
- package/skills/ae-analysis/references/build_cluster_definition.md +60 -0
- package/skills/ae-analysis/references/build_distribution_analysis_qp.md +65 -0
- package/skills/ae-analysis/references/build_heat_map_analysis_qp.md +52 -0
- package/skills/ae-analysis/references/build_interval_analysis_qp.md +58 -0
- package/skills/ae-analysis/references/build_path_analysis_qp.md +51 -0
- package/skills/ae-analysis/references/build_rank_list_analysis_qp.md +61 -0
- package/skills/ae-analysis/references/build_tag_definition.md +63 -0
- package/skills/ae-analysis/references/cancel_query.md +2 -3
- package/skills/ae-analysis/references/copy_dashboard.md +33 -0
- package/skills/ae-analysis/references/create_id_cluster.md +40 -0
- package/skills/ae-analysis/references/create_id_tag.md +39 -0
- package/skills/ae-analysis/references/delete_alert.md +27 -0
- package/skills/ae-analysis/references/delete_cluster.md +27 -0
- package/skills/ae-analysis/references/delete_dashboard.md +30 -0
- package/skills/ae-analysis/references/delete_metric.md +27 -0
- package/skills/ae-analysis/references/delete_report.md +27 -0
- package/skills/ae-analysis/references/delete_tag.md +27 -0
- package/skills/ae-analysis/references/drilldown_user_events.md +4 -4
- package/skills/ae-analysis/references/drilldown_users.md +3 -3
- package/skills/ae-analysis/references/freeze_dashboards.md +29 -0
- package/skills/ae-analysis/references/get_table_columns.md +11 -12
- package/skills/ae-analysis/references/list_cluster_members.md +4 -4
- package/skills/ae-analysis/references/list_clusters.md +3 -3
- package/skills/ae-analysis/references/list_dashboards.md +3 -3
- package/skills/ae-analysis/references/list_entities.md +1 -1
- package/skills/ae-analysis/references/list_events.md +3 -3
- package/skills/ae-analysis/references/list_metrics.md +2 -2
- package/skills/ae-analysis/references/list_properties.md +3 -3
- package/skills/ae-analysis/references/list_reports.md +3 -3
- package/skills/ae-analysis/references/list_spaces.md +27 -0
- package/skills/ae-analysis/references/list_tag_members.md +4 -4
- package/skills/ae-analysis/references/list_tags.md +2 -2
- package/skills/ae-analysis/references/move_dashboard.md +33 -0
- package/skills/ae-analysis/references/query_adhoc.md +2 -2
- package/skills/ae-analysis/references/query_bi_panel_data.md +2 -2
- package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -4
- package/skills/ae-analysis/references/query_entity_details.md +4 -4
- package/skills/ae-analysis/references/query_event_details.md +3 -3
- package/skills/ae-analysis/references/query_report_data.md +37 -3
- package/skills/ae-analysis/references/update_id_cluster.md +36 -0
- package/skills/ae-analysis/references/update_id_tag.md +37 -0
- package/skills/ae-analysis/references/update_report.md +35 -0
- package/skills/ae-analysis-intent/SKILL.md +1 -1
- package/skills/ae-dataops/SKILL.md +54 -522
- package/skills/ae-dataops/references/dataops-flow-create.md +78 -75
- package/skills/ae-dataops/references/dataops-flow-monitor.md +58 -51
- package/skills/ae-dataops/references/dataops-integration.md +80 -41
- package/skills/ae-dataops/references/dataops-query.md +54 -53
- package/skills/ae-dataops/references/dataops-table.md +28 -59
- package/dist/te-audience-KMKYI2YJ.js +0 -400
- 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,
|
|
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:
|
|
30
|
-
ae-cli dataops_integration +
|
|
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
|
-
|
|
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 (
|
|
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 "
|
|
89
|
+
--sinkComponent "te_etl" --sinkDatasourceId "te_etl@TASK_ENGINE_TRINO" \
|
|
81
90
|
--sourceConfig '{"component":"MySQL","datasourceId":"xxx","database":"test","tablePath":"users"}' \
|
|
82
|
-
--sinkConfig '{"component":"
|
|
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}" --
|
|
101
|
+
--syncId "${syncId}" --baseDate "${baseDate}"
|
|
94
102
|
|
|
95
|
-
#
|
|
96
|
-
ae-cli dataops_integration +
|
|
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}"
|
|
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": "
|
|
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
|
|
195
|
-
| `+
|
|
196
|
-
| `+
|
|
197
|
-
| `+
|
|
198
|
-
| `+
|
|
199
|
-
| `+
|
|
200
|
-
| `+
|
|
201
|
-
| `+
|
|
202
|
-
| `+
|
|
203
|
-
| `+
|
|
204
|
-
| `+
|
|
205
|
-
| `+
|
|
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
|
|
208
|
-
| `+exec_sync_solution` | Execute sync | `--spaceCode` `--syncId`
|
|
209
|
-
| `+
|
|
210
|
-
| `+
|
|
211
|
-
|
|
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 `+
|
|
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 +
|
|
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
|
|
29
|
-
|
|
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
|
-
#
|
|
32
|
-
ae-cli dataops_ide +
|
|
33
|
-
--catalog "${catalog}" --schema "${schema}" --
|
|
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
|
|
36
|
-
ae-cli dataops_ide +
|
|
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
|
-
#
|
|
49
|
-
ae-cli dataops_ide +search_tables --spaceCode "${spaceCode}" --
|
|
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 (
|
|
62
|
+
## Workflow C: Execute SQL Query (Download-Centered Async Flow)
|
|
66
63
|
|
|
67
|
-
|
|
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:
|
|
71
|
-
ae-cli dataops_ide +
|
|
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"
|
|
70
|
+
--engineType "TASK_ENGINE_TRINO"
|
|
74
71
|
|
|
75
|
-
# Step 2:
|
|
76
|
-
|
|
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:
|
|
80
|
-
|
|
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
|
|
85
|
-
ae-cli dataops_ide +
|
|
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
|
-
| `+
|
|
95
|
-
| `+
|
|
96
|
-
| `+
|
|
97
|
-
| `+
|
|
98
|
-
| `+get_schema_info` |
|
|
99
|
-
| `+search_tables` |
|
|
100
|
-
| `+
|
|
101
|
-
| `+
|
|
102
|
-
| `+
|
|
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
|
-
- **
|
|
111
|
-
- **
|
|
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
|
|
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
|
-
-
|
|
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
|
-
#
|
|
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
|
|
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
|
|
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:
|
|
57
|
-
ae-cli dataops_datatable +
|
|
58
|
-
--
|
|
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
|
|
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.
|
|
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
|
-
|
|
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` |
|
|
107
|
-
| `+get_table_detail` |
|
|
108
|
-
| `+
|
|
109
|
-
| `+
|
|
110
|
-
| `+
|
|
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
|
-
- **
|
|
120
|
-
- **
|
|
121
|
-
- **
|
|
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}$`
|