@thinkingai/ae-cli 6.0.31 → 6.1.4
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 +3 -2
- package/README.zh.md +3 -2
- package/dist/{capability-SQ2IWKP3.js → capability-QW4AVJHI.js} +1 -1
- package/dist/{capability-SEH3JWLN.js → capability-SCRFGODD.js} +1 -1
- package/dist/{chunk-N2QORU5D.js → chunk-7OLGDQQ2.js} +5 -2
- package/dist/{chunk-TKQJQXWT.js → chunk-TBHBYKXZ.js} +5 -2
- package/dist/index.js +51 -24
- package/dist/{metadata-X62TKIVK.js → metadata-BFDL6RUK.js} +2 -2
- package/dist/{metadata-W6JFFMBA.js → metadata-FCLDBXX2.js} +2 -2
- package/dist/{te-analysis-NJGNWZFC.js → te-analysis-PUVF5IF4.js} +1297 -91
- package/dist/{te-analysis-YGV5V5EX.js → te-analysis-UJDOKPAN.js} +1297 -91
- package/dist/te-common-VUX3VOXZ.js +60 -0
- package/dist/te-common-XLAGWNIV.js +60 -0
- package/dist/te-engage-K4AEUPK5.js +3894 -0
- package/dist/te-engage-QBCCME22.js +3894 -0
- package/dist/te-experiment-JINSMHMW.js +606 -0
- package/dist/te-experiment-NWNQHJS5.js +606 -0
- package/dist/{te-kb-NT33UHAE.js → te-kb-AYCODNU6.js} +56 -17
- package/dist/{te-meta-VKWNAWO4.js → te-meta-ARDIW3YI.js} +1 -234
- package/dist/{te-meta-MAAUHFQO.js → te-meta-UUROEODR.js} +1 -234
- package/package.json +2 -1
- package/skills/ae-analysis/SKILL.md +10 -7
- package/skills/ae-analysis/references/adhoc_export.md +3 -6
- package/skills/ae-analysis/references/adhoc_run.md +5 -9
- package/skills/ae-analysis/references/ai_models.md +17 -1
- package/skills/ae-analysis/references/analysis_data_retrieval.md +11 -11
- package/skills/ae-analysis/references/analysis_drilldown_contract.md +93 -0
- package/skills/ae-analysis/references/analysis_gateway_assets.md +9 -8
- package/skills/ae-analysis/references/asset_url_get.md +4 -3
- package/skills/ae-analysis/references/bi_panel_page_data_export.md +2 -2
- package/skills/ae-analysis/references/bi_panel_page_data_run.md +1 -1
- package/skills/ae-analysis/references/command_index.md +62 -28
- package/skills/ae-analysis/references/create_entity.md +2 -2
- package/skills/ae-analysis/references/dashboard_report_data_export.md +2 -2
- package/skills/ae-analysis/references/dashboard_report_data_run.md +2 -2
- package/skills/ae-analysis/references/drilldown_entities_export.md +26 -0
- package/skills/ae-analysis/references/drilldown_entities_run.md +33 -0
- package/skills/ae-analysis/references/drilldown_events_export.md +21 -0
- package/skills/ae-analysis/references/drilldown_events_run.md +23 -0
- package/skills/ae-analysis/references/drilldown_user_events_export.md +6 -3
- package/skills/ae-analysis/references/drilldown_user_events_run.md +6 -6
- package/skills/ae-analysis/references/entity_detail_export.md +2 -0
- package/skills/ae-analysis/references/entity_detail_run.md +8 -1
- package/skills/ae-analysis/references/event_detail_export.md +2 -0
- package/skills/ae-analysis/references/event_detail_run.md +2 -0
- package/skills/ae-analysis/references/event_list.md +10 -2
- package/skills/ae-analysis/references/list_entities.md +1 -1
- package/skills/ae-analysis/references/metric_create.md +13 -4
- package/skills/ae-analysis/references/metric_delete.md +7 -0
- package/skills/ae-analysis/references/metric_get.md +6 -0
- package/skills/ae-analysis/references/metric_list.md +16 -3
- package/skills/ae-analysis/references/metric_update.md +12 -1
- package/skills/ae-analysis/references/project_access_detail_get.md +23 -0
- package/skills/ae-analysis/references/project_data_power_delete.md +26 -0
- package/skills/ae-analysis/references/project_data_power_get.md +24 -0
- package/skills/ae-analysis/references/project_data_power_list.md +23 -0
- package/skills/ae-analysis/references/project_data_power_upsert.md +24 -0
- package/skills/ae-analysis/references/project_entity_create.md +27 -0
- package/skills/ae-analysis/references/project_entity_delete.md +25 -0
- package/skills/ae-analysis/references/project_entity_event_list.md +24 -0
- package/skills/ae-analysis/references/project_entity_get.md +24 -0
- package/skills/ae-analysis/references/project_entity_list.md +28 -0
- package/skills/ae-analysis/references/project_entity_update.md +28 -0
- package/skills/ae-analysis/references/project_function_list.md +24 -0
- package/skills/ae-analysis/references/project_info_get.md +23 -0
- package/skills/ae-analysis/references/project_info_list.md +26 -0
- package/skills/ae-analysis/references/project_info_update.md +25 -0
- package/skills/ae-analysis/references/project_mark_time_create.md +27 -0
- package/skills/ae-analysis/references/project_mark_time_delete.md +25 -0
- package/skills/ae-analysis/references/project_mark_time_list.md +28 -0
- package/skills/ae-analysis/references/project_mark_time_update.md +28 -0
- package/skills/ae-analysis/references/project_member_add.md +25 -0
- package/skills/ae-analysis/references/project_member_batch_update.md +24 -0
- package/skills/ae-analysis/references/project_member_candidate_list.md +25 -0
- package/skills/ae-analysis/references/project_member_handover_export.md +27 -0
- package/skills/ae-analysis/references/project_member_handover_run.md +24 -0
- package/skills/ae-analysis/references/project_member_import.md +25 -0
- package/skills/ae-analysis/references/project_member_list.md +23 -0
- package/skills/ae-analysis/references/project_member_receiver_list.md +23 -0
- package/skills/ae-analysis/references/project_member_remove.md +26 -0
- package/skills/ae-analysis/references/project_member_update.md +25 -0
- package/skills/ae-analysis/references/project_owner_update.md +27 -0
- package/skills/ae-analysis/references/project_permission_binding_list.md +24 -0
- package/skills/ae-analysis/references/project_receive_status_update.md +25 -0
- package/skills/ae-analysis/references/project_role_delete.md +25 -0
- package/skills/ae-analysis/references/project_role_function_list.md +27 -0
- package/skills/ae-analysis/references/project_role_get.md +23 -0
- package/skills/ae-analysis/references/project_role_list.md +25 -0
- package/skills/ae-analysis/references/project_role_upsert.md +24 -0
- package/skills/ae-analysis/references/project_role_user_list.md +23 -0
- package/skills/ae-analysis/references/project_timezone_get.md +23 -0
- package/skills/ae-analysis/references/project_timezone_overview.md +23 -0
- package/skills/ae-analysis/references/project_timezone_update.md +25 -0
- package/skills/ae-analysis/references/project_user_id_items_update.md +24 -0
- package/skills/ae-analysis/references/property_list.md +21 -6
- package/skills/ae-analysis/references/public_link_create.md +1 -1
- package/skills/ae-analysis/references/query_create_result_cluster.md +14 -32
- package/skills/ae-analysis/references/report_create.md +1 -1
- package/skills/ae-analysis/references/report_data_export.md +2 -2
- package/skills/ae-analysis/references/report_data_run.md +2 -2
- package/skills/ae-analysis/references/report_get.md +2 -0
- package/skills/ae-analysis/references/report_update.md +1 -1
- package/skills/ae-analysis/references/user_cluster_create.md +3 -1
- package/skills/ae-analysis/references/user_cluster_get.md +4 -0
- package/skills/ae-analysis/references/user_cluster_refresh.md +4 -2
- package/skills/ae-analysis/references/user_cluster_update.md +3 -1
- package/skills/ae-analysis/references/user_tag_create.md +3 -1
- package/skills/ae-analysis/references/user_tag_get.md +4 -0
- package/skills/ae-analysis/references/user_tag_refresh.md +4 -2
- package/skills/ae-analysis/references/user_tag_update.md +3 -1
- package/skills/ae-analysis/references/virtual_event_create.md +22 -3
- package/skills/ae-analysis/references/virtual_property_create.md +23 -2
- package/skills/ae-engage/SKILL.md +202 -7
- package/skills/ae-engage/references/activity-activity-type.md +42 -0
- package/skills/ae-engage/references/activity-activity.md +70 -0
- package/skills/ae-engage/references/activity-approval.md +53 -0
- package/skills/ae-engage/references/activity-task.md +87 -0
- package/skills/ae-engage/references/activity-topic.md +98 -0
- package/skills/ae-engage/references/approval-approver-delete.md +26 -0
- package/skills/ae-engage/references/channel-test-send.md +37 -0
- package/skills/ae-engage/references/channel-touch-limits-batch-update.md +28 -0
- package/skills/ae-engage/references/channel-touch-limits-save.md +37 -0
- package/skills/ae-engage/references/channel-touch-limits-toggle.md +28 -0
- package/skills/ae-engage/references/channel-update-config.md +36 -0
- package/skills/ae-engage/references/client-param.md +58 -0
- package/skills/ae-engage/references/common-metric.md +75 -0
- package/skills/ae-engage/references/config-table.md +92 -0
- package/skills/ae-engage/references/engage-scene-config-item.md +69 -0
- package/skills/ae-engage/references/operation-log-query.md +1 -1
- package/skills/ae-engage/references/preset-event.md +42 -0
- package/skills/ae-engage/references/push-language.md +39 -0
- package/skills/ae-engage/references/scene-config-channel.md +58 -0
- package/skills/ae-engage/references/scene-config-group.md +62 -0
- package/skills/ae-engage/references/scene-config-item.md +68 -0
- package/skills/ae-engage/references/scene-config-metric.md +79 -0
- package/skills/ae-engage/references/scene-config-param.md +72 -0
- package/skills/ae-engage/references/scene-preset-metric.md +45 -0
- package/skills/ae-engage/references/scene-strategy.md +47 -0
- package/skills/ae-engage/references/scene-template.md +71 -0
- package/skills/ae-engage/references/{ops-delete.md → task-delete.md} +3 -3
- package/skills/ae-engage/references/whitelist.md +72 -0
- package/skills/ae-engage/references/workbench-workbench.md +48 -0
- package/skills/ae-experiment/SKILL.md +64 -0
- package/skills/ae-experiment/references/batch_delete_experiment.md +11 -0
- package/skills/ae-experiment/references/batch_delete_feature.md +11 -0
- package/skills/ae-experiment/references/batch_delete_traffic_layer.md +11 -0
- package/skills/ae-experiment/references/cancel_experiment_query_by_request_id.md +10 -0
- package/skills/ae-experiment/references/check_experiment_ready.md +13 -0
- package/skills/ae-experiment/references/delete_metric.md +11 -0
- package/skills/ae-experiment/references/manage_experiment.md +15 -0
- package/skills/ae-experiment/references/manage_feature_status.md +11 -0
- package/skills/ae-experiment/references/query_bucket_list.md +10 -0
- package/skills/ae-experiment/references/query_experiment_detail.md +11 -0
- package/skills/ae-experiment/references/query_experiment_list.md +10 -0
- package/skills/ae-experiment/references/query_experiment_metric_trend.md +16 -0
- package/skills/ae-experiment/references/query_experiment_report_summary.md +12 -0
- package/skills/ae-experiment/references/query_experiment_sample_size_report.md +16 -0
- package/skills/ae-experiment/references/query_feature_detail.md +12 -0
- package/skills/ae-experiment/references/query_feature_list.md +10 -0
- package/skills/ae-experiment/references/query_metric_detail.md +11 -0
- package/skills/ae-experiment/references/query_metric_list.md +10 -0
- package/skills/ae-experiment/references/query_traffic_layer_detail.md +11 -0
- package/skills/ae-experiment/references/query_traffic_layer_list.md +10 -0
- package/skills/ae-experiment/references/save_experiment.md +17 -0
- package/skills/ae-experiment/references/save_feature.md +13 -0
- package/skills/ae-experiment/references/save_metric.md +13 -0
- package/skills/ae-experiment/references/save_submit_experiment.md +13 -0
- package/skills/ae-experiment/references/save_traffic_layer.md +13 -0
- package/skills/ae-generate-tracking-plan/SKILL.md +8 -5
- package/skills/ae-generate-tracking-plan/references/te-api.md +1 -1
- package/skills/ae-kb/SKILL.md +34 -8
- package/skills/ae-metadata/SKILL.md +1 -1
- package/skills/ae-metadata/references/metadata_event_get.md +4 -4
- package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
- package/skills/ae-metadata/references/metadata_property_get.md +4 -4
- package/dist/te-common-5NJLF3XG.js +0 -130
- package/dist/te-common-7VTJZPII.js +0 -130
- package/dist/te-engage-BUWVSSSK.js +0 -1912
- package/dist/te-engage-EPE3QKDE.js +0 -1912
- package/skills/ae-analysis/references/create_metric.md +0 -58
- package/skills/ae-analysis/references/create_virtual_event.md +0 -60
- package/skills/ae-analysis/references/create_virtual_property.md +0 -69
- package/skills/ae-analysis/references/delete_metric.md +0 -32
- package/skills/ae-analysis/references/drilldown_users_export.md +0 -17
- package/skills/ae-analysis/references/drilldown_users_run.md +0 -61
- package/skills/ae-analysis/references/get_metric.md +0 -38
- package/skills/ae-analysis/references/get_resource_url.md +0 -33
- package/skills/ae-analysis/references/list_events.md +0 -46
- package/skills/ae-analysis/references/list_metrics.md +0 -52
- package/skills/ae-analysis/references/list_properties.md +0 -47
- package/skills/ae-analysis/references/update_metric.md +0 -58
- package/dist/{chunk-HL2AJQ4Q.js → chunk-PTE56QPL.js} +3 -3
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# analysis project timezone get
|
|
2
|
+
|
|
3
|
+
Use when the user needs to get project time zone configuration.
|
|
4
|
+
|
|
5
|
+
Do not use it for unrelated project-management actions or for fields not present in the common-service capability schema. Do not send camelCase aliases.
|
|
6
|
+
|
|
7
|
+
Command:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ae-cli analysis project timezone get --project-id <project_id>
|
|
11
|
+
ae-cli analysis project timezone get --dry-run --project-id <project_id>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Capability id: `project.timezone.get`.
|
|
15
|
+
|
|
16
|
+
Input sends `project_id`. Payload keys, JSON arrays, and projection fields must follow the common-service snake_case input schema.
|
|
17
|
+
|
|
18
|
+
Output uses the gateway envelope: success is `ok=true,data,meta`; failure is `ok=false,error`. Preserve `request_id` and `invocation_id` when present.
|
|
19
|
+
|
|
20
|
+
## Parameters
|
|
21
|
+
| Parameter | Required | Description |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `--project-id` | Yes | Numeric project ID. |
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# analysis project timezone overview
|
|
2
|
+
|
|
3
|
+
Use when the user needs to get project time zone overview.
|
|
4
|
+
|
|
5
|
+
Do not use it for unrelated project-management actions or for fields not present in the common-service capability schema. Do not send camelCase aliases.
|
|
6
|
+
|
|
7
|
+
Command:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ae-cli analysis project timezone overview --project-id <project_id>
|
|
11
|
+
ae-cli analysis project timezone overview --dry-run --project-id <project_id>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Capability id: `project.timezone.overview`.
|
|
15
|
+
|
|
16
|
+
Input sends `project_id`. Payload keys, JSON arrays, and projection fields must follow the common-service snake_case input schema.
|
|
17
|
+
|
|
18
|
+
Output uses the gateway envelope: success is `ok=true,data,meta`; failure is `ok=false,error`. Preserve `request_id` and `invocation_id` when present.
|
|
19
|
+
|
|
20
|
+
## Parameters
|
|
21
|
+
| Parameter | Required | Description |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `--project-id` | Yes | Numeric project ID. |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# analysis project timezone update
|
|
2
|
+
|
|
3
|
+
Use when the user needs to update one project time zone configuration item.
|
|
4
|
+
|
|
5
|
+
Do not use it for unrelated project-management actions or for fields not present in the common-service capability schema. Do not send camelCase aliases.
|
|
6
|
+
|
|
7
|
+
Command:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ae-cli analysis project timezone update --project-id <project_id> --payload <payload> --item <item>
|
|
11
|
+
ae-cli analysis project timezone update --dry-run --project-id <project_id> --payload <payload> --item <item>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Capability id: `project.timezone.update`.
|
|
15
|
+
|
|
16
|
+
Input sends `project_id`, `payload`, `item`. Payload keys, JSON arrays, and projection fields must follow the common-service snake_case input schema.
|
|
17
|
+
|
|
18
|
+
Output uses the gateway envelope: success is `ok=true,data,meta`; failure is `ok=false,error`. Preserve `request_id` and `invocation_id` when present.
|
|
19
|
+
|
|
20
|
+
## Parameters
|
|
21
|
+
| Parameter | Required | Description |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `--project-id` | Yes | Numeric project ID. |
|
|
24
|
+
| `--payload` | Yes | Timezone update payload. Shape depends on item. |
|
|
25
|
+
| `--item` | Yes | Timezone item: timezone_toggle, zone_offset, user_timezone, project_timezone_display. |
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# analysis project user-id-items update
|
|
2
|
+
|
|
3
|
+
Use when the user needs to update project virtual user ID item configuration.
|
|
4
|
+
|
|
5
|
+
Do not use it for unrelated project-management actions or for fields not present in the common-service capability schema. Do not send camelCase aliases.
|
|
6
|
+
|
|
7
|
+
Command:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ae-cli analysis project user-id-items update --project-id <project_id> --payload <payload>
|
|
11
|
+
ae-cli analysis project user-id-items update --dry-run --project-id <project_id> --payload <payload>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Capability id: `project.user_id_items.update`.
|
|
15
|
+
|
|
16
|
+
Input sends `project_id`, `payload`. Payload keys, JSON arrays, and projection fields must follow the common-service snake_case input schema.
|
|
17
|
+
|
|
18
|
+
Output uses the gateway envelope: success is `ok=true,data,meta`; failure is `ok=false,error`. Preserve `request_id` and `invocation_id` when present.
|
|
19
|
+
|
|
20
|
+
## Parameters
|
|
21
|
+
| Parameter | Required | Description |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `--project-id` | Yes | Numeric project ID. |
|
|
24
|
+
| `--payload` | Yes | Virtual user ID item configuration payload, matching VirtualUserIdConfigSaveRequestDTO in snake_case. |
|
|
@@ -1,24 +1,39 @@
|
|
|
1
1
|
# analysis-meta property list
|
|
2
2
|
|
|
3
|
-
Use when the user needs to
|
|
3
|
+
Use when the user needs to browse or search event/user property metadata.
|
|
4
4
|
|
|
5
|
-
Do not use it for property values
|
|
5
|
+
Do not use it for property values. Use this command only when the user explicitly wants to inspect metadata or when a prior compiler error asks for disambiguation.
|
|
6
6
|
|
|
7
7
|
Command:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
ae-cli analysis-meta property list --project-id <project_id>
|
|
10
|
+
ae-cli analysis-meta property list --project-id <project_id>
|
|
11
|
+
ae-cli analysis-meta property list --project-id <project_id> --scope event --event-name purchase --query demo
|
|
12
|
+
ae-cli analysis-meta property list --project-id <project_id> --query demo --fields '["prop_id","prop_name","prop_desc","prop_remark","select_type","table_type","authentication_status"]' --limit 20 --offset 0
|
|
11
13
|
ae-cli analysis-meta property list --dry-run
|
|
12
14
|
```
|
|
13
15
|
|
|
14
16
|
Capability id: `metadata.property.list`.
|
|
15
17
|
|
|
16
|
-
Input sends `project_id`, `
|
|
18
|
+
Input sends `project_id` and optional `table_type`, `scope`, `event_name`, `query`, `fields`, `limit`, `offset`, `authenticated_only`.
|
|
17
19
|
|
|
18
|
-
Output `data.properties[]` contains property metadata
|
|
20
|
+
Output `data.properties[]` contains property metadata. When `limit` or `offset` is provided, output also includes `total`, `limit`, `offset`, and `has_more`.
|
|
19
21
|
|
|
20
22
|
## Parameters
|
|
21
23
|
| Parameter | Required | Description |
|
|
22
24
|
|---|---|---|
|
|
23
25
|
| `--project-id` | Yes | Numeric project ID. |
|
|
24
|
-
| `--table-type` |
|
|
26
|
+
| `--table-type` | No | Optional property table type: `event` or `user`. |
|
|
27
|
+
| `--scope` | No | Optional property scope: `event` or `user`. If omitted, all scopes are queried. |
|
|
28
|
+
| `--event-name` | No | Optional event name filter for event properties. |
|
|
29
|
+
| `--query` | No | Optional keyword filter. Fuzzy match is applied to property name, description, and remark. |
|
|
30
|
+
| `--fields` | No | Optional fields to return as a JSON array. Supported fields: `prop_id`, `prop_name`, `prop_desc`, `prop_remark`, `select_type`, `table_type`, `sub_table_type`, `authentication_status`. |
|
|
31
|
+
| `--limit` | No | Optional page size. |
|
|
32
|
+
| `--offset` | No | Optional zero-based page offset. |
|
|
33
|
+
| `--authenticated-only` | No | When true, return only authenticated properties. |
|
|
34
|
+
|
|
35
|
+
## Decision Rules
|
|
36
|
+
|
|
37
|
+
- Prefer `--scope event` or `--scope user` when the user needs a specific table type.
|
|
38
|
+
- Use `--authenticated-only true` only when the user explicitly asks for authenticated assets.
|
|
39
|
+
- For ad-hoc analysis, pass the user's property wording in the AI-facing `definition` instead of pre-querying property metadata.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Use when the user explicitly wants to generate a public link for a dashboard or BI panel.
|
|
4
4
|
|
|
5
|
-
Do not use for internal resource URLs. Use `
|
|
5
|
+
Do not use for internal resource URLs. Use `analysis-meta asset url-get` when applicable.
|
|
6
6
|
|
|
7
7
|
Command:
|
|
8
8
|
|
|
@@ -1,47 +1,29 @@
|
|
|
1
1
|
# analysis query create-result-cluster
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Save the user or custom-entity population behind one selected synchronous-preview cell as that subject's reusable result cluster.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Use this after any analysis data command that returns `query_context_id`:
|
|
8
|
-
|
|
9
|
-
- `analysis adhoc run`
|
|
10
|
-
- `analysis adhoc export`
|
|
11
|
-
- `analysis report-data run`
|
|
12
|
-
- `analysis report-data export`
|
|
13
|
-
- `analysis dashboard-report-data run`
|
|
14
|
-
- `analysis dashboard-report-data export`
|
|
15
|
-
|
|
16
|
-
Do not pass raw QP.
|
|
5
|
+
Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md) first. The selected metric/action must advertise `create_result_cluster`. `EVENT_LIST` and `NONE` analysis angles cannot be saved as a result cluster.
|
|
17
6
|
|
|
18
7
|
## Command
|
|
19
8
|
|
|
20
9
|
```bash
|
|
21
10
|
ae-cli analysis query create-result-cluster \
|
|
22
|
-
--query-context-id <
|
|
23
|
-
--
|
|
24
|
-
--
|
|
11
|
+
--query-context-id <sync_preview_query_context_id> \
|
|
12
|
+
[--source '{"report_id":1001}'] \
|
|
13
|
+
--coordinate '<merged returned row/column/metric coordinate>' \
|
|
14
|
+
--cluster-name <unique_name> \
|
|
25
15
|
[--display-name <display_name>] \
|
|
26
16
|
[--zone-offset 8] \
|
|
27
|
-
[--timeout-seconds
|
|
17
|
+
[--timeout-seconds 180]
|
|
28
18
|
```
|
|
29
19
|
|
|
30
|
-
## Input
|
|
31
|
-
|
|
32
|
-
- `--query-context-id`: returned by an analysis data run/export submit response, or by the first metadata line of a JSONL artifact.
|
|
33
|
-
- `--target`: pass the selected source's `target_contract.default_target` directly, or copy it and replace only fields named by `target_contract.copy_from_selected_result` for a specific row or cell.
|
|
34
|
-
- `--cluster-name`: result cluster name.
|
|
35
|
-
- `--display-name`: optional display name.
|
|
36
|
-
|
|
37
|
-
Do not use raw QP or reconstruct the first query request. The server resolves the source QP from Redis by `query_context_id`.
|
|
38
|
-
|
|
39
|
-
## Target
|
|
40
|
-
|
|
41
|
-
`--target` uses the same machine-readable `sources[].target_contract` contract as [`drilldown_users_run.md`](drilldown_users_run.md).
|
|
20
|
+
## Input rules
|
|
42
21
|
|
|
43
|
-
|
|
22
|
+
- `--query-context-id`, `--source`, and all coordinate fragments must come from the same synchronous `adhoc run`, `report-data run`, or `dashboard-report-data run` response.
|
|
23
|
+
- Match the desired visible row and column in `source.drilldown.row_options`/`column_options`, select the correct metric option, and shallow-merge only their `coordinate` fragments.
|
|
24
|
+
- Never pass `target_id`, raw QP, display-only dates, option presentation fields, or data from an export/download. Exports do not create query contexts.
|
|
25
|
+
- `--cluster-name` must be unique in the project and contain the backend-supported identifier characters.
|
|
44
26
|
|
|
45
|
-
|
|
27
|
+
The saved cluster subject is `source.drilldown.subject` or the selected event metric's `subject`. `USER_LIST` creates a user result cluster. `ENTITY_LIST` creates a result cluster for that custom entity; do not relabel it as a user cluster.
|
|
46
28
|
|
|
47
|
-
The response
|
|
29
|
+
The response must contain the backend cluster creation result. A successful capability envelope without a created cluster identifier/result is not sufficient evidence of completion.
|
|
@@ -26,4 +26,4 @@ ae-cli analysis report create --project-id <project_id> --report-name "Recent SQ
|
|
|
26
26
|
|
|
27
27
|
After creation, keep the `report_id` returned by this exact create response. To verify the report, query the saved default first with `analysis report-data run` and omit `--sql-params`; then make one second query with a value-only `--sql-params` override. Do not rebuild internal `sqlViewParams` or guess an ID.
|
|
28
28
|
|
|
29
|
-
After any successful report create, call `
|
|
29
|
+
After any successful report create, call `analysis-meta asset url-get` with that returned `report_id` and output its `markdown_link`.
|
|
@@ -28,10 +28,10 @@ Override model:
|
|
|
28
28
|
|
|
29
29
|
Mixed-model export batches are best-effort rather than rejected only for being mixed. Prefer one model per overridden export because artifact formats cannot surface submission-time warnings as prominently as inline `meta.warnings`.
|
|
30
30
|
|
|
31
|
-
Output is the gateway envelope. `data` contains opaque `run_id` and `artifact_id`, lifecycle status and expiration, effective timeout/deadline fields
|
|
31
|
+
Output is the gateway envelope. `data` contains opaque `run_id` and `artifact_id`, lifecycle status and expiration, and effective timeout/deadline fields. Exports do not create `query_context_id`. Inspect/download through the dedicated CLI commands using the IDs.
|
|
32
32
|
|
|
33
33
|
Keep `run_id` and `artifact_id` from the same export response. Inspect that exact `run_id`, then download only that paired `artifact_id`; never combine IDs from different exports.
|
|
34
34
|
|
|
35
35
|
An empty artifact is a successful query and means the requested time range has no data. If every requested report explicitly fails, the run reaches `FAILED` instead of completing an error-only artifact. Mixed exports may contain explicit per-report error markers alongside successful report data.
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Never use the export response or downloaded rows as a drilldown/result-cluster source. Run a bounded synchronous preview containing the desired cell first.
|
|
@@ -38,8 +38,8 @@ A homogeneous SQL request that includes `filters`, `group_by`, `start_time`, `en
|
|
|
38
38
|
|
|
39
39
|
For a newly created or updated dynamic SQL report, omit `--sql-params` to execute the saved default first. After that succeeds, then make one second call with `--sql-params` to change only the requested value. This separates a broken saved default from a broken override and avoids repeating the same query.
|
|
40
40
|
|
|
41
|
-
Output is the gateway envelope. `data` contains bounded inline report result items plus `query_context_id
|
|
41
|
+
Output is the gateway envelope. `data` contains bounded inline report result items plus `query_context_id` and `sources[].drilldown` when the returned preview exposes follow-up actions. Each source is evaluated independently; SQL and other unsupported models have no actions.
|
|
42
42
|
|
|
43
43
|
An empty batch or report result with no rows is a successful query: it means the requested time range has no data. The command fails only when every returned report entry contains an explicit execution error. Mixed batches keep successful items and return `meta.partial`, counts, and per-report `meta.failures` for partial-result handling.
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md). Select only returned row/column/metric options and call only the advertised event, entity, or result-cluster action. Do not pass raw QP.
|
|
@@ -14,6 +14,8 @@ Input sends `project_id` and `report_id`.
|
|
|
14
14
|
|
|
15
15
|
Output is the gateway envelope. `data` contains `version`, `model_type`, `definition`, report metadata, and dashboard membership in snake_case. Use `data.version` as `--report-version` when updating the same report. Raw frontend `events`, `event_view`, `visual_view`, and raw QP are not returned.
|
|
16
16
|
|
|
17
|
+
For a saved non-SQL report with a time granularity, `data.definition` returns the agent-facing `time_particle_size` spelling, such as `day`, `hour`, or `total`; internal `T0` through `T9` codes must never leak. If `time_particle_size` is absent, the saved definition has no readable granularity. Do not infer a granularity from the number of result rows; execute the saved report as-is or use an explicit ad-hoc definition when the user requires a specific granularity.
|
|
18
|
+
|
|
17
19
|
This read is mandatory before applying report-data overrides. Branch on `data.model_type`:
|
|
18
20
|
|
|
19
21
|
- `sql`: only `--sql-params` is valid. Every override name must already exist in `data.definition.params`; time values may be overridden only through a saved `part_date` or time parameter.
|
|
@@ -19,4 +19,4 @@ Output is the gateway envelope. `data` contains update status, `report_id`, and
|
|
|
19
19
|
|
|
20
20
|
For the shortest safe update, read the current `version` exactly once with `analysis report get` immediately before the write; do not reuse a version from an older list or conversation turn. If a SQL dynamic parameter definition changed, query the saved default before applying an override so default persistence and override behavior are verified separately.
|
|
21
21
|
|
|
22
|
-
After a successful update, call `
|
|
22
|
+
After a successful update, call `analysis-meta asset url-get` with the updated `report_id` and output its `markdown_link`.
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Create a condition or SQL user cluster directly from an AI-facing definition request.
|
|
4
4
|
|
|
5
|
-
Do not use it for uploaded-ID clusters or result-derived clusters; use `user-cluster create-id` or `query create-result-cluster`. A successful create automatically starts the initial computation. Do not
|
|
5
|
+
Do not use it for uploaded-ID clusters or result-derived clusters; use `user-cluster create-id` or `query create-result-cluster`. A successful create automatically starts the initial computation; it does not mean the result is already complete. Do not call `user-cluster refresh` afterward. Poll `user-cluster get` until `progress=100` and `refresh_end_time` is not older than `update_time` before using `users_num` or querying members.
|
|
6
|
+
|
|
7
|
+
The response reports this directly: `computation.triggered_automatically=true`, `computation.status=submitted`, and `result_freshness.is_stale=true`. Follow `next_action`; when it is `poll_get`, invoke `next_capability_id` with the exact `next_input` returned by the command.
|
|
6
8
|
|
|
7
9
|
Flags: `--project-id`, `--cluster-name`, `--display-name`, `--definition-request` required. Optional: `--authenticated-only`, `--zone-offset`, `--entity-id`. The cluster type comes from `definition_request.type`.
|
|
8
10
|
|
|
@@ -4,6 +4,10 @@ Get exact user cluster details after discovery.
|
|
|
4
4
|
|
|
5
5
|
Do not use it for fuzzy discovery or member data. Output contains saved cluster metadata/definition for the requested names.
|
|
6
6
|
|
|
7
|
+
After `user-cluster create` or an update containing `--definition-request`, use this command to observe the automatically started computation; do not trigger `user-cluster refresh`. Until `progress=100` and `refresh_end_time` is not older than `update_time`, `users_num` and member queries may still reflect the previous successful computation. Treat that state as stale data, not as evidence that the new definition was compiled or calculated incorrectly.
|
|
8
|
+
|
|
9
|
+
The raw backend value is returned under `result`. The response also provides aggregate and per-cluster `computation`, `result_freshness`, and `next_action`. `poll_get` includes an exact capability/input pair; `none` means the latest result is usable. `potentially_stale` with `is_stale=null` means `refresh_end_time` predates `update_time`, but the update may have changed metadata only; inspect the latest update instead of refreshing automatically.
|
|
10
|
+
|
|
7
11
|
Flags: `--project-id`, `--cluster-names` JSON array.
|
|
8
12
|
|
|
9
13
|
```bash
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# analysis user-cluster refresh
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Explicitly recompute an existing user cluster by exact `cluster_name` without changing its definition.
|
|
4
4
|
|
|
5
|
-
Do not
|
|
5
|
+
Use this only when an unchanged definition must be run again, such as an explicit retry or a recomputation against changed source data. Do not call it after `user-cluster create` or an update containing `--definition-request`; those commands already start computation automatically. Output means recomputation was submitted, not completed. Poll `user-cluster get` and verify the new computation before using `users_num` or querying members.
|
|
6
|
+
|
|
7
|
+
The response marks this as an explicit trigger: `computation.triggered_by_command=true`, `computation.triggered_automatically=false`, `computation.status=submitted`, and `result_freshness.is_stale=true`. Follow the returned `next_action`, `next_capability_id`, and `next_input` to poll.
|
|
6
8
|
|
|
7
9
|
Flags: `--project-id`, `--cluster-name` required.
|
|
8
10
|
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Update a condition or SQL user cluster. Discover the exact `cluster_name` first.
|
|
4
4
|
|
|
5
|
-
Do not use it for ID-file membership replacement or to create a missing cluster.
|
|
5
|
+
Do not use it for ID-file membership replacement or to create a missing cluster. Supplying `--definition-request` automatically starts recomputation after the definition is updated; do not call `user-cluster refresh` afterward. Updating only `--display-name` or `--remark` does not recompute. A successful update means the definition was saved, not that the new result is complete. Poll `user-cluster get` until `progress=100` and `refresh_end_time` is not older than `update_time` before using `users_num` or querying members.
|
|
6
|
+
|
|
7
|
+
The response distinguishes both paths. A definition update returns `computation.triggered_automatically=true`, `result_freshness.is_stale=true`, and normally `next_action=poll_get` with an exact capability/input pair. A display-name/remark-only update returns `computation.status=not_triggered`, `result_freshness.status=fresh`, and `next_action=none`.
|
|
6
8
|
|
|
7
9
|
Flags: `--project-id`, `--cluster-name` required. Optional: `--display-name`, `--definition-request`, `--authenticated-only`, `--remark`, `--zone-offset`. The cluster type comes from `definition_request.type` when the definition changes.
|
|
8
10
|
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Create a user tag directly from an AI-facing definition request.
|
|
4
4
|
|
|
5
|
-
Do not use it for uploaded-ID tags; use `user-tag create-id`.
|
|
5
|
+
Do not use it for uploaded-ID tags; use `user-tag create-id`. A successful create automatically starts the initial computation; it does not mean the result is already complete. Do not call `user-tag refresh` afterward. Poll `user-tag get` until `progress=100` and `refresh_time` is present before using `users_num` or querying members.
|
|
6
|
+
|
|
7
|
+
The response reports this directly: `computation.triggered_automatically=true`, `computation.status=submitted`, and `result_freshness.is_stale=true`. Follow `next_action`; when it is `poll_get`, invoke `next_capability_id` with the exact `next_input` returned by the command.
|
|
6
8
|
|
|
7
9
|
Flags: `--project-id`, `--tag-name`, `--display-name`, `--definition-request` required. Optional: `--authenticated-only`, `--zone-offset`, `--entity-id`. The tag type comes from `definition_request.type`.
|
|
8
10
|
|
|
@@ -4,6 +4,10 @@ Get exact user tag details after discovery.
|
|
|
4
4
|
|
|
5
5
|
Do not use it for fuzzy discovery, member data, or history statistics. Output contains saved tag metadata/definition for the requested names.
|
|
6
6
|
|
|
7
|
+
After `user-tag create` or an update containing `--definition-request`, use this command to observe the automatically started computation; do not trigger `user-tag refresh`. For create, wait until `progress=100` and `refresh_time` is present. For a definition update, record the previous `refresh_time` first and wait until `progress=100` and `refresh_time` advances. Until then, `users_num` and member queries may still reflect the previous successful computation; treat that as stale data, not as evidence that the new definition was compiled or calculated incorrectly.
|
|
8
|
+
|
|
9
|
+
The raw backend value is returned under `result`. The response also provides aggregate and per-tag `computation`, `result_freshness`, and `next_action`. `poll_get` includes an exact capability/input pair; `none` means the latest result is usable. `potentially_stale` with `is_stale=null` means `refresh_time` predates `update_time`, but the update may have changed metadata only; inspect the latest update instead of refreshing automatically.
|
|
10
|
+
|
|
7
11
|
Flags: `--project-id`, `--tag-names` JSON array.
|
|
8
12
|
|
|
9
13
|
```bash
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# analysis user-tag refresh
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Explicitly recompute an existing user tag by exact `tag_name` without changing its definition.
|
|
4
4
|
|
|
5
|
-
Do not
|
|
5
|
+
Use this only when an unchanged definition must be run again, such as an explicit retry or a recomputation against changed source data. Do not call it after `user-tag create` or an update containing `--definition-request`; those commands already start computation automatically. Do not use it to refresh one history snapshot. Output means recomputation was submitted, not completed. Poll `user-tag get` and verify the new computation before using `users_num` or querying members.
|
|
6
|
+
|
|
7
|
+
The response marks this as an explicit trigger: `computation.triggered_by_command=true`, `computation.triggered_automatically=false`, `computation.status=submitted`, and `result_freshness.is_stale=true`. Follow the returned `next_action`, `next_capability_id`, and `next_input` to poll.
|
|
6
8
|
|
|
7
9
|
Flags: `--project-id`, `--tag-name` required.
|
|
8
10
|
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Update a user tag. Discover the exact `tag_name` first.
|
|
4
4
|
|
|
5
|
-
Do not use it for ID-file value replacement or to create a missing tag.
|
|
5
|
+
Do not use it for ID-file value replacement or to create a missing tag. Supplying `--definition-request` automatically starts recomputation after the definition is updated; do not call `user-tag refresh` afterward. Updating only `--display-name` or `--remark` does not recompute. A successful update means the definition was saved, not that the new result is complete. Record the current `refresh_time` before updating, then poll `user-tag get` until `progress=100` and `refresh_time` advances before using `users_num` or querying members.
|
|
6
|
+
|
|
7
|
+
The response distinguishes both paths. A definition update returns `computation.triggered_automatically=true`, `result_freshness.is_stale=true`, and normally `next_action=poll_get` with an exact capability/input pair. A display-name/remark-only update returns `computation.status=not_triggered`, `result_freshness.status=fresh`, and `next_action=none`.
|
|
6
8
|
|
|
7
9
|
Flags: `--project-id`, `--tag-name` required. Optional: `--display-name`, `--definition-request`, `--authenticated-only`, `--remark`, `--zone-offset`. The tag type comes from `definition_request.type` when the definition changes.
|
|
8
10
|
|
|
@@ -2,18 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Use when the user needs to create a virtual event from events and filters.
|
|
4
4
|
|
|
5
|
-
Do not use it for super-event creation.
|
|
5
|
+
Do not use it for super-event creation.
|
|
6
|
+
|
|
7
|
+
Before constructing `--events` / `--filter`, validate the available events and properties with `analysis-meta event list` and `analysis-meta property list` in the same `project_id`.
|
|
6
8
|
|
|
7
9
|
Command:
|
|
8
10
|
|
|
9
11
|
```bash
|
|
12
|
+
ae-cli analysis-meta virtual-event create --project-id <project_id> --event-name ta@demo --event-desc demo --events '[{"eventName":"purchase"}]'
|
|
13
|
+
ae-cli analysis-meta virtual-event create --project-id <project_id> --event-name ta@demo2 --event-desc demo --remark demo --events '[{"eventName":"add_to_cart"}]' --filter '{}' --override true
|
|
10
14
|
ae-cli analysis-meta virtual-event create --project-id <project_id> --override false --payload '{"event_name":"qualified_purchase","event_desc":"Qualified purchase","rule":{"events":[...],"filter":{...}}}'
|
|
11
15
|
ae-cli analysis-meta virtual-event create --dry-run
|
|
12
16
|
```
|
|
13
17
|
|
|
14
18
|
Capability id: `metadata.virtual_event.create`.
|
|
15
19
|
|
|
16
|
-
Input sends `project_id`, `override`, `payload`.
|
|
20
|
+
Input sends `project_id`, `override`, and `payload`. When typed flags are used, ae-cli builds `payload` from `event_name`, `event_desc`, `remark`, and `rule.events/filter`.
|
|
17
21
|
|
|
18
22
|
Output is a successful gateway envelope with no business data. Read back with `virtual-event get` when the created event ID is known.
|
|
19
23
|
|
|
@@ -22,4 +26,19 @@ Output is a successful gateway envelope with no business data. Read back with `v
|
|
|
22
26
|
|---|---|---|
|
|
23
27
|
| `--project-id` | Yes | Numeric project ID. |
|
|
24
28
|
| `--override` | No | Whether to override an existing virtual event rule. |
|
|
25
|
-
| `--payload` |
|
|
29
|
+
| `--payload` | No | Full virtual-event DTO: `event_id?`, `event_name`, `event_desc?`, `remark?`, `rule` (`events` plus optional common `filter`), `replace_remark?`, `replace_suggestion?`. Common header fields are server-owned and must be omitted. |
|
|
30
|
+
| `--event-name` | No | Virtual event name. Must start with `ta@`. Required when `--payload` is omitted. |
|
|
31
|
+
| `--event-desc` | No | Virtual event display name. Required when `--payload` is omitted. |
|
|
32
|
+
| `--remark` | No | Optional virtual event remark. |
|
|
33
|
+
| `--events` | No | JSON array of events to combine. Required when `--payload` is omitted. |
|
|
34
|
+
| `--filter` | No | Optional global filter JSON. Referenced properties must come from `analysis-meta property list`. |
|
|
35
|
+
|
|
36
|
+
## Decision Rules
|
|
37
|
+
- `events` / `filter` must not be handwritten by intuition alone; they must match real metadata in the same project.
|
|
38
|
+
- Before calling `event list` / `property list`, read the corresponding reference documents.
|
|
39
|
+
- For first validation, pass only required typed parameters: `--project-id`, `--event-name`, `--event-desc`, and `--events`.
|
|
40
|
+
- Use `--payload` only when an exact virtual-event rule DTO is already available.
|
|
41
|
+
- This is an ordinary write operation; execute it without the high-risk confirmation flag.
|
|
42
|
+
|
|
43
|
+
## Recommended Chain
|
|
44
|
+
- `analysis-meta event list` -> `analysis-meta property list` -> `analysis-meta virtual-event create`
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Use when the user needs to create a SQL virtual event or user property.
|
|
4
4
|
|
|
5
|
-
Do not use it for physical/super properties.
|
|
5
|
+
Do not use it for physical/super properties.
|
|
6
|
+
|
|
7
|
+
Before building `--sql-expression` / `--related-events`, validate available properties and events with `analysis-meta property list` and `analysis-meta event list` in the same `project_id`.
|
|
6
8
|
|
|
7
9
|
Command:
|
|
8
10
|
|
|
9
11
|
```bash
|
|
12
|
+
ae-cli analysis-meta virtual-property create --project-id <project_id> --property-name '#vp@demo' --table-type event --select-type string --sql-expression 'event_name' --sql-event-relation-type relation_default
|
|
13
|
+
ae-cli analysis-meta virtual-property create --project-id <project_id> --property-name '#vp@demo' --property-desc demo --table-type event --select-type string --sql-expression "CASE WHEN status = 1 THEN 'active' ELSE 'inactive' END" --sql-event-relation-type relation_by_setting --related-events '[{"eventName":"purchase"}]' --property-remark demo
|
|
10
14
|
ae-cli analysis-meta virtual-property create --project-id <project_id> --sql-expression '<sql>' --v-prop '{...}' --properties '[...]'
|
|
11
15
|
ae-cli analysis-meta virtual-property create --project-id <project_id> --sql-expression '<sql>' --v-prop '{...}' --dry-run
|
|
12
16
|
```
|
|
@@ -22,10 +26,27 @@ Output is a successful gateway envelope with no business data.
|
|
|
22
26
|
|---|---|---|
|
|
23
27
|
| `--project-id` | Yes | Numeric project ID. |
|
|
24
28
|
| `--sql-expression` | Yes | SQL expression used to calculate the virtual property. |
|
|
25
|
-
| `--v-prop` |
|
|
29
|
+
| `--v-prop` | No | Full virtual property JSON object with `property.column_name`, `table_type`, and `select_type`. Use typed property flags unless an exact DTO is already available. |
|
|
30
|
+
| `--property-name` | No | Virtual property name. Must start with `#vp@`. Required when `--v-prop` is omitted. |
|
|
31
|
+
| `--property-desc` | No | Virtual property display name. |
|
|
32
|
+
| `--table-type` | No | Property table type: `event` or `user`. Required when `--v-prop` is omitted. |
|
|
33
|
+
| `--select-type` | No | Property value type: `string`, `number`, `bool`, or `datetime`. Required when `--v-prop` is omitted. |
|
|
34
|
+
| `--property-remark` | No | Optional virtual property remark. |
|
|
26
35
|
| `--properties` | No | Dependent property JSON array. |
|
|
27
36
|
| `--sql-event-relation-type` | No | `relation_default`, `relation_always`, or `relation_by_setting`. |
|
|
28
37
|
| `--related-events` | No | Related events JSON array for `relation_by_setting`. |
|
|
29
38
|
| `--tag-date-policies` | No | Tag date policies JSON array. |
|
|
30
39
|
| `--replace-remark` | No | Replacement remark. |
|
|
31
40
|
| `--replace-suggestion` | No | Replacement suggestion. |
|
|
41
|
+
|
|
42
|
+
## Decision Rules
|
|
43
|
+
- `sql_expression` / `related_events` cannot be written from experience alone; they must be built from real project metadata.
|
|
44
|
+
- For first validation, pass only required typed parameters: `--project-id`, `--property-name`, `--table-type`, `--select-type`, `--sql-expression`, and `--sql-event-relation-type`.
|
|
45
|
+
- If `--sql-event-relation-type=relation_by_setting`, `--related-events` must contain event names from `analysis-meta event list`.
|
|
46
|
+
- Columns starting with `#` or containing `@` should be double-quoted in Trino SQL.
|
|
47
|
+
- Use `--v-prop` only when an exact virtual property DTO is already available.
|
|
48
|
+
- This is an ordinary write operation; execute it without the high-risk confirmation flag.
|
|
49
|
+
|
|
50
|
+
## Recommended Chain
|
|
51
|
+
- `analysis-meta property list` -> `analysis-meta virtual-property create`
|
|
52
|
+
- `analysis-meta property list` -> `analysis-meta event list` -> `analysis-meta virtual-property create` when using `relation_by_setting`
|