@thinkingai/ae-cli 6.0.31 → 6.0.32
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 +46 -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-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 +1 -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-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
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ae-analysis
|
|
3
|
-
version: 4.0.
|
|
4
|
-
description: "Use ae-cli for AE/TE analysis-side data questions and asset
|
|
3
|
+
version: 4.0.3
|
|
4
|
+
description: "Use ae-cli for AE/TE analysis-side data questions, asset operations, and asset governance: reports, dashboards, ad-hoc models, drilldown, detail data, alerts, clusters, tags, metrics, metadata, project configuration, tracking plans, governance asset lists/rules/lineage/impact/dependency, batch asset operations, projects, and resource links. Use when the user asks to query data, explain a change, export evidence, or inspect/create/update/govern analysis assets."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# ae-analysis
|
|
@@ -12,7 +12,7 @@ This is the single entry skill for analysis intent and command execution.
|
|
|
12
12
|
|
|
13
13
|
1. If the command family is already known, open its dedicated reference directly. Otherwise search only the matching row in [`references/command_index.md`](references/command_index.md) (for example with `rg`); do not read the exhaustive index end to end.
|
|
14
14
|
2. Read the selected command's dedicated reference before composing it:
|
|
15
|
-
-
|
|
15
|
+
- `event list` -> `references/event_list.md`
|
|
16
16
|
- `analysis dashboard list` -> `references/dashboard_list.md`
|
|
17
17
|
- replace hyphens with underscores in gateway filenames.
|
|
18
18
|
3. For an AI-facing ad-hoc definition, also read [`references/ai_models.md`](references/ai_models.md).
|
|
@@ -27,8 +27,9 @@ Use this skill for these CLI services:
|
|
|
27
27
|
|
|
28
28
|
- `analysis`: reports, dashboards, BI panels, ad-hoc analysis, drilldown, detail data, alerts, clusters, tags, and async runs/artifacts.
|
|
29
29
|
- `analysis-meta`: gateway metadata assets, events, properties, virtual metadata, metrics, data tables, exchange rules, and super metadata.
|
|
30
|
+
- `analysis-governance`: gateway asset governance operations, including governed asset lists/exports, lineage, dependency, impact, query history, rule schema/list/create/update/delete, batch asset actions, and operation records. Use this service for asset governance workflows, not for metadata event/property/metric CRUD.
|
|
30
31
|
- `analysis_meta`: metadata governance, metrics, virtual metadata, project config, tracking plans, mark times, and entity catalog.
|
|
31
|
-
- `analysis_common`: project discovery
|
|
32
|
+
- `analysis_common`: project discovery.
|
|
32
33
|
|
|
33
34
|
For metadata gateway detail outside the commands in the generated index, use the metadata skill. For Engage, DataOps, or Community work, use the corresponding skill.
|
|
34
35
|
|
|
@@ -46,6 +47,7 @@ ae-cli analysis_meta +<command> [options]
|
|
|
46
47
|
ae-cli analysis_common +<command> [options]
|
|
47
48
|
ae-cli analysis <resource> <action> [options]
|
|
48
49
|
ae-cli analysis-meta <resource> <action> [options]
|
|
50
|
+
ae-cli analysis-governance <resource> <action> [options]
|
|
49
51
|
ae-cli capability search|inspect|validate|dry-run|run [options]
|
|
50
52
|
```
|
|
51
53
|
|
|
@@ -110,7 +112,7 @@ Do not call removed QP builders or schema helpers for ad-hoc analysis. `--defini
|
|
|
110
112
|
- Metric value, trend, comparison, or anomaly -> saved report/dashboard first, then ad-hoc data.
|
|
111
113
|
- Metric definition search/create/update -> metadata commands.
|
|
112
114
|
- Event/entity rows -> `event-detail run|export` or `entity-detail run|export`.
|
|
113
|
-
-
|
|
115
|
+
- Events/entities from a query result -> follow the returned synchronous `query_context_id` and `sources[].drilldown`; never reconstruct raw QP or use export rows as coordinates.
|
|
114
116
|
- Cluster/tag definition -> matching gateway cluster/tag commands and matching model reference.
|
|
115
117
|
- Alert/configuration/tracking-plan requests -> dedicated legacy command reference from the index.
|
|
116
118
|
|
|
@@ -118,8 +120,9 @@ Do not call removed QP builders or schema helpers for ad-hoc analysis. `--defini
|
|
|
118
120
|
|
|
119
121
|
- `run` is a bounded inline preview for known-small work that can complete within the synchronous limits.
|
|
120
122
|
- `export` is for complete, unknown-size, over-limit, or long-running results. It returns `run_id` and `artifact_id`.
|
|
123
|
+
- Drilldown event/entity/user-event exports are `csv.gz` full-download streams bounded by `model_full_download_limit`; never pass or simulate `limit`, `offset`, `page_num`, or `page_size`.
|
|
121
124
|
- Inspect with `analysis run inspect`, download with `analysis artifact download`, and cancel with `analysis query cancel`. Do not call raw lifecycle URLs.
|
|
122
|
-
- Drilldown requires
|
|
125
|
+
- Drilldown requires a synchronous preview context and the selected source's returned row/column/metric coordinate options. If they are absent or the action is not advertised, report that drilldown/result-cluster creation is unavailable.
|
|
123
126
|
|
|
124
127
|
### Writes and destructive operations
|
|
125
128
|
|
|
@@ -127,7 +130,7 @@ Write only with explicit user intent. Use `--validate` alone while correcting co
|
|
|
127
130
|
|
|
128
131
|
Project-space and folder create/delete/share are L3 capabilities rather than curated `analysis` commands. Read the matching command reference, then use `ae-cli capability inspect|dry-run|run`; discover `*.members` through `capability search|inspect|run` and [`references/analysis_gateway_assets.md`](references/analysis_gateway_assets.md). For `risk=high-risk-write`, dry-run first, summarize the impact, and execute with `--yes` only after a later explicit confirmation.
|
|
129
132
|
|
|
130
|
-
After a successful create/update, if a resource ID and supported resource type are available, call `
|
|
133
|
+
After a successful create/update, if a resource ID and supported resource type are available, call `analysis-meta asset url-get` and return the link. Explicitly state when link generation is skipped because no resource ID exists or when it fails.
|
|
131
134
|
|
|
132
135
|
## Analysis workflow
|
|
133
136
|
|
|
@@ -23,7 +23,7 @@ ae-cli analysis adhoc export \
|
|
|
23
23
|
|
|
24
24
|
Read [`ai_models.md`](ai_models.md) for the single 12-model `model_type` registry, AI-facing `definition`, and SQL dynamic params contract.
|
|
25
25
|
|
|
26
|
-
For SQL model definitions, do not invent table or column names. If the table is
|
|
26
|
+
For SQL model definitions, do not invent table or column names. If the table reference is known, inspect columns with `analysis-meta datatable columns-get`; if the table is unknown, ask for it instead of guessing.
|
|
27
27
|
|
|
28
28
|
## Definition contract
|
|
29
29
|
|
|
@@ -49,12 +49,9 @@ The response is an async artifact descriptor:
|
|
|
49
49
|
- `run_id`: poll or cancel this run.
|
|
50
50
|
- `artifact_id`: download this artifact after completion.
|
|
51
51
|
- `status` / `artifact_status`: initial lifecycle states.
|
|
52
|
-
- `format`: actual logical artifact format (`jsonl` or `csv`).
|
|
53
|
-
- `compression` / `content_encoding`: actual compression/encoding; analysis ad-hoc exports currently return `gzip`.
|
|
54
|
-
- `file_name` / `content_type`: actual downloadable file contract. Do not infer compression from `--artifact-format` alone.
|
|
55
52
|
- `expires_at` / `expires_at_iso`: artifact expiration.
|
|
56
53
|
- `effective_timeout_seconds`, `timeout_source`, `deadline_at`: effective lifecycle policy.
|
|
57
|
-
-
|
|
54
|
+
- Export descriptors contain lifecycle/artifact metadata only. They do not create `query_context_id` or selectable drilldown options.
|
|
58
55
|
|
|
59
56
|
Preserve the `run_id` and `artifact_id` from this exact submit response as one pair. Do not infer either ID from a path or reuse an ID from another export.
|
|
60
57
|
|
|
@@ -68,4 +65,4 @@ ae-cli analysis query cancel --run-id <run_id>
|
|
|
68
65
|
|
|
69
66
|
If query execution fails, `run inspect` reaches `FAILED`; it must not produce a completed empty artifact. Download only after the successful terminal states documented in `analysis_data_retrieval.md`.
|
|
70
67
|
|
|
71
|
-
|
|
68
|
+
Exported rows are durable data, not interactive preview coordinates. Never drill down or create a result cluster from the submit response or downloaded artifact. Run a bounded synchronous preview containing the desired cell first.
|
|
@@ -25,7 +25,7 @@ ae-cli analysis adhoc run \
|
|
|
25
25
|
|
|
26
26
|
Read [`ai_models.md`](ai_models.md) for the single 12-model `model_type` registry, AI-facing `definition`, and SQL dynamic params contract.
|
|
27
27
|
|
|
28
|
-
For SQL model definitions, do not invent table or column names. If the table is
|
|
28
|
+
For SQL model definitions, do not invent table or column names. If the table reference is known, inspect columns with `analysis-meta datatable columns-get`; if the table is unknown, ask for it instead of guessing.
|
|
29
29
|
|
|
30
30
|
## Input
|
|
31
31
|
|
|
@@ -33,7 +33,7 @@ For SQL model definitions, do not invent table or column names. If the table is
|
|
|
33
33
|
- `--model-type`: one of the 12 AI-facing model names from [`ai_models.md`](ai_models.md). Do not pass `scenario`, `history_tag`, or `cluster`; tags and cohorts/clusters are separate capabilities.
|
|
34
34
|
- `--definition`: model-specific AI-facing definition JSON.
|
|
35
35
|
|
|
36
|
-
Control defaults: `--limit` default 100 / max 1000, `--timeout-seconds` default
|
|
36
|
+
Control defaults: `--limit` default 100 / max 1000, `--timeout-seconds` default 60 / max 180. The routing rule lives in [`analysis_data_retrieval.md`](analysis_data_retrieval.md).
|
|
37
37
|
|
|
38
38
|
If the user asks for more than 1000 rows, or the SQL text requests `LIMIT 2000` (or any limit above 1000), go directly to `analysis adhoc export`. Do not lower the SQL limit to 1000, run a truncated sync query first, or loop over repeated `run` calls.
|
|
39
39
|
|
|
@@ -43,16 +43,12 @@ Do not use raw QP, `events`, `event_view`, `visual_view`, removed ad-hoc QP buil
|
|
|
43
43
|
|
|
44
44
|
The response may include:
|
|
45
45
|
|
|
46
|
-
- `query_context_id`: Redis-backed context for
|
|
47
|
-
- `
|
|
48
|
-
- `sources[].target_contract.default_target`: a complete target that can be passed directly to a follow-up command. Copy and replace only fields named by `copy_from_selected_result` when drilling into a different row or cell.
|
|
46
|
+
- `query_context_id`: Redis-backed context for follow-ups from this bounded synchronous preview.
|
|
47
|
+
- `sources[].drilldown`: finite row, column, and metric options plus allowed actions. The preview `limit` is the selection boundary.
|
|
49
48
|
- `title` / `rows` / `total` / `returned_rows` / `truncated`: tabular preview fields. When truncated, use `adhoc export`; there is no next-page request.
|
|
50
49
|
- `result`: direct result for non-tabular models.
|
|
51
50
|
- `request_id`: lifecycle request id.
|
|
52
|
-
- `effective_time_range`: the resolved query scope actually sent to execution. `clipping_reasons` is empty when the gateway applied no range cap.
|
|
53
|
-
- `data_time_range`: the minimum/maximum machine dates present in returned rows when available. Compare it with `effective_time_range` to distinguish query-range clipping from missing data.
|
|
54
|
-
- `row_metadata`: row-aligned machine fields. For date-drilldown rows, copy `drilldown_date`; `display_date` is presentation text only.
|
|
55
51
|
|
|
56
52
|
Execution failures are returned as command failures with `request_id`; only the explicit project-no-data condition is a successful empty result. Do not interpret an empty object as evidence that a failed query succeeded.
|
|
57
53
|
|
|
58
|
-
|
|
54
|
+
Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md). Use the context only with an action advertised by the selected source/metric, and assemble the coordinate only from returned option fragments. Do not pass raw QP or infer a coordinate from display text.
|
|
@@ -139,6 +139,12 @@ Formula metric example:
|
|
|
139
139
|
}
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
+
Formula rules:
|
|
143
|
+
|
|
144
|
+
- Write **bare aliases** only in `formula` (e.g. `"revenue / users"` or `"pay / dau"`).
|
|
145
|
+
- **Do not** write `alias.Axxx` (e.g. `"pay.A103"` / `"revenue.A103"`). Aggregation codes come from each dependency's `aggregation`; the builder expands aliases to real event tokens such as `purchase.amount.A103/login.A101`.
|
|
146
|
+
- After the builder returns `status=generated`, hard-validate by querying (`analysis adhoc run` / report-data / dashboard-report-data). Do not save a report or dashboard from an unqueried formula QP.
|
|
147
|
+
|
|
142
148
|
### `retention`
|
|
143
149
|
|
|
144
150
|
Use for retained/lost users from an initial event to a return event.
|
|
@@ -277,6 +283,16 @@ Use for behavior paths before or after a source event.
|
|
|
277
283
|
|
|
278
284
|
Path `filters` are global member filters compiled to the original QP `user_filter`. They support `user_property`, `cluster`, and `tag`, but not `event_property`. Do not move a user filter into the source event's event-property filter.
|
|
279
285
|
|
|
286
|
+
Path session timeout accepts only these unit/value ranges:
|
|
287
|
+
|
|
288
|
+
- `second`: `1..999`
|
|
289
|
+
- `minute`: `1..999`
|
|
290
|
+
- `hour`: `1..24`
|
|
291
|
+
|
|
292
|
+
Do not use `day`. Express one day as `session_interval=24` with `session_unit=hour`.
|
|
293
|
+
|
|
294
|
+
Property types come from project metadata. If resolution says a field is an `event_property`, never relabel it as `user_property` just to satisfy the path schema. Remove the unsupported global filter, choose a model that supports event-property filtering, or ask the user to clarify the intended constraint. A familiar name such as `channel` is not universally an event or user property across projects.
|
|
295
|
+
|
|
280
296
|
For every non-SQL intent model, do not call `list_events` or `list_properties` as an execution prerequisite. The successful response must expose every internally resolved event/property in `resolved`, including `input`, `resolved_name`, `match_type`, and `path`. Use metadata discovery only after a structured `need_clarification` response or an explicit resolution capability error.
|
|
281
297
|
|
|
282
298
|
### `prop_analysis`
|
|
@@ -373,7 +389,7 @@ Rules:
|
|
|
373
389
|
- Do not pass SQL-IDE internals such as `sqlVoParams`, `sqlViewParams`, `paramType`, `paramName`, `paramExpress`, `commonFilter`, or `requiredEvents`.
|
|
374
390
|
- Delimit any Trino identifier containing `#`, `$`, `@`, spaces, or punctuation with double quotes, for example `"#user_id"` and `"$part_event"`. Single quotes create string literals, not identifiers. Escape a literal double quote inside an identifier by doubling it. The CLI preserves the submitted SQL and does not rewrite identifiers.
|
|
375
391
|
- For an event table, include a date-partition predicate on the discovered `"$part_date"` column, for example `WHERE "$part_date" BETWEEN '2026-07-01' AND '2026-07-07'`. The backend rejects event-table SQL without this condition.
|
|
376
|
-
- Do not invent table or column names. If the table is unknown, call `analysis sql-table list --project-id <project_id>` and select an exact returned `table_ref
|
|
392
|
+
- Do not invent table or column names. If the user already provides a concrete table reference, use `analysis-meta datatable columns-get --project-id <project_id> --table-ref <table_ref>` to inspect columns before writing SQL. If the table itself is unknown, call `analysis sql-table list --project-id <project_id>` when available and select an exact returned `table_ref`; otherwise stop and ask for the table/data source. Ask the user only when multiple authorized tables remain semantically plausible after discovery.
|
|
377
393
|
- For a saved dynamic SQL report, put the default values in `analysis report create/update --definition`. Verify the default once with `analysis report-data run` without `--sql-params`, then verify a changed value with one value-only `--sql-params` override.
|
|
378
394
|
- SQL tags and SQL clusters do not use this general parameter contract. They accept only `${PartDate:name}` with `type=part_date`, and their tables must be discovered with `analysis sql-table list/columns --usage tag_cluster`; see `user_tag_models.md` and `user_cluster_models.md`.
|
|
379
395
|
|
|
@@ -12,7 +12,8 @@ This policy applies to:
|
|
|
12
12
|
- `analysis bi-panel-page-data run` / `analysis bi-panel-page-data export`
|
|
13
13
|
- `analysis event-detail run` / `analysis event-detail export`
|
|
14
14
|
- `analysis entity-detail run` / `analysis entity-detail export`
|
|
15
|
-
- `analysis drilldown-
|
|
15
|
+
- `analysis drilldown-events run` / `analysis drilldown-events export`
|
|
16
|
+
- `analysis drilldown-entities run` / `analysis drilldown-entities export`
|
|
16
17
|
- `analysis drilldown-user-events run` / `analysis drilldown-user-events export`
|
|
17
18
|
- `analysis user-cluster-member list` / `analysis user-cluster-member export`
|
|
18
19
|
- `analysis user-tag-member list` / `analysis user-tag-member export`
|
|
@@ -39,7 +40,7 @@ The dashboard report-data sync timeout defaults to 180 seconds because one call
|
|
|
39
40
|
|
|
40
41
|
Detail `run` commands (`event-detail run` and `entity-detail run`) return only the first bounded preview rows. They do not support `--offset` or stable pagination. If the response has `truncated=true`, switch to the matching `export` command instead of trying to fetch later pages. For detail run, `truncated=true` can mean the preview hit its row cap even when the backend total is not an exact full count.
|
|
41
42
|
|
|
42
|
-
User member, history-tag drilldown, and result drilldown `list/run` commands are bounded previews. They do not expose pagination. Use the matching `export` command for full or unknown-size data
|
|
43
|
+
User member, history-tag drilldown, and result drilldown `list/run` commands are bounded previews. They do not expose pagination. Use the matching `export` command for full or unknown-size data.
|
|
43
44
|
|
|
44
45
|
Use `export` when any condition is true:
|
|
45
46
|
|
|
@@ -71,26 +72,25 @@ If `analysis run inspect` or `analysis artifact download` returns HTTP 404 for a
|
|
|
71
72
|
|
|
72
73
|
If the current host returns `CAPABILITY_NOT_FOUND` for a documented command, treat it as host/backend capability unavailability. Do not retry with different JSON shapes or flags; choose another supported path only when it satisfies the user's request, otherwise report the backend gap.
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
Drilldown event/entity/user-event exports use Common's full-download stream and write `csv.gz` directly; they do not collect synchronous preview pages. They accept no `limit`, `offset`, `page_num`, or `page_size`, and remain bounded by `model_full_download_limit`. Other detail, user-member, and history-tag exports may advance backend batches internally, but paging is never part of the caller contract. Do not collect full data by repeated `list/run` calls.
|
|
75
76
|
|
|
76
77
|
## Follow-up context
|
|
77
78
|
|
|
78
|
-
|
|
79
|
+
Only synchronous `adhoc run`, `report-data run`, and `dashboard-report-data run` previews create `query_context_id`, `sources`, and selectable `sources[].drilldown` options. Exports and downloaded artifacts never create this context and never expand the selectable result. The sync `--limit` is the drilldown boundary.
|
|
79
80
|
|
|
80
|
-
|
|
81
|
+
Follow-up commands are allowed only when the selected source/metric advertises the exact action. Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md), select only returned row/column/metric options, and never infer source IDs, dates, groups, model fields, or analysis angles from display text.
|
|
81
82
|
|
|
82
83
|
When present, compare `effective_time_range` with `data_time_range`. `effective_time_range` is the resolved query scope, while `data_time_range` is the observed returned-row range. `clipping_reasons=[]` means the gateway applied no silent range cap; a narrower `data_time_range` then reflects available/returned data rather than a gateway range clamp.
|
|
83
84
|
|
|
84
|
-
Use that `query_context_id` for:
|
|
85
|
+
Use that synchronous `query_context_id` for the advertised action only:
|
|
85
86
|
|
|
86
|
-
- `analysis drilldown-
|
|
87
|
+
- `analysis drilldown-events run` or `analysis drilldown-events export`
|
|
88
|
+
- `analysis drilldown-entities run` or `analysis drilldown-entities export`
|
|
87
89
|
- `analysis query create-result-cluster`
|
|
88
90
|
|
|
89
91
|
Do not reconstruct or pass raw QP for follow-up drilldown or result-cluster creation.
|
|
90
92
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
If the response does not include `query_context_id` and does not explicitly expose `drilldown_available=true`, stop before drilldown/result-cluster commands. Report that this result cannot be followed up with context-based drilldown in the current response.
|
|
93
|
+
If the synchronous response does not include `query_context_id`, source options, and the required action, stop before drilldown/result-cluster commands. Report that this preview does not expose that follow-up.
|
|
94
94
|
|
|
95
95
|
For sync `run`, ae-cli may add `_cli_inline_limit` and `_cli_truncation` metadata when it has to truncate returned `rows` arrays locally to enforce the requested inline limit. Use `export` for full data.
|
|
96
96
|
|
|
@@ -98,4 +98,4 @@ For sync `run`, ae-cli may add `_cli_inline_limit` and `_cli_truncation` metadat
|
|
|
98
98
|
|
|
99
99
|
For `analysis bi-panel-page-data`, `--row-limit`, `--row-offset`, `--block-limit`, and `--block-offset` are BI page/chart/summary window controls. They are not the generic sync-vs-async routing policy and do not change the rule above: use `run` for bounded inline results, and `export` for full, unknown-size, larger than 1000-row, or long-running data retrieval.
|
|
100
100
|
|
|
101
|
-
BI
|
|
101
|
+
BI SQL page/chart data does not support this analysis drilldown contract.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# analysis drilldown contract
|
|
2
|
+
|
|
3
|
+
This contract controls every follow-up from an analysis result. Read it before composing `drilldown-events`, `drilldown-entities`, or `query create-result-cluster`.
|
|
4
|
+
|
|
5
|
+
## Hard boundary
|
|
6
|
+
|
|
7
|
+
Only a synchronous `adhoc run`, `report-data run`, or `dashboard-report-data run` preview can create `query_context_id` and selectable drilldown coordinates. The selectable population is exactly the returned preview, after its `--limit` is applied. If `--limit 10` returns ten rows, only coordinates represented by those ten rows may be selected.
|
|
8
|
+
|
|
9
|
+
Exports never create a query context. A downloaded file, export submit response, or export artifact must never be used to invent or extend drilldown coordinates. To drill into a large result, first run a bounded synchronous preview containing the desired row; do not raise the limit merely to manufacture a complete target catalog.
|
|
10
|
+
|
|
11
|
+
SQL, `heat_map`, `rank_list`, `revenue`, and scenario models do not support this analysis drilldown contract. Stop when `source.drilldown.actions` is empty or `unavailable_reason` is present.
|
|
12
|
+
|
|
13
|
+
## Select a cell without `target_id`
|
|
14
|
+
|
|
15
|
+
The response contains `sources[]`. Select the source that owns the visible result. When more than one source exists, pass the source selector returned there, normally `{"report_id":...}` or `{"chart_id":...}`. Never put source IDs inside `coordinate`.
|
|
16
|
+
|
|
17
|
+
Each source has `drilldown`:
|
|
18
|
+
|
|
19
|
+
- `selection_boundary` must be `synchronous_preview_only`.
|
|
20
|
+
- `row_options[]` contains only rows from this preview. Match the user's row by `values`, then copy that option's `coordinate` fragment.
|
|
21
|
+
- `column_options[]` contains only drillable result columns. Match the requested visible column by `label`/`column_index`, then copy its `coordinate` fragment.
|
|
22
|
+
- `metric_options[]` describes the analysis angle and allowed `actions`. For event analysis, select the metric by `metric_index`; different metrics in one result may allow different actions.
|
|
23
|
+
- `coordinate_fields` is the allowlist for the final coordinate.
|
|
24
|
+
|
|
25
|
+
Build one coordinate by shallow-merging the selected row, column, and metric coordinate fragments. Identical keys must have identical values. Use the returned snake_case keys and values exactly. Do not send `row_index`, `column_index`, `values`, `label`, `target_id`, display-only dates, raw QP, or any inferred value.
|
|
26
|
+
|
|
27
|
+
An event-analysis phase-summary row is metric-dependent. The same visible row may therefore appear more than once in `row_options`, with a different `metric_index` in each coordinate fragment. Select the option whose `metric_index` matches the chosen metric column; never remove or replace that field. The backend advertises only these valid combinations:
|
|
28
|
+
|
|
29
|
+
| Phase calculation | Drillable metric angle |
|
|
30
|
+
|---|---|
|
|
31
|
+
| `sum` (`PERIOD_TOTAL`) | `EVENT_LIST` only |
|
|
32
|
+
| `dist` (`PERIOD_DISTINCT`) | `EVENT_LIST`, `USER_LIST`, or `ENTITY_LIST` |
|
|
33
|
+
| averages, integer averages, min/max, weighted averages, and every `intact_*` calculation | none |
|
|
34
|
+
|
|
35
|
+
This distinction is mathematical: event counts are additive across date buckets, while bucket-level distinct subject counts are not. A `dist` value is recomputed for the complete phase and can therefore identify one event/entity population. `intact_*` values exclude incomplete periods, but the current total drilldown query does not carry that reduced time range.
|
|
36
|
+
|
|
37
|
+
`time_granularity=T5` is not a phase-summary calculation. Its single returned row is the native full-range metric and remains selectable when the metric advertises `EVENT_LIST`, `USER_LIST`, or `ENTITY_LIST`.
|
|
38
|
+
|
|
39
|
+
Example:
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"source": {"report_id": 1001},
|
|
44
|
+
"coordinate": {
|
|
45
|
+
"group_values": ["Beijing"],
|
|
46
|
+
"date": "2026-07-16",
|
|
47
|
+
"metric_index": 1
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This represents one visible cell: the returned Beijing/date row plus metric column 1. It is not a server-generated ID for every possible cell.
|
|
53
|
+
|
|
54
|
+
## Choose the action from the analysis angle
|
|
55
|
+
|
|
56
|
+
Never infer an action from the model name or the numeric cell value. Use the selected `metric_options[].actions` for event analysis and `source.drilldown.actions` for other supported models.
|
|
57
|
+
|
|
58
|
+
| `analysis_angle` | Allowed next action |
|
|
59
|
+
|---|---|
|
|
60
|
+
| `EVENT_LIST` | `analysis drilldown-events run|export` only |
|
|
61
|
+
| `USER_LIST` | `analysis drilldown-entities run|export`; `analysis query create-result-cluster` |
|
|
62
|
+
| `ENTITY_LIST` | The same entity commands; `subject` identifies the analysis entity, which may be a custom entity rather than a user |
|
|
63
|
+
| `NONE` | No drilldown or result-cluster action |
|
|
64
|
+
|
|
65
|
+
`USER_LIST` is one special case of entity drilldown. A custom `ENTITY_LIST` result must be returned and saved as that entity type, not silently converted to users.
|
|
66
|
+
|
|
67
|
+
## Model coordinate meanings
|
|
68
|
+
|
|
69
|
+
Use only fragments actually returned in options; the table explains their business meaning and must not be used to synthesize missing choices.
|
|
70
|
+
|
|
71
|
+
| Model | Coordinate fields and special values |
|
|
72
|
+
|---|---|
|
|
73
|
+
| `event` | `group_values`, optional machine `date`, `metric_index`, optional `compare_index`, optional `scope=total`. Phase-summary row options already contain the only allowed `metric_index`; T5 total rows use `scope=total` without phase restrictions. The main time range omits `compare_index`; comparison block 1 uses `compare_index=0`. The chosen metric's `analysis_angle` decides events versus entities. |
|
|
74
|
+
| `retention` | `group_values`, machine `cohort_date`, `period_index`, `population=retained|lost`, optional `relation`. Only returned cohort rows and population-count period columns are selectable; average/rate/simultaneous-metric rows are not coordinates. |
|
|
75
|
+
| `funnel` | `group_values`, optional `date`, one-based `step`, `population=completed|churned`. Only returned step-population columns are selectable; conversion-rate columns are not. |
|
|
76
|
+
| `distribution` | `group_values`, machine `date`, optional raw `bucket`, `scope=total|bucket`. Bucket values are backend interval values returned by the contract, not localized column labels. Percentage and comparison rows are not selectable populations. |
|
|
77
|
+
| `interval` | `group_values`, optional machine `date`; the aggregate entity-count column returns `scope=total`. A raw `interval_bucket` is valid only when a returned column option explicitly contains it. Never infer a bucket from a displayed duration; descriptive interval statistics are not selectable populations. |
|
|
78
|
+
| `prop_analysis` | `group_values`, `population_index`. With configured user/entity populations, the row chooses `population_index`; otherwise it is `0`. |
|
|
79
|
+
| `path` | `session_level`, `current_nodes`, optional `next_nodes`, `relation=total|with_next|without_next|with_next_specific`, `current_is_more`, `next_is_more`. Copy the returned node objects; event names and group values are machine values. |
|
|
80
|
+
| `attribution` | `attribution_event_id`, `source_group_values`, `target_group_values`. The event ID is returned machine metadata for that row; never derive it from the displayed event name. |
|
|
81
|
+
|
|
82
|
+
## Entity result and user-event continuation
|
|
83
|
+
|
|
84
|
+
`analysis drilldown-entities run` returns `subject` and normalized `items[]`.
|
|
85
|
+
|
|
86
|
+
- For `subject.type=user`, each item contains canonical `user_id`. The response may also return `drilldown_context_id` and a user-event follow-up action. Only then may the Agent call `analysis drilldown-user-events run|export` with that exact context and returned `user_id`.
|
|
87
|
+
- For `subject.type=entity`, items contain `entity_value` and attributes. Custom entities do not have user event sequences, so no user-event context or follow-up is valid.
|
|
88
|
+
- `subject.column_name` is the authoritative machine identity column used to normalize `entity_value`; never substitute `#user_id` for a custom entity.
|
|
89
|
+
- `analysis query create-result-cluster` saves the selected subject as the corresponding entity's result cluster.
|
|
90
|
+
|
|
91
|
+
The entity export is for complete member data only. It does not create a new context for another drilldown step.
|
|
92
|
+
|
|
93
|
+
All three drilldown exports are full-download streams, not paging APIs. They accept no limit/offset/page controls and produce `csv.gz`; the platform `model_full_download_limit` remains the safety ceiling. Export artifacts never add selectable coordinates or user-event continuation identities.
|
|
@@ -67,17 +67,18 @@ Artifact workflow:
|
|
|
67
67
|
4. Download with `ae-cli analysis artifact download --run-id <run_id> --artifact-id <artifact_id> --output <file>`.
|
|
68
68
|
5. Cancel long or abandoned exports with `ae-cli analysis query cancel --run-id <run_id>`.
|
|
69
69
|
|
|
70
|
-
Prefer the run/artifact commands over hand-written HTTP, Python, or curl.
|
|
70
|
+
Prefer the run/artifact commands over hand-written HTTP, Python, or curl. Analysis exports never create interactive `query_context_id`; drilldown coordinates exist only in bounded synchronous previews.
|
|
71
71
|
|
|
72
72
|
## Command matrix
|
|
73
73
|
|
|
74
74
|
| Command | Capability ID | Use for | Key input | Output |
|
|
75
75
|
| --- | --- | --- | --- | --- |
|
|
76
76
|
| `adhoc run` | `analysis.adhoc.run` | Unified ad-hoc inline query for 12 AI models: 9 common + 3 scenario models | `--project-id`, `--model-type`, AI-facing `--definition` | Inline data plus optional `query_context_id` |
|
|
77
|
-
| `adhoc export` | `analysis.adhoc.export` | Unified ad-hoc async export for 12 AI models: 9 common + 3 scenario models | same as run, plus optional `--artifact-format`; no inline `--limit` | Async artifact descriptor;
|
|
78
|
-
| `
|
|
77
|
+
| `adhoc export` | `analysis.adhoc.export` | Unified ad-hoc async export for 12 AI models: 9 common + 3 scenario models | same as run, plus optional `--artifact-format`; no inline `--limit` | Async artifact descriptor; no drilldown context |
|
|
78
|
+
| `drilldown-events run/export` | `analysis.query.drilldown_events` / `analysis.query.drilldown_events_export` | Preview or full-stream events for an advertised `EVENT_LIST` cell | `--query-context-id`, optional `--source`, `--coordinate` | Bounded event rows or `csv.gz` artifact |
|
|
79
|
+
| `drilldown-entities run/export` | `analysis.query.drilldown_entities` / `analysis.query.drilldown_entities_export` | Preview/export users or custom entities for an advertised entity cell | `--query-context-id`, optional `--source`, `--coordinate` | Subject plus entity rows/artifact |
|
|
79
80
|
| `query drilldown-user-events` | `analysis.query.drilldown_user_events` | Query one drilldown user's event sequence | `--drilldown-context-id`, `--user-id` | Event sequence rows |
|
|
80
|
-
| `query create-result-cluster` | `analysis.query.create_result_cluster` | Save
|
|
81
|
+
| `query create-result-cluster` | `analysis.query.create_result_cluster` | Save the advertised user/custom-entity cell population as its result cluster | `--query-context-id`, optional `--source`, `--coordinate`, `--cluster-name` | Result cluster creation result |
|
|
81
82
|
| `report list` | `analysis.report.list` | Find accessible reports | `--project-id`, optional `--query`, `--fields`, `--limit`, `--offset` | Paginated report summaries |
|
|
82
83
|
| `report list-export` | `analysis.report.list_export` | Export report catalog | same as list, plus optional `--artifact-format`, `--request-id` | Async artifact descriptor |
|
|
83
84
|
| `report get` | `analysis.report.get` | Inspect current report definition as AI QP | `--project-id`, `--report-id` | Report metadata plus `model_type` and `definition` |
|
|
@@ -85,7 +86,7 @@ Prefer the run/artifact commands over hand-written HTTP, Python, or curl. For an
|
|
|
85
86
|
| `report update` | `analysis.report.update` | Update metadata or AI QP definition | `--report-id`, `--report-version`, update fields | Update result |
|
|
86
87
|
| `report delete` | `analysis.report.delete` | Delete reports | `--report-ids '[...]'` | Delete result |
|
|
87
88
|
| `report-data run` | `analysis.report_data.run` | Bounded inline report data | `--report-ids`, optional AI-facing `--filters`, `--group-by`, SQL dynamic parameter value-only `--sql-params`, time/limit | Inline data plus optional `query_context_id` |
|
|
88
|
-
| `report-data export` | `analysis.report_data.export` | Large/long report data | same as run, plus optional `--artifact-format` | Async artifact descriptor;
|
|
89
|
+
| `report-data export` | `analysis.report_data.export` | Large/long report data | same as run, plus optional `--artifact-format` | Async artifact descriptor; no drilldown context |
|
|
89
90
|
| `query cancel` | `analysis.query.cancel` | Cancel any async analysis export | `--run-id`, optional `--reason` | Cancellation result |
|
|
90
91
|
| `report-change-log list` | `analysis.report_change_log.list` | List one report's change logs | `--report-id` | Change log summaries |
|
|
91
92
|
| `report-change-log get` | `analysis.report_change_log.get` | Inspect one change log detail | `--report-id`, optional `--history-version` | Change log detail with AI QP definition when available |
|
|
@@ -105,7 +106,7 @@ Prefer the run/artifact commands over hand-written HTTP, Python, or curl. For an
|
|
|
105
106
|
| `dashboard abnormal-get` | `analysis.dashboard.abnormal_get` | Inspect abnormal dependencies | `--dashboard-id` | Abnormal info |
|
|
106
107
|
| `dashboard task-status` | `analysis.dashboard.task_status` | Inspect scheduled task status | `--dashboard-id` | Task status |
|
|
107
108
|
| `dashboard-report-data run` | `analysis.dashboard_report_data.run` | Bounded inline dashboard report data; `--filters` is analysis Filter JSON from `+get_filter_schema` | `--dashboard-id`, optional `--report-ids`, `--filters`, `--start-time`, `--end-time`, `--limit` | Inline data plus optional `query_context_id` |
|
|
108
|
-
| `dashboard-report-data export` | `analysis.dashboard_report_data.export` | Large/long dashboard report data | same as run, plus optional `--artifact-format jsonl` | Async artifact descriptor;
|
|
109
|
+
| `dashboard-report-data export` | `analysis.dashboard_report_data.export` | Large/long dashboard report data | same as run, plus optional `--artifact-format jsonl` | Async artifact descriptor; no drilldown context |
|
|
109
110
|
| `run inspect` | `analysis.run.inspect` | Poll async export status | `--run-id` | Run and artifact status |
|
|
110
111
|
| `artifact download` | `analysis.artifact.download` | Download run-bound export artifact | `--run-id`, `--artifact-id`, `--output` | Local output file info |
|
|
111
112
|
| `query cancel` | `analysis.query.cancel` | Cancel gateway run/export | `--run-id`, optional `--reason` | Cancellation result |
|
|
@@ -212,8 +213,8 @@ ae-cli analysis adhoc export --project-id 1 --model-type sql --definition '{"sql
|
|
|
212
213
|
ae-cli analysis report list --project-id 1 --query revenue --limit 50
|
|
213
214
|
ae-cli analysis report-data run --project-id 1 --report-ids '[1001]' --limit 50
|
|
214
215
|
ae-cli analysis report-data run --project-id 1 --report-ids '[1001]' --filters '{"relation":"and","items":[{"field":{"name":"country","type":"user_property"},"operator":"eq","values":["US"]}]}' --group-by '[{"field":{"name":"country","type":"user_property"}}]' --sql-params '[{"name":"platform","value":"ios"}]' --limit 50
|
|
215
|
-
ae-cli analysis
|
|
216
|
-
ae-cli analysis query create-result-cluster --query-context-id ctx_0123456789abcdef0123456789abcdef --
|
|
216
|
+
ae-cli analysis drilldown-entities run --query-context-id ctx_0123456789abcdef0123456789abcdef --source '{"report_id":1001}' --coordinate '{"cohort_date":"2026-07-01","group_values":[],"period_index":1,"population":"retained"}'
|
|
217
|
+
ae-cli analysis query create-result-cluster --query-context-id ctx_0123456789abcdef0123456789abcdef --source '{"report_id":1001}' --coordinate '{"cohort_date":"2026-07-01","group_values":[],"period_index":1,"population":"retained"}' --cluster-name retained_users
|
|
217
218
|
ae-cli analysis dashboard update --project-id 1 --operation note-upsert --dashboard-id 1001 --note-title "Summary" --description "Weekly note"
|
|
218
219
|
ae-cli analysis dashboard-definition export --project-id 1 --dashboard-id 1001 --export-file-name retention_dashboard
|
|
219
220
|
ae-cli analysis dashboard-definition import --project-id 1 --definition '{"dashboard_folders":[],"shared_spaces":[]}' --validate-only true
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
# analysis-meta asset url-get
|
|
2
2
|
|
|
3
|
-
Use when the user needs to get
|
|
3
|
+
Use when the user needs to get a clickable resource link through the capability gateway, including post-write resource link completion.
|
|
4
4
|
|
|
5
|
-
Do not use it to discover assets or query asset data; resolve a real asset first, then use this command only to turn its governance identity into a link.
|
|
5
|
+
Do not use it to discover assets or query asset data; resolve a real asset first, then use this command only to turn its governance identity or resource ID into a link.
|
|
6
6
|
|
|
7
7
|
Command:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
ae-cli analysis-meta asset url-get --project-id <project_id> --payload '{}'
|
|
11
|
+
ae-cli analysis-meta asset url-get --project-id <project_id> --resource-type dashboard --resource-id 1
|
|
11
12
|
ae-cli analysis-meta asset url-get --dry-run --project-id <project_id>
|
|
12
13
|
```
|
|
13
14
|
|
|
@@ -15,7 +16,7 @@ Capability id: analysis_meta.asset_url.get.
|
|
|
15
16
|
|
|
16
17
|
Input sends project_id, payload, node_id, resource_id, resource_type, link_info. Payload keys must follow the common-service snake_case input schema; do not send camelCase aliases.
|
|
17
18
|
|
|
18
|
-
Output `data` identifies the normalized asset and returns `raw_url` plus `markdown_link` when the resource type supports a link
|
|
19
|
+
Output `data` identifies the normalized asset and returns `raw_url` plus `markdown_link` when the resource type supports a link. ae-cli rewrites relative URL/link fields into absolute URLs using the current host. `status=ok` without a URL means no URL mapping was available.
|
|
19
20
|
|
|
20
21
|
## Parameters
|
|
21
22
|
| Parameter | Required | Description |
|
|
@@ -14,9 +14,9 @@ ae-cli analysis bi-panel-page-data export --project-id <project_id> --panel-id <
|
|
|
14
14
|
|
|
15
15
|
Input sends `project_id`, `panel_id`, `page_key`, `result_type`, and optional control, paging, cache, request, timeout, and format fields. Use CLI flag `--artifact-format` for the gateway `format` input; `--format` is the CLI output formatter. Async export has no inline row limit. Runtime defaults to and is capped at 21600 seconds (6 hours); cancel earlier with `analysis query cancel --run-id <run_id>`. `--row-limit` and related BI page controls are chart/summary window controls, not the generic async artifact row policy; see [`analysis_data_retrieval.md`](analysis_data_retrieval.md).
|
|
16
16
|
|
|
17
|
-
Output is the gateway envelope. `data` contains an async export descriptor with `run_id`, `artifact_id`, status fields, expiration fields
|
|
17
|
+
Output is the gateway envelope. `data` contains an async export descriptor with `run_id`, `artifact_id`, status fields, and expiration fields. It does not create `query_context_id` or expose inspect/download API paths; use the CLI commands below.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
BI chart sources are SQL and do not support analysis drilldown or result-cluster creation. Exported rows are not interactive coordinates.
|
|
20
20
|
|
|
21
21
|
Follow-up workflow:
|
|
22
22
|
|
|
@@ -16,4 +16,4 @@ Input sends `project_id`, `panel_id`, `page_key`, `result_type`, and optional co
|
|
|
16
16
|
|
|
17
17
|
Output is the gateway envelope. `data` contains bounded inline page data.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
BI page/chart sources are SQL and do not support analysis drilldown or result-cluster creation. Do not call model drilldown commands from this result.
|