@metabase/cli 0.1.6 → 0.1.8-alpha.cleanup-workspaces.75fe1d5

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 (198) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/README.md +16 -238
  3. package/dist/add-collection-BGifL-7Y.mjs +10 -0
  4. package/dist/{add-collection-BU8r3r2M.mjs → add-collection-C5ijC4e-.mjs} +8 -6
  5. package/dist/{archive-BNinrUak.mjs → archive-2GZVq0n2.mjs} +7 -8
  6. package/dist/{archive-lWgqiFAt.mjs → archive-C5pXDf6a.mjs} +5 -6
  7. package/dist/{archive-C1enZgKV.mjs → archive-CTEybKPq.mjs} +6 -7
  8. package/dist/{archive-DMPS8Kih.mjs → archive-DEtOH_jf.mjs} +5 -6
  9. package/dist/{archive-CDA0KxL8.mjs → archive-DTrn90If.mjs} +5 -6
  10. package/dist/{archive-CRhiBpPJ.mjs → archive-nqKJOyOt.mjs} +5 -6
  11. package/dist/auth-Divr9vkY.mjs +19 -0
  12. package/dist/{body-DjdFxjpg.mjs → body-BMyDvOjf.mjs} +2 -2
  13. package/dist/{branches-B1WRfG7-.mjs → branches-B7Zf-nxr.mjs} +5 -6
  14. package/dist/{cancel-Dl_Ho056.mjs → cancel-WwjcCE2R.mjs} +6 -7
  15. package/dist/{cancel-task-CdigdCaO.mjs → cancel-task-E4cCeJTc.mjs} +6 -7
  16. package/dist/{render-CfznwleY.mjs → capabilities-Dj3NgPHg.mjs} +66 -10
  17. package/dist/card-BHAcovSB.mjs +20 -0
  18. package/dist/{card-DlCAaAPq.mjs → card-BtPiKjbB.mjs} +1 -1
  19. package/dist/{cards-BGiJS675.mjs → cards-BW0Spirk.mjs} +4 -5
  20. package/dist/cli.mjs +23 -24
  21. package/dist/collection-DZx-vWb2.mjs +20 -0
  22. package/dist/{create-BNiva__H.mjs → create-BV_VpyyI.mjs} +11 -12
  23. package/dist/{create-BTcpaop_.mjs → create-B_Ysb6Ex.mjs} +7 -8
  24. package/dist/{create-BYlIju0b.mjs → create-BgeD2GMZ.mjs} +10 -11
  25. package/dist/{create-DGth_uOp.mjs → create-Bxkik5Fs.mjs} +9 -10
  26. package/dist/{create-CzzrbL0u.mjs → create-CZfHpi_I.mjs} +8 -9
  27. package/dist/{create-Be_0Vier.mjs → create-CbwFOL9h.mjs} +8 -9
  28. package/dist/{create-dhxPxfF3.mjs → create-CbyY4xTG.mjs} +12 -13
  29. package/dist/{create-CwGtmwqm.mjs → create-HCCdsuZR.mjs} +9 -10
  30. package/dist/{create-branch-DKZkoQ64.mjs → create-branch-BNRq3tO2.mjs} +6 -7
  31. package/dist/{current-task-CCRzm0_7.mjs → current-task-ZvTjL4hP.mjs} +7 -8
  32. package/dist/dashboard-DCWGcx3e.mjs +21 -0
  33. package/dist/{database-lH-B3G1I.mjs → database-_Td7rG4o.mjs} +1 -1
  34. package/dist/db-bD6fwLwc.mjs +22 -0
  35. package/dist/{delete-ZjnV35OJ.mjs → delete-D5-ITH10.mjs} +8 -7
  36. package/dist/{delete-Dimc-2y8.mjs → delete-DvmHTMwf.mjs} +8 -7
  37. package/dist/{delete-runtime-B6RQo_pw.mjs → delete-runtime-Bo7v-0au.mjs} +6 -6
  38. package/dist/{delete-table-agZJpivt.mjs → delete-table-DjmO5Qe4.mjs} +8 -7
  39. package/dist/{dirty-D4d0yHqj.mjs → dirty-BJgU1SGQ.mjs} +5 -6
  40. package/dist/{eid-BXzaQh0o.mjs → eid-pqSVgO2g.mjs} +12 -8
  41. package/dist/{error-C9S6PN3-.mjs → error-Br6irjpM.mjs} +3 -2
  42. package/dist/{export-DTygoXBP.mjs → export-gVXTOxC2.mjs} +10 -10
  43. package/dist/field-BFWc8q2W.mjs +18 -0
  44. package/dist/{field-yomXlkvl.mjs → field-MGxpNQUH.mjs} +12 -3
  45. package/dist/{fields-CoQi99gv.mjs → fields-DK2TYRK2.mjs} +6 -7
  46. package/dist/{get-DQTZG_NP.mjs → get-BjArD6Er.mjs} +4 -5
  47. package/dist/{get-C3HdQ91a.mjs → get-C1RSXOhf.mjs} +5 -6
  48. package/dist/{get-DSWFjy7O.mjs → get-C3RI_hKG.mjs} +4 -5
  49. package/dist/{get-C_w1kvN3.mjs → get-C7UEEICF.mjs} +6 -7
  50. package/dist/{get-Bzys7vgp.mjs → get-D-3tOuWQ.mjs} +4 -5
  51. package/dist/{get-Hc93A0Yz.mjs → get-DDF7_apz.mjs} +5 -6
  52. package/dist/{get-D3SbEQSE.mjs → get-DYgLtHb8.mjs} +4 -5
  53. package/dist/{get-CP3Z3NiH.mjs → get-DnK3WGDH.mjs} +6 -7
  54. package/dist/{get-C2p383Qc.mjs → get-DnyZMx-0.mjs} +5 -6
  55. package/dist/{get-DFxZXaKz.mjs → get-DtG5ytvs.mjs} +5 -7
  56. package/dist/{get-CzuzeKSe.mjs → get-Dy4NedW5.mjs} +7 -8
  57. package/dist/{get-Ddr0XLh7.mjs → get-_JI4GiPa.mjs} +5 -6
  58. package/dist/{get-run-B7sKdaDU.mjs → get-run-CZwIo5QR.mjs} +5 -6
  59. package/dist/{get-lb7q3JYs.mjs → get-xo5_PD1n.mjs} +3 -4
  60. package/dist/git-sync-Ch00miSa.mjs +28 -0
  61. package/dist/{has-remote-changes-BY10-nnE.mjs → has-remote-changes-tuuoPdHV.mjs} +7 -7
  62. package/dist/{import-CiMz4Wz-.mjs → import-BOzyRPTk.mjs} +11 -10
  63. package/dist/{is-dirty-BZOaryxT.mjs → is-dirty-BXN1F9yR.mjs} +5 -5
  64. package/dist/is-dirty-Bc1UHnBU.mjs +9 -0
  65. package/dist/{items-BWfvkY-J.mjs → items-CC4sSWv7.mjs} +4 -5
  66. package/dist/{list-SOG0whQ-.mjs → list-BUpOvQsd.mjs} +3 -4
  67. package/dist/{list-Clz5igWg.mjs → list-BlMpI88r.mjs} +4 -6
  68. package/dist/{list-2j7GsXsl.mjs → list-BqTdYtOW.mjs} +3 -4
  69. package/dist/{list-C3hfovHv.mjs → list-BvTuDJZp.mjs} +4 -5
  70. package/dist/{list-DZ8fNUoQ.mjs → list-C48ZZLM5.mjs} +6 -7
  71. package/dist/{list-BI4zr8LW.mjs → list-CJe45jFT.mjs} +6 -7
  72. package/dist/{list-D4sFiqX8.mjs → list-CMoG5_mh.mjs} +5 -6
  73. package/dist/{list-d58BprgJ.mjs → list-CkI3hESA.mjs} +4 -5
  74. package/dist/{list-sD5N3fGk.mjs → list-CybLzPZw.mjs} +6 -7
  75. package/dist/{list-CL7eCOQE.mjs → list-DLhU81LP.mjs} +3 -4
  76. package/dist/{list-Brgh-Z2v.mjs → list-Ddyb5T-7.mjs} +4 -5
  77. package/dist/{list-DXH7TlkU.mjs → list-tveV3LKh.mjs} +4 -5
  78. package/dist/{list--OYdUTtu.mjs → list-u7cmunGG.mjs} +4 -5
  79. package/dist/{login-Bm2AnCez.mjs → login-Bfsf6jLq.mjs} +17 -14
  80. package/dist/{logout-BlyRJODO.mjs → logout-BCsE_1Yg.mjs} +9 -9
  81. package/dist/{manifest-BBR46KFM.mjs → manifest-B_OfG-Ss.mjs} +1 -2
  82. package/dist/measure-D_eiCKq9.mjs +19 -0
  83. package/dist/{metadata-B8ZSF9LA.mjs → metadata-Cbqx1-yW.mjs} +7 -8
  84. package/dist/{metadata-DqiI2q9q.mjs → metadata-CzbGy4b-.mjs} +6 -7
  85. package/dist/{parse-id-lk_K-CEF.mjs → parse-id-DBwNYb4Y.mjs} +1 -1
  86. package/dist/{path-AEtZ3mBq.mjs → path-DJ-DfUGC.mjs} +4 -6
  87. package/dist/{poll-DHKDpCiq.mjs → poll-DWkVceIk.mjs} +1 -1
  88. package/dist/{poll-task-Cooi0lQV.mjs → poll-task-DOvUDrgL.mjs} +19 -3
  89. package/dist/{preflight-aXV5LyDs.mjs → preflight-D-l6sLCX.mjs} +3 -3
  90. package/dist/{query-AaKzYnTY.mjs → query--05TZxmk.mjs} +9 -8
  91. package/dist/{query-BlsVNZpD.mjs → query-BbbDpt3u.mjs} +12 -12
  92. package/dist/query-result-PoQE05Pe.mjs +19 -0
  93. package/dist/{remove-collection-CoCmrrQs.mjs → remove-collection-Dco3yXa-.mjs} +10 -9
  94. package/dist/{render-OQn3iRsI.mjs → render-BQHJhSP1.mjs} +1 -1
  95. package/dist/{rescan-values-C0FDsjT7.mjs → rescan-values-B1vE6I62.mjs} +9 -10
  96. package/dist/{run-B4Wn43zm.mjs → run-CWb_yZbK.mjs} +14 -14
  97. package/dist/{runs-Bbaszr18.mjs → runs-BLwEO5sW.mjs} +5 -6
  98. package/dist/{runtime-Dmv5VtUK.mjs → runtime-DKLBPRhd.mjs} +16 -87
  99. package/dist/{schema-tables-CaWinbuK.mjs → schema-tables-D1qE25GS.mjs} +6 -7
  100. package/dist/{schemas-DUgGpAyB.mjs → schemas-CFuYnQDg.mjs} +4 -5
  101. package/dist/{search-BLrBXLUk.mjs → search-CF4A051Z.mjs} +4 -5
  102. package/dist/segment-BP_vDpYM.mjs +19 -0
  103. package/dist/{set-DfGsta5O.mjs → set-BJ8Rs-vI.mjs} +7 -7
  104. package/dist/setting-EYI0HqTq.mjs +17 -0
  105. package/dist/{setup-C9ikBRw_.mjs → setup-DI6EGOdH.mjs} +7 -8
  106. package/dist/{skills-CiN1OQ8W.mjs → skills-BDPVoBWU.mjs} +33 -2
  107. package/dist/{skills-CUHIcQS6.mjs → skills-CRECMGAo.mjs} +3 -3
  108. package/dist/snippet-BwK58D1F.mjs +19 -0
  109. package/dist/{stash-EIDcSvpF.mjs → stash-BpPS0uG8.mjs} +11 -10
  110. package/dist/{status-95ElRAu9.mjs → status-BqFA7Tqr.mjs} +10 -8
  111. package/dist/{status-B0_MiZEf.mjs → status-CU5LYX0i.mjs} +4 -5
  112. package/dist/{summary-C12LiEuJ.mjs → summary-CraRyIM_.mjs} +5 -6
  113. package/dist/{sync-schema-Ba8M3DiX.mjs → sync-schema-DkfwPESH.mjs} +9 -10
  114. package/dist/table-CJMN6ql8.mjs +19 -0
  115. package/dist/{table-C7a5V6Zn.mjs → table-CkWja2UH.mjs} +1 -1
  116. package/dist/transform-BqV5ssDN.mjs +24 -0
  117. package/dist/transform-job-DvdOLV9b.mjs +19 -0
  118. package/dist/{tree-Des2ZG9d.mjs → tree-Bd1i-Y4U.mjs} +3 -4
  119. package/dist/{update-DzAN4SPj.mjs → update-BLZHmA0X.mjs} +10 -11
  120. package/dist/{update-CyIZdbIQ.mjs → update-BncGqeWt.mjs} +9 -10
  121. package/dist/{update-DSgceARZ.mjs → update-C4f-8fsU.mjs} +9 -10
  122. package/dist/{update-njHe3j-s.mjs → update-CgpgyDjd.mjs} +10 -11
  123. package/dist/{update-DBi5U8zb.mjs → update-CsYa--Eb.mjs} +12 -13
  124. package/dist/{update-mYVnoYNV.mjs → update-DA9aPhRr.mjs} +11 -12
  125. package/dist/{update-_QfgNa53.mjs → update-DtO-1_tj.mjs} +10 -11
  126. package/dist/{update-Bx54nWEI.mjs → update-IPsv9Pj0.mjs} +12 -13
  127. package/dist/{update-F6DmZncY.mjs → update-OZoOTnlY.mjs} +9 -10
  128. package/dist/{update-dashcard-wpSjv4M7.mjs → update-dashcard-D0VAwfNO.mjs} +8 -9
  129. package/dist/{upgrade-iAuvhX-W.mjs → upgrade-Bb_q7hJ7.mjs} +41 -28
  130. package/dist/{uuid-CMKnS8-z.mjs → uuid-DTdRruiz.mjs} +3 -4
  131. package/dist/{validate-dPEOnOf8.mjs → validate-CqVB_3_p.mjs} +1 -1
  132. package/dist/{validate-query-Cw6WE5Y8.mjs → validate-query-BUTNK00f.mjs} +2 -2
  133. package/dist/values-Bpt6obVW.mjs +44 -0
  134. package/dist/{verify-D5YtTqqp.mjs → verify-COt2q73-.mjs} +1 -1
  135. package/dist/{wait-Bv3Tsnv4.mjs → wait-DoKPlspq.mjs} +8 -9
  136. package/dist/{wait-flags-Dzq9BGQY.mjs → wait-flags-D1jNm0JK.mjs} +2 -2
  137. package/package.json +1 -1
  138. package/skill-data/core/SKILL.md +15 -28
  139. package/skill-data/git-sync/SKILL.md +8 -63
  140. package/skill-data/mbql/SKILL.md +2 -0
  141. package/skill-data/transform/SKILL.md +16 -6
  142. package/skill-data/visualization/SKILL.md +158 -0
  143. package/skill-data/visualization/references/settings.md +414 -0
  144. package/skills/metabase-cli/SKILL.md +1 -1
  145. package/dist/add-collection-C0w6ACQF.mjs +0 -11
  146. package/dist/auth-CzXb_zB2.mjs +0 -19
  147. package/dist/capabilities-7e9MgquN.mjs +0 -29
  148. package/dist/card-DP4rfoOi.mjs +0 -21
  149. package/dist/collection-tY18ezvn.mjs +0 -21
  150. package/dist/create-CHF313Qg.mjs +0 -52
  151. package/dist/credentials-dzeq7ckm.mjs +0 -88
  152. package/dist/dashboard-ChM_Tu0l.mjs +0 -22
  153. package/dist/database-CIXwHKjK.mjs +0 -17
  154. package/dist/db-DrQn_i3W.mjs +0 -22
  155. package/dist/delete-CM3jnAeQ.mjs +0 -100
  156. package/dist/deprovision-CwxcIT3k.mjs +0 -65
  157. package/dist/docker-Oq80q3tu.mjs +0 -515
  158. package/dist/field-Z6Pcxf4n.mjs +0 -19
  159. package/dist/git-sync-CiGAad76.mjs +0 -28
  160. package/dist/is-dirty-Ume4oV0j.mjs +0 -10
  161. package/dist/license-Dxarh-gG.mjs +0 -17
  162. package/dist/list-zSO0DMw-.mjs +0 -36
  163. package/dist/logs-CywPikkL.mjs +0 -60
  164. package/dist/measure-C44EK_xt.mjs +0 -20
  165. package/dist/parse-schemas-BqUdWUwq.mjs +0 -12
  166. package/dist/process-C7V8LJ-j.mjs +0 -105
  167. package/dist/provision-UWcNDoDe.mjs +0 -82
  168. package/dist/ps-CJU0EbrC.mjs +0 -80
  169. package/dist/ps-DEroLgbI.mjs +0 -11
  170. package/dist/remove-BFWun0e8.mjs +0 -63
  171. package/dist/segment-B3Uwwcsm.mjs +0 -20
  172. package/dist/set-B8cUbRLD.mjs +0 -68
  173. package/dist/setting-D2p2MA7f.mjs +0 -18
  174. package/dist/snippet-B7D0uWlz.mjs +0 -20
  175. package/dist/start-3PX3ahjT.mjs +0 -413
  176. package/dist/status-CEplmC44.mjs +0 -34
  177. package/dist/stop-CQ0XGrN8.mjs +0 -83
  178. package/dist/table-e6h8SLVX.mjs +0 -20
  179. package/dist/transform-BMYh1lsC.mjs +0 -25
  180. package/dist/transform-job-Cm7z5TfH.mjs +0 -20
  181. package/dist/update-DHZubok3.mjs +0 -77
  182. package/dist/url-DWaT6WIZ.mjs +0 -56
  183. package/dist/values-BfSTAbzc.mjs +0 -37
  184. package/dist/wait-8yV9_WIo.mjs +0 -19
  185. package/dist/workspace-BBXJczJK.mjs +0 -72
  186. package/dist/workspace-CKLZrR7l.mjs +0 -26
  187. package/dist/workspace-credentials-BXpABsNZ.mjs +0 -100
  188. package/dist/yaml-YTQiYJ9s.mjs +0 -43
  189. package/skill-data/viz/SKILL.md +0 -137
  190. package/skill-data/viz/references/settings.md +0 -312
  191. package/skill-data/workspace/SKILL.md +0 -390
  192. /package/dist/{body-flags-D7q87Btw.mjs → body-flags-D78h_-Ua.mjs} +0 -0
  193. /package/dist/{input-cMSEqISy.mjs → input-xewHccej.mjs} +0 -0
  194. /package/dist/{parse-enum-CrEWOhuY.mjs → parse-enum-Dr7ACrTR.mjs} +0 -0
  195. /package/dist/{prompt-CFKoys7k.mjs → prompt-u4WhE4T5.mjs} +0 -0
  196. /package/dist/{snippet-COggaWxx.mjs → snippet-xh42tYly.mjs} +0 -0
  197. /package/dist/{transform-GTW3G-01.mjs → transform-DyJb0bV0.mjs} +0 -0
  198. /package/dist/{transform-job-DeTDPMxt.mjs → transform-job-DpDGoqQt.mjs} +0 -0
@@ -1,29 +0,0 @@
1
- import { z } from "zod";
2
-
3
- //#region src/runtime/predicates.ts
4
- function isPlainObject(value) {
5
- return typeof value === "object" && value !== null && !Array.isArray(value);
6
- }
7
-
8
- //#endregion
9
- //#region src/output/notice.ts
10
- function warn(message) {
11
- process.stderr.write(message + "\n");
12
- }
13
- function listTruncationNotice(bytes) {
14
- return `… cut at ${bytes} bytes; rerun with --max-bytes 0`;
15
- }
16
- function itemOversizeMessage(bytes, maxBytes) {
17
- return `output is ${bytes} bytes, over the ${maxBytes}-byte --max-bytes cap; narrow with --fields, or pass --max-bytes 0 to disable`;
18
- }
19
-
20
- //#endregion
21
- //#region src/runtime/capabilities.ts
22
- const Capabilities = z.object({
23
- minVersion: z.number(),
24
- tokenFeature: z.string().optional()
25
- });
26
- const BASELINE_CAPABILITIES = Object.freeze({ minVersion: 58 });
27
-
28
- //#endregion
29
- export { BASELINE_CAPABILITIES, Capabilities, isPlainObject, itemOversizeMessage, listTruncationNotice, warn };
@@ -1,21 +0,0 @@
1
- import { defineCommand } from "citty";
2
-
3
- //#region src/commands/card/index.ts
4
- var card_default = defineCommand({
5
- meta: {
6
- name: "card",
7
- alias: "cards",
8
- description: "Manage Metabase cards (questions, models, metrics)"
9
- },
10
- subCommands: {
11
- list: () => import("./list-BI4zr8LW.mjs").then((mod) => mod.default),
12
- get: () => import("./get-CP3Z3NiH.mjs").then((mod) => mod.default),
13
- query: () => import("./query-AaKzYnTY.mjs").then((mod) => mod.default),
14
- create: () => import("./create-BNiva__H.mjs").then((mod) => mod.default),
15
- update: () => import("./update-DBi5U8zb.mjs").then((mod) => mod.default),
16
- archive: () => import("./archive-BNinrUak.mjs").then((mod) => mod.default)
17
- }
18
- });
19
-
20
- //#endregion
21
- export { card_default as default };
@@ -1,21 +0,0 @@
1
- import { defineCommand } from "citty";
2
-
3
- //#region src/commands/collection/index.ts
4
- var collection_default = defineCommand({
5
- meta: {
6
- name: "collection",
7
- alias: "collections",
8
- description: "Manage Metabase collections"
9
- },
10
- subCommands: {
11
- list: () => import("./list-Brgh-Z2v.mjs").then((mod) => mod.default),
12
- get: () => import("./get-lb7q3JYs.mjs").then((mod) => mod.default),
13
- items: () => import("./items-BWfvkY-J.mjs").then((mod) => mod.default),
14
- tree: () => import("./tree-Des2ZG9d.mjs").then((mod) => mod.default),
15
- create: () => import("./create-BTcpaop_.mjs").then((mod) => mod.default),
16
- archive: () => import("./archive-lWgqiFAt.mjs").then((mod) => mod.default)
17
- }
18
- });
19
-
20
- //#endregion
21
- export { collection_default as default };
@@ -1,52 +0,0 @@
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 "./input-cMSEqISy.mjs";
7
- import { readBody } from "./body-DjdFxjpg.mjs";
8
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
9
- import { Workspace, WorkspaceCreateInput, workspaceView } from "./workspace-BBXJczJK.mjs";
10
-
11
- //#region src/commands/workspace/create.ts
12
- var create_default = defineMetabaseCommand({
13
- meta: {
14
- name: "create",
15
- description: "Create a workspace"
16
- },
17
- capabilities: {
18
- minVersion: 62,
19
- tokenFeature: "workspaces"
20
- },
21
- args: {
22
- ...outputFlags,
23
- ...profileFlag,
24
- ...connectionFlags,
25
- ...bodyInputFlags,
26
- name: {
27
- type: "string",
28
- description: "Workspace name (alternative to --body / --file)"
29
- }
30
- },
31
- outputSchema: Workspace,
32
- examples: [
33
- "mb workspace create --name \"analytics\"",
34
- "echo '{\"name\":\"analytics\"}' | mb workspace create",
35
- "mb workspace create --file workspace.json"
36
- ],
37
- async run({ args, ctx, getClient }) {
38
- const body = args.name !== void 0 && args.name !== "" ? WorkspaceCreateInput.parse({ name: args.name }) : await readBody({
39
- flag: args.body,
40
- file: args.file
41
- }, WorkspaceCreateInput);
42
- const client = await getClient();
43
- const created = await client.requestParsed(Workspace, "/api/ee/workspace-manager", {
44
- method: "POST",
45
- body
46
- });
47
- renderItem(created, workspaceView, ctx);
48
- }
49
- });
50
-
51
- //#endregion
52
- export { create_default as default };
@@ -1,88 +0,0 @@
1
- import "./command-augment-BH9qgQ5u.mjs";
2
- import { outputFlags } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand, localUrl, parseJson } 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 "./yaml-YTQiYJ9s.mjs";
9
- import "./process-C7V8LJ-j.mjs";
10
- import { checkDockerReady, readContainerCredentialsFile, requireWorkspaceContainerLocation } from "./docker-Oq80q3tu.mjs";
11
- import { WorkspaceCredentials } from "./workspace-credentials-BXpABsNZ.mjs";
12
- import { z } from "zod";
13
-
14
- //#region src/commands/workspace/credentials.ts
15
- const WorkspaceCredentialsResult = z.object({
16
- workspace_id: z.number().int().positive(),
17
- url: z.string(),
18
- email: z.string(),
19
- password: z.string(),
20
- api_key_name: z.string(),
21
- api_key: z.string()
22
- });
23
- const credentialsView = {
24
- compactPick: WorkspaceCredentialsResult,
25
- tableColumns: [
26
- {
27
- key: "workspace_id",
28
- label: "ID"
29
- },
30
- {
31
- key: "url",
32
- label: "URL"
33
- },
34
- {
35
- key: "email",
36
- label: "Email"
37
- },
38
- {
39
- key: "password",
40
- label: "Password"
41
- },
42
- {
43
- key: "api_key_name",
44
- label: "API Key Name"
45
- },
46
- {
47
- key: "api_key",
48
- label: "API Key"
49
- }
50
- ]
51
- };
52
- const textDecoder = new TextDecoder("utf-8");
53
- var credentials_default = defineMetabaseCommand({
54
- meta: {
55
- name: "credentials",
56
- description: "Read the workspace child instance's admin credentials (email + password + API key) from the running container"
57
- },
58
- capabilities: null,
59
- args: {
60
- ...outputFlags,
61
- id: {
62
- type: "positional",
63
- description: "Workspace id",
64
- required: true
65
- }
66
- },
67
- outputSchema: WorkspaceCredentialsResult,
68
- examples: ["mb workspace credentials 1", "mb workspace credentials 1 --json"],
69
- async run({ args, ctx }) {
70
- const workspaceId = parseId(args.id);
71
- await checkDockerReady();
72
- const { containerName, hostPort } = await requireWorkspaceContainerLocation(workspaceId);
73
- const bytes = await readContainerCredentialsFile(workspaceId);
74
- const credentials = parseJson(textDecoder.decode(bytes), WorkspaceCredentials, { source: `${containerName}:credentials.json` });
75
- const result = {
76
- workspace_id: workspaceId,
77
- url: localUrl(hostPort),
78
- email: credentials.user.email,
79
- password: credentials.user.password,
80
- api_key_name: credentials.api_key.name,
81
- api_key: credentials.api_key.key
82
- };
83
- renderItem(result, credentialsView, ctx);
84
- }
85
- });
86
-
87
- //#endregion
88
- export { credentials_default as default };
@@ -1,22 +0,0 @@
1
- import { defineCommand } from "citty";
2
-
3
- //#region src/commands/dashboard/index.ts
4
- var dashboard_default = defineCommand({
5
- meta: {
6
- name: "dashboard",
7
- alias: "dashboards",
8
- description: "Manage Metabase dashboards"
9
- },
10
- subCommands: {
11
- list: () => import("./list-DXH7TlkU.mjs").then((mod) => mod.default),
12
- get: () => import("./get-DSWFjy7O.mjs").then((mod) => mod.default),
13
- cards: () => import("./cards-BGiJS675.mjs").then((mod) => mod.default),
14
- create: () => import("./create-dhxPxfF3.mjs").then((mod) => mod.default),
15
- update: () => import("./update-Bx54nWEI.mjs").then((mod) => mod.default),
16
- "update-dashcard": () => import("./update-dashcard-wpSjv4M7.mjs").then((mod) => mod.default),
17
- archive: () => import("./archive-CDA0KxL8.mjs").then((mod) => mod.default)
18
- }
19
- });
20
-
21
- //#endregion
22
- export { dashboard_default as default };
@@ -1,17 +0,0 @@
1
- import { defineCommand } from "citty";
2
-
3
- //#region src/commands/workspace/database/index.ts
4
- var database_default = defineCommand({
5
- meta: {
6
- name: "database",
7
- description: "Manage databases provisioned to a workspace"
8
- },
9
- subCommands: {
10
- provision: () => import("./provision-UWcNDoDe.mjs").then((mod) => mod.default),
11
- update: () => import("./update-DHZubok3.mjs").then((mod) => mod.default),
12
- deprovision: () => import("./deprovision-CwxcIT3k.mjs").then((mod) => mod.default)
13
- }
14
- });
15
-
16
- //#endregion
17
- export { database_default as default };
@@ -1,22 +0,0 @@
1
- import { defineCommand } from "citty";
2
-
3
- //#region src/commands/db/index.ts
4
- var db_default = defineCommand({
5
- meta: {
6
- name: "db",
7
- description: "Inspect and sync Metabase databases",
8
- alias: "database"
9
- },
10
- subCommands: {
11
- list: () => import("./list-DZ8fNUoQ.mjs").then((m) => m.default),
12
- get: () => import("./get-CzuzeKSe.mjs").then((m) => m.default),
13
- metadata: () => import("./metadata-B8ZSF9LA.mjs").then((m) => m.default),
14
- schemas: () => import("./schemas-DUgGpAyB.mjs").then((m) => m.default),
15
- "schema-tables": () => import("./schema-tables-CaWinbuK.mjs").then((m) => m.default),
16
- "sync-schema": () => import("./sync-schema-Ba8M3DiX.mjs").then((m) => m.default),
17
- "rescan-values": () => import("./rescan-values-C0FDsjT7.mjs").then((m) => m.default)
18
- }
19
- });
20
-
21
- //#endregion
22
- export { db_default as default };
@@ -1,100 +0,0 @@
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 { promptConfirm } from "./prompt-CFKoys7k.mjs";
7
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
- import "./poll-DHKDpCiq.mjs";
9
- import "./process-C7V8LJ-j.mjs";
10
- import { checkDockerReady, containerNameFor, removeContainer, removeVolume, volumeNameFor } from "./docker-Oq80q3tu.mjs";
11
- import { z } from "zod";
12
-
13
- //#region src/commands/workspace/delete.ts
14
- const DeleteResult = z.object({
15
- workspace_id: z.number().int().positive(),
16
- container_name: z.string(),
17
- volume_name: z.string(),
18
- removed_container: z.boolean(),
19
- removed_volume: z.boolean()
20
- });
21
- const deleteResultView = {
22
- compactPick: DeleteResult.pick({
23
- workspace_id: true,
24
- removed_container: true,
25
- removed_volume: true
26
- }).strip(),
27
- tableColumns: [
28
- {
29
- key: "workspace_id",
30
- label: "ID"
31
- },
32
- {
33
- key: "container_name",
34
- label: "Container"
35
- },
36
- {
37
- key: "volume_name",
38
- label: "Volume"
39
- },
40
- {
41
- key: "removed_container",
42
- label: "Removed Container"
43
- },
44
- {
45
- key: "removed_volume",
46
- label: "Removed Volume"
47
- }
48
- ]
49
- };
50
- var delete_default = defineMetabaseCommand({
51
- meta: {
52
- name: "delete",
53
- description: "Stop and remove the local container + app-db volume (does not affect remote)"
54
- },
55
- capabilities: null,
56
- args: {
57
- ...outputFlags,
58
- id: {
59
- type: "positional",
60
- description: "Workspace id",
61
- required: true
62
- },
63
- "keep-volume": {
64
- type: "boolean",
65
- description: "Keep the workspace's app-db volume (faster restart, app-db survives)",
66
- default: false
67
- },
68
- yes: {
69
- type: "boolean",
70
- description: "Skip the confirmation prompt",
71
- default: false
72
- }
73
- },
74
- outputSchema: DeleteResult,
75
- examples: ["mb workspace delete 1 --yes", "mb workspace delete 1 --keep-volume --yes"],
76
- async run({ args, ctx }) {
77
- const workspaceId = parseId(args.id);
78
- const containerName = containerNameFor(workspaceId);
79
- const volumeName = volumeNameFor(workspaceId);
80
- const shouldRemoveVolume = args["keep-volume"] !== true;
81
- await checkDockerReady();
82
- if (!args.yes && process.stdin.isTTY === true) {
83
- const confirmed = await promptConfirm({ message: shouldRemoveVolume ? `Remove container ${containerName} and its app-db volume ${volumeName}?` : `Remove container ${containerName}? (volume ${volumeName} will be kept)` });
84
- if (!confirmed) return;
85
- }
86
- const removedContainer = await removeContainer(containerName);
87
- const removedVolume = shouldRemoveVolume ? await removeVolume(volumeName) : false;
88
- const result = {
89
- workspace_id: workspaceId,
90
- container_name: containerName,
91
- volume_name: volumeName,
92
- removed_container: removedContainer,
93
- removed_volume: removedVolume
94
- };
95
- renderItem(result, deleteResultView, ctx);
96
- }
97
- });
98
-
99
- //#endregion
100
- export { delete_default as default };
@@ -1,65 +0,0 @@
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 "./render-CfznwleY.mjs";
6
- import "./prompt-CFKoys7k.mjs";
7
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
8
- import "./poll-DHKDpCiq.mjs";
9
- import { parseWaitFlags, waitFlags } from "./wait-flags-Dzq9BGQY.mjs";
10
- import { DeleteResult, confirmAndDelete } from "./delete-runtime-B6RQo_pw.mjs";
11
- import "./workspace-BBXJczJK.mjs";
12
- import { waitForDatabaseGone } from "./wait-8yV9_WIo.mjs";
13
-
14
- //#region src/commands/workspace/database/deprovision.ts
15
- var deprovision_default = defineMetabaseCommand({
16
- meta: {
17
- name: "deprovision",
18
- description: "Deprovision a database from a workspace"
19
- },
20
- capabilities: {
21
- minVersion: 62,
22
- tokenFeature: "workspaces"
23
- },
24
- args: {
25
- ...outputFlags,
26
- ...profileFlag,
27
- ...connectionFlags,
28
- ...waitFlags,
29
- yes: {
30
- type: "boolean",
31
- description: "Skip confirmation",
32
- default: false
33
- },
34
- id: {
35
- type: "positional",
36
- description: "Workspace id",
37
- required: true
38
- },
39
- "db-id": {
40
- type: "positional",
41
- description: "Database id",
42
- required: true
43
- }
44
- },
45
- outputSchema: DeleteResult,
46
- examples: ["mb workspace database deprovision 1 5 --yes", "mb workspace database deprovision 1 5 --yes --wait"],
47
- async run({ args, ctx, getClient }) {
48
- const workspaceId = parseId(args.id);
49
- const databaseId = parseId(args["db-id"], "db-id");
50
- const wait = parseWaitFlags(args);
51
- const client = await getClient();
52
- await confirmAndDelete({
53
- id: databaseId,
54
- path: `/api/ee/workspace-manager/${workspaceId}/database/${databaseId}`,
55
- yes: args.yes,
56
- promptMessage: `Deprovision database ${databaseId} from workspace ${workspaceId}?`,
57
- client,
58
- ctx,
59
- ...wait.enabled ? { afterDelete: () => waitForDatabaseGone(client, workspaceId, databaseId, wait.schedule) } : {}
60
- });
61
- }
62
- });
63
-
64
- //#endregion
65
- export { deprovision_default as default };