@metabase/cli 0.1.0-alpha.workspaces-commands.645461e → 0.1.0-alpha.workspaces-commands.68d980f
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 +379 -0
- package/dist/{add-collection-D2VyeBlW.mjs → add-collection-Cu4B6KXG.mjs} +3 -3
- package/dist/{add-collection-D36mvhlp.mjs → add-collection-DGV1rqqR.mjs} +6 -6
- package/dist/{api-key-D7FJ0diY.mjs → api-key-6_Q5e_K0.mjs} +1 -1
- package/dist/archive-Bpf0QvqP.mjs +39 -0
- package/dist/archive-C2ziJ31w.mjs +44 -0
- package/dist/{archive-BhrD3g9q.mjs → archive-CYgtaA_I.mjs} +3 -3
- package/dist/archive-DHjG2vSi.mjs +44 -0
- package/dist/auth-BaMPV-un.mjs +19 -0
- package/dist/{body-po-d1TER.mjs → body-BAdJj5HJ.mjs} +1 -1
- package/dist/{branches-C_QIaXq_.mjs → branches-DkwkHvgF.mjs} +4 -4
- package/dist/cancel-UgDP_AM-.mjs +56 -0
- package/dist/{cancel-task-BUBIAgGA.mjs → cancel-task-DCV5l_rj.mjs} +4 -4
- package/dist/card-DI78jgjG.mjs +20 -0
- package/dist/{cards-CURArHer.mjs → cards-BXYJMHYy.mjs} +4 -4
- package/dist/cli.mjs +23 -20
- package/dist/collection-BcMoZLX0.mjs +19 -0
- package/dist/{create-ZbmxIy-0.mjs → create-BLwyolnm.mjs} +4 -4
- package/dist/{create-DTTeHc01.mjs → create-BUcIJ1nk.mjs} +4 -4
- package/dist/{create-CCji2u2l.mjs → create-D4_iBwTY.mjs} +3 -3
- package/dist/create-D9CEUvL3.mjs +40 -0
- package/dist/create-D9zWWm9b.mjs +44 -0
- package/dist/{create-CSb4rEYN.mjs → create-DCAvWcNL.mjs} +4 -4
- package/dist/{create-Pz8emM9b.mjs → create-DCEuLMff.mjs} +4 -4
- package/dist/create-RneHGLFF.mjs +40 -0
- package/dist/{create-branch-DY_Xk7xJ.mjs → create-branch-BfSrjGld.mjs} +4 -4
- package/dist/{create-D3PbG6zp.mjs → create-n7yxR6s2.mjs} +3 -3
- package/dist/{create-SD_4KNY7.mjs → create-yiHTy9qd.mjs} +4 -4
- package/dist/{credentials-Cx9Y_e-i.mjs → credentials-BnX6KoeQ.mjs} +6 -6
- package/dist/{current-task-DVhQW4jT.mjs → current-task-C60CWYop.mjs} +4 -4
- package/dist/dashboard-B8zj0bZS.mjs +20 -0
- package/dist/{database-BAvx1gH2.mjs → database-BkSdTiyB.mjs} +3 -3
- package/dist/database-GbK7OAPX.mjs +51 -0
- package/dist/db-DG-1rI_O.mjs +22 -0
- package/dist/{delete-Vl85AALS.mjs → delete-D39mHiYu.mjs} +4 -4
- package/dist/{delete-BGxR7gVt.mjs → delete-nxO9ND-q.mjs} +4 -4
- package/dist/{delete-table-ClBj6G7Q.mjs → delete-table-Dk1C3x9k.mjs} +4 -4
- package/dist/{deprovision-CwrA3yQY.mjs → deprovision-CCokm00M.mjs} +8 -8
- package/dist/{dirty-CNPWGSpA.mjs → dirty-Da9uKlQp.mjs} +4 -4
- package/dist/{docker-Cvj7_PZp.mjs → docker-En_jqSVW.mjs} +2 -2
- package/dist/{eid-DFaDBRra.mjs → eid-BQx_tnuC.mjs} +1 -1
- package/dist/{export-DuMGd6lo.mjs → export-PQ84ihYr.mjs} +5 -5
- package/dist/field-BakUM_Le.mjs +142 -0
- package/dist/field-CE-2zFaL.mjs +18 -0
- package/dist/fields-BhN1M2TD.mjs +38 -0
- package/dist/{get-vajO-hi6.mjs → get-BifK1SP6.mjs} +3 -3
- package/dist/{get--PcCqyKa.mjs → get-CAYdsSX4.mjs} +4 -4
- package/dist/{get-swr2-leH.mjs → get-CScnOuJ-.mjs} +4 -4
- package/dist/{get-Dyf1VRQF.mjs → get-CaRX225l.mjs} +2 -2
- package/dist/get-CbwJfVx1.mjs +36 -0
- package/dist/get-CtsZA_BB.mjs +36 -0
- package/dist/{get-DfO9yXXn.mjs → get-D64v79fP.mjs} +4 -4
- package/dist/get-D6dlsNBD.mjs +49 -0
- package/dist/{get-B2r9MJly.mjs → get-DM2UkeKJ.mjs} +4 -4
- package/dist/{get-CoDOJTMY.mjs → get-DQ0lm-Dx.mjs} +4 -4
- package/dist/{get-BjLQvtIP.mjs → get-Dopinaxx.mjs} +7 -7
- package/dist/get-DpFyct1X.mjs +36 -0
- package/dist/get-run-DpjKXCww.mjs +36 -0
- package/dist/{has-remote-changes-BqwcNcE7.mjs → has-remote-changes-BgbCIv30.mjs} +4 -4
- package/dist/{import-D--2vqZQ.mjs → import-BRC4SYRj.mjs} +5 -5
- package/dist/{is-dirty-DQ9zG6uN.mjs → is-dirty-BduCa9nf.mjs} +2 -2
- package/dist/is-dirty-hMK61S1s.mjs +10 -0
- package/dist/{items-DwQQ0GAg.mjs → items-NE7Z-vuw.mjs} +4 -50
- package/dist/{license-CzMfg5XI.mjs → license-MWU4vLvD.mjs} +3 -3
- package/dist/{list-0NpAfgQ4.mjs → list--EFsidRC.mjs} +5 -5
- package/dist/{list-BIK_58XI.mjs → list-BB9IsaT4.mjs} +2 -2
- package/dist/{list-DMwbB4b4.mjs → list-BMFbKnG1.mjs} +3 -3
- package/dist/list-BPC7KqBQ.mjs +32 -0
- package/dist/list-B_XtS5VX.mjs +40 -0
- package/dist/{list-C79o1l5H.mjs → list-Bgt_qxRd.mjs} +28 -7
- package/dist/list-C-ucaNmG.mjs +32 -0
- package/dist/{list-BtC8ka3k.mjs → list-C1wNHDPl.mjs} +2 -2
- package/dist/{list-D-L9cq2y.mjs → list-CR1Dkcbk.mjs} +3 -3
- package/dist/{list-FCYnuxeR.mjs → list-D6KnlTOp.mjs} +3 -3
- package/dist/{list-zFg_sbzo.mjs → list-DeNHJECx.mjs} +3 -3
- package/dist/{list-BEjK80yL.mjs → list-_4_qW2nQ.mjs} +2 -2
- package/dist/{list-DQeGs5DL.mjs → list-jHGjjZdC.mjs} +3 -3
- package/dist/{login-CzssJlL2.mjs → login-B30jvHfe.mjs} +2 -2
- package/dist/{logout-Bcwc7QN0.mjs → logout-bWublBcN.mjs} +2 -2
- package/dist/{logs-DIEyUxpM.mjs → logs-DsiDIT90.mjs} +5 -5
- package/dist/measure-B1GKcZxO.mjs +67 -0
- package/dist/measure-Bc9tjbVl.mjs +19 -0
- package/dist/metadata-DCFEJsKY.mjs +37 -0
- package/dist/{get-CLCdkBcw.mjs → metadata-DCVxSKX7.mjs} +13 -11
- package/dist/{package-DW4n6lFo.mjs → package-Be4_p9f8.mjs} +1 -1
- package/dist/paginate-CnTxzOh2.mjs +49 -0
- package/dist/{parse-id-DCdBU-nG.mjs → parse-id-DKRTKFB2.mjs} +1 -1
- package/dist/{parse-schemas-dp6MXbcF.mjs → parse-schemas-CtMwPgZe.mjs} +1 -1
- package/dist/{poll-DaJLfYpK.mjs → poll-BXEPgd4X.mjs} +1 -1
- package/dist/{poll-task-BiYw9iLs.mjs → poll-task-UMS6aAza.mjs} +2 -2
- package/dist/{provision-DqfOs_BL.mjs → provision-BDtZZK84.mjs} +9 -9
- package/dist/{ps-C-oTI3y_.mjs → ps-DcKt1oHS.mjs} +2 -2
- package/dist/{ps-zD4MZ7s2.mjs → ps-iON5iNUT.mjs} +5 -5
- package/dist/{query-eDZSuQaQ.mjs → query-7qZ7dWnE.mjs} +3 -3
- package/dist/{query-CiX4UQt3.mjs → query-DtD0dc_V.mjs} +3 -3
- package/dist/{remove-Bx1w-uWB.mjs → remove-D194SUD-.mjs} +5 -5
- package/dist/{remove-BsNj8FcZ.mjs → remove-UWzVKtfF.mjs} +2 -2
- package/dist/{remove-collection-CYRloViE.mjs → remove-collection-BUwKxMsH.mjs} +6 -6
- package/dist/rescan-values-zYxt5WcO.mjs +43 -0
- package/dist/revision-message-flag-BJiGjb5m.mjs +11 -0
- package/dist/{run-o1HdcHcT.mjs → run-DwYkAZHU.mjs} +10 -10
- package/dist/runs-CeHd9FOO.mjs +54 -0
- package/dist/{runtime-BlGbSVbh.mjs → runtime-Dlk-yyFO.mjs} +1 -1
- package/dist/schema-tables-LZG9R38V.mjs +45 -0
- package/dist/schemas-ZC7JrOKM.mjs +47 -0
- package/dist/{search-CshaaZOi.mjs → search-StdHjR5q.mjs} +3 -3
- package/dist/segment-BVM0WSM7.mjs +19 -0
- package/dist/segment-CQ5w3M_W.mjs +70 -0
- package/dist/{set-CS0Bay1g.mjs → set-CgDS1Feo.mjs} +5 -5
- package/dist/{set-Dj-zpi9u.mjs → set-Ey8zuk9j.mjs} +2 -2
- package/dist/{setting-CPrSDcuC.mjs → setting-D4mR5WMp.mjs} +3 -3
- package/dist/{setup-BjsZgvZs.mjs → setup-DKRzEM6a.mjs} +3 -3
- package/dist/snippet-BO-gCn0H.mjs +19 -0
- package/dist/snippet-DRTklDg3.mjs +64 -0
- package/dist/{start-DK1KR98G.mjs → start-15kcQYwC.mjs} +7 -7
- package/dist/{stash-CDSI72Pi.mjs → stash-CQkpgkAr.mjs} +5 -5
- package/dist/{status-DygsyoJt.mjs → status-BmYxYGZE.mjs} +5 -5
- package/dist/{status-B6X-VTeS.mjs → status-D0LTLSrI.mjs} +2 -2
- package/dist/{status-C32y4hQx.mjs → status-Dg0qSJtP.mjs} +2 -2
- package/dist/{stop-D8DPsVEP.mjs → stop-B9M_LliY.mjs} +6 -6
- package/dist/summary-CSGteNEX.mjs +41 -0
- package/dist/sync-_BtDG63a.mjs +28 -0
- package/dist/sync-schema-BjGQtnol.mjs +43 -0
- package/dist/table-C0N9hfqm.mjs +19 -0
- package/dist/{table-DimNUJtH.mjs → table-DhB2_Dxd.mjs} +21 -4
- package/dist/{transform-DRDHuulD.mjs → transform-92odFxg-.mjs} +45 -3
- package/dist/transform-BycLORsG.mjs +24 -0
- package/dist/transform-job-B_SvpPfl.mjs +19 -0
- package/dist/{translate-bzGSUcP5.mjs → translate-DRajJsf0.mjs} +3 -3
- package/dist/{tree-BXf2Avg_.mjs → tree-eunCOx9U.mjs} +2 -2
- package/dist/update-6BC1K7uY.mjs +51 -0
- package/dist/{update-qBaNdoVm.mjs → update-B0bpqs4y.mjs} +4 -4
- package/dist/update-BJk9pfiv.mjs +52 -0
- package/dist/{update-C8ZrbNAQ.mjs → update-Bhfzszoc.mjs} +5 -5
- package/dist/update-BprFaiqH.mjs +51 -0
- package/dist/{update-DFGi07_J.mjs → update-C-i8drfb.mjs} +5 -5
- package/dist/{update-2rOSt-uC.mjs → update-CSsRBrV5.mjs} +9 -9
- package/dist/{update-C_kb0VT2.mjs → update-CkrxPRXK.mjs} +5 -5
- package/dist/update-D14Sl_IP.mjs +51 -0
- package/dist/update-D1mHRo8M.mjs +52 -0
- package/dist/{update-dashcard-Dz8n_Eb3.mjs → update-dashcard-I13krLAG.mjs} +5 -5
- package/dist/{url-DntR9Vt0.mjs → url-CRyx47hL.mjs} +5 -5
- package/dist/values-BhYRwEvd.mjs +36 -0
- package/dist/{wait-w-EDNseb.mjs → wait-Dx7gfA8G.mjs} +2 -2
- package/dist/{wait-CCC_NXX_.mjs → wait-dqZ8MsDQ.mjs} +5 -5
- package/dist/{wait-flags-UxcaSinn.mjs → wait-flags-Czo_9Q__.mjs} +2 -2
- package/dist/workspace-eQ2gxKYO.mjs +24 -0
- package/package.json +1 -1
- package/dist/auth-BaXOzAzt.mjs +0 -19
- package/dist/card-dTdbUqvv.mjs +0 -20
- package/dist/collection-DZm1oB_J.mjs +0 -19
- package/dist/dashboard-D3ujvyqS.mjs +0 -20
- package/dist/database-C5LkxQ5G.mjs +0 -33
- package/dist/db-TY_YuEzV.mjs +0 -17
- package/dist/field-C1ai7Y05.mjs +0 -76
- package/dist/field-DgYYRJPe.mjs +0 -13
- package/dist/is-dirty-DChKYsYS.mjs +0 -10
- package/dist/sync-BrLw4QgM.mjs +0 -28
- package/dist/table-Dv2QUqKb.mjs +0 -16
- package/dist/transform-C_I-Hc1p.mjs +0 -21
- package/dist/transform-job-4CwmLSTV.mjs +0 -19
- package/dist/workspace-DmQKLMZY.mjs +0 -24
- /package/dist/{dashboard-BJXi1tGr.mjs → dashboard-C7MhcBfX.mjs} +0 -0
- /package/dist/{delete-runtime-Dx4ONQaO.mjs → delete-runtime-DCc3Hie4.mjs} +0 -0
- /package/dist/{key-CS6durfH.mjs → key-CjpAYsPz.mjs} +0 -0
- /package/dist/{manifest-C7lnUosz.mjs → manifest-CdAV6-YB.mjs} +0 -0
- /package/dist/{setting-DEHSnsEV.mjs → setting-DIXJ2haa.mjs} +0 -0
- /package/dist/{transform-job-BqYZMjf5.mjs → transform-job-DgApCViL.mjs} +0 -0
- /package/dist/{workspace-CTwXenWM.mjs → workspace-D93cDL8-.mjs} +0 -0
- /package/dist/{workspace-credentials-CC_99x9r.mjs → workspace-credentials-D_ivv5vy.mjs} +0 -0
package/README.md
CHANGED
|
@@ -194,6 +194,38 @@ metabase transform run 1 --wait --json
|
|
|
194
194
|
| `--timeout <ms>` | Polling timeout in ms (default 600000). Used with `--wait`. |
|
|
195
195
|
| `--interval <ms>` | Polling interval in ms (default 2000). Used with `--wait`. |
|
|
196
196
|
|
|
197
|
+
### `metabase transform cancel <id>`
|
|
198
|
+
|
|
199
|
+
Cancel the currently-running run for a transform. Exits 0 with `{canceled: true, id}` on success; exits 1 with a 404 if the transform has no active run.
|
|
200
|
+
|
|
201
|
+
```sh
|
|
202
|
+
metabase transform cancel 1
|
|
203
|
+
metabase transform cancel 1 --json
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### `metabase transform get-run <run-id>`
|
|
207
|
+
|
|
208
|
+
Fetch a single run by run id (not transform id). Same compact / `--full` projection convention as `transform get`.
|
|
209
|
+
|
|
210
|
+
```sh
|
|
211
|
+
metabase transform get-run 1 --json
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### `metabase transform runs`
|
|
215
|
+
|
|
216
|
+
List recent transform runs across all transforms, or filter to one. Drains all pages by default; pass `--limit` to cap.
|
|
217
|
+
|
|
218
|
+
```sh
|
|
219
|
+
metabase transform runs
|
|
220
|
+
metabase transform runs --transform-id 1 --json
|
|
221
|
+
metabase transform runs --limit 10 --json
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
| Flag | Description |
|
|
225
|
+
| --------------------- | --------------------------------------------------- |
|
|
226
|
+
| `--transform-id <id>` | Filter to runs of a single transform id. |
|
|
227
|
+
| `--limit <n>` | Cap total runs returned (default: drain all pages). |
|
|
228
|
+
|
|
197
229
|
## Transform jobs
|
|
198
230
|
|
|
199
231
|
CRUD on `/api/transform-job`. Bodies for `create` / `update` follow the same `--body` / `--file` / stdin pattern as transforms.
|
|
@@ -237,6 +269,170 @@ metabase transform-job delete 1 --yes
|
|
|
237
269
|
| ------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
238
270
|
| `--yes` | Skip the interactive confirmation prompt. In non-TTY contexts the prompt is skipped automatically (kubectl/gh/docker convention). |
|
|
239
271
|
|
|
272
|
+
## Databases
|
|
273
|
+
|
|
274
|
+
Read warehouse metadata from `/api/database`. The `db` group exposes the full database list, the per-database record, hydrated metadata (tables + fields rolled up in one response), schema and table inspection, and the two manual-sync triggers.
|
|
275
|
+
|
|
276
|
+
`db` is aliased to `database`.
|
|
277
|
+
|
|
278
|
+
### `metabase db list`
|
|
279
|
+
|
|
280
|
+
```sh
|
|
281
|
+
metabase db list
|
|
282
|
+
metabase db list --json
|
|
283
|
+
metabase db list --include tables --full --json
|
|
284
|
+
metabase db list --saved --json
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
| Flag | Description |
|
|
288
|
+
| ------------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
289
|
+
| `--include <which>` | Hydrate related entities. Currently only `tables` is supported (each database is returned with its `tables`). |
|
|
290
|
+
| `--saved` | Include the Saved Questions virtual database in the list. The virtual db has id `-1337` and no `engine`. |
|
|
291
|
+
|
|
292
|
+
### `metabase db get <id>`
|
|
293
|
+
|
|
294
|
+
```sh
|
|
295
|
+
metabase db get 1
|
|
296
|
+
metabase db get 1 --json
|
|
297
|
+
metabase db get 1 --include tables.fields --full --json
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
| Flag | Description |
|
|
301
|
+
| ------------------- | ------------------------------------------------------------- |
|
|
302
|
+
| `--include <which>` | Hydrate related entities. One of `tables` or `tables.fields`. |
|
|
303
|
+
|
|
304
|
+
### `metabase db metadata <id>`
|
|
305
|
+
|
|
306
|
+
Equivalent to `GET /api/database/:id/metadata`: a single database with all its tables and fields rolled up in one response. Use this when an agent needs a one-shot warehouse introspection rather than the per-table `metabase table get --full`.
|
|
307
|
+
|
|
308
|
+
```sh
|
|
309
|
+
metabase db metadata 1 --json --full --max-bytes 0
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### `metabase db schemas <id>`
|
|
313
|
+
|
|
314
|
+
List the schemas in a database. Schemas with no tables are excluded.
|
|
315
|
+
|
|
316
|
+
```sh
|
|
317
|
+
metabase db schemas 1
|
|
318
|
+
metabase db schemas 1 --json
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### `metabase db schema-tables <id> <schema>`
|
|
322
|
+
|
|
323
|
+
List the tables in a given schema, sorted by display name.
|
|
324
|
+
|
|
325
|
+
```sh
|
|
326
|
+
metabase db schema-tables 1 public
|
|
327
|
+
metabase db schema-tables 1 analytics --json
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### `metabase db sync-schema <id>`
|
|
331
|
+
|
|
332
|
+
Trigger a manual schema sync (`POST /api/database/:id/sync_schema`). Returns `{ id, status: "ok" }` once the sync has been queued; the actual work happens asynchronously on the server.
|
|
333
|
+
|
|
334
|
+
```sh
|
|
335
|
+
metabase db sync-schema 1
|
|
336
|
+
metabase db sync-schema 1 --json
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### `metabase db rescan-values <id>`
|
|
340
|
+
|
|
341
|
+
Trigger a rescan of cached field values (`POST /api/database/:id/rescan_values`). Returns `{ id, status: "ok" }` once the rescan has been queued.
|
|
342
|
+
|
|
343
|
+
```sh
|
|
344
|
+
metabase db rescan-values 1
|
|
345
|
+
metabase db rescan-values 1 --json
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
## Tables
|
|
349
|
+
|
|
350
|
+
Inspect and edit warehouse tables via `/api/table`.
|
|
351
|
+
|
|
352
|
+
### `metabase table list`
|
|
353
|
+
|
|
354
|
+
```sh
|
|
355
|
+
metabase table list
|
|
356
|
+
metabase table list --db-id 1 --json
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
| Flag | Description |
|
|
360
|
+
| -------------- | ----------------------------------- |
|
|
361
|
+
| `--db-id <id>` | Filter tables by their database id. |
|
|
362
|
+
|
|
363
|
+
### `metabase table get <id>`
|
|
364
|
+
|
|
365
|
+
Returns the basic table record (no fields). Use `metabase table metadata <id>` when you want the rollup with fields/FKs/dimensions hydrated.
|
|
366
|
+
|
|
367
|
+
```sh
|
|
368
|
+
metabase table get 42
|
|
369
|
+
metabase table get 42 --json
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### `metabase table metadata <id>`
|
|
373
|
+
|
|
374
|
+
`GET /api/table/:id/query_metadata`: the table with its fields, FKs, and dimensions hydrated. The agent-facing one-shot introspection for a single table.
|
|
375
|
+
|
|
376
|
+
```sh
|
|
377
|
+
metabase table metadata 42 --json --full --max-bytes 0
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### `metabase table fields <id>`
|
|
381
|
+
|
|
382
|
+
List the fields on a table (a thin projection over `query_metadata.fields`).
|
|
383
|
+
|
|
384
|
+
```sh
|
|
385
|
+
metabase table fields 42
|
|
386
|
+
metabase table fields 42 --json
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### `metabase table update <id>`
|
|
390
|
+
|
|
391
|
+
Patch a table (`PUT /api/table/:id`). Body fields: `display_name`, `description`, `caveats`, `points_of_interest`, `entity_type`, `visibility_type`, `field_order`, `show_in_getting_started`. Pass the body via `--body`, `--file`, or stdin (exactly one).
|
|
392
|
+
|
|
393
|
+
```sh
|
|
394
|
+
metabase table update 42 --body '{"display_name":"Customers"}'
|
|
395
|
+
metabase table update 42 --file patch.json
|
|
396
|
+
echo '{"description":"Customer dimension"}' | metabase table update 42
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
## Fields
|
|
400
|
+
|
|
401
|
+
Inspect and edit individual columns via `/api/field`.
|
|
402
|
+
|
|
403
|
+
### `metabase field get <id>`
|
|
404
|
+
|
|
405
|
+
```sh
|
|
406
|
+
metabase field get 100
|
|
407
|
+
metabase field get 100 --json
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
### `metabase field values <id>`
|
|
411
|
+
|
|
412
|
+
Fetch the cached distinct values list (`GET /api/field/:id/values`). Returns the FieldValues envelope (`{ values, field_id, has_more_values }`); empty `values` on fields whose `has_field_values` is `none` or `search`.
|
|
413
|
+
|
|
414
|
+
```sh
|
|
415
|
+
metabase field values 100 --json
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### `metabase field summary <id>`
|
|
419
|
+
|
|
420
|
+
Row count and distinct count for the field (`GET /api/field/:id/summary`). Metabase returns this as an array-of-pairs; the CLI normalizes it to `{ field_id, count, distincts }`.
|
|
421
|
+
|
|
422
|
+
```sh
|
|
423
|
+
metabase field summary 100
|
|
424
|
+
metabase field summary 100 --json
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### `metabase field update <id>`
|
|
428
|
+
|
|
429
|
+
Patch a field (`PUT /api/field/:id`). Body fields: `display_name`, `description`, `caveats`, `points_of_interest`, `semantic_type`, `coercion_strategy`, `fk_target_field_id`, `visibility_type`, `has_field_values`, `settings`, `nfc_path`, `json_unfolding`. Pass the body via `--body`, `--file`, or stdin.
|
|
430
|
+
|
|
431
|
+
```sh
|
|
432
|
+
metabase field update 100 --body '{"description":"customer email","semantic_type":"type/Email"}'
|
|
433
|
+
metabase field update 100 --file patch.json
|
|
434
|
+
```
|
|
435
|
+
|
|
240
436
|
## Cards
|
|
241
437
|
|
|
242
438
|
CRUD plus query execution on `/api/card`. A "card" is a Metabase question, model, or metric. The `query` subcommand runs the card and either returns Metabase's JSON envelope or streams a raw CSV / XLSX export.
|
|
@@ -403,6 +599,189 @@ cat patch.json | metabase dashboard update-dashcard 1 5
|
|
|
403
599
|
|
|
404
600
|
The patch must contain at least one field; an empty object is rejected before the network round-trip.
|
|
405
601
|
|
|
602
|
+
## Snippets
|
|
603
|
+
|
|
604
|
+
CRUD on `/api/native-query-snippet`. A snippet is a named, reusable piece of native (SQL) query text — referenced from cards via `{{snippet: Name}}`. The list endpoint returns either active or archived rows (mutually exclusive — pass `--archived` to swap).
|
|
605
|
+
|
|
606
|
+
### `metabase snippet list`
|
|
607
|
+
|
|
608
|
+
```sh
|
|
609
|
+
metabase snippet list
|
|
610
|
+
metabase snippet list --json
|
|
611
|
+
metabase snippet list --archived --json
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
| Flag | Description |
|
|
615
|
+
| ------------ | ---------------------------------------------- |
|
|
616
|
+
| `--archived` | Show archived snippets instead of active ones. |
|
|
617
|
+
|
|
618
|
+
### `metabase snippet get <id>`
|
|
619
|
+
|
|
620
|
+
```sh
|
|
621
|
+
metabase snippet get 1
|
|
622
|
+
metabase snippet get 1 --json --full
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### `metabase snippet create`
|
|
626
|
+
|
|
627
|
+
```sh
|
|
628
|
+
cat snippet.json | metabase snippet create
|
|
629
|
+
metabase snippet create --file snippet.json
|
|
630
|
+
metabase snippet create --body '{"name":"active","content":"WHERE active = true"}'
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
| Flag | Description |
|
|
634
|
+
| --------------- | ----------------------- |
|
|
635
|
+
| `--body <json>` | Inline JSON body. |
|
|
636
|
+
| `--file <path>` | Path to JSON body file. |
|
|
637
|
+
|
|
638
|
+
Body fields: `name` (required), `content` (required), `description` (optional), `collection_id` (optional positive integer).
|
|
639
|
+
|
|
640
|
+
### `metabase snippet update <id>`
|
|
641
|
+
|
|
642
|
+
Patch a snippet. Body is a partial subset of the create shape plus `archived`. Only the keys you send are touched.
|
|
643
|
+
|
|
644
|
+
```sh
|
|
645
|
+
cat patch.json | metabase snippet update 1
|
|
646
|
+
metabase snippet update 1 --file patch.json
|
|
647
|
+
metabase snippet update 1 --body '{"name":"renamed"}'
|
|
648
|
+
metabase snippet update 1 --body '{"archived":true}'
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
| Flag | Description |
|
|
652
|
+
| --------------- | ----------------------- |
|
|
653
|
+
| `--body <json>` | Inline JSON body. |
|
|
654
|
+
| `--file <path>` | Path to JSON body file. |
|
|
655
|
+
|
|
656
|
+
### `metabase snippet archive <id>`
|
|
657
|
+
|
|
658
|
+
Soft-delete a snippet by setting `archived: true`. To unarchive use `metabase snippet update <id> --body '{"archived":false}'`.
|
|
659
|
+
|
|
660
|
+
```sh
|
|
661
|
+
metabase snippet archive 1
|
|
662
|
+
metabase snippet archive 1 --json
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
## Segments
|
|
666
|
+
|
|
667
|
+
CRUD on `/api/segment`. A segment is a saved MBQL filter macro tied to a table — used in card filters to share a reusable predicate. Mutating endpoints require a `revision_message` for the audit log.
|
|
668
|
+
|
|
669
|
+
### `metabase segment list`
|
|
670
|
+
|
|
671
|
+
```sh
|
|
672
|
+
metabase segment list
|
|
673
|
+
metabase segment list --json
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
### `metabase segment get <id>`
|
|
677
|
+
|
|
678
|
+
```sh
|
|
679
|
+
metabase segment get 1
|
|
680
|
+
metabase segment get 1 --json --full
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
### `metabase segment create`
|
|
684
|
+
|
|
685
|
+
```sh
|
|
686
|
+
cat segment.json | metabase segment create
|
|
687
|
+
metabase segment create --file segment.json
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
| Flag | Description |
|
|
691
|
+
| --------------- | ----------------------- |
|
|
692
|
+
| `--body <json>` | Inline JSON body. |
|
|
693
|
+
| `--file <path>` | Path to JSON body file. |
|
|
694
|
+
|
|
695
|
+
Body fields: `name` (required), `table_id` (required positive integer), `definition` (required MBQL filter object), `description` (optional).
|
|
696
|
+
|
|
697
|
+
### `metabase segment update <id>`
|
|
698
|
+
|
|
699
|
+
Patch a segment. The body MUST include `revision_message`. Other keys are partial: `name`, `definition`, `archived`, `description`, `caveats`, `points_of_interest`, `show_in_getting_started`.
|
|
700
|
+
|
|
701
|
+
```sh
|
|
702
|
+
cat patch.json | metabase segment update 1
|
|
703
|
+
metabase segment update 1 --file patch.json
|
|
704
|
+
metabase segment update 1 --body '{"name":"renamed","revision_message":"rename"}'
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
| Flag | Description |
|
|
708
|
+
| --------------- | ----------------------- |
|
|
709
|
+
| `--body <json>` | Inline JSON body. |
|
|
710
|
+
| `--file <path>` | Path to JSON body file. |
|
|
711
|
+
|
|
712
|
+
### `metabase segment archive <id>`
|
|
713
|
+
|
|
714
|
+
Soft-delete a segment by setting `archived: true`. The default revision message is `"Archived via metabase CLI"`; override with `--revision-message`.
|
|
715
|
+
|
|
716
|
+
```sh
|
|
717
|
+
metabase segment archive 1
|
|
718
|
+
metabase segment archive 1 --revision-message "deprecated"
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
| Flag | Description |
|
|
722
|
+
| --------------------------- | ------------------------------------------- |
|
|
723
|
+
| `--revision-message <text>` | Audit-log message recorded with the change. |
|
|
724
|
+
|
|
725
|
+
## Measures
|
|
726
|
+
|
|
727
|
+
CRUD on `/api/measure`. A measure is a saved MBQL aggregation (a single `:aggregation` clause) tied to a table — referenced from cards and metrics to share a reusable computation. Mutating endpoints require a `revision_message` for the audit log.
|
|
728
|
+
|
|
729
|
+
### `metabase measure list`
|
|
730
|
+
|
|
731
|
+
```sh
|
|
732
|
+
metabase measure list
|
|
733
|
+
metabase measure list --json
|
|
734
|
+
```
|
|
735
|
+
|
|
736
|
+
### `metabase measure get <id>`
|
|
737
|
+
|
|
738
|
+
```sh
|
|
739
|
+
metabase measure get 1
|
|
740
|
+
metabase measure get 1 --json --full
|
|
741
|
+
```
|
|
742
|
+
|
|
743
|
+
### `metabase measure create`
|
|
744
|
+
|
|
745
|
+
```sh
|
|
746
|
+
cat measure.json | metabase measure create
|
|
747
|
+
metabase measure create --file measure.json
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
| Flag | Description |
|
|
751
|
+
| --------------- | ----------------------- |
|
|
752
|
+
| `--body <json>` | Inline JSON body. |
|
|
753
|
+
| `--file <path>` | Path to JSON body file. |
|
|
754
|
+
|
|
755
|
+
Body fields: `name` (required), `table_id` (required positive integer), `definition` (required MBQL aggregation object), `description` (optional).
|
|
756
|
+
|
|
757
|
+
### `metabase measure update <id>`
|
|
758
|
+
|
|
759
|
+
Patch a measure. The body MUST include `revision_message`. Other keys are partial: `name`, `definition`, `archived`, `description`.
|
|
760
|
+
|
|
761
|
+
```sh
|
|
762
|
+
cat patch.json | metabase measure update 1
|
|
763
|
+
metabase measure update 1 --file patch.json
|
|
764
|
+
metabase measure update 1 --body '{"name":"renamed","revision_message":"rename"}'
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
| Flag | Description |
|
|
768
|
+
| --------------- | ----------------------- |
|
|
769
|
+
| `--body <json>` | Inline JSON body. |
|
|
770
|
+
| `--file <path>` | Path to JSON body file. |
|
|
771
|
+
|
|
772
|
+
### `metabase measure archive <id>`
|
|
773
|
+
|
|
774
|
+
Soft-delete a measure by setting `archived: true`. The default revision message is `"Archived via metabase CLI"`; override with `--revision-message`.
|
|
775
|
+
|
|
776
|
+
```sh
|
|
777
|
+
metabase measure archive 1
|
|
778
|
+
metabase measure archive 1 --revision-message "deprecated"
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
| Flag | Description |
|
|
782
|
+
| --------------------------- | ------------------------------------------- |
|
|
783
|
+
| `--revision-message <text>` | Audit-log message recorded with the change. |
|
|
784
|
+
|
|
406
785
|
## Collections
|
|
407
786
|
|
|
408
787
|
Read collections on `/api/collection`. Collections are the folders that contain cards, dashboards, and other collections. The list endpoint surfaces a virtual root collection (id `"root"`) alongside regular numeric ids; the get endpoint accepts only the numeric id.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { renderItem } from "./render-BYWlZPEH.mjs";
|
|
2
|
-
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-
|
|
3
|
-
import { parseId } from "./parse-id-
|
|
4
|
-
import { REMOTE_SYNC_PATHS } from "./poll-task-
|
|
2
|
+
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Dlk-yyFO.mjs";
|
|
3
|
+
import { parseId } from "./parse-id-DKRTKFB2.mjs";
|
|
4
|
+
import { REMOTE_SYNC_PATHS } from "./poll-task-UMS6aAza.mjs";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
|
|
7
7
|
//#region src/commands/sync/add-collection.ts
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import "./package-
|
|
1
|
+
import "./package-Be4_p9f8.mjs";
|
|
2
2
|
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
3
|
import "./render-BYWlZPEH.mjs";
|
|
4
4
|
import "./errors-C6w1eZ1F.mjs";
|
|
5
|
-
import "./runtime-
|
|
6
|
-
import "./parse-id-
|
|
7
|
-
import "./poll-task-
|
|
8
|
-
import "./poll-
|
|
9
|
-
import { SyncSettingsUpdateResult, add_collection_default, setCollectionRemoteSynced, syncSettingsUpdateView } from "./add-collection-
|
|
5
|
+
import "./runtime-Dlk-yyFO.mjs";
|
|
6
|
+
import "./parse-id-DKRTKFB2.mjs";
|
|
7
|
+
import "./poll-task-UMS6aAza.mjs";
|
|
8
|
+
import "./poll-BXEPgd4X.mjs";
|
|
9
|
+
import { SyncSettingsUpdateResult, add_collection_default, setCollectionRemoteSynced, syncSettingsUpdateView } from "./add-collection-Cu4B6KXG.mjs";
|
|
10
10
|
|
|
11
11
|
export { add_collection_default as default };
|
|
@@ -6,7 +6,7 @@ var api_key_default = defineCommand({
|
|
|
6
6
|
name: "api-key",
|
|
7
7
|
description: "Manage Metabase API keys"
|
|
8
8
|
},
|
|
9
|
-
subCommands: { create: () => import("./create-
|
|
9
|
+
subCommands: { create: () => import("./create-DCAvWcNL.mjs").then((mod) => mod.default) }
|
|
10
10
|
});
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import "./package-Be4_p9f8.mjs";
|
|
2
|
+
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
+
import { renderItem } from "./render-BYWlZPEH.mjs";
|
|
4
|
+
import "./errors-C6w1eZ1F.mjs";
|
|
5
|
+
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Dlk-yyFO.mjs";
|
|
6
|
+
import { parseId } from "./parse-id-DKRTKFB2.mjs";
|
|
7
|
+
import { Snippet, snippetView } from "./snippet-DRTklDg3.mjs";
|
|
8
|
+
|
|
9
|
+
//#region src/commands/snippet/archive.ts
|
|
10
|
+
var archive_default = defineMetabaseCommand({
|
|
11
|
+
meta: {
|
|
12
|
+
name: "archive",
|
|
13
|
+
description: "Archive (soft-delete) a native query snippet by id"
|
|
14
|
+
},
|
|
15
|
+
args: {
|
|
16
|
+
...outputFlags,
|
|
17
|
+
...profileFlag,
|
|
18
|
+
...connectionFlags,
|
|
19
|
+
id: {
|
|
20
|
+
type: "positional",
|
|
21
|
+
description: "Snippet id",
|
|
22
|
+
required: true
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
outputSchema: Snippet,
|
|
26
|
+
examples: ["metabase snippet archive 1", "metabase snippet archive 1 --json"],
|
|
27
|
+
async run({ args, ctx, getClient }) {
|
|
28
|
+
const id = parseId(args.id);
|
|
29
|
+
const client = await getClient();
|
|
30
|
+
const updated = await client.requestParsed(Snippet, `/api/native-query-snippet/${id}`, {
|
|
31
|
+
method: "PUT",
|
|
32
|
+
body: { archived: true }
|
|
33
|
+
});
|
|
34
|
+
renderItem(updated, snippetView, ctx);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { archive_default as default };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import "./package-Be4_p9f8.mjs";
|
|
2
|
+
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
+
import { renderItem } from "./render-BYWlZPEH.mjs";
|
|
4
|
+
import "./errors-C6w1eZ1F.mjs";
|
|
5
|
+
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Dlk-yyFO.mjs";
|
|
6
|
+
import { parseId } from "./parse-id-DKRTKFB2.mjs";
|
|
7
|
+
import { revisionMessageFlag } from "./revision-message-flag-BJiGjb5m.mjs";
|
|
8
|
+
import { Segment, segmentView } from "./segment-CQ5w3M_W.mjs";
|
|
9
|
+
|
|
10
|
+
//#region src/commands/segment/archive.ts
|
|
11
|
+
var archive_default = defineMetabaseCommand({
|
|
12
|
+
meta: {
|
|
13
|
+
name: "archive",
|
|
14
|
+
description: "Archive (soft-delete) a segment by id"
|
|
15
|
+
},
|
|
16
|
+
args: {
|
|
17
|
+
...outputFlags,
|
|
18
|
+
...profileFlag,
|
|
19
|
+
...connectionFlags,
|
|
20
|
+
...revisionMessageFlag,
|
|
21
|
+
id: {
|
|
22
|
+
type: "positional",
|
|
23
|
+
description: "Segment id",
|
|
24
|
+
required: true
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
outputSchema: Segment,
|
|
28
|
+
examples: ["metabase segment archive 1", "metabase segment archive 1 --revision-message \"deprecated\""],
|
|
29
|
+
async run({ args, ctx, getClient }) {
|
|
30
|
+
const id = parseId(args.id);
|
|
31
|
+
const client = await getClient();
|
|
32
|
+
const updated = await client.requestParsed(Segment, `/api/segment/${id}`, {
|
|
33
|
+
method: "PUT",
|
|
34
|
+
body: {
|
|
35
|
+
archived: true,
|
|
36
|
+
revision_message: args.revisionMessage
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
renderItem(updated, segmentView, ctx);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
export { archive_default as default };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import "./package-
|
|
1
|
+
import "./package-Be4_p9f8.mjs";
|
|
2
2
|
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
3
|
import { renderItem } from "./render-BYWlZPEH.mjs";
|
|
4
4
|
import "./errors-C6w1eZ1F.mjs";
|
|
5
|
-
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-
|
|
6
|
-
import { parseId } from "./parse-id-
|
|
5
|
+
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Dlk-yyFO.mjs";
|
|
6
|
+
import { parseId } from "./parse-id-DKRTKFB2.mjs";
|
|
7
7
|
import { Card, cardView } from "./card-BOGKT258.mjs";
|
|
8
8
|
|
|
9
9
|
//#region src/commands/card/archive.ts
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import "./package-Be4_p9f8.mjs";
|
|
2
|
+
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
+
import { renderItem } from "./render-BYWlZPEH.mjs";
|
|
4
|
+
import "./errors-C6w1eZ1F.mjs";
|
|
5
|
+
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Dlk-yyFO.mjs";
|
|
6
|
+
import { parseId } from "./parse-id-DKRTKFB2.mjs";
|
|
7
|
+
import { Measure, measureView } from "./measure-B1GKcZxO.mjs";
|
|
8
|
+
import { revisionMessageFlag } from "./revision-message-flag-BJiGjb5m.mjs";
|
|
9
|
+
|
|
10
|
+
//#region src/commands/measure/archive.ts
|
|
11
|
+
var archive_default = defineMetabaseCommand({
|
|
12
|
+
meta: {
|
|
13
|
+
name: "archive",
|
|
14
|
+
description: "Archive (soft-delete) a measure by id"
|
|
15
|
+
},
|
|
16
|
+
args: {
|
|
17
|
+
...outputFlags,
|
|
18
|
+
...profileFlag,
|
|
19
|
+
...connectionFlags,
|
|
20
|
+
...revisionMessageFlag,
|
|
21
|
+
id: {
|
|
22
|
+
type: "positional",
|
|
23
|
+
description: "Measure id",
|
|
24
|
+
required: true
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
outputSchema: Measure,
|
|
28
|
+
examples: ["metabase measure archive 1", "metabase measure archive 1 --revision-message \"deprecated\""],
|
|
29
|
+
async run({ args, ctx, getClient }) {
|
|
30
|
+
const id = parseId(args.id);
|
|
31
|
+
const client = await getClient();
|
|
32
|
+
const updated = await client.requestParsed(Measure, `/api/measure/${id}`, {
|
|
33
|
+
method: "PUT",
|
|
34
|
+
body: {
|
|
35
|
+
archived: true,
|
|
36
|
+
revision_message: args.revisionMessage
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
renderItem(updated, measureView, ctx);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
export { archive_default as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
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-B30jvHfe.mjs").then((m) => m.default),
|
|
12
|
+
status: () => import("./status-Dg0qSJtP.mjs").then((m) => m.default),
|
|
13
|
+
list: () => import("./list-BB9IsaT4.mjs").then((m) => m.default),
|
|
14
|
+
logout: () => import("./logout-bWublBcN.mjs").then((m) => m.default)
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
export { auth_default as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConfigError } from "./errors-C6w1eZ1F.mjs";
|
|
2
2
|
import { readInput } from "./input-DMcm_A5s.mjs";
|
|
3
|
-
import { parseJson } from "./runtime-
|
|
3
|
+
import { parseJson } from "./runtime-Dlk-yyFO.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/runtime/body.ts
|
|
6
6
|
async function readBody(sources, schema) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import "./package-
|
|
1
|
+
import "./package-Be4_p9f8.mjs";
|
|
2
2
|
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
3
|
import { renderList } from "./render-BYWlZPEH.mjs";
|
|
4
4
|
import "./errors-C6w1eZ1F.mjs";
|
|
5
|
-
import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./runtime-
|
|
6
|
-
import { REMOTE_SYNC_PATHS } from "./poll-task-
|
|
7
|
-
import "./poll-
|
|
5
|
+
import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./runtime-Dlk-yyFO.mjs";
|
|
6
|
+
import { REMOTE_SYNC_PATHS } from "./poll-task-UMS6aAza.mjs";
|
|
7
|
+
import "./poll-BXEPgd4X.mjs";
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
|
|
10
10
|
//#region src/commands/sync/branches.ts
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import "./package-Be4_p9f8.mjs";
|
|
2
|
+
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
+
import { renderItem } from "./render-BYWlZPEH.mjs";
|
|
4
|
+
import "./errors-C6w1eZ1F.mjs";
|
|
5
|
+
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Dlk-yyFO.mjs";
|
|
6
|
+
import { parseId } from "./parse-id-DKRTKFB2.mjs";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
|
|
9
|
+
//#region src/commands/transform/cancel.ts
|
|
10
|
+
const TransformCancelResult = z.object({
|
|
11
|
+
canceled: z.boolean(),
|
|
12
|
+
id: z.number().int()
|
|
13
|
+
});
|
|
14
|
+
const transformCancelView = {
|
|
15
|
+
compactPick: TransformCancelResult,
|
|
16
|
+
tableColumns: [{
|
|
17
|
+
key: "id",
|
|
18
|
+
label: "Transform"
|
|
19
|
+
}, {
|
|
20
|
+
key: "canceled",
|
|
21
|
+
label: "Canceled"
|
|
22
|
+
}]
|
|
23
|
+
};
|
|
24
|
+
var cancel_default = defineMetabaseCommand({
|
|
25
|
+
meta: {
|
|
26
|
+
name: "cancel",
|
|
27
|
+
description: "Cancel the current run for a transform"
|
|
28
|
+
},
|
|
29
|
+
args: {
|
|
30
|
+
...outputFlags,
|
|
31
|
+
...profileFlag,
|
|
32
|
+
...connectionFlags,
|
|
33
|
+
id: {
|
|
34
|
+
type: "positional",
|
|
35
|
+
description: "Transform id",
|
|
36
|
+
required: true
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
outputSchema: TransformCancelResult,
|
|
40
|
+
examples: ["metabase transform cancel 1", "metabase transform cancel 1 --json"],
|
|
41
|
+
async run({ args, ctx, getClient }) {
|
|
42
|
+
const id = parseId(args.id);
|
|
43
|
+
const client = await getClient();
|
|
44
|
+
await client.requestRaw(`/api/transform/${id}/cancel`, {
|
|
45
|
+
method: "POST",
|
|
46
|
+
expectContentType: "binary"
|
|
47
|
+
});
|
|
48
|
+
renderItem({
|
|
49
|
+
canceled: true,
|
|
50
|
+
id
|
|
51
|
+
}, transformCancelView, ctx);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export { cancel_default as default };
|