@metabase/cli 0.1.7 → 0.1.8
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/dist/{add-collection-DQjTlDNF.mjs → add-collection-CwrbKmC1.mjs} +4 -4
- package/dist/{add-collection-C9BdVBs2.mjs → add-collection-DxtuNxeP.mjs} +6 -6
- package/dist/{archive-BXzghEQX.mjs → archive-BAjGIzhn.mjs} +3 -3
- package/dist/{archive-CBGKzEAl.mjs → archive-BO3DOWI4.mjs} +3 -3
- package/dist/{archive-CuVk8iwN.mjs → archive-BpKZsGAm.mjs} +3 -3
- package/dist/{archive-DTN9tLGT.mjs → archive-BzvqQd34.mjs} +3 -3
- package/dist/{archive-B3qiL-kK.mjs → archive-DqUtqRut.mjs} +3 -3
- package/dist/{archive-De8jzzq7.mjs → archive-ZnnJc2iT.mjs} +3 -3
- package/dist/auth-B9B4pUaH.mjs +19 -0
- package/dist/{body-tcURGnGh.mjs → body-DDYKoyMt.mjs} +1 -1
- package/dist/{branches-CIGkjXIk.mjs → branches-DjiGsjAz.mjs} +4 -4
- package/dist/{cancel-pPsvgJ0Z.mjs → cancel-BwtDQ2MR.mjs} +3 -3
- package/dist/{cancel-task-BLGE4UlL.mjs → cancel-task-uJp18RvR.mjs} +4 -4
- package/dist/card-D54unw6r.mjs +20 -0
- package/dist/{cards-Dq3nx_9n.mjs → cards-z68PANDD.mjs} +3 -3
- package/dist/cli.mjs +23 -23
- package/dist/collection-B5kIKRTL.mjs +20 -0
- package/dist/{create-BcgoukG4.mjs → create-4EAGYVyp.mjs} +3 -3
- package/dist/{create-w3mQg9n4.mjs → create-6XE7GYxk.mjs} +3 -3
- package/dist/{create-BIphz0kO.mjs → create-7JOWFxqu.mjs} +3 -3
- package/dist/{create-9DBTkbMq.mjs → create-BzK59YlR.mjs} +4 -4
- package/dist/{create-B1dyuL9Y.mjs → create-C8gA-XP2.mjs} +3 -3
- package/dist/{create-DHscDhRd.mjs → create-CQ4Vg4Ge.mjs} +3 -3
- package/dist/{create-BdPoSk_7.mjs → create-DHWfmO2L.mjs} +3 -3
- package/dist/{create-aPaUEGdr.mjs → create-Dd_Gyg_F.mjs} +3 -3
- package/dist/{create-BrUqxreg.mjs → create-GVfCQU3B.mjs} +3 -3
- package/dist/{create-branch-DGoc9CUU.mjs → create-branch-CdWGiREu.mjs} +4 -4
- package/dist/{credentials-qryRLUed.mjs → credentials-CFA9iGZG.mjs} +5 -5
- package/dist/{current-task-DZM28rnr.mjs → current-task-nPs-iCLi.mjs} +4 -4
- package/dist/dashboard-lw6IFfOs.mjs +21 -0
- package/dist/{database-Ce1gOJF7.mjs → database-BPT6BrmF.mjs} +3 -3
- package/dist/db-CBCj8sBg.mjs +22 -0
- package/dist/{delete-BPaFdHZP.mjs → delete-CJqLgr6w.mjs} +3 -3
- package/dist/{delete-FFj1xQWO.mjs → delete-CiV6f69N.mjs} +5 -5
- package/dist/{delete-BrJOotpW.mjs → delete-Do1agSiL.mjs} +3 -3
- package/dist/{delete-table-CNupWUO0.mjs → delete-table-ZiJDpMFT.mjs} +3 -3
- package/dist/{deprovision-BNr9fPDY.mjs → deprovision-C-qEnh-P.mjs} +6 -6
- package/dist/{dirty-BCkNOY8c.mjs → dirty-BnTG7w7v.mjs} +4 -4
- package/dist/{docker-Ds252Mwc.mjs → docker-B-QQWThD.mjs} +2 -2
- package/dist/{eid-CLY5X0Uw.mjs → eid-CwQ_smOD.mjs} +3 -3
- package/dist/{error-ZsFeevV2.mjs → error-CTVL5CdB.mjs} +1 -1
- package/dist/{export-CgHgWW3I.mjs → export-DR2cC4rL.mjs} +6 -6
- package/dist/field-DJmQ2pul.mjs +18 -0
- package/dist/{fields-RkRWU-u9.mjs → fields-Ck31lDz9.mjs} +3 -3
- package/dist/{get-42tJ7BNp.mjs → get-BFJ3VBPa.mjs} +3 -3
- package/dist/{get-C9O_aEGo.mjs → get-BNKsNCcx.mjs} +3 -3
- package/dist/{get-CTDqioaj.mjs → get-BPOd0Rm8.mjs} +3 -3
- package/dist/{get-CiZrZJLt.mjs → get-BZiu-u-9.mjs} +3 -3
- package/dist/{get-B9kwSs6U.mjs → get-C71ypFQk.mjs} +3 -3
- package/dist/{get-DmzgSgrl.mjs → get-CICzGFSW.mjs} +3 -3
- package/dist/{get-sMpa-X4E.mjs → get-CyG_P55z.mjs} +3 -3
- package/dist/{get-CRvbChoX.mjs → get-DauAF3sm.mjs} +2 -2
- package/dist/{get-y17zJMnU.mjs → get-DxqzDKKK.mjs} +3 -3
- package/dist/{get-B8l4t4Pz.mjs → get-DyArILlF.mjs} +2 -2
- package/dist/{get-DsqGHNHN.mjs → get-F338MOK-.mjs} +3 -3
- package/dist/{get-Bo4Cpd_c.mjs → get-GWRprk7k.mjs} +2 -2
- package/dist/{get-CvmqPN30.mjs → get-pO0wiy1e.mjs} +3 -3
- package/dist/{get-run-CBwcRc8E.mjs → get-run-DhM_PyVy.mjs} +3 -3
- package/dist/git-sync-rmjYOGFK.mjs +28 -0
- package/dist/{has-remote-changes-CfRidwXT.mjs → has-remote-changes-Ca0exJmb.mjs} +4 -4
- package/dist/{import-BZV0Z2KR.mjs → import-DjclIzGP.mjs} +6 -6
- package/dist/{is-dirty-hKcB4OH9.mjs → is-dirty-Cke0a1ie.mjs} +3 -3
- package/dist/is-dirty-DFGgGLDi.mjs +10 -0
- package/dist/{items-C94eW2Yd.mjs → items-BSpapmCU.mjs} +3 -3
- package/dist/{license-B37055sr.mjs → license-j0tDQLKI.mjs} +3 -3
- package/dist/{list-CU6sOfI-.mjs → list-BI1PfPjn.mjs} +2 -2
- package/dist/{list-C-oZe1_p.mjs → list-BRXGDSMo.mjs} +3 -3
- package/dist/{list-CqN4gvCk.mjs → list-Br77Mw6U.mjs} +2 -2
- package/dist/{list-DuSoEk_J.mjs → list-Brt4oKO7.mjs} +3 -3
- package/dist/{list-DrINpVLM.mjs → list-CEE9yKNp.mjs} +2 -2
- package/dist/{list-BS_Bxejg.mjs → list-D1qhCQn0.mjs} +2 -2
- package/dist/{list-BFlzLGlw.mjs → list-DUyWON1F.mjs} +2 -2
- package/dist/{list-B0V7FeL2.mjs → list-DWWGcUTg.mjs} +2 -2
- package/dist/{list-HS15y_WN.mjs → list-DmO4ADQq.mjs} +2 -2
- package/dist/{list-DfDZr55C.mjs → list-Fjjtpghb.mjs} +2 -2
- package/dist/{list-BJXaGk-z.mjs → list-V5IuMr_5.mjs} +2 -2
- package/dist/{list-CF1pMN4S.mjs → list-bVlCwg8g.mjs} +2 -2
- package/dist/{list-DUXdt0XI.mjs → list-evetBTcH.mjs} +2 -2
- package/dist/{list-BmHoYJr7.mjs → list-fIV-P6wP.mjs} +2 -2
- package/dist/{login-enh9Yimb.mjs → login-BJGhZLgZ.mjs} +3 -3
- package/dist/{logout-BWLPLDh8.mjs → logout-BAGLqtnV.mjs} +2 -2
- package/dist/{logs-Cu3QtvPs.mjs → logs-jx5b_YDk.mjs} +5 -5
- package/dist/measure-BfgxqewH.mjs +19 -0
- package/dist/{metadata-D2TxboMm.mjs → metadata-B-GOcWqL.mjs} +3 -3
- package/dist/{metadata-BTTEBWdS.mjs → metadata-DJAdsOoh.mjs} +3 -3
- package/dist/{parse-id-0_tOPvfI.mjs → parse-id-D1LTTt9L.mjs} +1 -1
- package/dist/{parse-schemas-D-qVLl4z.mjs → parse-schemas-DDK9nXuh.mjs} +1 -1
- package/dist/{path-C8GrBdgT.mjs → path-D5kX-msX.mjs} +2 -2
- package/dist/{poll-4eoh5J0r.mjs → poll-DxpnK1wW.mjs} +1 -1
- package/dist/{poll-task-51WRdugU.mjs → poll-task-D8mG49IN.mjs} +2 -2
- package/dist/{preflight-BhsErYz3.mjs → preflight-Df_FqJ6o.mjs} +1 -1
- package/dist/{provision-Chf86BF0.mjs → provision-BJd6zO1D.mjs} +8 -8
- package/dist/{ps-CIDwaubS.mjs → ps-CpyHEvv7.mjs} +5 -5
- package/dist/{ps-CEYtsKBj.mjs → ps-dEqRGeB3.mjs} +3 -3
- package/dist/{query-BBCAF-tG.mjs → query-OIuumiXN.mjs} +3 -3
- package/dist/{query-DYVBnu9d.mjs → query-zWFRDH3T.mjs} +3 -3
- package/dist/{remove-2yInufA6.mjs → remove-BNQ1c6hB.mjs} +2 -2
- package/dist/{remove-collection-CBAHz0Dk.mjs → remove-collection-BxmiXWKz.mjs} +6 -6
- package/dist/{rescan-values-cfTSNQZo.mjs → rescan-values-M7g81KIl.mjs} +3 -3
- package/dist/{run-qgdEJv-I.mjs → run-DTsx8bLb.mjs} +5 -5
- package/dist/{runs-BFIIH4GL.mjs → runs-CqfJIuh_.mjs} +3 -3
- package/dist/{runtime-Duawf5lE.mjs → runtime-B40L_bj8.mjs} +1 -1
- package/dist/{schema-tables-C2xM3dho.mjs → schema-tables-CjBRF0_0.mjs} +3 -3
- package/dist/{schemas-BP7xiktH.mjs → schemas-GIIbek2O.mjs} +3 -3
- package/dist/{search-DYP3lOlq.mjs → search-h78uOYec.mjs} +3 -3
- package/dist/segment-CoElN2b-.mjs +19 -0
- package/dist/{set-DpRQqdo7.mjs → set-BRDxcLcQ.mjs} +3 -3
- package/dist/{set-Tt-ioa4L.mjs → set-Dclba9xF.mjs} +2 -2
- package/dist/{setting-DUa96KF3.mjs → setting-mKzZJpQY.mjs} +3 -3
- package/dist/{setup-BPlllnim.mjs → setup-WTIT2WbM.mjs} +3 -3
- package/dist/{skills-SqbPo0BI.mjs → skills-tMYd5d9v.mjs} +3 -3
- package/dist/snippet-B84H3tfp.mjs +19 -0
- package/dist/{start-DJZA67WF.mjs → start-B7ByBicB.mjs} +5 -5
- package/dist/{stash-C89zNKxo.mjs → stash-DxoAJzcK.mjs} +6 -6
- package/dist/{status-BNvFPemM.mjs → status-B1dc3bbQ.mjs} +2 -2
- package/dist/{status-B1EJ_jv0.mjs → status-D0Ukfodl.mjs} +5 -5
- package/dist/{status-D5wSqYV_.mjs → status-DAzD1Cn_.mjs} +2 -2
- package/dist/{stop-5rCLmkCQ.mjs → stop-Cvexagxh.mjs} +6 -6
- package/dist/{summary-Cihbx0Qs.mjs → summary-3qOMUcEX.mjs} +3 -3
- package/dist/{sync-schema-C3odu0ZH.mjs → sync-schema-CrmVX1cy.mjs} +3 -3
- package/dist/table-B0fRQv91.mjs +19 -0
- package/dist/transform-K_kp6Rdm.mjs +24 -0
- package/dist/transform-job-CuNN8zgv.mjs +19 -0
- package/dist/{tree-mvq9gM9w.mjs → tree-DsnIPFyE.mjs} +2 -2
- package/dist/{update-C0jP0AKT.mjs → update-BEtl9LpG.mjs} +4 -4
- package/dist/{update-VvKMnwsM.mjs → update-BRLcnSwK.mjs} +4 -4
- package/dist/{update-tRparnUs.mjs → update-Baya6OkO.mjs} +5 -5
- package/dist/{update-DCrOQ1PW.mjs → update-BsgHRoZ8.mjs} +4 -4
- package/dist/{update-Rr4usmCo.mjs → update-CLsqoEJ8.mjs} +4 -4
- package/dist/{update-CtOo3LsX.mjs → update-CZEd_Eej.mjs} +4 -4
- package/dist/{update-BoIiuC70.mjs → update-DPouQi4U.mjs} +4 -4
- package/dist/{update-DwRxdflw.mjs → update-DWn-nLPo.mjs} +4 -4
- package/dist/{update-CbBnHz42.mjs → update-UaPqSfPN.mjs} +4 -4
- package/dist/{update-dashcard-DFvIz8Qj.mjs → update-dashcard-DK9X91ha.mjs} +4 -4
- package/dist/{update-DEZayTb4.mjs → update-hiJdbbsb.mjs} +8 -8
- package/dist/{upgrade-D-Rl_fH9.mjs → upgrade-UqdvTikR.mjs} +2 -2
- package/dist/{url-BB6jeNQj.mjs → url-LMJZRDv4.mjs} +5 -5
- package/dist/{uuid-BSVUk8u2.mjs → uuid-BWCaWG4O.mjs} +2 -2
- package/dist/{values-D1RJE4H6.mjs → values-D_wycrcr.mjs} +3 -3
- package/dist/{verify-A7BWfBPZ.mjs → verify-D7hb6VMy.mjs} +1 -1
- package/dist/{wait-DK5QDZ8n.mjs → wait-B5IpNFCG.mjs} +5 -5
- package/dist/{wait-B17I_pWy.mjs → wait-DHjXk3jD.mjs} +1 -1
- package/dist/{wait-flags-DlfbIXHw.mjs → wait-flags-CNIeSq0_.mjs} +2 -2
- package/dist/workspace-Bt8n3ojY.mjs +25 -0
- package/package.json +1 -1
- package/skill-data/visualization/SKILL.md +158 -0
- package/skill-data/visualization/references/settings.md +414 -0
- package/dist/auth-D9eAyVoG.mjs +0 -19
- package/dist/card-DDDrWcDU.mjs +0 -20
- package/dist/collection-DkEvCDar.mjs +0 -20
- package/dist/dashboard-BLf1RZlk.mjs +0 -21
- package/dist/db-CWTFe_FZ.mjs +0 -22
- package/dist/field-LL6W_c-c.mjs +0 -18
- package/dist/git-sync-CrWTo3YX.mjs +0 -28
- package/dist/is-dirty-CPzOnnH6.mjs +0 -10
- package/dist/measure-CDlEPFtB.mjs +0 -19
- package/dist/segment-B6HnNGDs.mjs +0 -19
- package/dist/snippet-dJ68tGsl.mjs +0 -19
- package/dist/table-J2f0STnB.mjs +0 -19
- package/dist/transform-job-OW4SDhsQ.mjs +0 -19
- package/dist/transform-q1LYWQtW.mjs +0 -24
- package/dist/workspace-ri6r3zWo.mjs +0 -25
- package/skill-data/viz/SKILL.md +0 -137
- package/skill-data/viz/references/settings.md +0 -312
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
# visualization_settings — per-chart key reference
|
|
2
|
+
|
|
3
|
+
Authorable keys per `display`, plus the data shape each chart suits and the minimum needed to render. Set keys only to override defaults — an empty `{}` works for a simple aggregate.
|
|
4
|
+
|
|
5
|
+
All column-naming keys (`graph.dimensions`, `pie.dimension`, `table.columns[].name`, `map.latitude_column`, …) take **output column-name strings** — the names the query produces. Every key and value below is identical in the API form (`mb card create`) and the portable git-sync form, with two exceptions: `column_settings` `["ref", …]` keys and click-behavior dimension targets carry a numeric field id in the API form and a name-path in the portable form. In a JSON body, `column_settings` keys are escaped strings: `"[\"name\",\"TOTAL\"]"`.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Cartesian — `bar`, `line`, `area`, `combo`, `scatter`, `waterfall`, `row`, `boxplot`
|
|
10
|
+
|
|
11
|
+
`bar`/`line`/`area`/`combo` share an identical key set (combo just defaults the first series to a line, the rest to bars). `scatter`/`waterfall`/`row`/`boxplot` use a subset plus their own extras. Most allow up to 2 dimensions and unlimited metrics; **waterfall is 1 dimension + 1 metric**, boxplot allows 2 dimensions.
|
|
12
|
+
|
|
13
|
+
## Shared keys
|
|
14
|
+
|
|
15
|
+
**Data binding**
|
|
16
|
+
|
|
17
|
+
| Key | Type | Notes |
|
|
18
|
+
| -------------------- | -------------------- | ----------------------------------------------------------------------------------- |
|
|
19
|
+
| `graph.dimensions` | string[] (col names) | X-axis. Index 0 = x-axis; a 2nd entry = series breakout. |
|
|
20
|
+
| `graph.metrics` | string[] (col names) | Y-axis metric column(s). |
|
|
21
|
+
| `graph.series_order` | object[] | Per-series order/visibility `{ key, name, color, enabled }` (only with a breakout). |
|
|
22
|
+
|
|
23
|
+
**Stacking**
|
|
24
|
+
|
|
25
|
+
| Key | Type | Values | Default |
|
|
26
|
+
| ---------------------- | -------------- | ------------------------------------------------ | ---------------------------------------------- |
|
|
27
|
+
| `stackable.stack_type` | string \| null | `null`, `"stacked"`, `"normalized"` (100%) | `null` (`"stacked"` for `area` with >1 series) |
|
|
28
|
+
| `graph.split_panels` | boolean | each series in its own panel (excludes stacking) | `false` |
|
|
29
|
+
|
|
30
|
+
**Goal & trend**
|
|
31
|
+
|
|
32
|
+
| Key | Type | Default |
|
|
33
|
+
| ---------------------- | ------- | -------- |
|
|
34
|
+
| `graph.show_goal` | boolean | `false` |
|
|
35
|
+
| `graph.goal_value` | number | `0` |
|
|
36
|
+
| `graph.goal_label` | string | `"Goal"` |
|
|
37
|
+
| `graph.show_trendline` | boolean | `false` |
|
|
38
|
+
|
|
39
|
+
**Data labels**
|
|
40
|
+
|
|
41
|
+
| Key | Type | Values | Default |
|
|
42
|
+
| ------------------------------ | ------- | -------------------------------------------------- | --------- |
|
|
43
|
+
| `graph.show_values` | boolean | | `false` |
|
|
44
|
+
| `graph.label_value_frequency` | string | `"fit"`, `"all"` | `"fit"` |
|
|
45
|
+
| `graph.show_stack_values` | string | `"total"`, `"series"`, `"all"` (stacked bars only) | `"total"` |
|
|
46
|
+
| `graph.label_value_formatting` | string | `"auto"`, `"compact"`, `"full"` | `"auto"` |
|
|
47
|
+
|
|
48
|
+
**Axes**
|
|
49
|
+
|
|
50
|
+
| Key | Type | Values | Default |
|
|
51
|
+
| ----------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------ | ----------- |
|
|
52
|
+
| `graph.x_axis.scale` | string | `"timeseries"`, `"linear"`, `"pow"`, `"log"`, `"histogram"`, `"ordinal"` (subset by column type) | auto |
|
|
53
|
+
| `graph.y_axis.scale` | string | `"linear"`, `"pow"`, `"log"` | `"linear"` |
|
|
54
|
+
| `graph.x_axis.axis_enabled` | boolean \| string | `false`, `true`, `"compact"`, `"rotate-45"`, `"rotate-90"` | `true` |
|
|
55
|
+
| `graph.y_axis.axis_enabled` | boolean | | `true` |
|
|
56
|
+
| `graph.y_axis.unpin_from_zero` | boolean | don't force the Y axis through 0 | varies |
|
|
57
|
+
| `graph.y_axis.auto_range` | boolean | | `true` |
|
|
58
|
+
| `graph.y_axis.min` / `.max` | number | when `auto_range` is `false` | `0` / `100` |
|
|
59
|
+
| `graph.y_axis.auto_split` | boolean | split Y axis for multi-series | auto |
|
|
60
|
+
| `graph.x_axis.title_text` / `graph.y_axis.title_text` | string | axis label text (toggle with `*.labels_enabled`) | column name |
|
|
61
|
+
|
|
62
|
+
**Tooltip**
|
|
63
|
+
|
|
64
|
+
| Key | Type | Notes |
|
|
65
|
+
| ----------------------- | -------------------- | ---------------------------- |
|
|
66
|
+
| `graph.tooltip_columns` | string[] (col names) | extra columns shown on hover |
|
|
67
|
+
|
|
68
|
+
Per-series color/type/line-style live in `series_settings` (see below).
|
|
69
|
+
|
|
70
|
+
## bar / line / area / combo
|
|
71
|
+
|
|
72
|
+
Use for comparing a measure across categories (`bar`) or change over time (`line`/`area`); `combo` overlays a line and bars for two related measures on different scales. **Use for:** >1 row, ≥2 columns, ≥1 dimension + ≥1 measure. **Required:** `graph.dimensions`, `graph.metrics`. Stacked-100% (`normalized`) is incompatible with a `log` y-scale.
|
|
73
|
+
|
|
74
|
+
## scatter
|
|
75
|
+
|
|
76
|
+
Use for correlation between two numeric measures. Extra: `scatter.bubble` (numeric col name → bubble size). No stacking, data labels, or legend. **Required:** `graph.dimensions`, `graph.metrics`.
|
|
77
|
+
|
|
78
|
+
## waterfall
|
|
79
|
+
|
|
80
|
+
Use for sequential additive contributions (start → +/− steps → total). **Use for:** exactly 1 dimension + 1 measure. X-scale can't be `pow`/`log`.
|
|
81
|
+
|
|
82
|
+
| Key | Type | Default |
|
|
83
|
+
| -------------------------- | ------- | ------- |
|
|
84
|
+
| `waterfall.increase_color` | string | accent1 |
|
|
85
|
+
| `waterfall.decrease_color` | string | accent3 |
|
|
86
|
+
| `waterfall.show_total` | boolean | `true` |
|
|
87
|
+
| `waterfall.total_color` | string | theme |
|
|
88
|
+
|
|
89
|
+
## row
|
|
90
|
+
|
|
91
|
+
Horizontal bars — use when category labels are long or numerous. Here `graph.dimensions` is the y-axis (categories) and `graph.metrics` the x-axis (values). X-scale is `"ordinal"` only; no trend line, tooltip columns, or split panels. **Required:** `graph.dimensions`, `graph.metrics`.
|
|
92
|
+
|
|
93
|
+
## boxplot
|
|
94
|
+
|
|
95
|
+
Use for distribution/spread/outliers, especially across several groups. Needs **unaggregated** rows. **Use for:** ≥3 columns, ≥2 dimensions, ≥1 measure. **Required:** `graph.dimensions`, `graph.metrics`. X-scale is `"ordinal"`.
|
|
96
|
+
|
|
97
|
+
| Key | Type | Values | Default |
|
|
98
|
+
| -------------------------- | ------- | ---------------------------------------------- | ------------ |
|
|
99
|
+
| `boxplot.whisker_type` | string | `"tukey"` (1.5×IQR), `"min-max"` | `"tukey"` |
|
|
100
|
+
| `boxplot.points_mode` | string | `"none"`, `"outliers"`, `"all"` | `"outliers"` |
|
|
101
|
+
| `boxplot.show_mean` | boolean | | `true` |
|
|
102
|
+
| `boxplot.show_values_mode` | string | `"median"`, `"all"` (when `graph.show_values`) | `"median"` |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
# Part-to-whole & single value — `pie`, `funnel`, `gauge`, `progress`, `scalar`, `smartscalar`
|
|
107
|
+
|
|
108
|
+
## pie
|
|
109
|
+
|
|
110
|
+
Use for part-to-whole, one snapshot, ≤5 slices. **Use for:** ≥2 rows, ≥2 columns, ≥1 dimension + ≥1 measure. **Required:** `pie.dimension`, `pie.metric`.
|
|
111
|
+
|
|
112
|
+
| Key | Type | Values | Default |
|
|
113
|
+
| ------------------------ | ------------------ | ------------------------------------------------- | ---------------------- |
|
|
114
|
+
| `pie.metric` | string (col name) | the measure | first metric |
|
|
115
|
+
| `pie.dimension` | string \| string[] | the dimension; array = concentric rings (up to 3) | first dimension |
|
|
116
|
+
| `pie.show_legend` | boolean | | `true` |
|
|
117
|
+
| `pie.show_total` | boolean | total in the center | `true` |
|
|
118
|
+
| `pie.show_labels` | boolean | slice labels | `true` if >1 dimension |
|
|
119
|
+
| `pie.percent_visibility` | string | `"off"`, `"legend"`, `"inside"`, `"both"` | `"legend"` |
|
|
120
|
+
| `pie.decimal_places` | number | decimal places for percentages | auto |
|
|
121
|
+
| `pie.slice_threshold` | number (percent) | min slice % before grouping into "Other" | `2.5` |
|
|
122
|
+
|
|
123
|
+
(Set slice colors via the UI/escape hatch.)
|
|
124
|
+
|
|
125
|
+
## funnel
|
|
126
|
+
|
|
127
|
+
Use for stage drop-off in an ordered, cumulative funnel. **Use for:** 2 columns (stage + value). **Required:** `funnel.dimension`, `funnel.metric`.
|
|
128
|
+
|
|
129
|
+
| Key | Type | Values | Default |
|
|
130
|
+
| ------------------ | ----------------- | ------------------------------------------ | ------------------------------------ |
|
|
131
|
+
| `funnel.dimension` | string (col name) | the step column | first dimension |
|
|
132
|
+
| `funnel.metric` | string (col name) | the step value | first metric |
|
|
133
|
+
| `funnel.type` | string | `"funnel"`, `"bar"` | `"funnel"` (`"bar"` if multi-series) |
|
|
134
|
+
| `funnel.rows` | object[] | step order/enable `{ key, name, enabled }` | data order |
|
|
135
|
+
|
|
136
|
+
## gauge
|
|
137
|
+
|
|
138
|
+
Use for one value against colored target ranges. **Use for:** 1 row, 1 numeric column.
|
|
139
|
+
|
|
140
|
+
| Key | Type | Notes |
|
|
141
|
+
| ---------------- | -------- | ------------------------------------------------------------------ |
|
|
142
|
+
| `gauge.segments` | object[] | value ranges `{ min, max, color?, label? }` (`min`/`max` required) |
|
|
143
|
+
|
|
144
|
+
## progress
|
|
145
|
+
|
|
146
|
+
Use for one value's progress toward a goal. **Use for:** 1 row, ≥1 numeric column.
|
|
147
|
+
|
|
148
|
+
| Key | Type | Values | Default |
|
|
149
|
+
| ---------------- | -------------------------- | ------------------------------------- | ------------- |
|
|
150
|
+
| `progress.value` | string (col name) | the numeric column (only if >1) | first numeric |
|
|
151
|
+
| `progress.goal` | number **or** string (col) | a literal target, or a numeric column | `0` |
|
|
152
|
+
| `progress.color` | string (color) | bar color | accent1 |
|
|
153
|
+
|
|
154
|
+
## scalar
|
|
155
|
+
|
|
156
|
+
A single KPI — this **is** the "Number" viz (`display: scalar`). **Use for:** 1 row, 1 column. Number formatting (currency, decimals, prefix/suffix) is set per-column in `column_settings`, not here.
|
|
157
|
+
|
|
158
|
+
| Key | Type | Notes | Default |
|
|
159
|
+
| ----------------- | ----------------- | --------------------------------------------- | --------- |
|
|
160
|
+
| `scalar.field` | string (col name) | which column to show (only if >1 column) | first col |
|
|
161
|
+
| `scalar.segments` | object[] | color thresholds `{ min, max, color, label }` | `[]` |
|
|
162
|
+
|
|
163
|
+
## smartscalar
|
|
164
|
+
|
|
165
|
+
Use for a value's change vs the previous period. **Use for:** one value grouped by a single **time** field.
|
|
166
|
+
|
|
167
|
+
| Key | Type | Default |
|
|
168
|
+
| --------------------------------- | ----------------- | --------------- |
|
|
169
|
+
| `scalar.field` | string (col name) | first numeric |
|
|
170
|
+
| `scalar.comparisons` | object[] | up to 3 (below) |
|
|
171
|
+
| `scalar.switch_positive_negative` | boolean | `false` |
|
|
172
|
+
| `scalar.compact_primary_number` | boolean | `false` |
|
|
173
|
+
|
|
174
|
+
Each `scalar.comparisons` entry is `{ id, type, … }`:
|
|
175
|
+
|
|
176
|
+
| `type` | Extra fields | Meaning |
|
|
177
|
+
| ------------------ | ----------------- | ---------------------- |
|
|
178
|
+
| `"previousPeriod"` | — | vs. the prior period |
|
|
179
|
+
| `"previousValue"` | — | vs. the previous value |
|
|
180
|
+
| `"periodsAgo"` | `value` | vs. N periods ago |
|
|
181
|
+
| `"staticNumber"` | `value`, `label` | vs. a fixed number |
|
|
182
|
+
| `"anotherColumn"` | `column`, `label` | vs. another column |
|
|
183
|
+
|
|
184
|
+
```yaml
|
|
185
|
+
scalar.comparisons:
|
|
186
|
+
- { id: c1, type: previousPeriod }
|
|
187
|
+
- { id: c2, type: periodsAgo, value: 12 }
|
|
188
|
+
- { id: c3, type: staticNumber, value: 1000, label: Target }
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
# Tabular, geographic & flow — `table`, `pivot`, `object`, `map`, `sankey`
|
|
194
|
+
|
|
195
|
+
## table
|
|
196
|
+
|
|
197
|
+
The universal fallback; use for precise values, many columns, or mixed types. Always renders.
|
|
198
|
+
|
|
199
|
+
| Key | Type | Notes | Default |
|
|
200
|
+
| ---------------------------- | -------- | ---------------------------------------------------------- | ------------------------------------------- |
|
|
201
|
+
| `table.columns` | object[] | column order + visibility `{ name, enabled }` | all columns |
|
|
202
|
+
| `table.column_formatting` | object[] | conditional formatting rules (below) | `[]` |
|
|
203
|
+
| `table.pivot` | boolean | simple in-table pivot (2 dims + 1 metric) | `true` only when 3 cols = 2 dims + 1 metric |
|
|
204
|
+
| `table.pivot_column` | string | dimension whose values become columns (when `table.pivot`) | auto |
|
|
205
|
+
| `table.cell_column` | string | column supplying pivot cell values (when `table.pivot`) | first metric |
|
|
206
|
+
| `table.pagination` | boolean | | `false` |
|
|
207
|
+
| `table.row_index` | boolean | show a row-index column | `false` |
|
|
208
|
+
| `table.freeze_columns` | boolean | freeze leading columns | `false` |
|
|
209
|
+
| `table.freeze_columns_count` | number | how many to freeze (when `freeze_columns`) | `1` |
|
|
210
|
+
| `table.freeze_rows` | boolean | freeze leading rows | `false` |
|
|
211
|
+
| `table.freeze_rows_count` | number | how many to freeze (when `freeze_rows`) | `1` |
|
|
212
|
+
|
|
213
|
+
Per-column titles, currency, links, alignment, and mini bars are set in `column_settings`.
|
|
214
|
+
|
|
215
|
+
**Conditional formatting (`table.column_formatting`)** — a list of rules, each `type: "single"` or `"range"`:
|
|
216
|
+
|
|
217
|
+
```yaml
|
|
218
|
+
table.column_formatting:
|
|
219
|
+
- {
|
|
220
|
+
columns: [Total],
|
|
221
|
+
type: single,
|
|
222
|
+
operator: ">",
|
|
223
|
+
value: 100,
|
|
224
|
+
color: "#84BB4C",
|
|
225
|
+
highlight_row: false,
|
|
226
|
+
}
|
|
227
|
+
- {
|
|
228
|
+
columns: [Rating],
|
|
229
|
+
type: range,
|
|
230
|
+
colors: ["#ED6E6E", "#F9CF48", "#84BB4C"],
|
|
231
|
+
min_type: custom,
|
|
232
|
+
min_value: 1,
|
|
233
|
+
max_type: custom,
|
|
234
|
+
max_value: 5,
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
`single` operators: `"="`, `"!="`, `"<"`, `">"`, `"<="`, `">="`, `"is-null"`, `"not-null"`, `"contains"`, `"does-not-contain"`, `"starts-with"`, `"ends-with"`, `"is-true"`, `"is-false"`. `range` `min_type`/`max_type`: `"custom"`, `"all"`, or `null`.
|
|
239
|
+
|
|
240
|
+
## pivot
|
|
241
|
+
|
|
242
|
+
Use for a cross-tab of two dimensions. Needs an aggregated query built in the query builder (not native), on a database that supports pivots. The split and formatting use the `pivot_table.*` namespace; the totals toggles use `pivot.*`.
|
|
243
|
+
|
|
244
|
+
| Key | Type | Notes | Default |
|
|
245
|
+
| --------------------------------- | -------- | --------------------------------------------------------------- | ------- |
|
|
246
|
+
| `pivot_table.column_split` | object | `{ rows: [...names], columns: [...names], values: [...names] }` | auto |
|
|
247
|
+
| `pivot.show_row_totals` | boolean | | `true` |
|
|
248
|
+
| `pivot.show_column_totals` | boolean | | `true` |
|
|
249
|
+
| `pivot.condense_duplicate_totals` | boolean | hide duplicate total cells | `true` |
|
|
250
|
+
| `pivot_table.column_formatting` | object[] | conditional formatting on measure cells | — |
|
|
251
|
+
|
|
252
|
+
Per-column (under `column_settings[<key>]`): `pivot_table.column_sort_order` (`"ascending"`/`"descending"`), `pivot_table.column_show_totals` (boolean).
|
|
253
|
+
|
|
254
|
+
## object
|
|
255
|
+
|
|
256
|
+
A single record's detail. `table.columns` (`{ name, enabled }`) picks which fields to show; per-column `column_settings` apply.
|
|
257
|
+
|
|
258
|
+
## map
|
|
259
|
+
|
|
260
|
+
Three modes via `map.type`. **Region** (`"region"`) colors predefined areas; **pin** (`"pin"`) plots lat/long points; **grid** (`"grid"`) bins points. **Required:** region → `map.region`, `map.dimension`, `map.metric`; pin/grid → `map.latitude_column`, `map.longitude_column`.
|
|
261
|
+
|
|
262
|
+
| Key | Type | Values / notes | Mode |
|
|
263
|
+
| ---------------------------------------------------------- | ----------------- | ----------------------------------------------------------- | -------- |
|
|
264
|
+
| `map.type` | string | `"region"`, `"pin"`, `"grid"` | all |
|
|
265
|
+
| `map.region` | string | `"us_states"`, `"world_countries"`, or a custom-geojson key | region |
|
|
266
|
+
| `map.dimension` | string (col name) | the region column | region |
|
|
267
|
+
| `map.metric` | string (col name) | metric coloring the regions | region |
|
|
268
|
+
| `map.colors` | string[] | region color scale | region |
|
|
269
|
+
| `map.latitude_column` | string (col name) | latitude | pin/grid |
|
|
270
|
+
| `map.longitude_column` | string (col name) | longitude | pin/grid |
|
|
271
|
+
| `map.metric_column` | string (col name) | metric for heat/grid intensity | pin |
|
|
272
|
+
| `map.pin_type` | string | `"tiles"`, `"markers"`, `"grid"`, `"heat"` | pin |
|
|
273
|
+
| `map.heat.radius` / `.blur` / `.min-opacity` / `.max-zoom` | number | heatmap tuning | heat |
|
|
274
|
+
|
|
275
|
+
## sankey
|
|
276
|
+
|
|
277
|
+
Use for flow volume between nodes. Needs distinct source and target columns forming an acyclic flow (≤150 unique nodes). **Use for:** ≥3 columns, ≥2 non-date dimensions, ≥1 measure. **Required:** `sankey.source`, `sankey.target`, `sankey.value`.
|
|
278
|
+
|
|
279
|
+
| Key | Type | Values | Default |
|
|
280
|
+
| ------------------------------- | ----------------- | -------------------------------- | ---------- |
|
|
281
|
+
| `sankey.source` | string (col name) | flow source | auto |
|
|
282
|
+
| `sankey.target` | string (col name) | flow target | auto |
|
|
283
|
+
| `sankey.value` | string (col name) | edge weight | auto |
|
|
284
|
+
| `sankey.node_align` | string | `"left"`, `"right"`, `"justify"` | `"left"` |
|
|
285
|
+
| `sankey.show_edge_labels` | boolean | | `false` |
|
|
286
|
+
| `sankey.label_value_formatting` | string | `"auto"`, `"compact"`, `"full"` | `"auto"` |
|
|
287
|
+
| `sankey.edge_color` | string | `"gray"`, `"source"`, `"target"` | `"source"` |
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
# `column_settings` — per-column formatting
|
|
292
|
+
|
|
293
|
+
A map keyed by a JSON-encoded column reference, applying to `table`, `pie`, `object`, the cartesian charts, and more.
|
|
294
|
+
|
|
295
|
+
**Key forms:** prefer the name form `["name", "<output column name>"]` — it's what Metabase writes and is identical across API and portable forms. A legacy ref form `["ref", ["field", <id>, <opts>]]` exists for read-back; its inner field ref uses the **legacy order** (id second) with a numeric id in the API form — avoid it. In a JSON body the key is an escaped string: `"[\"name\",\"TOTAL\"]"`.
|
|
296
|
+
|
|
297
|
+
| Key | Type | Values | Applies to |
|
|
298
|
+
| -------------------- | ------------ | ------------------------------------------------------------ | --------------- |
|
|
299
|
+
| `column_title` | string | header override | all |
|
|
300
|
+
| `text_align` | string | `"left"`, `"right"`, `"middle"` | table |
|
|
301
|
+
| `view_as` | string\|null | `null` (text), `"link"`, `"email_link"`, `"image"`, `"auto"` | table |
|
|
302
|
+
| `link_text` | string | text for a link/email_link (supports `{{COLUMN}}`) | table |
|
|
303
|
+
| `link_url` | string | target URL (supports `{{COLUMN}}`) | table |
|
|
304
|
+
| `show_mini_bar` | boolean | inline bar in the cell | number |
|
|
305
|
+
| `text_wrapping` | boolean | wrap long text | string |
|
|
306
|
+
| `number_style` | string | `"decimal"`, `"currency"`, `"percent"`, `"scientific"` | number |
|
|
307
|
+
| `currency` | string | ISO code, e.g. `"USD"` | currency |
|
|
308
|
+
| `currency_style` | string | `"symbol"`, `"narrowSymbol"`, `"code"`, `"name"` | currency |
|
|
309
|
+
| `currency_in_header` | boolean | show currency in the header vs every cell | currency, table |
|
|
310
|
+
| `number_separators` | string | `".,"`, `", "`, `",."`, `"."`, `".’"` | number |
|
|
311
|
+
| `decimals` | number | fixed decimal places | number |
|
|
312
|
+
| `scale` | number | multiply the value by this factor | number |
|
|
313
|
+
| `prefix` / `suffix` | string | affixes around the value | number |
|
|
314
|
+
| `date_style` | string | moment.js format, e.g. `"MMMM D, YYYY"` | date |
|
|
315
|
+
| `date_separator` | string | `"/"`, `"-"`, `"."` | date |
|
|
316
|
+
| `date_abbreviate` | boolean | abbreviate day/month names | date |
|
|
317
|
+
| `time_enabled` | string\|null | `null`, `"minutes"`, `"seconds"`, `"milliseconds"` | date+time |
|
|
318
|
+
| `time_style` | string | e.g. `"h:mm A"`, `"HH:mm"` | date+time |
|
|
319
|
+
| `click_behavior` | object | per-column click behavior — **dashcards only** (below) | all |
|
|
320
|
+
|
|
321
|
+
```yaml
|
|
322
|
+
column_settings:
|
|
323
|
+
'["name","TOTAL"]':
|
|
324
|
+
number_style: currency
|
|
325
|
+
currency: USD
|
|
326
|
+
decimals: 2
|
|
327
|
+
column_title: "Total Revenue"
|
|
328
|
+
'["name","CREATED_AT"]': { date_style: "MMMM D, YYYY", time_enabled: null }
|
|
329
|
+
'["name","EMAIL"]': { view_as: email_link, link_text: "Email {{NAME}}" }
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
# `series_settings` — per-series styling (cartesian)
|
|
335
|
+
|
|
336
|
+
A map under `series_settings`, keyed by series name: the metric column's name for a single series, or the breakout value for a broken-out series.
|
|
337
|
+
|
|
338
|
+
| Key | Type | Values | Default |
|
|
339
|
+
| ----------------------- | ------------- | ---------------------------------------------------- | --------------- |
|
|
340
|
+
| `title` | string | series label | column name |
|
|
341
|
+
| `color` | string | series color | palette |
|
|
342
|
+
| `display` | string | `"line"`, `"area"`, `"bar"` (per-series type, combo) | card default |
|
|
343
|
+
| `line.interpolate` | string | `"linear"`, `"cardinal"` (curved), `"step-after"` | `"linear"` |
|
|
344
|
+
| `line.style` | string | `"solid"`, `"dashed"`, `"dotted"` | `"solid"` |
|
|
345
|
+
| `line.size` | string | `"S"`, `"M"`, `"L"` | `"M"` |
|
|
346
|
+
| `line.marker_enabled` | boolean\|null | `null` (auto), `true`, `false` | `null` |
|
|
347
|
+
| `line.missing` | string | `"zero"`, `"none"`, `"interpolate"` | `"interpolate"` |
|
|
348
|
+
| `axis` | string\|null | `null` (auto), `"left"`, `"right"` | `null` |
|
|
349
|
+
| `show_series_values` | boolean | value labels for this series | inherits chart |
|
|
350
|
+
| `show_series_trendline` | boolean | trend line for this series | inherits chart |
|
|
351
|
+
|
|
352
|
+
`line.*` keys apply only when the series `display` is `line`/`area`.
|
|
353
|
+
|
|
354
|
+
```yaml
|
|
355
|
+
series_settings:
|
|
356
|
+
Revenue: { display: line, color: "#509EE3", axis: left, show_series_values: true }
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
# Virtual cards (dashcards only, `card_id: null`)
|
|
362
|
+
|
|
363
|
+
Text/heading/link/iframe tiles carry `visualization_settings.virtual_card.display`:
|
|
364
|
+
|
|
365
|
+
| `virtual_card.display` | Extra keys |
|
|
366
|
+
| ---------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
367
|
+
| `heading` | `text` (the heading string) |
|
|
368
|
+
| `text` | `text` (markdown; `{{param}}` placeholders wired via dashcard `parameter_mappings`, target `[text-tag, name]`) |
|
|
369
|
+
| `link` | `link.url`, or `link.entity` `{ id, model }`, model ∈ `question`/`dashboard`/`collection`/`database`/`table` |
|
|
370
|
+
| `iframe` | `iframe` (the `<iframe …>` HTML string) |
|
|
371
|
+
|
|
372
|
+
```yaml
|
|
373
|
+
visualization_settings:
|
|
374
|
+
virtual_card: { display: text }
|
|
375
|
+
text: "**Bold** and _italic_ markdown content"
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
# Click behavior (dashcards only)
|
|
381
|
+
|
|
382
|
+
Click behavior is a **dashboard** feature — author it in a **dashcard's** `visualization_settings` (whole-card) or its `column_settings[<key>].click_behavior` (per column), **not** in a saved card's own `visualization_settings`. There is no query-builder UI for it, and the interactive types need the dashboard around them: `crossfilter` reads the dashboard's parameters, and links to a `question`/`dashboard` resolve against the dashboard's target entities — both do nothing on a standalone card. (A bare URL link is the only type not strictly gated by dashboard context, but it's still only authored on dashcards.)
|
|
383
|
+
|
|
384
|
+
`type` is `actionMenu` (default drill-through menu), `crossfilter` (filter the dashboard with the clicked value), or `link` (go to a URL, question, or dashboard).
|
|
385
|
+
|
|
386
|
+
```yaml
|
|
387
|
+
# Link to a URL — {{column}} = clicked row value, {{filter:param}} = dashboard parameter
|
|
388
|
+
click_behavior:
|
|
389
|
+
type: link
|
|
390
|
+
linkType: url
|
|
391
|
+
linkTemplate: "https://example.com/orders/{{ORDER_ID}}?status={{filter:status}}"
|
|
392
|
+
|
|
393
|
+
# Link to another dashboard/question — targetId is the target's entity_id
|
|
394
|
+
click_behavior:
|
|
395
|
+
type: link
|
|
396
|
+
linkType: dashboard # or "question"
|
|
397
|
+
targetId: Q_jD-f-9clKLFZ2TfUG2h
|
|
398
|
+
parameterMapping:
|
|
399
|
+
target-param-uuid:
|
|
400
|
+
id: target-param-uuid
|
|
401
|
+
source: { id: USER_ID, name: User ID, type: column }
|
|
402
|
+
target: { id: target-param-uuid, type: parameter }
|
|
403
|
+
|
|
404
|
+
# Crossfilter — map a clicked column to dashboard parameters
|
|
405
|
+
click_behavior:
|
|
406
|
+
type: crossfilter
|
|
407
|
+
parameterMapping:
|
|
408
|
+
param-uuid:
|
|
409
|
+
id: param-uuid
|
|
410
|
+
source: { id: CATEGORY, name: Category, type: column }
|
|
411
|
+
target: { id: param-uuid, type: parameter }
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
In `parameterMapping`, `source` is `{ id, name, type }` (type `"column"`/`"parameter"`) and `target` is `{ id, type }` (type `"parameter"`/`"dimension"`/`"variable"`); a `dimension` target also carries a `dimension` array.
|
package/dist/auth-D9eAyVoG.mjs
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/auth/index.ts
|
|
4
|
-
var auth_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "auth",
|
|
7
|
-
description: "Authenticate against a Metabase instance"
|
|
8
|
-
},
|
|
9
|
-
default: "login",
|
|
10
|
-
subCommands: {
|
|
11
|
-
login: () => import("./login-enh9Yimb.mjs").then((m) => m.default),
|
|
12
|
-
status: () => import("./status-BNvFPemM.mjs").then((m) => m.default),
|
|
13
|
-
list: () => import("./list-C-oZe1_p.mjs").then((m) => m.default),
|
|
14
|
-
logout: () => import("./logout-BWLPLDh8.mjs").then((m) => m.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { auth_default as default };
|
package/dist/card-DDDrWcDU.mjs
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/card/index.ts
|
|
4
|
-
var card_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "card",
|
|
7
|
-
description: "Manage Metabase cards (questions, models, metrics)"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-DfDZr55C.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-sMpa-X4E.mjs").then((mod) => mod.default),
|
|
12
|
-
query: () => import("./query-DYVBnu9d.mjs").then((mod) => mod.default),
|
|
13
|
-
create: () => import("./create-BIphz0kO.mjs").then((mod) => mod.default),
|
|
14
|
-
update: () => import("./update-DCrOQ1PW.mjs").then((mod) => mod.default),
|
|
15
|
-
archive: () => import("./archive-De8jzzq7.mjs").then((mod) => mod.default)
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
//#endregion
|
|
20
|
-
export { card_default as default };
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/collection/index.ts
|
|
4
|
-
var collection_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "collection",
|
|
7
|
-
description: "Manage Metabase collections"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-CU6sOfI-.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-CRvbChoX.mjs").then((mod) => mod.default),
|
|
12
|
-
items: () => import("./items-C94eW2Yd.mjs").then((mod) => mod.default),
|
|
13
|
-
tree: () => import("./tree-mvq9gM9w.mjs").then((mod) => mod.default),
|
|
14
|
-
create: () => import("./create-w3mQg9n4.mjs").then((mod) => mod.default),
|
|
15
|
-
archive: () => import("./archive-DTN9tLGT.mjs").then((mod) => mod.default)
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
//#endregion
|
|
20
|
-
export { collection_default as default };
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/dashboard/index.ts
|
|
4
|
-
var dashboard_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "dashboard",
|
|
7
|
-
description: "Manage Metabase dashboards"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-CqN4gvCk.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-C9O_aEGo.mjs").then((mod) => mod.default),
|
|
12
|
-
cards: () => import("./cards-Dq3nx_9n.mjs").then((mod) => mod.default),
|
|
13
|
-
create: () => import("./create-9DBTkbMq.mjs").then((mod) => mod.default),
|
|
14
|
-
update: () => import("./update-tRparnUs.mjs").then((mod) => mod.default),
|
|
15
|
-
"update-dashcard": () => import("./update-dashcard-DFvIz8Qj.mjs").then((mod) => mod.default),
|
|
16
|
-
archive: () => import("./archive-B3qiL-kK.mjs").then((mod) => mod.default)
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
//#endregion
|
|
21
|
-
export { dashboard_default as default };
|
package/dist/db-CWTFe_FZ.mjs
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/db/index.ts
|
|
4
|
-
var db_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "db",
|
|
7
|
-
description: "Inspect and sync Metabase databases",
|
|
8
|
-
alias: "database"
|
|
9
|
-
},
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-BS_Bxejg.mjs").then((m) => m.default),
|
|
12
|
-
get: () => import("./get-CiZrZJLt.mjs").then((m) => m.default),
|
|
13
|
-
metadata: () => import("./metadata-BTTEBWdS.mjs").then((m) => m.default),
|
|
14
|
-
schemas: () => import("./schemas-BP7xiktH.mjs").then((m) => m.default),
|
|
15
|
-
"schema-tables": () => import("./schema-tables-C2xM3dho.mjs").then((m) => m.default),
|
|
16
|
-
"sync-schema": () => import("./sync-schema-C3odu0ZH.mjs").then((m) => m.default),
|
|
17
|
-
"rescan-values": () => import("./rescan-values-cfTSNQZo.mjs").then((m) => m.default)
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
export { db_default as default };
|
package/dist/field-LL6W_c-c.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/field/index.ts
|
|
4
|
-
var field_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "field",
|
|
7
|
-
description: "Manage Metabase fields"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
get: () => import("./get-42tJ7BNp.mjs").then((m) => m.default),
|
|
11
|
-
values: () => import("./values-D1RJE4H6.mjs").then((m) => m.default),
|
|
12
|
-
summary: () => import("./summary-Cihbx0Qs.mjs").then((m) => m.default),
|
|
13
|
-
update: () => import("./update-Rr4usmCo.mjs").then((m) => m.default)
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
//#endregion
|
|
18
|
-
export { field_default as default };
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/git-sync/index.ts
|
|
4
|
-
var git_sync_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "git-sync",
|
|
7
|
-
description: "Sync Metabase content with a git remote"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
status: () => import("./status-B1EJ_jv0.mjs").then((mod) => mod.default),
|
|
11
|
-
"is-dirty": () => import("./is-dirty-CPzOnnH6.mjs").then((mod) => mod.default),
|
|
12
|
-
"has-remote-changes": () => import("./has-remote-changes-CfRidwXT.mjs").then((mod) => mod.default),
|
|
13
|
-
dirty: () => import("./dirty-BCkNOY8c.mjs").then((mod) => mod.default),
|
|
14
|
-
"current-task": () => import("./current-task-DZM28rnr.mjs").then((mod) => mod.default),
|
|
15
|
-
"cancel-task": () => import("./cancel-task-BLGE4UlL.mjs").then((mod) => mod.default),
|
|
16
|
-
wait: () => import("./wait-DK5QDZ8n.mjs").then((mod) => mod.default),
|
|
17
|
-
import: () => import("./import-BZV0Z2KR.mjs").then((mod) => mod.default),
|
|
18
|
-
export: () => import("./export-CgHgWW3I.mjs").then((mod) => mod.default),
|
|
19
|
-
stash: () => import("./stash-C89zNKxo.mjs").then((mod) => mod.default),
|
|
20
|
-
branches: () => import("./branches-CIGkjXIk.mjs").then((mod) => mod.default),
|
|
21
|
-
"create-branch": () => import("./create-branch-DGoc9CUU.mjs").then((mod) => mod.default),
|
|
22
|
-
"add-collection": () => import("./add-collection-C9BdVBs2.mjs").then((mod) => mod.default),
|
|
23
|
-
"remove-collection": () => import("./remove-collection-CBAHz0Dk.mjs").then((mod) => mod.default)
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
//#endregion
|
|
28
|
-
export { git_sync_default as default };
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import "./error-ZsFeevV2.mjs";
|
|
3
|
-
import "./runtime-Duawf5lE.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import "./render-0_GsapXa.mjs";
|
|
6
|
-
import "./poll-task-51WRdugU.mjs";
|
|
7
|
-
import "./poll-4eoh5J0r.mjs";
|
|
8
|
-
import { IsDirtyResult, is_dirty_default } from "./is-dirty-hKcB4OH9.mjs";
|
|
9
|
-
|
|
10
|
-
export { is_dirty_default as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/measure/index.ts
|
|
4
|
-
var measure_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "measure",
|
|
7
|
-
description: "Manage Metabase measures"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-HS15y_WN.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-y17zJMnU.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-BdPoSk_7.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-CbBnHz42.mjs").then((mod) => mod.default),
|
|
14
|
-
archive: () => import("./archive-CuVk8iwN.mjs").then((mod) => mod.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { measure_default as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/segment/index.ts
|
|
4
|
-
var segment_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "segment",
|
|
7
|
-
description: "Manage Metabase segments"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-BFlzLGlw.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-B9kwSs6U.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-DHscDhRd.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-VvKMnwsM.mjs").then((mod) => mod.default),
|
|
14
|
-
archive: () => import("./archive-BXzghEQX.mjs").then((mod) => mod.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { segment_default as default };
|