@metabase/cli 0.1.7 → 0.1.8-alpha.drop-workspaces.a42f32e

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.
Files changed (204) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/README.md +2 -224
  3. package/dist/{add-collection-DQjTlDNF.mjs → add-collection-CuLyFlrE.mjs} +5 -5
  4. package/dist/add-collection-DkucDB2N.mjs +10 -0
  5. package/dist/{archive-BXzghEQX.mjs → archive-C1lk1rR7.mjs} +6 -7
  6. package/dist/{archive-CBGKzEAl.mjs → archive-C2AfP9G_.mjs} +5 -6
  7. package/dist/{archive-DTN9tLGT.mjs → archive-COAWrOVp.mjs} +5 -6
  8. package/dist/{archive-De8jzzq7.mjs → archive-DNVqPMhp.mjs} +6 -7
  9. package/dist/{archive-CuVk8iwN.mjs → archive-Dt1qDaIF.mjs} +6 -7
  10. package/dist/{archive-B3qiL-kK.mjs → archive-mdSqCzVw.mjs} +5 -6
  11. package/dist/auth-WILFa6Xf.mjs +19 -0
  12. package/dist/{body-tcURGnGh.mjs → body-b76dLVpL.mjs} +2 -2
  13. package/dist/{branches-CIGkjXIk.mjs → branches-DwV1q-4h.mjs} +5 -6
  14. package/dist/{cancel-pPsvgJ0Z.mjs → cancel-DDKstWQM.mjs} +4 -5
  15. package/dist/{cancel-task-BLGE4UlL.mjs → cancel-task-DX_OdGan.mjs} +5 -6
  16. package/dist/{render-0_GsapXa.mjs → capabilities-Dj3NgPHg.mjs} +28 -2
  17. package/dist/card-Bd8jLmZW.mjs +20 -0
  18. package/dist/{card-ezYiriML.mjs → card-BtPiKjbB.mjs} +1 -1
  19. package/dist/{cards-Dq3nx_9n.mjs → cards-CYKPNOp3.mjs} +5 -6
  20. package/dist/cli.mjs +23 -24
  21. package/dist/collection-gz4k8jWl.mjs +20 -0
  22. package/dist/{create-BrUqxreg.mjs → create-B4aKAWaQ.mjs} +7 -8
  23. package/dist/{create-9DBTkbMq.mjs → create-BfRIHlHk.mjs} +11 -12
  24. package/dist/{create-aPaUEGdr.mjs → create-BfseKO3F.mjs} +7 -8
  25. package/dist/{create-w3mQg9n4.mjs → create-BqiR1kvi.mjs} +7 -8
  26. package/dist/{create-BcgoukG4.mjs → create-BscN4jFB.mjs} +9 -10
  27. package/dist/{create-BdPoSk_7.mjs → create-CE1WZ4du.mjs} +9 -10
  28. package/dist/{create-DHscDhRd.mjs → create-CQxJpVXk.mjs} +9 -10
  29. package/dist/{create-BIphz0kO.mjs → create-DRhRPfD-.mjs} +10 -11
  30. package/dist/{create-branch-DGoc9CUU.mjs → create-branch-2yEa7-9x.mjs} +5 -6
  31. package/dist/{current-task-DZM28rnr.mjs → current-task-5buIatuG.mjs} +5 -6
  32. package/dist/dashboard-BL8_Ysst.mjs +21 -0
  33. package/dist/{database-BXiue1in.mjs → database-_Td7rG4o.mjs} +1 -1
  34. package/dist/db-Bw8m4M2J.mjs +22 -0
  35. package/dist/{delete-BrJOotpW.mjs → delete-C3i5dE4s.mjs} +6 -7
  36. package/dist/{delete-BPaFdHZP.mjs → delete-CF8in6gw.mjs} +6 -7
  37. package/dist/{delete-runtime-uuYbd4k2.mjs → delete-runtime-Bo7v-0au.mjs} +2 -2
  38. package/dist/{delete-table-CNupWUO0.mjs → delete-table-m-6cOPnX.mjs} +6 -7
  39. package/dist/{dirty-BCkNOY8c.mjs → dirty-hGWiemB-.mjs} +5 -6
  40. package/dist/{eid-CLY5X0Uw.mjs → eid-BP0H-LTl.mjs} +6 -7
  41. package/dist/{error-ZsFeevV2.mjs → error-BLukG0Vf.mjs} +1 -1
  42. package/dist/{export-CgHgWW3I.mjs → export-wh9l0s7F.mjs} +7 -8
  43. package/dist/field-GgVH-HUD.mjs +18 -0
  44. package/dist/{fields-RkRWU-u9.mjs → fields-BD52yx5k.mjs} +6 -7
  45. package/dist/{get-CTDqioaj.mjs → get-436DayeX.mjs} +5 -6
  46. package/dist/{get-B8l4t4Pz.mjs → get-B1jyFBkg.mjs} +5 -6
  47. package/dist/{get-42tJ7BNp.mjs → get-BLUldOxi.mjs} +5 -6
  48. package/dist/{get-sMpa-X4E.mjs → get-BVMyLnhh.mjs} +6 -7
  49. package/dist/{get-B9kwSs6U.mjs → get-BhFiIyyH.mjs} +5 -6
  50. package/dist/{get-CRvbChoX.mjs → get-C5PKCCzj.mjs} +5 -6
  51. package/dist/{get-y17zJMnU.mjs → get-C_LAPJ7J.mjs} +5 -6
  52. package/dist/{get-CiZrZJLt.mjs → get-CgdzDOTX.mjs} +7 -8
  53. package/dist/{get-DmzgSgrl.mjs → get-Cu7Om0g2.mjs} +6 -7
  54. package/dist/{get-DsqGHNHN.mjs → get-DETcYP1F.mjs} +5 -6
  55. package/dist/{get-Bo4Cpd_c.mjs → get-DSmnRBrw.mjs} +5 -7
  56. package/dist/{get-CvmqPN30.mjs → get-EJOWmpkC.mjs} +5 -6
  57. package/dist/{get-run-CBwcRc8E.mjs → get-run-BEvwTmr7.mjs} +5 -6
  58. package/dist/{get-C9O_aEGo.mjs → get-z9XIWbVG.mjs} +5 -6
  59. package/dist/git-sync-oYYp_Z6v.mjs +28 -0
  60. package/dist/{has-remote-changes-CfRidwXT.mjs → has-remote-changes-BNjTil7k.mjs} +5 -6
  61. package/dist/{import-BZV0Z2KR.mjs → import-C0iBM0UR.mjs} +7 -8
  62. package/dist/is-dirty-C_RyVkc1.mjs +9 -0
  63. package/dist/{is-dirty-hKcB4OH9.mjs → is-dirty-D_e5Xoke.mjs} +4 -4
  64. package/dist/{items-C94eW2Yd.mjs → items-D6h0ejme.mjs} +7 -8
  65. package/dist/{list-DfDZr55C.mjs → list-B3CgwSU4.mjs} +6 -7
  66. package/dist/{list-BS_Bxejg.mjs → list-BJxm0-6m.mjs} +6 -7
  67. package/dist/{list-DuSoEk_J.mjs → list-BZkOPBmK.mjs} +6 -7
  68. package/dist/{list-BJXaGk-z.mjs → list-CSX_xieo.mjs} +4 -5
  69. package/dist/{list-C-oZe1_p.mjs → list-CWItVq2v.mjs} +5 -6
  70. package/dist/{list-CU6sOfI-.mjs → list-CkCgkJFh.mjs} +5 -6
  71. package/dist/{list-BmHoYJr7.mjs → list-CmVbbX3f.mjs} +4 -5
  72. package/dist/{list-DrINpVLM.mjs → list-D0ZVA1e1.mjs} +4 -5
  73. package/dist/{list-HS15y_WN.mjs → list-DLC82gFo.mjs} +4 -5
  74. package/dist/{list-BFlzLGlw.mjs → list-DcV2bfg8.mjs} +4 -5
  75. package/dist/{list-B0V7FeL2.mjs → list-ZX3ooQ9h.mjs} +4 -6
  76. package/dist/{list-CF1pMN4S.mjs → list-pXgd_HTy.mjs} +4 -5
  77. package/dist/{list-CqN4gvCk.mjs → list-r3gm10tz.mjs} +5 -6
  78. package/dist/{login-enh9Yimb.mjs → login-DSS8QywX.mjs} +9 -10
  79. package/dist/{logout-BWLPLDh8.mjs → logout-B6acbVng.mjs} +4 -5
  80. package/dist/{manifest-BNh0Lw6p.mjs → manifest-B_OfG-Ss.mjs} +1 -2
  81. package/dist/measure-DDn0jAB8.mjs +19 -0
  82. package/dist/{metadata-D2TxboMm.mjs → metadata-C-bcafH-.mjs} +6 -7
  83. package/dist/{metadata-BTTEBWdS.mjs → metadata-D_wFDaCb.mjs} +7 -8
  84. package/dist/{parse-id-0_tOPvfI.mjs → parse-id-BapRoz4R.mjs} +1 -1
  85. package/dist/{path-C8GrBdgT.mjs → path-DmYXSF59.mjs} +4 -6
  86. package/dist/{poll-4eoh5J0r.mjs → poll-CYFFYOiB.mjs} +1 -1
  87. package/dist/{poll-task-51WRdugU.mjs → poll-task-Dalt24ov.mjs} +2 -2
  88. package/dist/{preflight-BhsErYz3.mjs → preflight-G7NUAKod.mjs} +3 -3
  89. package/dist/{query-BBCAF-tG.mjs → query-COWTai5j.mjs} +11 -12
  90. package/dist/{query-DYVBnu9d.mjs → query-DRosi9Ha.mjs} +7 -8
  91. package/dist/{query-result-ABPLz6I4.mjs → query-result-PoQE05Pe.mjs} +1 -1
  92. package/dist/{remove-collection-CBAHz0Dk.mjs → remove-collection-CLWw-48s.mjs} +7 -8
  93. package/dist/{rescan-values-cfTSNQZo.mjs → rescan-values-C3L03Crf.mjs} +7 -8
  94. package/dist/{run-qgdEJv-I.mjs → run-PL8TRDGx.mjs} +7 -8
  95. package/dist/{runs-BFIIH4GL.mjs → runs-B86YP36a.mjs} +6 -7
  96. package/dist/{runtime-Duawf5lE.mjs → runtime-C2EDX9E7.mjs} +10 -77
  97. package/dist/{schema-tables-C2xM3dho.mjs → schema-tables-CZr0QT1g.mjs} +6 -7
  98. package/dist/{schemas-BP7xiktH.mjs → schemas-DnGJlmQl.mjs} +4 -5
  99. package/dist/{search-DYP3lOlq.mjs → search-thFe-n3F.mjs} +4 -5
  100. package/dist/segment-ydERbF0L.mjs +19 -0
  101. package/dist/{set-DpRQqdo7.mjs → set-CDQE4s8H.mjs} +7 -8
  102. package/dist/{setting-DUa96KF3.mjs → setting-BTMmbmKB.mjs} +3 -3
  103. package/dist/{setup-BPlllnim.mjs → setup-mOHveOFI.mjs} +6 -7
  104. package/dist/{skills-BkregMyb.mjs → skills-BDPVoBWU.mjs} +33 -2
  105. package/dist/{skills-SqbPo0BI.mjs → skills-d2iLclsk.mjs} +3 -3
  106. package/dist/snippet-i1Z8-yJQ.mjs +19 -0
  107. package/dist/{stash-C89zNKxo.mjs → stash-B4RTStPo.mjs} +7 -8
  108. package/dist/{status-B1EJ_jv0.mjs → status-B7H0JH52.mjs} +6 -7
  109. package/dist/{status-BNvFPemM.mjs → status-DoVvjifV.mjs} +4 -5
  110. package/dist/{summary-Cihbx0Qs.mjs → summary-BsdiF7LZ.mjs} +5 -6
  111. package/dist/{sync-schema-C3odu0ZH.mjs → sync-schema-CvXkT9Rg.mjs} +7 -8
  112. package/dist/{table-qDD2kApF.mjs → table-CkWja2UH.mjs} +1 -1
  113. package/dist/table-DoAu2iwB.mjs +19 -0
  114. package/dist/transform-JzFSQdFi.mjs +24 -0
  115. package/dist/transform-job-C8q3Fcf7.mjs +19 -0
  116. package/dist/{tree-mvq9gM9w.mjs → tree-CGBtDXfk.mjs} +4 -5
  117. package/dist/{update-CbBnHz42.mjs → update-B89kI8l9.mjs} +10 -11
  118. package/dist/{update-CtOo3LsX.mjs → update-BA48uHRd.mjs} +9 -10
  119. package/dist/{update-DCrOQ1PW.mjs → update-BHit5RyS.mjs} +11 -12
  120. package/dist/{update-BoIiuC70.mjs → update-BJhk_A4R.mjs} +10 -11
  121. package/dist/{update-tRparnUs.mjs → update-BJn9ZitD.mjs} +12 -13
  122. package/dist/{update-C0jP0AKT.mjs → update-C44bumhM.mjs} +8 -9
  123. package/dist/{update-Rr4usmCo.mjs → update-DqAKFmkw.mjs} +8 -9
  124. package/dist/{update-VvKMnwsM.mjs → update-JpO3b8g3.mjs} +10 -11
  125. package/dist/{update-DwRxdflw.mjs → update-WMzbyUw2.mjs} +8 -9
  126. package/dist/{update-dashcard-DFvIz8Qj.mjs → update-dashcard-C8BGZtY7.mjs} +8 -9
  127. package/dist/{upgrade-D-Rl_fH9.mjs → upgrade-DeiR3fjf.mjs} +34 -7
  128. package/dist/{uuid-BSVUk8u2.mjs → uuid-BWvbC2Z8.mjs} +3 -4
  129. package/dist/{validate-dPEOnOf8.mjs → validate-CqVB_3_p.mjs} +1 -1
  130. package/dist/{validate-query-CYvOP8Ld.mjs → validate-query-BUTNK00f.mjs} +2 -2
  131. package/dist/{values-D1RJE4H6.mjs → values-07BZxAK5.mjs} +5 -6
  132. package/dist/{verify-A7BWfBPZ.mjs → verify-D2q5RI4i.mjs} +1 -1
  133. package/dist/{wait-DK5QDZ8n.mjs → wait-DWyuBO_X.mjs} +6 -7
  134. package/dist/{wait-flags-DlfbIXHw.mjs → wait-flags-Crs-j7Z8.mjs} +2 -2
  135. package/package.json +1 -1
  136. package/skill-data/core/SKILL.md +13 -26
  137. package/skill-data/git-sync/SKILL.md +8 -63
  138. package/skill-data/transform/SKILL.md +3 -4
  139. package/skill-data/visualization/SKILL.md +158 -0
  140. package/skill-data/visualization/references/settings.md +414 -0
  141. package/skills/metabase-cli/SKILL.md +1 -1
  142. package/dist/add-collection-C9BdVBs2.mjs +0 -11
  143. package/dist/auth-D9eAyVoG.mjs +0 -19
  144. package/dist/capabilities-7e9MgquN.mjs +0 -29
  145. package/dist/card-DDDrWcDU.mjs +0 -20
  146. package/dist/collection-DkEvCDar.mjs +0 -20
  147. package/dist/create-B1dyuL9Y.mjs +0 -54
  148. package/dist/credentials-qryRLUed.mjs +0 -88
  149. package/dist/dashboard-BLf1RZlk.mjs +0 -21
  150. package/dist/database-Ce1gOJF7.mjs +0 -17
  151. package/dist/db-CWTFe_FZ.mjs +0 -22
  152. package/dist/delete-FFj1xQWO.mjs +0 -104
  153. package/dist/deprovision-BNr9fPDY.mjs +0 -67
  154. package/dist/docker-Ds252Mwc.mjs +0 -515
  155. package/dist/field-LL6W_c-c.mjs +0 -18
  156. package/dist/git-sync-CrWTo3YX.mjs +0 -28
  157. package/dist/is-dirty-CPzOnnH6.mjs +0 -10
  158. package/dist/license-B37055sr.mjs +0 -17
  159. package/dist/list-DUXdt0XI.mjs +0 -36
  160. package/dist/logs-Cu3QtvPs.mjs +0 -60
  161. package/dist/measure-CDlEPFtB.mjs +0 -19
  162. package/dist/parse-schemas-D-qVLl4z.mjs +0 -12
  163. package/dist/process-CM7Uu5q_.mjs +0 -105
  164. package/dist/provision-Chf86BF0.mjs +0 -83
  165. package/dist/ps-CEYtsKBj.mjs +0 -80
  166. package/dist/ps-CIDwaubS.mjs +0 -11
  167. package/dist/remove-2yInufA6.mjs +0 -64
  168. package/dist/segment-B6HnNGDs.mjs +0 -19
  169. package/dist/set-Tt-ioa4L.mjs +0 -68
  170. package/dist/snippet-dJ68tGsl.mjs +0 -19
  171. package/dist/start-DJZA67WF.mjs +0 -414
  172. package/dist/status-D5wSqYV_.mjs +0 -34
  173. package/dist/stop-5rCLmkCQ.mjs +0 -87
  174. package/dist/table-J2f0STnB.mjs +0 -19
  175. package/dist/transform-job-OW4SDhsQ.mjs +0 -19
  176. package/dist/transform-q1LYWQtW.mjs +0 -24
  177. package/dist/update-DEZayTb4.mjs +0 -78
  178. package/dist/url-BB6jeNQj.mjs +0 -56
  179. package/dist/wait-B17I_pWy.mjs +0 -19
  180. package/dist/workspace-D8HtUN0y.mjs +0 -72
  181. package/dist/workspace-credentials-8CBMQJFz.mjs +0 -100
  182. package/dist/workspace-ri6r3zWo.mjs +0 -25
  183. package/dist/yaml-Gv6wRFMF.mjs +0 -43
  184. package/skill-data/viz/SKILL.md +0 -137
  185. package/skill-data/viz/references/settings.md +0 -312
  186. package/skill-data/workspace/SKILL.md +0 -390
  187. /package/dist/{body-flags-D7q87Btw.mjs → body-flags-D78h_-Ua.mjs} +0 -0
  188. /package/dist/{collection-Bcy8cWYH.mjs → collection-B3sPXRLs.mjs} +0 -0
  189. /package/dist/{dashboard-B4bn3z6t.mjs → dashboard-FY5UzJ_Z.mjs} +0 -0
  190. /package/dist/{field-E0IBy4Uw.mjs → field-MGxpNQUH.mjs} +0 -0
  191. /package/dist/{input-cMSEqISy.mjs → input-xewHccej.mjs} +0 -0
  192. /package/dist/{key-vkNkH82H.mjs → key-C2XG394c.mjs} +0 -0
  193. /package/dist/{measure-Bt3InQsA.mjs → measure-ClESGxIb.mjs} +0 -0
  194. /package/dist/{paginate-BexjkjbY.mjs → paginate-Dfm9eO9A.mjs} +0 -0
  195. /package/dist/{parse-enum-CrEWOhuY.mjs → parse-enum-Dr7ACrTR.mjs} +0 -0
  196. /package/dist/{parse-ref-DKag6a6I.mjs → parse-ref-BiETXmvm.mjs} +0 -0
  197. /package/dist/{prompt-CFKoys7k.mjs → prompt-u4WhE4T5.mjs} +0 -0
  198. /package/dist/{render-khznBlla.mjs → render-BQHJhSP1.mjs} +0 -0
  199. /package/dist/{revision-message-flag-DY29-cgz.mjs → revision-message-flag-WmsIzUOM.mjs} +0 -0
  200. /package/dist/{segment-DhBmcr_E.mjs → segment-Be2v4ilr.mjs} +0 -0
  201. /package/dist/{setting-BzCng1Ub.mjs → setting-oL97SNeO.mjs} +0 -0
  202. /package/dist/{snippet-bi_0XbNT.mjs → snippet-xh42tYly.mjs} +0 -0
  203. /package/dist/{transform-BKahefz_.mjs → transform-DyJb0bV0.mjs} +0 -0
  204. /package/dist/{transform-job-DjhoJbiV.mjs → transform-job-DpDGoqQt.mjs} +0 -0
@@ -9,7 +9,7 @@
9
9
  "plugins": [
10
10
  {
11
11
  "name": "metabase-cli",
12
- "description": "Drive a Metabase instance from the terminal via the `mb` CLI: auth, list/get/create/update/delete on every resource, run queries and transforms, git-sync content to and from a remote, manage Enterprise workspaces. Bundles workspace, transform, and git-sync references as on-demand skills served by `mb skills get`.",
12
+ "description": "Drive a Metabase instance from the terminal via the `mb` CLI: auth, list/get/create/update/delete on every resource, run queries and transforms, git-sync content to and from a remote. Bundles transform and git-sync references as on-demand skills served by `mb skills get`.",
13
13
  "source": "./",
14
14
  "strict": false,
15
15
  "skills": ["./skills/metabase-cli"],
package/README.md CHANGED
@@ -9,7 +9,7 @@ The minimum supported server is **Metabase v0.58** (major `58`). Anything older
9
9
  Commands that need more than a baseline OSS server declare it — a higher minimum major version or a premium token feature. The server version and token features are detected and cached when you run `mb auth login` (or `mb auth list`). For those commands, a preflight check runs before the first request and refuses with an actionable message (exit code `2`) when:
10
10
 
11
11
  - the server is older than the command's minimum version, or
12
- - the command needs a premium feature (e.g. `remote_sync`, `workspaces`) that isn't enabled.
12
+ - the command needs a premium feature (e.g. `remote_sync`, `transforms`) that isn't enabled.
13
13
 
14
14
  Plain OSS commands against a v0.58+ server (the majority) carry no elevated requirement and skip the preflight entirely. When a gated command runs but the server version can't be detected (no cached probe), it proceeds with a warning rather than refusing. To bypass the check for a single run, pass `--skip-preflight`; to bypass it process-wide (e.g. in CI), set `METABASE_CLI_SKIP_PREFLIGHT=1`. Both are footguns — only for servers you know are patched.
15
15
 
@@ -1089,226 +1089,6 @@ mb git-sync remove-collection 12
1089
1089
  mb git-sync remove-collection 12 --json --profile prod
1090
1090
  ```
1091
1091
 
1092
- ## Workspaces
1093
-
1094
- CRUD on `/api/ee/workspace-manager`. Run against the workspace-manager parent instance.
1095
-
1096
- ### `mb workspace list`
1097
-
1098
- ```sh
1099
- mb workspace list
1100
- mb workspace list --json
1101
- ```
1102
-
1103
- ### `mb workspace create`
1104
-
1105
- ```sh
1106
- mb workspace create --name analytics
1107
- echo '{"name":"analytics"}' | mb workspace create
1108
- mb workspace create --file workspace.json
1109
- ```
1110
-
1111
- | Flag | Description |
1112
- | --------------- | ------------------------------------------------------- |
1113
- | `--name <name>` | Workspace name. Shortcut for `--body '{"name":"<n>"}'`. |
1114
- | `--body <json>` | Inline JSON body. |
1115
- | `--file <path>` | Path to JSON body file. |
1116
-
1117
- ### `mb workspace database provision <workspace-id> [db-id]`
1118
-
1119
- Provision a database into a workspace. The backend kicks off the work asynchronously and returns the workspace with the new entry in `status: "provisioning"`. Pass `--wait` to poll until the entry reaches `status: "provisioned"` and surface the polled state instead of the initial response.
1120
-
1121
- ```sh
1122
- mb workspace database provision 1 5 --schemas analytics,github
1123
- mb workspace database provision 1 5 --schemas analytics --wait
1124
- mb workspace database provision 1 --file provision.json
1125
- ```
1126
-
1127
- | Arg / Flag | Description |
1128
- | ----------------- | -------------------------------------------------------------- |
1129
- | `<db-id>` | Database id positional (used with `--schemas`). |
1130
- | `--schemas <csv>` | Comma-separated input schemas (used with the `db-id`). |
1131
- | `--body <json>` | Inline JSON body. |
1132
- | `--file <path>` | Path to JSON body file. |
1133
- | `--wait` | Poll until the database entry reaches `status: "provisioned"`. |
1134
- | `--timeout <ms>` | Polling timeout in ms (default 600000). Used with `--wait`. |
1135
- | `--interval <ms>` | Polling interval in ms (default 2000). Used with `--wait`. |
1136
-
1137
- ### `mb workspace database update <workspace-id> <db-id>`
1138
-
1139
- Update a workspace's provisioned database (server-side this is deprovision + provision). Body accepts only `input` — the database id comes from the URL.
1140
-
1141
- ```sh
1142
- mb workspace database update 1 5 --schemas analytics,github
1143
- mb workspace database update 1 5 --schemas analytics --wait
1144
- mb workspace database update 1 5 --file update.json
1145
- ```
1146
-
1147
- | Flag | Description |
1148
- | ----------------- | ----------------------------------------------------------------- |
1149
- | `--schemas <csv>` | Comma-separated input schemas. Shortcut for body. |
1150
- | `--body <json>` | Inline JSON body (`{"input":[{"schema":"..."}]}`). |
1151
- | `--file <path>` | Path to JSON body file. |
1152
- | `--wait` | Poll until the database entry returns to `status: "provisioned"`. |
1153
- | `--timeout <ms>` | Polling timeout in ms (default 600000). Used with `--wait`. |
1154
- | `--interval <ms>` | Polling interval in ms (default 2000). Used with `--wait`. |
1155
-
1156
- ### `mb workspace database deprovision <workspace-id> <db-id>`
1157
-
1158
- ```sh
1159
- mb workspace database deprovision 1 5 --yes
1160
- mb workspace database deprovision 1 5 --yes --wait
1161
- ```
1162
-
1163
- | Flag | Description |
1164
- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------- |
1165
- | `--yes` | Skip the interactive confirmation prompt. In non-TTY contexts the prompt is skipped automatically (kubectl/gh/docker convention). |
1166
- | `--wait` | Poll until the database entry is removed from the workspace. |
1167
- | `--timeout <ms>` | Polling timeout in ms (default 600000). Used with `--wait`. |
1168
- | `--interval <ms>` | Polling interval in ms (default 2000). Used with `--wait`. |
1169
-
1170
- ### Local runtime
1171
-
1172
- These commands manage a Docker container that serves as the workspace's child Metabase instance. State lives in Docker labels and a named volume — there is no per-workspace local state directory. The container is named `metabase-workspace-<id>`; the app-db volume is `metabase-workspace-<id>-appdb`.
1173
-
1174
- ### `mb workspace start <id>`
1175
-
1176
- ```sh
1177
- mb workspace start 1
1178
- mb workspace start 1 --wait
1179
- mb workspace start 1 --port 3100
1180
- mb workspace start 1 --image metabase/metabase-enterprise:latest --no-pull
1181
- mb workspace start 1 --force
1182
- mb workspace start 1 --repo /path/to/sync-repo --wait
1183
- mb workspace start 1 --repo /path/to/sync-repo --repo-branch dev --repo-mode read-only
1184
- ```
1185
-
1186
- Resolves the parent via the active profile (or `--profile`/`--url`/`--api-key`) and the EE license via `resolveLicenseToken` (the same path `mb workspace license set` writes to). Refuses to start if the workspace has any database that isn't `status: "provisioned"`.
1187
-
1188
- The boot bundle (`config.yml`, `credentials.json`, optional `metadata.json`) is built in process memory and tar-streamed into the container's `/mw-config/` directory through `docker cp -`; no host-disk artifact is created. The CLI generates a per-workspace admin user + API key, injects them into the YAML before shipping, and stores the same values in `credentials.json` for later retrieval via `mb workspace credentials`. Once the child logs that it has read `config.yml`, the CLI scrubs the in-container copy (`docker exec rm /mw-config/config.yml`) so the warehouse credentials in `details.password` no longer linger; `credentials.json` stays.
1189
-
1190
- By default `start` returns once the bundle has been consumed by the child (`state: "starting"`); pass `--wait` to also block until `/api/health` reports ready and the response reports `state: "running"`.
1191
-
1192
- When `--repo <host-path>` is passed, the CLI bind-mounts the host directory at `/mnt/repo` inside the container and injects three settings into the workspace's `config.yml` so the child boots already wired to the repo: `remote-sync-url=file:///mnt/repo`, `remote-sync-branch=<branch>` (defaults to the current branch of the host repo, read via `git -C <path> symbolic-ref --short HEAD`; override with `--repo-branch`), and `remote-sync-type=<mode>` (defaults to `read-write`; override with `--repo-mode read-only`, which also makes the bind mount read-only). The bind mount is set at container-create time only — to add or change it after the fact, run `start --force` again with the new flags. The host path must be an existing directory; the CLI does not create or `git init` it for you.
1193
-
1194
- | Flag | Description |
1195
- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1196
- | `--port <n>` | Host port (default: 3000; auto-shifts up to 100 ports if taken). |
1197
- | `--image <ref>` | Docker image. Default: `metabase/metabase-enterprise:latest` once Metabase v62 is released, otherwise `metabase/metabase-enterprise-head:latest`. |
1198
- | `--wait` | Block until `/api/health` is ready. Default: return as soon as consumed. |
1199
- | `--timeout <ms>` | Per-phase readiness deadline (default: 240000). Covers post-create config consumption, (with `--wait`) the `/api/health` probe, and (with `--metadata`) the metadata-import status poll. |
1200
- | `--no-pull` | Skip `docker pull` (useful if the image is already present). |
1201
- | `--no-metadata` | Skip the warehouse metadata export. |
1202
- | `--force` | If a container for this workspace already exists, remove it before starting. |
1203
- | `--repo <host-path>` | Bind-mount a host directory at `/mnt/repo` and set `remote-sync-url=file:///mnt/repo` in `config.yml`. |
1204
- | `--repo-branch <name>` | `remote-sync-branch` value (default: current branch of the host repo). |
1205
- | `--repo-mode <mode>` | `remote-sync-type`: `read-write` (default) or `read-only`. Read-only also makes the bind mount read-only. |
1206
-
1207
- ### `mb workspace stop <id>`
1208
-
1209
- ```sh
1210
- mb workspace stop 1
1211
- mb workspace stop 1 --json
1212
- ```
1213
-
1214
- Stops the running container; no-ops if it's already exited or missing. Reports the prior state.
1215
-
1216
- ### `mb workspace delete <id>`
1217
-
1218
- ```sh
1219
- mb workspace delete 1 --yes
1220
- mb workspace delete 1 --keep-volume --yes
1221
- ```
1222
-
1223
- Stops and removes the container. By default, also removes the app-db volume — pass `--keep-volume` to preserve it across rebuilds. **Does not affect the remote workspace** on the parent.
1224
-
1225
- | Flag | Description |
1226
- | --------------- | --------------------------------------------------------------------------------------------------------------------------------- |
1227
- | `--yes` | Skip the interactive confirmation prompt. In non-TTY contexts the prompt is skipped automatically (kubectl/gh/docker convention). |
1228
- | `--keep-volume` | Preserve the app-db volume (`metabase-workspace-<id>-appdb`). |
1229
-
1230
- ### `mb workspace logs <id>`
1231
-
1232
- ```sh
1233
- mb workspace logs 1
1234
- mb workspace logs 1 --follow
1235
- mb workspace logs 1 --tail 500
1236
- ```
1237
-
1238
- Passthrough to `docker logs`. Output streams directly to your terminal; Ctrl-C terminates a follow.
1239
-
1240
- | Flag | Description |
1241
- | -------------- | --------------------------------------------- |
1242
- | `--follow, -f` | Stream indefinitely. |
1243
- | `--tail <n>` | Lines from the end of the logs (default 200). |
1244
-
1245
- ### `mb workspace url <id>`
1246
-
1247
- ```sh
1248
- mb workspace url 1
1249
- mb workspace url 1 --json
1250
- ```
1251
-
1252
- Prints `http://localhost:<port>` for the workspace's container. Reads the host port from the container's `com.metabase.workspace.host-port` label.
1253
-
1254
- ### `mb workspace credentials <id>`
1255
-
1256
- ```sh
1257
- mb workspace credentials 1
1258
- mb workspace credentials 1 --json
1259
- ```
1260
-
1261
- Reads the workspace child's admin credentials (email, password, admin API key) from `/mw-config/credentials.json` inside the container. The file is written by `workspace start` from CLI-generated, per-workspace values; the same values are injected into `config.yml`'s `:users` and `:api-keys` sections so they take effect on the child's first boot. Works against running and stopped containers (uses `docker cp`); errors clearly if no container exists for the given workspace id. Removing the container destroys the file — recover by `workspace start <id> --force`.
1262
-
1263
- ### `mb workspace ps`
1264
-
1265
- ```sh
1266
- mb workspace ps
1267
- mb workspace ps --json
1268
- ```
1269
-
1270
- Lists every container that carries the `com.metabase.workspace.id` label, running or stopped. The `--json` envelope is the canonical agent-facing shape and contains only `workspace_id`, `workspace_name`, `state`, and `url`; `--full --json` emits the wider record (image, profile, parent URL, container name, status string, host port).
1271
-
1272
- ### License
1273
-
1274
- The Metabase Enterprise license token is stored locally and forwarded to the child instance by `mb workspace start`. It is global to the CLI install (not per-profile).
1275
-
1276
- #### `mb workspace license set [token]`
1277
-
1278
- Store a license token. Resolution order: positional → piped stdin → `METABASE_LICENSE_TOKEN` → interactive prompt. Stdin is auto-detected when not a TTY.
1279
-
1280
- Common output flags (`--json`, `--format`, `--full`, `--fields`, `--max-bytes`) are accepted; the result payload is rendered through the standard output layer.
1281
-
1282
- ```sh
1283
- echo "$MB_LICENSE" | mb workspace license set
1284
- mb workspace license set < token.txt
1285
- ```
1286
-
1287
- #### `mb workspace license status`
1288
-
1289
- Show whether a license is stored. Does not reveal the value.
1290
-
1291
- ```sh
1292
- mb workspace license status
1293
- mb workspace license status --json
1294
- ```
1295
-
1296
- | Flag | Description |
1297
- | -------- | ----------------------------------- |
1298
- | `--json` | Emit JSON. Auto-enabled on non-TTY. |
1299
-
1300
- #### `mb workspace license remove`
1301
-
1302
- Clear the stored license.
1303
-
1304
- ```sh
1305
- mb workspace license remove --yes
1306
- ```
1307
-
1308
- | Flag | Description |
1309
- | ------- | --------------------------------------------------------------------------------------------------------------------------------- |
1310
- | `--yes` | Skip the interactive confirmation prompt. In non-TTY contexts the prompt is skipped automatically (kubectl/gh/docker convention). |
1311
-
1312
1092
  ## Instance setup
1313
1093
 
1314
1094
  Bootstrapping a fresh, not-yet-configured Metabase instance.
@@ -1474,7 +1254,7 @@ The CLI ships with bundled agent skills (Claude Code / `npx skills add` compatib
1474
1254
  mb skills list # discover bundled skills (table or JSON)
1475
1255
  mb skills get core # print the top-level guide
1476
1256
  mb skills get core --full # include references and templates
1477
- mb skills get workspace,transform # comma-separated, multi-skill fetch
1257
+ mb skills get git-sync,transform # comma-separated, multi-skill fetch
1478
1258
  mb skills get --all --json --max-bytes 0 # every non-hidden skill, structured (default cap truncates)
1479
1259
  mb skills path # absolute paths for direct Read
1480
1260
  mb skills path core # one path
@@ -1487,7 +1267,6 @@ Bundled skills:
1487
1267
  | Name | Use |
1488
1268
  | ----------- | -------------------------------------------------------------------------------------- |
1489
1269
  | `core` | Top-level guide: auth, flag conventions, output flags, body input, every command group |
1490
- | `workspace` | Enterprise workspace lifecycle (create, provision, start, child credentials, diagnose) |
1491
1270
  | `transform` | Authoring and running transforms (native SQL + MBQL 5), iteration, run inspection |
1492
1271
  | `git-sync` | Round-tripping Metabase content to/from a git remote |
1493
1272
 
@@ -1505,7 +1284,6 @@ Exit codes: `0` success, `2` `ConfigError` (missing name, unknown name, `MB_SKIL
1505
1284
  | `METABASE_URL` | Default URL for `auth login` and config resolution. |
1506
1285
  | `METABASE_API_KEY` | Default API key (overrides interactive prompt; not stored). |
1507
1286
  | `METABASE_PROFILE` | Default profile when `--profile` is omitted. Falls back to `default`. |
1508
- | `METABASE_LICENSE_TOKEN` | Default license token for `workspace license set`. |
1509
1287
  | `METABASE_VERBOSE` | When set to `1`, prints structured developer-detail JSON to stderr on failure. |
1510
1288
  | `METABASE_CLI_SKIP_PREFLIGHT` | When set to `1`, bypasses the per-command server version / token-feature preflight check. Escape hatch for patched Metabase builds; can mask real compatibility problems. |
1511
1289
  | `MB_SKILLS_DIR` | Override the directory `mb skills` scans (dev/test only; defaults to the CLI's bundled `skills` + `skill-data` trees). |
@@ -1,8 +1,8 @@
1
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
2
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
3
- import { renderSummary } from "./render-0_GsapXa.mjs";
4
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
5
- import { REMOTE_SYNC_PATHS } from "./poll-task-51WRdugU.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
2
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
3
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
4
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
5
+ import { REMOTE_SYNC_PATHS } from "./poll-task-Dalt24ov.mjs";
6
6
  import { z } from "zod";
7
7
 
8
8
  //#region src/commands/git-sync/add-collection.ts
@@ -0,0 +1,10 @@
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import "./error-BLukG0Vf.mjs";
3
+ import "./runtime-C2EDX9E7.mjs";
4
+ import "./capabilities-Dj3NgPHg.mjs";
5
+ import "./parse-id-BapRoz4R.mjs";
6
+ import "./poll-task-Dalt24ov.mjs";
7
+ import "./poll-CYFFYOiB.mjs";
8
+ import { SyncSettingsUpdateResult, add_collection_default, setCollectionRemoteSynced, syncSettingsUpdateView } from "./add-collection-CuLyFlrE.mjs";
9
+
10
+ export { add_collection_default as default };
@@ -1,11 +1,10 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
7
- import { revisionMessageFlag } from "./revision-message-flag-DY29-cgz.mjs";
8
- import { Segment, segmentView } from "./segment-DhBmcr_E.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
6
+ import { revisionMessageFlag } from "./revision-message-flag-WmsIzUOM.mjs";
7
+ import { Segment, segmentView } from "./segment-Be2v4ilr.mjs";
9
8
 
10
9
  //#region src/commands/segment/archive.ts
11
10
  var archive_default = defineMetabaseCommand({
@@ -1,10 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
7
- import { Snippet, snippetView } from "./snippet-bi_0XbNT.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
6
+ import { Snippet, snippetView } from "./snippet-xh42tYly.mjs";
8
7
 
9
8
  //#region src/commands/snippet/archive.ts
10
9
  var archive_default = defineMetabaseCommand({
@@ -1,10 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
7
- import { Collection, collectionView } from "./collection-Bcy8cWYH.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
6
+ import { Collection, collectionView } from "./collection-B3sPXRLs.mjs";
8
7
 
9
8
  //#region src/commands/collection/archive.ts
10
9
  var archive_default = defineMetabaseCommand({
@@ -1,11 +1,10 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import "./field-E0IBy4Uw.mjs";
7
- import { Card, cardView } from "./card-ezYiriML.mjs";
8
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import "./field-MGxpNQUH.mjs";
6
+ import { Card, cardView } from "./card-BtPiKjbB.mjs";
7
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
9
8
 
10
9
  //#region src/commands/card/archive.ts
11
10
  var archive_default = defineMetabaseCommand({
@@ -1,11 +1,10 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
7
- import { Measure, measureView } from "./measure-Bt3InQsA.mjs";
8
- import { revisionMessageFlag } from "./revision-message-flag-DY29-cgz.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
6
+ import { Measure, measureView } from "./measure-ClESGxIb.mjs";
7
+ import { revisionMessageFlag } from "./revision-message-flag-WmsIzUOM.mjs";
9
8
 
10
9
  //#region src/commands/measure/archive.ts
11
10
  var archive_default = defineMetabaseCommand({
@@ -1,10 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
7
- import { Dashboard, dashboardView } from "./dashboard-B4bn3z6t.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
6
+ import { Dashboard, dashboardView } from "./dashboard-FY5UzJ_Z.mjs";
8
7
 
9
8
  //#region src/commands/dashboard/archive.ts
10
9
  var archive_default = defineMetabaseCommand({
@@ -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-DSS8QywX.mjs").then((m) => m.default),
12
+ status: () => import("./status-DoVvjifV.mjs").then((m) => m.default),
13
+ list: () => import("./list-CWItVq2v.mjs").then((m) => m.default),
14
+ logout: () => import("./logout-B6acbVng.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 "./command-augment-BH9qgQ5u.mjs";
2
- import { parseJson } from "./runtime-Duawf5lE.mjs";
3
- import { DEFAULT_FLAG_NAME, readInput } from "./input-cMSEqISy.mjs";
2
+ import { parseJson } from "./runtime-C2EDX9E7.mjs";
3
+ import { DEFAULT_FLAG_NAME, readInput } from "./input-xewHccej.mjs";
4
4
 
5
5
  //#region src/runtime/body.ts
6
6
  async function readBody(sources, schema) {
@@ -1,10 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderList } from "./render-0_GsapXa.mjs";
6
- import { REMOTE_SYNC_PATHS } from "./poll-task-51WRdugU.mjs";
7
- import "./poll-4eoh5J0r.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderList } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { REMOTE_SYNC_PATHS } from "./poll-task-Dalt24ov.mjs";
6
+ import "./poll-CYFFYOiB.mjs";
8
7
  import { z } from "zod";
9
8
 
10
9
  //#region src/commands/git-sync/branches.ts
@@ -1,9 +1,8 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
7
6
  import { z } from "zod";
8
7
 
9
8
  //#region src/commands/transform/cancel.ts
@@ -1,10 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import { REMOTE_SYNC_PATHS, SyncTask, syncTaskView } from "./poll-task-51WRdugU.mjs";
7
- import "./poll-4eoh5J0r.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { REMOTE_SYNC_PATHS, SyncTask, syncTaskView } from "./poll-task-Dalt24ov.mjs";
6
+ import "./poll-CYFFYOiB.mjs";
8
7
 
9
8
  //#region src/commands/git-sync/cancel-task.ts
10
9
  var cancel_task_default = defineMetabaseCommand({
@@ -1,7 +1,25 @@
1
1
  import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { isPlainObject, itemOversizeMessage, listTruncationNotice, warn } from "./capabilities-7e9MgquN.mjs";
2
+ import { z } from "zod";
3
3
  import Table from "cli-table3";
4
4
 
5
+ //#region src/runtime/predicates.ts
6
+ function isPlainObject(value) {
7
+ return typeof value === "object" && value !== null && !Array.isArray(value);
8
+ }
9
+
10
+ //#endregion
11
+ //#region src/output/notice.ts
12
+ function warn(message) {
13
+ process.stderr.write(message + "\n");
14
+ }
15
+ function listTruncationNotice(bytes) {
16
+ return `… cut at ${bytes} bytes; rerun with --max-bytes 0`;
17
+ }
18
+ function itemOversizeMessage(bytes, maxBytes) {
19
+ return `output is ${bytes} bytes, over the ${maxBytes}-byte --max-bytes cap; narrow with --fields, or pass --max-bytes 0 to disable`;
20
+ }
21
+
22
+ //#endregion
5
23
  //#region src/output/cap.ts
6
24
  function capListEnvelope(envelope, maxBytes) {
7
25
  if (maxBytes <= 0) return envelope;
@@ -207,4 +225,12 @@ function assertItemWithinMaxBytes(body, maxBytes) {
207
225
  }
208
226
 
209
227
  //#endregion
210
- export { formatScalar, renderItem, renderList, renderRows, renderSummary, writeJson, writeText };
228
+ //#region src/runtime/capabilities.ts
229
+ const Capabilities = z.object({
230
+ minVersion: z.number(),
231
+ tokenFeature: z.string().optional()
232
+ });
233
+ const BASELINE_CAPABILITIES = Object.freeze({ minVersion: 58 });
234
+
235
+ //#endregion
236
+ export { BASELINE_CAPABILITIES, Capabilities, formatScalar, isPlainObject, renderItem, renderList, renderRows, renderSummary, warn, writeJson, writeText };
@@ -0,0 +1,20 @@
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-B3CgwSU4.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-BVMyLnhh.mjs").then((mod) => mod.default),
12
+ query: () => import("./query-DRosi9Ha.mjs").then((mod) => mod.default),
13
+ create: () => import("./create-DRhRPfD-.mjs").then((mod) => mod.default),
14
+ update: () => import("./update-BHit5RyS.mjs").then((mod) => mod.default),
15
+ archive: () => import("./archive-DNVqPMhp.mjs").then((mod) => mod.default)
16
+ }
17
+ });
18
+
19
+ //#endregion
20
+ export { card_default as default };
@@ -1,4 +1,4 @@
1
- import { FieldBaseType, FieldSemanticType } from "./field-E0IBy4Uw.mjs";
1
+ import { FieldBaseType, FieldSemanticType } from "./field-MGxpNQUH.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/domain/card.ts
@@ -1,10 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderList } from "./render-0_GsapXa.mjs";
6
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
7
- import { DashboardDetail, DashcardCompact, dashcardView } from "./dashboard-B4bn3z6t.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderList } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
6
+ import { DashboardDetail, DashcardCompact, dashcardView } from "./dashboard-FY5UzJ_Z.mjs";
8
7
 
9
8
  //#region src/commands/dashboard/cards.ts
10
9
  const DashcardListEnvelope = listEnvelopeSchema(DashcardCompact);