@metabase/cli 0.1.4 → 0.1.6

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 (218) hide show
  1. package/.claude-plugin/marketplace.json +19 -0
  2. package/README.md +147 -101
  3. package/dist/{add-collection-CffaBB-Y.mjs → add-collection-BU8r3r2M.mjs} +9 -4
  4. package/dist/add-collection-C0w6ACQF.mjs +11 -0
  5. package/dist/{archive-uJrslh9r.mjs → archive-BNinrUak.mjs} +9 -8
  6. package/dist/{archive-GdGm7l2e.mjs → archive-C1enZgKV.mjs} +8 -7
  7. package/dist/archive-CDA0KxL8.mjs +40 -0
  8. package/dist/{archive-BAcEXbT9.mjs → archive-CRhiBpPJ.mjs} +9 -8
  9. package/dist/{archive-B_B3MQp0.mjs → archive-DMPS8Kih.mjs} +9 -8
  10. package/dist/archive-lWgqiFAt.mjs +40 -0
  11. package/dist/auth-CzXb_zB2.mjs +19 -0
  12. package/dist/{body-D6dHGjMT.mjs → body-DjdFxjpg.mjs} +4 -4
  13. package/dist/{branches-Bpe40fEd.mjs → branches-B1WRfG7-.mjs} +11 -7
  14. package/dist/{cancel-BWTY6oYI.mjs → cancel-Dl_Ho056.mjs} +7 -6
  15. package/dist/{cancel-task--BfiAXfS.mjs → cancel-task-CdigdCaO.mjs} +11 -7
  16. package/dist/capabilities-7e9MgquN.mjs +29 -0
  17. package/dist/card-DP4rfoOi.mjs +21 -0
  18. package/dist/{card-CQxvHeyP.mjs → card-DlCAaAPq.mjs} +1 -1
  19. package/dist/{cards-CVlFJxYh.mjs → cards-BGiJS675.mjs} +8 -7
  20. package/dist/cli.mjs +267 -44
  21. package/dist/collection-tY18ezvn.mjs +21 -0
  22. package/dist/{predicates-CGO17Q15.mjs → command-augment-BH9qgQ5u.mjs} +66 -14
  23. package/dist/create-BNiva__H.mjs +52 -0
  24. package/dist/{create-izE3EKCt.mjs → create-BTcpaop_.mjs} +9 -8
  25. package/dist/{create-BykvNpSA.mjs → create-BYlIju0b.mjs} +14 -12
  26. package/dist/{create-Bu-YhIDL.mjs → create-Be_0Vier.mjs} +10 -9
  27. package/dist/{create-DYoc9IXW.mjs → create-CHF313Qg.mjs} +13 -9
  28. package/dist/{create-Cz3_Wxdt.mjs → create-CwGtmwqm.mjs} +14 -12
  29. package/dist/{create-DP8RrLDi.mjs → create-CzzrbL0u.mjs} +10 -9
  30. package/dist/{create-BzElku2l.mjs → create-DGth_uOp.mjs} +14 -12
  31. package/dist/{create-branch-B49UQyCK.mjs → create-branch-DKZkoQ64.mjs} +11 -7
  32. package/dist/{create-DQVdMT2Y.mjs → create-dhxPxfF3.mjs} +16 -14
  33. package/dist/{credentials-xKSoP6eh.mjs → credentials-dzeq7ckm.mjs} +12 -10
  34. package/dist/{current-task-DweHmjlk.mjs → current-task-CCRzm0_7.mjs} +11 -7
  35. package/dist/dashboard-ChM_Tu0l.mjs +22 -0
  36. package/dist/{dashboard-CnMD04PQ.mjs → dashboard-FY5UzJ_Z.mjs} +2 -1
  37. package/dist/{database-BNlvldUL.mjs → database-CIXwHKjK.mjs} +3 -3
  38. package/dist/{database-vvig8k4x.mjs → database-lH-B3G1I.mjs} +1 -1
  39. package/dist/db-DrQn_i3W.mjs +22 -0
  40. package/dist/{remove-B3ZEqBF7.mjs → delete-CM3jnAeQ.mjs} +21 -20
  41. package/dist/{delete-DojHmKeM.mjs → delete-Dimc-2y8.mjs} +9 -8
  42. package/dist/{delete-DIz9Tgz5.mjs → delete-ZjnV35OJ.mjs} +9 -8
  43. package/dist/{delete-runtime-BkAdygbs.mjs → delete-runtime-B6RQo_pw.mjs} +5 -3
  44. package/dist/{delete-table-DjN8E3sd.mjs → delete-table-agZJpivt.mjs} +9 -8
  45. package/dist/{deprovision-_HDcBApz.mjs → deprovision-CwxcIT3k.mjs} +16 -12
  46. package/dist/{dirty-Co8V0SZ3.mjs → dirty-D4d0yHqj.mjs} +11 -7
  47. package/dist/{docker-D9sC_37H.mjs → docker-Oq80q3tu.mjs} +4 -4
  48. package/dist/{translate-CG_Ka0dO.mjs → eid-BXzaQh0o.mjs} +37 -22
  49. package/dist/error-C9S6PN3-.mjs +190 -0
  50. package/dist/{export-CVMFxoo1.mjs → export-DTygoXBP.mjs} +17 -16
  51. package/dist/field-Z6Pcxf4n.mjs +19 -0
  52. package/dist/{fields-Coha7vKv.mjs → fields-CoQi99gv.mjs} +9 -8
  53. package/dist/{get-DXv2FkA7.mjs → get-Bzys7vgp.mjs} +8 -7
  54. package/dist/{get-bNtA7vWe.mjs → get-C2p383Qc.mjs} +8 -7
  55. package/dist/{get-Br6WayZv.mjs → get-C3HdQ91a.mjs} +8 -7
  56. package/dist/{get-BOtKerj8.mjs → get-CP3Z3NiH.mjs} +9 -8
  57. package/dist/{get-BSKoL8ek.mjs → get-C_w1kvN3.mjs} +9 -8
  58. package/dist/{get-Be6EFh94.mjs → get-CzuzeKSe.mjs} +10 -9
  59. package/dist/{get-BVTz9B_H.mjs → get-D3SbEQSE.mjs} +10 -9
  60. package/dist/get-DFxZXaKz.mjs +79 -0
  61. package/dist/{get-DZrV7v9d.mjs → get-DQTZG_NP.mjs} +8 -7
  62. package/dist/{get-CJwzbVjc.mjs → get-DSWFjy7O.mjs} +8 -7
  63. package/dist/{get-BxzCKVC6.mjs → get-Ddr0XLh7.mjs} +8 -7
  64. package/dist/{get-AOvWo48B.mjs → get-Hc93A0Yz.mjs} +8 -7
  65. package/dist/{get-C_6K7MSW.mjs → get-lb7q3JYs.mjs} +7 -6
  66. package/dist/get-run-B7sKdaDU.mjs +38 -0
  67. package/dist/git-sync-CiGAad76.mjs +28 -0
  68. package/dist/{has-remote-changes-D6xgsuUr.mjs → has-remote-changes-BY10-nnE.mjs} +11 -7
  69. package/dist/{import-Dv0ORSNw.mjs → import-CiMz4Wz-.mjs} +17 -16
  70. package/dist/{input-BQ-BZA8h.mjs → input-cMSEqISy.mjs} +7 -4
  71. package/dist/{is-dirty-WNi8a6O9.mjs → is-dirty-BZOaryxT.mjs} +9 -4
  72. package/dist/is-dirty-Ume4oV0j.mjs +10 -0
  73. package/dist/{items-CTcAMknV.mjs → items-BWfvkY-J.mjs} +9 -8
  74. package/dist/key-C2XG394c.mjs +17 -0
  75. package/dist/license-Dxarh-gG.mjs +17 -0
  76. package/dist/{list-FXuSCYpa.mjs → list--OYdUTtu.mjs} +7 -6
  77. package/dist/{list-8oVMvlLV.mjs → list-2j7GsXsl.mjs} +7 -6
  78. package/dist/{list-xQmtQPSl.mjs → list-BI4zr8LW.mjs} +10 -8
  79. package/dist/{list-DhWG5jiW.mjs → list-Brgh-Z2v.mjs} +8 -6
  80. package/dist/{list-DSs0Q78i.mjs → list-C3hfovHv.mjs} +7 -6
  81. package/dist/{list-DvUjMQze.mjs → list-CL7eCOQE.mjs} +7 -6
  82. package/dist/list-Clz5igWg.mjs +44 -0
  83. package/dist/list-D4sFiqX8.mjs +173 -0
  84. package/dist/{list-BxdXvGTK.mjs → list-DXH7TlkU.mjs} +9 -7
  85. package/dist/{list-CocYwmnI.mjs → list-DZ8fNUoQ.mjs} +9 -8
  86. package/dist/{list-DjhZU-FY.mjs → list-SOG0whQ-.mjs} +7 -6
  87. package/dist/{list-DI7K3K6k.mjs → list-d58BprgJ.mjs} +7 -6
  88. package/dist/{list-NiwCL_1X.mjs → list-sD5N3fGk.mjs} +9 -8
  89. package/dist/{list-CbJeP0Z6.mjs → list-zSO0DMw-.mjs} +10 -6
  90. package/dist/{login-SXsSH0I1.mjs → login-Bm2AnCez.mjs} +65 -80
  91. package/dist/{logout-bgOXjxbN.mjs → logout-BlyRJODO.mjs} +8 -7
  92. package/dist/{logs-BnwVbFuD.mjs → logs-CywPikkL.mjs} +9 -8
  93. package/dist/{manifest-CGM7XNLC.mjs → manifest-BBR46KFM.mjs} +15 -15
  94. package/dist/measure-C44EK_xt.mjs +20 -0
  95. package/dist/{measure-BEQfnLdN.mjs → measure-ClESGxIb.mjs} +2 -2
  96. package/dist/{metadata-Bu2HOmuX.mjs → metadata-B8ZSF9LA.mjs} +10 -9
  97. package/dist/{metadata-B0WZT3Yb.mjs → metadata-DqiI2q9q.mjs} +9 -8
  98. package/dist/parse-enum-CrEWOhuY.mjs +11 -0
  99. package/dist/{parse-id-B3B-0hUA.mjs → parse-id-lk_K-CEF.mjs} +1 -1
  100. package/dist/{parse-ref-D1yeDOn8.mjs → parse-ref-BiETXmvm.mjs} +1 -1
  101. package/dist/{parse-schemas-DgtVLikM.mjs → parse-schemas-BqUdWUwq.mjs} +2 -2
  102. package/dist/path-AEtZ3mBq.mjs +58 -0
  103. package/dist/{poll-BCnrcUVf.mjs → poll-DHKDpCiq.mjs} +2 -2
  104. package/dist/{poll-task-0b1V6G-8.mjs → poll-task-Cooi0lQV.mjs} +3 -20
  105. package/dist/{preflight-5ACaYnDp.mjs → preflight-aXV5LyDs.mjs} +4 -4
  106. package/dist/{process-FjsqDwKo.mjs → process-C7V8LJ-j.mjs} +1 -1
  107. package/dist/{prompt-DgDNy_Pc.mjs → prompt-CFKoys7k.mjs} +3 -1
  108. package/dist/{provision-29Zt62Ft.mjs → provision-UWcNDoDe.mjs} +29 -24
  109. package/dist/{ps-BMFiRCi4.mjs → ps-CJU0EbrC.mjs} +5 -3
  110. package/dist/ps-DEroLgbI.mjs +11 -0
  111. package/dist/{query-DxA353Hy.mjs → query-AaKzYnTY.mjs} +9 -8
  112. package/dist/{query-aba8MEe_.mjs → query-BlsVNZpD.mjs} +15 -13
  113. package/dist/{remove-BfgU_CQi.mjs → remove-BFWun0e8.mjs} +9 -8
  114. package/dist/{remove-collection-Brv72xUe.mjs → remove-collection-CoCmrrQs.mjs} +13 -9
  115. package/dist/{render-DuoDUTVL.mjs → render-CfznwleY.mjs} +15 -17
  116. package/dist/render-OQn3iRsI.mjs +32 -0
  117. package/dist/{rescan-values-DIAdjoq7.mjs → rescan-values-C0FDsjT7.mjs} +10 -9
  118. package/dist/{run-CgXRo0hD.mjs → run-B4Wn43zm.mjs} +10 -9
  119. package/dist/{runs-DtLRw6xg.mjs → runs-Bbaszr18.mjs} +9 -8
  120. package/dist/{runtime-Br8L4NPm.mjs → runtime-Dmv5VtUK.mjs} +657 -428
  121. package/dist/{schema-tables-DiKMY6lx.mjs → schema-tables-CaWinbuK.mjs} +9 -8
  122. package/dist/{schemas-Bvr8cOzo.mjs → schemas-DUgGpAyB.mjs} +7 -6
  123. package/dist/{search-BT_TCcTd.mjs → search-BLrBXLUk.mjs} +12 -16
  124. package/dist/segment-B3Uwwcsm.mjs +20 -0
  125. package/dist/{set-DtG0KH6P.mjs → set-B8cUbRLD.mjs} +13 -12
  126. package/dist/{set-CAIkXlPy.mjs → set-DfGsta5O.mjs} +11 -10
  127. package/dist/{setting-BDOi5fk_.mjs → setting-D2p2MA7f.mjs} +3 -3
  128. package/dist/{setup-LjTvvlJy.mjs → setup-C9ikBRw_.mjs} +9 -8
  129. package/dist/skills-CUHIcQS6.mjs +18 -0
  130. package/dist/skills-CiN1OQ8W.mjs +191 -0
  131. package/dist/snippet-B7D0uWlz.mjs +20 -0
  132. package/dist/{start-CXKt0Q7A.mjs → start-3PX3ahjT.mjs} +68 -36
  133. package/dist/{stash-dRw1UEwg.mjs → stash-EIDcSvpF.mjs} +17 -16
  134. package/dist/{status-C2niMfrQ.mjs → status-95ElRAu9.mjs} +12 -8
  135. package/dist/status-B0_MiZEf.mjs +100 -0
  136. package/dist/status-CEplmC44.mjs +34 -0
  137. package/dist/{stop-BdedYfwU.mjs → stop-CQ0XGrN8.mjs} +11 -10
  138. package/dist/{summary-BPDA4K99.mjs → summary-C12LiEuJ.mjs} +8 -7
  139. package/dist/{sync-schema-D95LLRpf.mjs → sync-schema-Ba8M3DiX.mjs} +10 -9
  140. package/dist/{table-B-PYcgGb.mjs → table-C7a5V6Zn.mjs} +1 -1
  141. package/dist/table-e6h8SLVX.mjs +20 -0
  142. package/dist/transform-BMYh1lsC.mjs +25 -0
  143. package/dist/transform-job-Cm7z5TfH.mjs +20 -0
  144. package/dist/{transform-job-Csr86muI.mjs → transform-job-DeTDPMxt.mjs} +1 -1
  145. package/dist/{tree-DazZT7dR.mjs → tree-Des2ZG9d.mjs} +6 -5
  146. package/dist/{update-DE6kjV-f.mjs → update-Bx54nWEI.mjs} +17 -15
  147. package/dist/{update-bW-i6gjZ.mjs → update-CyIZdbIQ.mjs} +11 -10
  148. package/dist/{update-djgvzO3K.mjs → update-DBi5U8zb.mjs} +16 -14
  149. package/dist/{update-CJSDB6S8.mjs → update-DHZubok3.mjs} +18 -14
  150. package/dist/{update-BBfvArCx.mjs → update-DSgceARZ.mjs} +11 -10
  151. package/dist/{update-DSWZSfpw.mjs → update-DzAN4SPj.mjs} +15 -13
  152. package/dist/{update-WyRKlQPh.mjs → update-F6DmZncY.mjs} +11 -10
  153. package/dist/{update-DTIWJxob.mjs → update-_QfgNa53.mjs} +12 -11
  154. package/dist/{update-dashcard-BhD5x__K.mjs → update-dashcard-wpSjv4M7.mjs} +11 -10
  155. package/dist/{update-9kVyE3BJ.mjs → update-mYVnoYNV.mjs} +15 -13
  156. package/dist/{update-659eQR1L.mjs → update-njHe3j-s.mjs} +15 -13
  157. package/dist/{upgrade-D58rvXHM.mjs → upgrade-iAuvhX-W.mjs} +9 -8
  158. package/dist/{url-DKkSu2D8.mjs → url-DWaT6WIZ.mjs} +11 -10
  159. package/dist/{uuid-BF20B59s.mjs → uuid-CMKnS8-z.mjs} +8 -6
  160. package/dist/{validate-CB0bu50i.mjs → validate-dPEOnOf8.mjs} +2 -1
  161. package/dist/{validate-query-CavIA0Q2.mjs → validate-query-Cw6WE5Y8.mjs} +3 -3
  162. package/dist/{values-DyjmpcbT.mjs → values-BfSTAbzc.mjs} +8 -7
  163. package/dist/verify-D5YtTqqp.mjs +79 -0
  164. package/dist/{wait-CeUPCgdc.mjs → wait-8yV9_WIo.mjs} +2 -2
  165. package/dist/{wait-DhkTaV6E.mjs → wait-Bv3Tsnv4.mjs} +12 -8
  166. package/dist/{wait-flags-BR-yqe7y.mjs → wait-flags-Dzq9BGQY.mjs} +20 -9
  167. package/dist/workspace-CKLZrR7l.mjs +26 -0
  168. package/dist/{workspace-credentials-Cctumbru.mjs → workspace-credentials-BXpABsNZ.mjs} +2 -41
  169. package/dist/yaml-YTQiYJ9s.mjs +43 -0
  170. package/package.json +6 -2
  171. package/skill-data/core/SKILL.md +177 -0
  172. package/skill-data/git-sync/SKILL.md +196 -0
  173. package/skill-data/mbql/SKILL.md +156 -0
  174. package/skill-data/mbql/references/operators.md +253 -0
  175. package/skill-data/transform/SKILL.md +197 -0
  176. package/skill-data/viz/SKILL.md +137 -0
  177. package/skill-data/viz/references/settings.md +312 -0
  178. package/skill-data/workspace/SKILL.md +390 -0
  179. package/skills/metabase-cli/SKILL.md +21 -0
  180. package/dist/add-collection-CPL1njYZ.mjs +0 -11
  181. package/dist/api-key-9p1UPnXn.mjs +0 -13
  182. package/dist/auth-N4w5xtwW.mjs +0 -19
  183. package/dist/card-4rZRb5bc.mjs +0 -20
  184. package/dist/collection-Cp_B02I4.mjs +0 -19
  185. package/dist/command-augment-D9pI9Vbh.mjs +0 -11
  186. package/dist/create-doyv3SxU.mjs +0 -50
  187. package/dist/create-ov-De5dO.mjs +0 -125
  188. package/dist/dashboard-BYBiA-IG.mjs +0 -20
  189. package/dist/db-CObVU22j.mjs +0 -22
  190. package/dist/eid-Cr5r-t9B.mjs +0 -13
  191. package/dist/field-CbljasCH.mjs +0 -18
  192. package/dist/flag-pair-Fmcdkrfx.mjs +0 -17
  193. package/dist/get-run-CSrXHDGS.mjs +0 -36
  194. package/dist/git-sync-BGkS8o5b.mjs +0 -28
  195. package/dist/is-dirty-BOZ4xz92.mjs +0 -10
  196. package/dist/key-CCJdVWKc.mjs +0 -12
  197. package/dist/license-DLLTpFvP.mjs +0 -17
  198. package/dist/list-BNzdnE1c.mjs +0 -55
  199. package/dist/measure-B54VtKym.mjs +0 -19
  200. package/dist/package-D-aVYFKM.mjs +0 -80
  201. package/dist/ps-C5FOLwL2.mjs +0 -11
  202. package/dist/segment-C2ui5dSd.mjs +0 -19
  203. package/dist/snippet-BcgVYsoR.mjs +0 -19
  204. package/dist/status-BEONmJWv.mjs +0 -32
  205. package/dist/status-BWep0PFe.mjs +0 -56
  206. package/dist/table-lCNGbvej.mjs +0 -19
  207. package/dist/transform-BGAm1s4f.mjs +0 -24
  208. package/dist/transform-job-cNTJ30pm.mjs +0 -19
  209. package/dist/workspace-DtcBldk0.mjs +0 -24
  210. /package/dist/{body-flags-BK7J6Daz.mjs → body-flags-D7q87Btw.mjs} +0 -0
  211. /package/dist/{field-B3gvaqpK.mjs → field-yomXlkvl.mjs} +0 -0
  212. /package/dist/{paginate-CTSfuYiF.mjs → paginate-Dfm9eO9A.mjs} +0 -0
  213. /package/dist/{revision-message-flag-oyq2xrDU.mjs → revision-message-flag-WmsIzUOM.mjs} +0 -0
  214. /package/dist/{segment-BMrUBz94.mjs → segment-Be2v4ilr.mjs} +0 -0
  215. /package/dist/{setting-CTaAeMci.mjs → setting-oL97SNeO.mjs} +0 -0
  216. /package/dist/{snippet-Dw0Sjzkr.mjs → snippet-COggaWxx.mjs} +0 -0
  217. /package/dist/{transform-IEX4Mx3X.mjs → transform-GTW3G-01.mjs} +0 -0
  218. /package/dist/{workspace-C5q4nbpY.mjs → workspace-BBXJczJK.mjs} +0 -0
@@ -1,17 +1,18 @@
1
- import "./package-D-aVYFKM.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem, warn } from "./render-DuoDUTVL.mjs";
4
- import { ConfigError, errorMessage } from "./predicates-CGO17Q15.mjs";
5
- import { connectionFlags, createClient, defineMetabaseCommand, localUrl, outputFlags, parseInteger, parseOptionalInteger, profileFlag, resolveLicenseToken } from "./runtime-Br8L4NPm.mjs";
6
- import { parseId } from "./parse-id-B3B-0hUA.mjs";
7
- import { pollUntil } from "./poll-BCnrcUVf.mjs";
8
- import { runProcess } from "./process-FjsqDwKo.mjs";
9
- import { Workspace } from "./workspace-C5q4nbpY.mjs";
10
- import { CONTAINER_REPO_DIR, checkDockerReady, containerLifecycleStatus, containerNameFor, pullImage, removeContainer, runWorkspaceContainer, scrubContainerConfig, waitForConfigConsumed } from "./docker-D9sC_37H.mjs";
11
- import { REPO_SYNC_MODES, RepoSyncMode, buildCredentialsJson, generateWorkspaceCredentials, injectCredentialsIntoConfig, injectRepoSettingsIntoConfig } from "./workspace-credentials-Cctumbru.mjs";
1
+ import { ConfigError, errorMessage } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { createClient, defineMetabaseCommand, localUrl, parseInteger, parseOptionalInteger, resolveLicenseToken } from "./runtime-Dmv5VtUK.mjs";
4
+ import { warn } from "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
7
+ import { pollUntil } from "./poll-DHKDpCiq.mjs";
8
+ import "./yaml-YTQiYJ9s.mjs";
9
+ import { runProcess } from "./process-C7V8LJ-j.mjs";
10
+ import { Workspace } from "./workspace-BBXJczJK.mjs";
11
+ import { CONTAINER_REPO_DIR, checkDockerReady, containerLifecycleStatus, containerNameFor, pullImage, removeContainer, runWorkspaceContainer, scrubContainerConfig, waitForConfigConsumed } from "./docker-Oq80q3tu.mjs";
12
+ import { REPO_SYNC_MODES, RepoSyncMode, buildCredentialsJson, generateWorkspaceCredentials, injectCredentialsIntoConfig, injectRepoSettingsIntoConfig } from "./workspace-credentials-BXpABsNZ.mjs";
12
13
  import { z } from "zod";
13
- import { stat } from "node:fs/promises";
14
14
  import { resolve } from "node:path";
15
+ import { stat } from "node:fs/promises";
15
16
  import { createServer } from "node:net";
16
17
 
17
18
  //#region src/core/http/probe.ts
@@ -52,7 +53,10 @@ async function findFreePort(start) {
52
53
 
53
54
  //#endregion
54
55
  //#region src/commands/workspace/start.ts
55
- const DEFAULT_IMAGE = "metabase/metabase-dev:feature-workspaces-v2";
56
+ const ENTERPRISE_IMAGE = "metabase/metabase-enterprise";
57
+ const ENTERPRISE_HEAD_IMAGE = "metabase/metabase-enterprise-head";
58
+ const LATEST_TAG = "latest";
59
+ const WORKSPACES_MIN_VERSION = 62;
56
60
  const DEFAULT_HOST_PORT = 3e3;
57
61
  const DEFAULT_READY_TIMEOUT_MS = 24e4;
58
62
  const HEALTH_INTERVAL_MS = 2e3;
@@ -121,6 +125,10 @@ var start_default = defineMetabaseCommand({
121
125
  name: "start",
122
126
  description: "Start a local Docker container that serves as the workspace's dev instance"
123
127
  },
128
+ capabilities: {
129
+ minVersion: WORKSPACES_MIN_VERSION,
130
+ tokenFeature: "workspaces"
131
+ },
124
132
  args: {
125
133
  ...outputFlags,
126
134
  ...profileFlag,
@@ -136,8 +144,7 @@ var start_default = defineMetabaseCommand({
136
144
  },
137
145
  image: {
138
146
  type: "string",
139
- description: `Docker image to run (default: ${DEFAULT_IMAGE})`,
140
- default: DEFAULT_IMAGE
147
+ description: `Docker image to run. Default: ${ENTERPRISE_IMAGE}:${LATEST_TAG} once Metabase v${WORKSPACES_MIN_VERSION} is released, otherwise ${ENTERPRISE_HEAD_IMAGE}:${LATEST_TAG}.`
141
148
  },
142
149
  wait: {
143
150
  type: "boolean",
@@ -183,12 +190,12 @@ var start_default = defineMetabaseCommand({
183
190
  "mb workspace start 1",
184
191
  "mb workspace start 1 --wait",
185
192
  "mb workspace start 1 --port 3100",
186
- "mb workspace start 1 --image metabase/metabase-dev:feature-workspaces-v2 --no-pull",
193
+ "mb workspace start 1 --image metabase/metabase-enterprise:latest --no-pull",
187
194
  "mb workspace start 1 --force",
188
195
  "mb workspace start 1 --repo /path/to/sync-repo --wait",
189
196
  "mb workspace start 1 --repo /path/to/sync-repo --repo-branch dev --repo-mode read-only"
190
197
  ],
191
- async run({ args, ctx, getClient, getResolvedConfig }) {
198
+ async run({ args, ctx, getClient, getResolvedConfig, getServerInfo }) {
192
199
  const workspaceId = parseId(args.id);
193
200
  const containerName = containerNameFor(workspaceId);
194
201
  const requestedPort = parseOptionalInteger(args.port, {
@@ -202,9 +209,11 @@ var start_default = defineMetabaseCommand({
202
209
  const client = await getClient();
203
210
  const resolved = await getResolvedConfig();
204
211
  const licenseToken = await resolveLicenseToken({});
212
+ const serverInfo = await getServerInfo();
213
+ const image = args.image ?? resolveDefaultImage(serverInfo?.version ?? null);
205
214
  await checkDockerReady();
206
215
  await ensureNoExistingContainer(workspaceId, containerName, args.force);
207
- const pullPromise = args.pull ? pullImage(args.image) : Promise.resolve();
216
+ const pullPromise = args.pull ? pullImage(image) : Promise.resolve();
208
217
  const workspace = await client.requestParsed(Workspace, `/api/ee/workspace-manager/${workspaceId}`);
209
218
  assertAllDatabasesProvisioned(workspace);
210
219
  const hostPort = await resolveHostPort(requestedPort);
@@ -217,44 +226,45 @@ var start_default = defineMetabaseCommand({
217
226
  mode: args["repo-mode"]
218
227
  })
219
228
  ]);
220
- const credentials = generateWorkspaceCredentials(workspaceId);
221
- const configWithCredentials = injectCredentialsIntoConfig(parentConfigYaml, credentials);
222
- const configYaml = repoOptions !== null ? injectRepoSettingsIntoConfig(configWithCredentials, repoOptions.repo) : configWithCredentials;
223
- const credentialsJson = buildCredentialsJson(credentials);
229
+ const bundle = assembleBootBundle(parentConfigYaml, workspaceId, repoOptions);
224
230
  await pullPromise;
225
231
  await runWorkspaceContainer({
226
232
  workspaceId,
227
233
  workspaceName: workspace.name,
228
234
  profile: resolved.profile,
229
235
  parentUrl: resolved.url,
230
- image: args.image,
236
+ image,
231
237
  hostPort,
232
- configYaml,
233
- credentialsJson,
238
+ configYaml: bundle.configYaml,
239
+ credentialsJson: bundle.credentialsJson,
234
240
  licenseToken,
235
241
  bindMounts: repoOptions === null ? [] : [repoOptions.bindMount]
236
242
  });
237
- await waitForConfigConsumed(workspaceId, readyTimeoutMs);
238
- try {
239
- await scrubContainerConfig(workspaceId);
240
- } catch (error) {
241
- warn(`could not scrub in-container config.yml: ${errorMessage(error)}`);
242
- }
243
- const needsHealth = args.wait || metadataJson !== null;
244
- if (needsHealth) await waitForHealth(hostPort, readyTimeoutMs);
245
- if (metadataJson !== null) await importMetadataIntoChild(hostPort, credentials, metadataJson, readyTimeoutMs);
243
+ const state = await finalizeContainer({
244
+ workspaceId,
245
+ hostPort,
246
+ credentials: bundle.credentials,
247
+ metadataJson,
248
+ wait: args.wait,
249
+ timeoutMs: readyTimeoutMs
250
+ });
246
251
  const result = {
247
252
  workspace_id: workspaceId,
248
253
  workspace_name: workspace.name,
249
254
  container_name: containerName,
250
- state: needsHealth ? "running" : "starting",
255
+ state,
251
256
  host_port: hostPort,
252
257
  url: localUrl(hostPort),
253
- image: args.image
258
+ image
254
259
  };
255
260
  renderItem(result, startResultView, ctx);
256
261
  }
257
262
  });
263
+ function resolveDefaultImage(version) {
264
+ const isReleased = version !== null && version.major >= WORKSPACES_MIN_VERSION;
265
+ const repo = isReleased ? ENTERPRISE_IMAGE : ENTERPRISE_HEAD_IMAGE;
266
+ return `${repo}:${LATEST_TAG}`;
267
+ }
258
268
  function assertAllDatabasesProvisioned(workspace) {
259
269
  const databases = workspace.databases ?? [];
260
270
  if (databases.length === 0) throw new ConfigError(`workspace ${workspace.id} has no databases — provision at least one before starting`);
@@ -300,6 +310,28 @@ async function fetchMetadataJson(client, workspaceId) {
300
310
  });
301
311
  return new Uint8Array(await response.arrayBuffer());
302
312
  }
313
+ function assembleBootBundle(parentConfigYaml, workspaceId, repoOptions) {
314
+ const credentials = generateWorkspaceCredentials(workspaceId);
315
+ const withCredentials = injectCredentialsIntoConfig(parentConfigYaml, credentials);
316
+ const configYaml = repoOptions !== null ? injectRepoSettingsIntoConfig(withCredentials, repoOptions.repo) : withCredentials;
317
+ return {
318
+ configYaml,
319
+ credentialsJson: buildCredentialsJson(credentials),
320
+ credentials
321
+ };
322
+ }
323
+ async function finalizeContainer(input) {
324
+ await waitForConfigConsumed(input.workspaceId, input.timeoutMs);
325
+ try {
326
+ await scrubContainerConfig(input.workspaceId);
327
+ } catch (error) {
328
+ warn(`could not scrub in-container config.yml: ${errorMessage(error)}`);
329
+ }
330
+ const reachedHealth = input.wait || input.metadataJson !== null;
331
+ if (reachedHealth) await waitForHealth(input.hostPort, input.timeoutMs);
332
+ if (input.metadataJson !== null) await importMetadataIntoChild(input.hostPort, input.credentials, input.metadataJson, input.timeoutMs);
333
+ return reachedHealth ? "running" : "starting";
334
+ }
303
335
  async function waitForHealth(hostPort, timeoutMs) {
304
336
  const url = `${localUrl(hostPort)}/api/health`;
305
337
  await pollUntil(() => probeHealth(url, HEALTH_PROBE_TIMEOUT_MS), (probe) => probe.ready, {
@@ -1,11 +1,12 @@
1
- import "./package-D-aVYFKM.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import { ConfigError } from "./predicates-CGO17Q15.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Br8L4NPm.mjs";
6
- import { parseId } from "./parse-id-B3B-0hUA.mjs";
7
- import { REMOTE_SYNC_PATHS, SyncTask, pollFlags, pollSyncTask, throwIfFailedTask } from "./poll-task-0b1V6G-8.mjs";
8
- import "./poll-BCnrcUVf.mjs";
1
+ import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import "./parse-id-lk_K-CEF.mjs";
7
+ import { REMOTE_SYNC_PATHS, SyncTask, pollSyncTask, throwIfFailedTask } from "./poll-task-Cooi0lQV.mjs";
8
+ import "./poll-DHKDpCiq.mjs";
9
+ import { gitSyncWaitFlags, parseWaitFlags } from "./wait-flags-Dzq9BGQY.mjs";
9
10
  import { z } from "zod";
10
11
 
11
12
  //#region src/commands/git-sync/stash.ts
@@ -43,6 +44,10 @@ var stash_default = defineMetabaseCommand({
43
44
  name: "stash",
44
45
  description: "Export current Metabase state to a new branch on the git remote"
45
46
  },
47
+ capabilities: {
48
+ minVersion: 60,
49
+ tokenFeature: "remote_sync"
50
+ },
46
51
  args: {
47
52
  ...outputFlags,
48
53
  ...profileFlag,
@@ -59,7 +64,7 @@ var stash_default = defineMetabaseCommand({
59
64
  alias: "m",
60
65
  default: DEFAULT_STASH_MESSAGE
61
66
  },
62
- ...pollFlags
67
+ ...gitSyncWaitFlags
63
68
  },
64
69
  outputSchema: SyncStashResult,
65
70
  examples: ["mb git-sync stash --new-branch wip", "mb git-sync stash --new-branch wip -m \"work in progress\" --json"],
@@ -68,8 +73,7 @@ var stash_default = defineMetabaseCommand({
68
73
  if (newBranch === "") throw new ConfigError("invalid new-branch: must not be blank");
69
74
  const message = args.message.trim();
70
75
  if (message === "") throw new ConfigError("invalid message: must not be blank");
71
- const timeoutMs = parseId(args.timeout, "timeout");
72
- const intervalMs = parseId(args.interval, "interval");
76
+ const wait = parseWaitFlags(args);
73
77
  const body = {
74
78
  new_branch: newBranch,
75
79
  message
@@ -79,7 +83,7 @@ var stash_default = defineMetabaseCommand({
79
83
  method: "POST",
80
84
  body
81
85
  });
82
- if (!args.wait) {
86
+ if (!wait.enabled) {
83
87
  const result$1 = {
84
88
  status: kickoff.status,
85
89
  message: kickoff.message,
@@ -88,10 +92,7 @@ var stash_default = defineMetabaseCommand({
88
92
  renderItem(result$1, syncStashView, ctx);
89
93
  return;
90
94
  }
91
- const final = await pollSyncTask(client, {
92
- timeoutMs,
93
- intervalMs
94
- });
95
+ const final = await pollSyncTask(client, wait.schedule);
95
96
  const result = {
96
97
  status: kickoff.status,
97
98
  message: kickoff.message,
@@ -1,11 +1,11 @@
1
- import "./package-D-aVYFKM.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import "./predicates-CGO17Q15.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Br8L4NPm.mjs";
6
- import { REMOTE_SYNC_PATHS, SyncTask, fetchCurrentTask, fetchOptionalParsed } from "./poll-task-0b1V6G-8.mjs";
7
- import "./poll-BCnrcUVf.mjs";
8
- import { IsDirtyResult } from "./is-dirty-WNi8a6O9.mjs";
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import { REMOTE_SYNC_PATHS, SyncTask, fetchCurrentTask, fetchOptionalParsed } from "./poll-task-Cooi0lQV.mjs";
7
+ import "./poll-DHKDpCiq.mjs";
8
+ import { IsDirtyResult } from "./is-dirty-BZOaryxT.mjs";
9
9
  import { z } from "zod";
10
10
 
11
11
  //#region src/commands/git-sync/status.ts
@@ -37,6 +37,10 @@ var status_default = defineMetabaseCommand({
37
37
  name: "status",
38
38
  description: "Show current git-sync state (branch, dirty, current task)"
39
39
  },
40
+ capabilities: {
41
+ minVersion: 60,
42
+ tokenFeature: "remote_sync"
43
+ },
40
44
  args: {
41
45
  ...outputFlags,
42
46
  ...profileFlag,
@@ -0,0 +1,100 @@
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { ParsedVersionSchema, ProbedUser, ProfileLastFailure, TokenFeatures, defineMetabaseCommand, originOnly, readProfileRecord, resolveProfileName } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import { renderTimestamp, renderUserName, renderUserRole, renderVersionTag } from "./render-OQn3iRsI.mjs";
7
+ import { z } from "zod";
8
+
9
+ //#region src/commands/auth/status.ts
10
+ const AuthStatus = z.object({
11
+ profile: z.string(),
12
+ present: z.boolean(),
13
+ url: z.string().nullable(),
14
+ user: ProbedUser.nullable(),
15
+ version: ParsedVersionSchema.nullable(),
16
+ tokenFeatures: TokenFeatures.nullable(),
17
+ lastProbedAt: z.iso.datetime().nullable(),
18
+ lastFailure: ProfileLastFailure.nullable()
19
+ });
20
+ const authStatusView = {
21
+ compactPick: AuthStatus,
22
+ tableColumns: [
23
+ {
24
+ key: "profile",
25
+ label: "Profile"
26
+ },
27
+ {
28
+ key: "present",
29
+ label: "Authenticated"
30
+ },
31
+ {
32
+ key: "url",
33
+ label: "URL"
34
+ },
35
+ {
36
+ key: "user",
37
+ label: "Logged in as",
38
+ format: (value) => renderUserName(value)
39
+ },
40
+ {
41
+ key: "user",
42
+ label: "Role",
43
+ format: (value) => renderUserRole(value)
44
+ },
45
+ {
46
+ key: "version",
47
+ label: "Version",
48
+ format: (value) => renderVersionTag(value)
49
+ },
50
+ {
51
+ key: "lastProbedAt",
52
+ label: "Last probed",
53
+ format: (value) => renderTimestamp(value)
54
+ }
55
+ ]
56
+ };
57
+ var status_default = defineMetabaseCommand({
58
+ meta: {
59
+ name: "status",
60
+ description: "Show authentication status for a profile"
61
+ },
62
+ capabilities: null,
63
+ args: {
64
+ ...outputFlags,
65
+ ...profileFlag
66
+ },
67
+ outputSchema: AuthStatus,
68
+ examples: ["mb auth status --json", "mb auth status --profile staging"],
69
+ async run({ args, ctx }) {
70
+ const profileName = resolveProfileName(args.profile);
71
+ const record = await readProfileRecord(profileName);
72
+ if (record === null) {
73
+ renderItem({
74
+ profile: profileName,
75
+ present: false,
76
+ url: null,
77
+ user: null,
78
+ version: null,
79
+ tokenFeatures: null,
80
+ lastProbedAt: null,
81
+ lastFailure: null
82
+ }, authStatusView, ctx);
83
+ return;
84
+ }
85
+ const probe = record.lastProbe;
86
+ renderItem({
87
+ profile: profileName,
88
+ present: true,
89
+ url: originOnly(record.url),
90
+ user: probe?.user ?? null,
91
+ version: probe?.version ?? null,
92
+ tokenFeatures: probe?.tokenFeatures ?? null,
93
+ lastProbedAt: probe?.at ?? null,
94
+ lastFailure: record.lastFailure
95
+ }, authStatusView, ctx);
96
+ }
97
+ });
98
+
99
+ //#endregion
100
+ export { status_default as default };
@@ -0,0 +1,34 @@
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { outputFlags } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand, readLicense } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderScalar } from "./render-CfznwleY.mjs";
6
+ import { z } from "zod";
7
+
8
+ //#region src/commands/workspace/license/status.ts
9
+ const LicenseStatus = z.object({ present: z.boolean() });
10
+ const licenseStatusView = {
11
+ compactPick: LicenseStatus,
12
+ tableColumns: [{
13
+ key: "present",
14
+ label: "Present"
15
+ }]
16
+ };
17
+ var status_default = defineMetabaseCommand({
18
+ meta: {
19
+ name: "status",
20
+ description: "Show whether a license token is stored (does not reveal value)"
21
+ },
22
+ capabilities: null,
23
+ args: { ...outputFlags },
24
+ outputSchema: LicenseStatus,
25
+ examples: ["mb workspace license status", "mb workspace license status --json"],
26
+ async run({ ctx }) {
27
+ const present = await readLicense() !== null;
28
+ const summary = present ? "A license token is stored." : "No license token stored.";
29
+ renderScalar({ present }, licenseStatusView, summary, ctx);
30
+ }
31
+ });
32
+
33
+ //#endregion
34
+ export { status_default as default };
@@ -1,13 +1,13 @@
1
- import "./package-D-aVYFKM.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import "./predicates-CGO17Q15.mjs";
5
- import { defineMetabaseCommand, outputFlags } from "./runtime-Br8L4NPm.mjs";
6
- import { parseId } from "./parse-id-B3B-0hUA.mjs";
7
- import "./poll-BCnrcUVf.mjs";
8
- import "./process-FjsqDwKo.mjs";
9
- import { checkDockerReady, containerLifecycleStatus, containerNameFor, stopContainer } from "./docker-D9sC_37H.mjs";
10
- import { LocalWorkspaceState } from "./ps-BMFiRCi4.mjs";
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { outputFlags } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
7
+ import "./poll-DHKDpCiq.mjs";
8
+ import "./process-C7V8LJ-j.mjs";
9
+ import { checkDockerReady, containerLifecycleStatus, containerNameFor, stopContainer } from "./docker-Oq80q3tu.mjs";
10
+ import { LocalWorkspaceState } from "./ps-CJU0EbrC.mjs";
11
11
  import { z } from "zod";
12
12
 
13
13
  //#region src/commands/workspace/stop.ts
@@ -47,6 +47,7 @@ var stop_default = defineMetabaseCommand({
47
47
  name: "stop",
48
48
  description: "Stop the local Docker container for a workspace (does not remove it)"
49
49
  },
50
+ capabilities: null,
50
51
  args: {
51
52
  ...outputFlags,
52
53
  id: {
@@ -1,10 +1,10 @@
1
- import "./package-D-aVYFKM.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import "./predicates-CGO17Q15.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Br8L4NPm.mjs";
6
- import { parseId } from "./parse-id-B3B-0hUA.mjs";
7
- import { FieldSummary, FieldSummaryRaw, fieldSummaryView } from "./field-B3gvaqpK.mjs";
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import { FieldSummary, FieldSummaryRaw, fieldSummaryView } from "./field-yomXlkvl.mjs";
7
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
8
 
9
9
  //#region src/commands/field/summary.ts
10
10
  var summary_default = defineMetabaseCommand({
@@ -12,6 +12,7 @@ var summary_default = defineMetabaseCommand({
12
12
  name: "summary",
13
13
  description: "Get the row count and distinct count for a field"
14
14
  },
15
+ capabilities: { minVersion: 58 },
15
16
  args: {
16
17
  ...outputFlags,
17
18
  ...profileFlag,
@@ -1,12 +1,12 @@
1
- import "./package-D-aVYFKM.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-DuoDUTVL.mjs";
4
- import "./predicates-CGO17Q15.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Br8L4NPm.mjs";
6
- import { parseId } from "./parse-id-B3B-0hUA.mjs";
7
- import "./field-B3gvaqpK.mjs";
8
- import "./table-B-PYcgGb.mjs";
9
- import { DatabaseSyncResult, databaseSyncResultView } from "./database-vvig8k4x.mjs";
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { renderItem } from "./render-CfznwleY.mjs";
6
+ import "./field-yomXlkvl.mjs";
7
+ import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
+ import "./table-C7a5V6Zn.mjs";
9
+ import { DatabaseSyncResult, databaseSyncResultView } from "./database-lH-B3G1I.mjs";
10
10
  import { z } from "zod";
11
11
 
12
12
  //#region src/commands/db/sync-schema.ts
@@ -16,6 +16,7 @@ var sync_schema_default = defineMetabaseCommand({
16
16
  name: "sync-schema",
17
17
  description: "Trigger a manual schema sync for a database"
18
18
  },
19
+ capabilities: { minVersion: 58 },
19
20
  args: {
20
21
  ...outputFlags,
21
22
  ...profileFlag,
@@ -1,4 +1,4 @@
1
- import { Field, FieldCompact } from "./field-B3gvaqpK.mjs";
1
+ import { Field, FieldCompact } from "./field-yomXlkvl.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/domain/table.ts
@@ -0,0 +1,20 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/table/index.ts
4
+ var table_default = defineCommand({
5
+ meta: {
6
+ name: "table",
7
+ alias: "tables",
8
+ description: "Manage Metabase tables"
9
+ },
10
+ subCommands: {
11
+ list: () => import("./list-sD5N3fGk.mjs").then((m) => m.default),
12
+ get: () => import("./get-C_w1kvN3.mjs").then((m) => m.default),
13
+ metadata: () => import("./metadata-DqiI2q9q.mjs").then((m) => m.default),
14
+ fields: () => import("./fields-CoQi99gv.mjs").then((m) => m.default),
15
+ update: () => import("./update-_QfgNa53.mjs").then((m) => m.default)
16
+ }
17
+ });
18
+
19
+ //#endregion
20
+ export { table_default as default };
@@ -0,0 +1,25 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/transform/index.ts
4
+ var transform_default = defineCommand({
5
+ meta: {
6
+ name: "transform",
7
+ alias: "transforms",
8
+ description: "Manage Metabase transforms"
9
+ },
10
+ subCommands: {
11
+ list: () => import("./list-C3hfovHv.mjs").then((mod) => mod.default),
12
+ get: () => import("./get-C2p383Qc.mjs").then((mod) => mod.default),
13
+ create: () => import("./create-BYlIju0b.mjs").then((mod) => mod.default),
14
+ update: () => import("./update-mYVnoYNV.mjs").then((mod) => mod.default),
15
+ delete: () => import("./delete-ZjnV35OJ.mjs").then((mod) => mod.default),
16
+ "delete-table": () => import("./delete-table-agZJpivt.mjs").then((mod) => mod.default),
17
+ run: () => import("./run-B4Wn43zm.mjs").then((mod) => mod.default),
18
+ cancel: () => import("./cancel-Dl_Ho056.mjs").then((mod) => mod.default),
19
+ "get-run": () => import("./get-run-B7sKdaDU.mjs").then((mod) => mod.default),
20
+ runs: () => import("./runs-Bbaszr18.mjs").then((mod) => mod.default)
21
+ }
22
+ });
23
+
24
+ //#endregion
25
+ export { transform_default as default };
@@ -0,0 +1,20 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/transform-job/index.ts
4
+ var transform_job_default = defineCommand({
5
+ meta: {
6
+ name: "transform-job",
7
+ alias: "transform-jobs",
8
+ description: "Manage Metabase transform jobs"
9
+ },
10
+ subCommands: {
11
+ list: () => import("./list-d58BprgJ.mjs").then((mod) => mod.default),
12
+ get: () => import("./get-Hc93A0Yz.mjs").then((mod) => mod.default),
13
+ create: () => import("./create-CzzrbL0u.mjs").then((mod) => mod.default),
14
+ update: () => import("./update-DSgceARZ.mjs").then((mod) => mod.default),
15
+ delete: () => import("./delete-Dimc-2y8.mjs").then((mod) => mod.default)
16
+ }
17
+ });
18
+
19
+ //#endregion
20
+ export { transform_job_default as default };
@@ -27,7 +27,7 @@ const TransformJob = z.object({
27
27
  description: z.string().nullable(),
28
28
  schedule: z.string(),
29
29
  ui_display_type: JobUiDisplayType,
30
- active: z.boolean(),
30
+ active: z.boolean().optional(),
31
31
  entity_id: z.string().nullable(),
32
32
  created_at: z.string(),
33
33
  updated_at: z.string(),
@@ -1,8 +1,8 @@
1
- import "./package-D-aVYFKM.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import { writeJson } from "./render-DuoDUTVL.mjs";
4
- import { ConfigError } from "./predicates-CGO17Q15.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-Br8L4NPm.mjs";
1
+ import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
+ import "./capabilities-7e9MgquN.mjs";
5
+ import { writeJson } from "./render-CfznwleY.mjs";
6
6
  import { CollectionTreeNode } from "./collection-B3sPXRLs.mjs";
7
7
  import { z } from "zod";
8
8
 
@@ -13,6 +13,7 @@ var tree_default = defineMetabaseCommand({
13
13
  name: "tree",
14
14
  description: "Fetch the collection hierarchy as a nested tree (JSON only)"
15
15
  },
16
+ capabilities: { minVersion: 58 },
16
17
  args: {
17
18
  ...outputFlags,
18
19
  ...profileFlag,