@metabase/cli 0.2.0 → 0.2.1-alpha.bcm-ghy-4075-spawn-default-profile.eb120d1

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 (210) hide show
  1. package/README.md +222 -10
  2. package/dist/add-collection-CCpC-GUz.mjs +9 -0
  3. package/dist/{add-collection-BTSGp4f9.mjs → add-collection-CLXfrgp4.mjs} +4 -4
  4. package/dist/{append-DY1-O789.mjs → append-DMcxP1LM.mjs} +5 -5
  5. package/dist/archive-4WqMsPWB.mjs +38 -0
  6. package/dist/{archive-CWtUzlHO.mjs → archive-5inmbMDL.mjs} +4 -4
  7. package/dist/{archive-CJ9rElKn.mjs → archive-BggM_AuL.mjs} +5 -5
  8. package/dist/{archive-pHsa4dL0.mjs → archive-BmhehbS0.mjs} +3 -3
  9. package/dist/{archive-DCPw3df6.mjs → archive-BwIZzWGe.mjs} +4 -4
  10. package/dist/{archive-DOa1u1aJ.mjs → archive-DErhQn8A.mjs} +4 -4
  11. package/dist/archive-DTnz1suV.mjs +38 -0
  12. package/dist/{archive-w6TX-zEk.mjs → archive-Q1387APe.mjs} +4 -4
  13. package/dist/{archive-BOEEMrYL.mjs → archive-h-3H5b4K.mjs} +5 -5
  14. package/dist/{auth-BrQtY0pO.mjs → auth-DzCAiArV.mjs} +4 -4
  15. package/dist/{body-C1_AaTS4.mjs → body-5snfmiwR.mjs} +3 -3
  16. package/dist/{branches-BsBzaGIf.mjs → branches-PL170CYS.mjs} +4 -4
  17. package/dist/{cancel-BNM0yyx-.mjs → cancel-EFKcF5J_.mjs} +3 -3
  18. package/dist/{cancel-task-Bggzn4JL.mjs → cancel-task-mFFx0d5m.mjs} +4 -4
  19. package/dist/{capabilities-DrDJo_ng.mjs → capabilities-CiaAfUgX.mjs} +1 -1
  20. package/dist/{card-DHCcmpgr.mjs → card-BsfdXK0O.mjs} +6 -6
  21. package/dist/{cards-D0hvA13L.mjs → cards-BI7zKb9M.mjs} +4 -4
  22. package/dist/cli.mjs +29 -26
  23. package/dist/{collection-D0O9gp3S.mjs → collection-2h_by9Ue.mjs} +6 -6
  24. package/dist/{collection-CFoLPrY5.mjs → collection-C52Ndi_O.mjs} +4 -2
  25. package/dist/{collection-namespace-DqPNrCdQ.mjs → collection-namespace-uNA5WhLB.mjs} +2 -2
  26. package/dist/{create-Cii_utzV.mjs → create-BLD0YniB.mjs} +5 -4
  27. package/dist/create-BP8EIWrP.mjs +161 -0
  28. package/dist/{create-Cyv7vHV_.mjs → create-BpizGzgQ.mjs} +5 -5
  29. package/dist/create-BxCsAdqc.mjs +45 -0
  30. package/dist/{create-CZ9KFnbi.mjs → create-CBKT7SE_.mjs} +5 -5
  31. package/dist/{create-C17Fh1_X.mjs → create-CQ32FwVe.mjs} +8 -7
  32. package/dist/{create-DKuixGJ2.mjs → create-CU3bYpsT.mjs} +5 -5
  33. package/dist/create-DAH24ltu.mjs +45 -0
  34. package/dist/{create-a3s1S2Dw.mjs → create-DutkaD7P.mjs} +7 -7
  35. package/dist/{create-E6L3WMqV.mjs → create-FuZa4j1N.mjs} +5 -5
  36. package/dist/{create-BR7x66KW.mjs → create-KveE3j3p.mjs} +8 -8
  37. package/dist/{create-C8ndg3g4.mjs → create-VrSowEbj.mjs} +6 -6
  38. package/dist/{create-oLb0E-ZP.mjs → create-acWKw4Y1.mjs} +7 -7
  39. package/dist/{create-branch-Dxn6UnV_.mjs → create-branch-CP1Y4_El.mjs} +4 -4
  40. package/dist/{create-05rX4oL-.mjs → create-xPfmI1Tu.mjs} +7 -7
  41. package/dist/{csv-T6_vlLJS.mjs → csv-CZyYi0vi.mjs} +5 -5
  42. package/dist/{current-task-DxWbw-bU.mjs → current-task-BR4koo9z.mjs} +4 -4
  43. package/dist/{dashboard-BpSPoeAn.mjs → dashboard-ARgJfamb.mjs} +8 -8
  44. package/dist/{database-CIbVSfua.mjs → database-BOqzcexD.mjs} +1 -1
  45. package/dist/{db-DBRijnh4.mjs → db-dbnxMPSR.mjs} +6 -6
  46. package/dist/{delete--P1xFX37.mjs → delete-BpL3vaaT.mjs} +5 -5
  47. package/dist/{delete-Ce2EBQYA.mjs → delete-C5DqDwev.mjs} +5 -5
  48. package/dist/delete-DCDFLHFa.mjs +49 -0
  49. package/dist/delete-P2Qlsr_s.mjs +49 -0
  50. package/dist/{delete-BBOIUl0D.mjs → delete-ea_ns1uM.mjs} +5 -5
  51. package/dist/{delete-runtime-B-8I9V1g.mjs → delete-runtime-DdBn6poA.mjs} +2 -2
  52. package/dist/{delete-table-Bj32NsXn.mjs → delete-table-tM048btr.mjs} +5 -5
  53. package/dist/{dependencies-ixzjVjUz.mjs → dependencies-DdOTClO2.mjs} +4 -4
  54. package/dist/destroy-B51EPvOJ.mjs +168 -0
  55. package/dist/{dirty-CH70h5m5.mjs → dirty-CEQYmhNF.mjs} +4 -4
  56. package/dist/{document-dZpuFu3I.mjs → document-DR1FLOn9.mjs} +5 -5
  57. package/dist/{eid-XjkBbyb_.mjs → eid-CtKGjAkz.mjs} +4 -4
  58. package/dist/events-C26DZ6yZ.mjs +44 -0
  59. package/dist/{export-CChMg-mL.mjs → export-CippuWZJ.mjs} +5 -8
  60. package/dist/export-Cy2DFtR2.mjs +10 -0
  61. package/dist/{field-B1heFeCz.mjs → field-CXDndCbB.mjs} +4 -4
  62. package/dist/{fields-C7h2QwUp.mjs → fields-Xm_HVNcX.mjs} +4 -4
  63. package/dist/{get-RlP_xiUd.mjs → get-3O7hv4zv.mjs} +5 -5
  64. package/dist/{get-Cj90oyxG.mjs → get-B0cq1uGy.mjs} +4 -4
  65. package/dist/{get-BWHJDa0B.mjs → get-B90bXbpw.mjs} +4 -4
  66. package/dist/{get-DWWmpQ87.mjs → get-BQBu2c94.mjs} +4 -4
  67. package/dist/{get-BsyccuCH.mjs → get-BQz45IBF.mjs} +5 -4
  68. package/dist/get-BSfKWZNJ.mjs +35 -0
  69. package/dist/get-BdNC8WM8.mjs +38 -0
  70. package/dist/{get-D9r2znrn.mjs → get-Bj66bcuU.mjs} +4 -4
  71. package/dist/{get-DRZENkCj.mjs → get-BrKqMM1d.mjs} +4 -4
  72. package/dist/{get-cyR67Lmq.mjs → get-CjZWjRa5.mjs} +4 -4
  73. package/dist/{get-kqY2lwhO.mjs → get-CwGqARAf.mjs} +4 -4
  74. package/dist/{get-B6ZJCJ8H.mjs → get-D5crrFSf.mjs} +4 -4
  75. package/dist/{get-AvGH_oph.mjs → get-DTkvGu_J.mjs} +3 -3
  76. package/dist/{get-KVN9ANVh.mjs → get-DX2fp6BB.mjs} +3 -3
  77. package/dist/get-DYuJVlP-.mjs +35 -0
  78. package/dist/{get-DrWYvefc.mjs → get-FIE88hj9.mjs} +4 -4
  79. package/dist/{get-C98IFgFi.mjs → get-Ihx_XaaI.mjs} +3 -3
  80. package/dist/{get-run-C4C_QQqO.mjs → get-run-lVwhQVFx.mjs} +4 -4
  81. package/dist/{get-Dg1J0wxb.mjs → get-z0BKkiRX.mjs} +4 -4
  82. package/dist/git-sync-CmB4YBmS.mjs +31 -0
  83. package/dist/{has-remote-changes-dLUGr0MD.mjs → has-remote-changes-DHrYSnTg.mjs} +4 -4
  84. package/dist/{import-Byull6jF.mjs → import-BU40xXSF.mjs} +6 -6
  85. package/dist/{input-m9ctfLxZ.mjs → input-BGyHn0Kr.mjs} +1 -1
  86. package/dist/{is-dirty-CU3ovgdG.mjs → is-dirty-BPluqPPP.mjs} +3 -3
  87. package/dist/is-dirty-DOy1TRcf.mjs +8 -0
  88. package/dist/{items-CEGDYWuF.mjs → items-BZpYkImP.mjs} +6 -6
  89. package/dist/{key-Ge4VwWvS.mjs → key-B8UAsQmB.mjs} +1 -1
  90. package/dist/{library-DHWWa4Tt.mjs → library-BGWDIfEM.mjs} +4 -4
  91. package/dist/list-B037kJtH.mjs +39 -0
  92. package/dist/{list-BuyRG3GB.mjs → list-B7Ihu6XI.mjs} +4 -4
  93. package/dist/{list-BtcpNl4-.mjs → list-BCeZlfpQ.mjs} +3 -3
  94. package/dist/{list-Bpv06V24.mjs → list-Bct00qku.mjs} +4 -4
  95. package/dist/{list-D9FY30xH.mjs → list-Be8xMtS3.mjs} +3 -3
  96. package/dist/{list-3z1ZChTG.mjs → list-CjBPVJqd.mjs} +3 -3
  97. package/dist/{list-CmCJwaGT.mjs → list-CoqHnusK.mjs} +3 -3
  98. package/dist/{list-O2w5xd1q.mjs → list-CvaoHnl-.mjs} +3 -3
  99. package/dist/{list-BliCJAjt.mjs → list-DamRE5Ds.mjs} +3 -3
  100. package/dist/{list-Br48kL09.mjs → list-DmopauvJ.mjs} +3 -3
  101. package/dist/{list-th_Ym6Cv.mjs → list-M_1sdYNH.mjs} +4 -4
  102. package/dist/{list-Cur_72xZ.mjs → list-Ov6bYzT9.mjs} +6 -5
  103. package/dist/{list-BFm4iEBt.mjs → list-SfpASSFx.mjs} +3 -3
  104. package/dist/{list-DEkPxVZu.mjs → list-fPfgG0PY.mjs} +3 -3
  105. package/dist/list-lsPeumLP.mjs +34 -0
  106. package/dist/{list-B9TyELob.mjs → list-sn9M7QQX.mjs} +3 -3
  107. package/dist/{list-CMb03cv3.mjs → list-wxIVl45_.mjs} +3 -3
  108. package/dist/listing-wFZuS5li.mjs +10 -0
  109. package/dist/{login-hKlYsAa1.mjs → login-CRlmR4op.mjs} +59 -19
  110. package/dist/{logout-DO8GVC6b.mjs → logout-DSZEUxSQ.mjs} +4 -4
  111. package/dist/{measure-R3T20wnB.mjs → measure-Ka0n3426.mjs} +5 -5
  112. package/dist/{parameter-values-BJb2GuLz.mjs → parameter-values-CwW8Xes7.mjs} +3 -3
  113. package/dist/{parse-enum-Cfne2suT.mjs → parse-enum-ooCsJWn6.mjs} +1 -1
  114. package/dist/parse-id-xS1tWJAq.mjs +18 -0
  115. package/dist/{parse-ref-C_MsXYI6.mjs → parse-ref-j4lxaQmd.mjs} +1 -1
  116. package/dist/{path-DzhQVCH8.mjs → path-CVmg-bmf.mjs} +3 -3
  117. package/dist/{poll-D1Yg78c3.mjs → poll-CuTlWBwI.mjs} +2 -2
  118. package/dist/{poll-task-DLUZaglY.mjs → poll-task-DhsYs8Hx.mjs} +2 -2
  119. package/dist/{preflight-Cy2jUSca.mjs → preflight-D3VgjEg7.mjs} +2 -2
  120. package/dist/{process-D5HN1wpT.mjs → process-7c8BcQEi.mjs} +1 -1
  121. package/dist/profile-name-CZ1-Vtrh.mjs +7 -0
  122. package/dist/{prompt-ZG9Drin_.mjs → prompt-jQnNKtlx.mjs} +1 -1
  123. package/dist/{publish-3hmHoaX-.mjs → publish-DFTCsjHU.mjs} +12 -7
  124. package/dist/{query-DkZViD_3.mjs → query-CPq-dhFV.mjs} +7 -7
  125. package/dist/{query-DTASj9Zu.mjs → query-Dfx69iJ4.mjs} +4 -4
  126. package/dist/{query-result-CbTFdlSf.mjs → query-result-Cg7odyR_.mjs} +1 -1
  127. package/dist/{remove-collection-D3wH9H6R.mjs → remove-collection-DUAMhx5L.mjs} +6 -6
  128. package/dist/{replace-CFzqkZXs.mjs → replace-DZWd6avZ.mjs} +5 -5
  129. package/dist/{requests-KBiY9UYy.mjs → requests-DYrDe-D0.mjs} +2 -2
  130. package/dist/{rescan-values-B1WycObS.mjs → rescan-values-DZSnEFA0.mjs} +5 -5
  131. package/dist/{resolve-Ct084wx3.mjs → resolve-BTZuO3Yq.mjs} +22 -15
  132. package/dist/{run-B8qEEdC8.mjs → run-B2b3Bjmv.mjs} +3 -3
  133. package/dist/{run-cw0qTEQ7.mjs → run-ryZ4sXK5.mjs} +6 -6
  134. package/dist/{runs-BOA4kK_X.mjs → runs-F82HVSie.mjs} +5 -5
  135. package/dist/{runtime-B-c-Fc2i.mjs → runtime-C6ASrgVA.mjs} +942 -906
  136. package/dist/{schema-tables-DRYzSVcW.mjs → schema-tables-CCOKb715.mjs} +4 -4
  137. package/dist/{schemas-BiMjD25L.mjs → schemas-LtVrNECH.mjs} +3 -3
  138. package/dist/{search-DjKxRXO5.mjs → search-9GSZHgJQ.mjs} +3 -3
  139. package/dist/{segment-CZkk0g79.mjs → segment-C40bORNZ.mjs} +5 -5
  140. package/dist/{selectors-B7MJUn3I.mjs → selectors-B2nDmrIV.mjs} +3 -3
  141. package/dist/{set-kyoORFG3.mjs → set-C57KDMGM.mjs} +6 -6
  142. package/dist/{set-active-CF868qdW.mjs → set-active-BDHGHtj2.mjs} +3 -3
  143. package/dist/{setting-BZgjURQ_.mjs → setting-zrJwy48C.mjs} +3 -3
  144. package/dist/{setup-D9joJYPb.mjs → setup-Doq8atTG.mjs} +4 -4
  145. package/dist/{skills-BqI05u72.mjs → skills-y-KsUqT9.mjs} +1 -1
  146. package/dist/{skills-D8NrJxjp.mjs → skills-yuzH_o8s.mjs} +3 -3
  147. package/dist/{snippet-y_FzKxaQ.mjs → snippet-ScFM8re8.mjs} +5 -5
  148. package/dist/{stash-BVMerTaF.mjs → stash-D_u6z4q6.mjs} +6 -6
  149. package/dist/{status-C-0jFjFn.mjs → status--Dm2Jv6k.mjs} +3 -3
  150. package/dist/{status-x8bDOa1i.mjs → status-CDPhDX5I.mjs} +26 -10
  151. package/dist/{summary-B-R9SdMF.mjs → summary-C9a2cBTE.mjs} +3 -3
  152. package/dist/{sync-schema-wne2KXIW.mjs → sync-schema-CDIWNCGI.mjs} +7 -7
  153. package/dist/sync-scope-DW2QpGwv.mjs +55 -0
  154. package/dist/{table-CS2-2INi.mjs → table-BKehBm_E.mjs} +4 -4
  155. package/dist/timeline-DEaiuB5V.mjs +157 -0
  156. package/dist/timeline-event-CLWMxvE0.mjs +22 -0
  157. package/dist/timeline-n3Nw9Egt.mjs +24 -0
  158. package/dist/transform-CrOOqKen.mjs +31 -0
  159. package/dist/transform-job-J-E0Mec7.mjs +25 -0
  160. package/dist/{transform-tag-DaNKreDj.mjs → transform-tag-Bkyasy_s.mjs} +4 -4
  161. package/dist/{transforms-DB2WNP2R.mjs → transforms-w2a5qsjJ.mjs} +4 -4
  162. package/dist/{tree-BIOphGVs.mjs → tree-JZC6vD9q.mjs} +3 -3
  163. package/dist/{unpublish-BWM36ZTg.mjs → unpublish-BsfIH46y.mjs} +4 -4
  164. package/dist/{update-BCbv880u.mjs → update-B8hn6VxO.mjs} +8 -8
  165. package/dist/{update-BlzcZwRQ.mjs → update-BSNK36fk.mjs} +8 -8
  166. package/dist/update-BTFj6WHo.mjs +52 -0
  167. package/dist/{update-6umfSz5t.mjs → update-BfIGjAVA.mjs} +5 -5
  168. package/dist/{update-HxYcvpSq.mjs → update-C1_aIL6X.mjs} +7 -7
  169. package/dist/{update-BchtHlbH.mjs → update-CXKWHOIN.mjs} +6 -6
  170. package/dist/{update-CTZg2Lia.mjs → update-Cg09lBb5.mjs} +9 -9
  171. package/dist/update-D01S8hnw.mjs +52 -0
  172. package/dist/{update-7Ts7KrB8.mjs → update-DKQjMsuE.mjs} +6 -6
  173. package/dist/{update-Sz0QRGWB.mjs → update-DSlSr7Ky.mjs} +6 -6
  174. package/dist/{update-DJDuIhYG.mjs → update-QaBVvlz9.mjs} +6 -6
  175. package/dist/{update-BiUeEGU-.mjs → update-WLb9099y.mjs} +8 -8
  176. package/dist/{update-zfLbmC-H.mjs → update-bFNKpay8.mjs} +6 -6
  177. package/dist/{update-dashcard-CfDpy7Lz.mjs → update-dashcard-CKZC7scy.mjs} +6 -6
  178. package/dist/{upgrade-BWl0VjMK.mjs → upgrade-DkK1ZbEY.mjs} +4 -4
  179. package/dist/{upload-CPzOhGeX.mjs → upload-DOMoaR9f.mjs} +3 -3
  180. package/dist/{uuid-D_YeqDui.mjs → uuid-DDbLKnbe.mjs} +2 -2
  181. package/dist/{validate-clAWO3X-.mjs → validate-DqQ7DQnP.mjs} +1 -1
  182. package/dist/{validate-query-CsK2_2_u.mjs → validate-query-BYG7lyaY.mjs} +2 -2
  183. package/dist/{values-DSk8ZJ3B.mjs → values-Bc99Kkuv.mjs} +3 -3
  184. package/dist/{verify-DkQdLjf3.mjs → verify-WvMbaT8W.mjs} +2 -2
  185. package/dist/{wait-DvSsMjea.mjs → wait-DmgEPnHW.mjs} +5 -5
  186. package/dist/{wait-flags-dXGThljd.mjs → wait-flags-BpzyrpAL.mjs} +2 -2
  187. package/dist/workspace-BgH_4xFO.mjs +75 -0
  188. package/dist/workspace-LFtHxcw9.mjs +19 -0
  189. package/package.json +1 -1
  190. package/skill-data/core/SKILL.md +5 -3
  191. package/skill-data/git-sync/SKILL.md +20 -5
  192. package/skill-data/visualization/SKILL.md +1 -0
  193. package/dist/add-collection-DlAwt2Z3.mjs +0 -9
  194. package/dist/git-sync-JHa7bIyY.mjs +0 -31
  195. package/dist/is-dirty-Bb2dfEYs.mjs +0 -8
  196. package/dist/parse-id-DfY0Lugw.mjs +0 -12
  197. package/dist/transform-6hqM1DXA.mjs +0 -31
  198. package/dist/transform-job-DuERhLaj.mjs +0 -25
  199. /package/dist/{dashboard-B-MTpfeS.mjs → dashboard-BLihjDXg.mjs} +0 -0
  200. /package/dist/{document-CL4ML5FN.mjs → document-D4zB-5a0.mjs} +0 -0
  201. /package/dist/{measure-S9WszHre.mjs → measure-C3G1srWb.mjs} +0 -0
  202. /package/dist/{paginate-CMqbqhMC.mjs → paginate-FVZUxL4J.mjs} +0 -0
  203. /package/dist/{revision-message-flag-CHzX0cqV.mjs → revision-message-flag-CHrJgFFx.mjs} +0 -0
  204. /package/dist/{segment-BPb1H6DW.mjs → segment-CxRYEXeO.mjs} +0 -0
  205. /package/dist/{setting-Cko6bE_w.mjs → setting-m46MUtW5.mjs} +0 -0
  206. /package/dist/{snippet-DWiXNy4T.mjs → snippet-C8PVaPY9.mjs} +0 -0
  207. /package/dist/{table-C3RIKiYM.mjs → table-3onHpwcb.mjs} +0 -0
  208. /package/dist/{transform-JQel7e5H.mjs → transform-DP6J2ber.mjs} +0 -0
  209. /package/dist/{transform-job-CtVziW85.mjs → transform-job-B5x8aYfV.mjs} +0 -0
  210. /package/dist/{transform-tag-wFiWmiyO.mjs → transform-tag-BRwfWeHf.mjs} +0 -0
package/README.md CHANGED
@@ -52,16 +52,19 @@ Against a server older than v62 the CLI detects the missing OAuth support and fa
52
52
 
53
53
  On success the server is probed once — the rendered output shows the user, role (`Admin`/`User`), and Metabase version, and the same values are cached in `<configDir>/profiles.json` so later commands skip re-probing. Failure of either the auth probe (`/api/user/current`) or the server probe (`/api/session/properties`) rejects the login; an existing profile keeps its last-known-good credential and gains a `lastFailure` entry.
54
54
 
55
- | Flag | Description |
56
- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
57
- | `--url <url>` | Metabase URL, including any subpath if the instance is hosted under one (`https://my.org.com/metabase`). Falls back to `MB_URL`, then prompts. |
58
- | `--api-key <value>` | API key. Skips the browser flow. Visible in shell history — pipe on stdin instead. |
59
- | `--client-id <id>` | Pre-registered OAuth client id (only needed when dynamic client registration is disabled on the server). |
60
- | `--profile <name>`, `-p` | Profile to write to (default: `default`). |
61
- | `--skip-verify` | Save without contacting the server (no probe, no cache). |
55
+ | Flag | Description |
56
+ | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
57
+ | `--url <url>` | Metabase URL, including any subpath if the instance is hosted under one (`https://my.org.com/metabase`). Falls back to `MB_URL`, then prompts. |
58
+ | `--api-key <value>` | API key. Skips the browser flow. Visible in shell history — pipe on stdin instead. |
59
+ | `--client-id <id>` | Pre-registered OAuth client id (only needed when dynamic client registration is disabled on the server). |
60
+ | `--profile <name>`, `-p` | Profile to write to (default: `default`). |
61
+ | `--skip-verify` | Save without contacting the server (no probe, no cache). |
62
+ | `--workspace` | Request a workspace-manager-scoped login: the stored token can only manage workspaces — every other endpoint 403s server-side. Browser OAuth only (an API key cannot carry a scope), so it requires a TTY and refuses `--api-key`/`MB_API_KEY`. Requires a server advertising the `mb:workspace-manager` scope. |
62
63
 
63
64
  Non-interactive (non-TTY) login requires an API key; resolution order: `--api-key` → piped stdin → `MB_API_KEY` (first non-empty wins). Without one, non-interactive login fails rather than prompting.
64
65
 
66
+ A workspace-scoped profile that hits a 403 on a content command gets an error naming the scope and the fix (re-login without `--workspace`, or use a workspace profile) instead of a bare "Forbidden."
67
+
65
68
  ```sh
66
69
  mb auth login # interactive: browser or API key
67
70
  echo "$MB_KEY" | mb auth login --url https://m.example.com
@@ -919,6 +922,157 @@ mb measure archive 1 --revision-message "deprecated"
919
922
  | --------------------------- | ------------------------------------------- |
920
923
  | `--revision-message <text>` | Audit-log message recorded with the change. |
921
924
 
925
+ ## Timelines
926
+
927
+ CRUD on `/api/timeline`. A timeline is a named collection of dated events rendered as annotations on time-series charts. Timelines live in collections (`collection_id: null` = root) and carry an icon (`star`, `cake`, `mail`, `warning`, `bell`, `cloud`).
928
+
929
+ ### `mb timeline list`
930
+
931
+ ```sh
932
+ mb timeline list
933
+ mb timeline list --json
934
+ mb timeline list --archived --json
935
+ ```
936
+
937
+ | Flag | Description |
938
+ | ------------ | ----------------------------------------------- |
939
+ | `--archived` | Show archived timelines instead of active ones. |
940
+
941
+ ### `mb timeline get <id>`
942
+
943
+ ```sh
944
+ mb timeline get 1
945
+ mb timeline get 1 --json --full
946
+ ```
947
+
948
+ ### `mb timeline events <id>`
949
+
950
+ List the events on a timeline. Archived events are excluded unless `--archived` is passed (which returns both).
951
+
952
+ ```sh
953
+ mb timeline events 1
954
+ mb timeline events 1 --archived --json
955
+ ```
956
+
957
+ | Flag | Description |
958
+ | ------------ | ------------------------ |
959
+ | `--archived` | Include archived events. |
960
+
961
+ ### `mb timeline create`
962
+
963
+ ```sh
964
+ mb timeline create --body '{"name":"Releases"}'
965
+ cat timeline.json | mb timeline create
966
+ mb timeline create --file timeline.json
967
+ ```
968
+
969
+ | Flag | Description |
970
+ | --------------- | ----------------------- |
971
+ | `--body <json>` | Inline JSON body. |
972
+ | `--file <path>` | Path to JSON body file. |
973
+
974
+ Body fields: `name` (required), `description` (optional), `icon` (optional, default `star`), `collection_id` (optional positive integer, omit for the root collection), `default` (optional boolean marking the collection's default timeline).
975
+
976
+ ### `mb timeline update <id>`
977
+
978
+ Patch a timeline. Body is a partial subset of the create shape plus `archived`. Only the keys you send are touched. Changing `archived` cascades to every event on the timeline.
979
+
980
+ ```sh
981
+ mb timeline update 1 --body '{"name":"Product releases"}'
982
+ cat patch.json | mb timeline update 1
983
+ mb timeline update 1 --file patch.json
984
+ ```
985
+
986
+ | Flag | Description |
987
+ | --------------- | ----------------------- |
988
+ | `--body <json>` | Inline JSON body. |
989
+ | `--file <path>` | Path to JSON body file. |
990
+
991
+ ### `mb timeline archive <id>`
992
+
993
+ Soft-delete a timeline (and, by server-side cascade, all its events) by setting `archived: true`. To unarchive use `mb timeline update <id> --body '{"archived":false}'`.
994
+
995
+ ```sh
996
+ mb timeline archive 1
997
+ mb timeline archive 1 --json
998
+ ```
999
+
1000
+ ### `mb timeline delete <id>`
1001
+
1002
+ Permanently delete a timeline and all its events. Irreversible — prefer `mb timeline archive` unless you mean it. Prompts for confirmation on a TTY; requires `--yes` otherwise.
1003
+
1004
+ ```sh
1005
+ mb timeline delete 1 --yes
1006
+ mb timeline delete 1
1007
+ ```
1008
+
1009
+ | Flag | Description |
1010
+ | ------- | ------------------ |
1011
+ | `--yes` | Skip confirmation. |
1012
+
1013
+ ## Timeline events
1014
+
1015
+ CRUD on `/api/timeline-event`. An event is a dated annotation on a timeline. There is no server-side list endpoint — list events with `mb timeline events <id>`.
1016
+
1017
+ ### `mb timeline-event get <id>`
1018
+
1019
+ ```sh
1020
+ mb timeline-event get 1
1021
+ mb timeline-event get 1 --json --full
1022
+ ```
1023
+
1024
+ ### `mb timeline-event create`
1025
+
1026
+ ```sh
1027
+ mb timeline-event create --body '{"name":"v2 launch","timestamp":"2026-07-01T00:00:00Z","timezone":"UTC","time_matters":false,"timeline_id":1}'
1028
+ cat event.json | mb timeline-event create
1029
+ mb timeline-event create --file event.json
1030
+ ```
1031
+
1032
+ | Flag | Description |
1033
+ | --------------- | ----------------------- |
1034
+ | `--body <json>` | Inline JSON body. |
1035
+ | `--file <path>` | Path to JSON body file. |
1036
+
1037
+ Body fields: `name` (required), `timestamp` (required, ISO 8601), `timezone` (required, IANA name like `UTC` or `America/New_York`), `time_matters` (required boolean — `true` when the time of day is significant, `false` when only the date is), `timeline_id` (required positive integer), `description` (optional), `icon` (optional, default: the timeline's icon).
1038
+
1039
+ ### `mb timeline-event update <id>`
1040
+
1041
+ Patch an event. Body is a partial subset of the create shape plus `archived`. Only the keys you send are touched; `timeline_id` moves the event to another timeline.
1042
+
1043
+ ```sh
1044
+ mb timeline-event update 1 --body '{"name":"v2.1 launch"}'
1045
+ cat patch.json | mb timeline-event update 1
1046
+ mb timeline-event update 1 --file patch.json
1047
+ ```
1048
+
1049
+ | Flag | Description |
1050
+ | --------------- | ----------------------- |
1051
+ | `--body <json>` | Inline JSON body. |
1052
+ | `--file <path>` | Path to JSON body file. |
1053
+
1054
+ ### `mb timeline-event archive <id>`
1055
+
1056
+ Soft-delete an event by setting `archived: true`. To unarchive use `mb timeline-event update <id> --body '{"archived":false}'`.
1057
+
1058
+ ```sh
1059
+ mb timeline-event archive 1
1060
+ mb timeline-event archive 1 --json
1061
+ ```
1062
+
1063
+ ### `mb timeline-event delete <id>`
1064
+
1065
+ Permanently delete an event. Prompts for confirmation on a TTY; requires `--yes` otherwise.
1066
+
1067
+ ```sh
1068
+ mb timeline-event delete 1 --yes
1069
+ mb timeline-event delete 1
1070
+ ```
1071
+
1072
+ | Flag | Description |
1073
+ | ------- | ------------------ |
1074
+ | `--yes` | Skip confirmation. |
1075
+
922
1076
  ## Collections
923
1077
 
924
1078
  Read collections on `/api/collection`. Collections are the folders that contain cards, dashboards, and other collections. The list endpoint surfaces a virtual root collection (id `"root"`) alongside regular numeric ids; the get endpoint accepts only the numeric id.
@@ -1026,7 +1180,7 @@ mb library create --json
1026
1180
 
1027
1181
  ### `mb library publish`
1028
1182
 
1029
- Publish tables (and their upstream dependencies) into the Library's Data collection (`POST /api/ee/data-studio/table/publish-tables`). The target Data collection is resolved automatically and the Library is created if it doesn't exist yet — there's no collection id to pass.
1183
+ Publish tables (and their upstream dependencies) into the Library's Data collection (`POST /api/ee/data-studio/table/publish-tables`). The target Data collection is resolved automatically and the Library is created if it doesn't exist yet — there's no collection id to pass. Publishing does not add the Data collection to the git-sync scope; on an instance with remote sync configured, the command warns on stderr with the `mb git-sync add-collection <id>` invocation that makes exports carry the published tables' metadata.
1030
1184
 
1031
1185
  ```sh
1032
1186
  mb library publish --table-ids 1,2,3
@@ -1177,7 +1331,7 @@ Drive Metabase Enterprise Remote Sync (`/api/ee/remote-sync`) — import / expor
1177
1331
 
1178
1332
  ### `mb git-sync status`
1179
1333
 
1180
- Roll up the current sync state in one call: configured branch, dirty flag, and the most recent sync task (or `null` if none has ever run).
1334
+ Roll up the current sync state in one call: configured branch, dirty flag, the most recent sync task (or `null` if none has ever run), and the collections marked for sync.
1181
1335
 
1182
1336
  ```sh
1183
1337
  mb git-sync status
@@ -1336,6 +1490,64 @@ mb git-sync remove-collection 12
1336
1490
  mb git-sync remove-collection 12 --json --profile prod
1337
1491
  ```
1338
1492
 
1493
+ ## Workspaces
1494
+
1495
+ Lifecycle for EE workspaces via `/api/ee/workspace-manager` (Metabase v62+, `workspaces` premium feature). A workspace attaches databases and provisions warehouse isolation — a temporary schema + user per database — so work runs against real data without touching prod schemas. Alias: `mb ws`.
1496
+
1497
+ ### `mb workspace list`
1498
+
1499
+ ```sh
1500
+ mb workspace list
1501
+ mb workspace list --json
1502
+ ```
1503
+
1504
+ ### `mb workspace get <id>`
1505
+
1506
+ Includes per-database provisioning status (`unprovisioned` | `provisioning` | `provisioned` | `deprovisioning`), input schemas, and the isolated output namespace.
1507
+
1508
+ ```sh
1509
+ mb workspace get 1 --json
1510
+ ```
1511
+
1512
+ ### `mb workspace create`
1513
+
1514
+ Creates the workspace and provisions isolation for each database (blocking). Each database must be eligible for workspaces (driver support + the `database-enable-workspaces` database setting).
1515
+
1516
+ ```sh
1517
+ mb workspace create --name ws-reports --database-ids 1
1518
+ mb workspace create --name ws-etl --database-ids 1,2 --json
1519
+ mb workspace create --name transform-work --database-ids 1 --spawn
1520
+ ```
1521
+
1522
+ | Flag | Description |
1523
+ | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
1524
+ | `--name <name>` | Workspace name. |
1525
+ | `--database-ids <ids>` | Database ids to attach, comma separated. |
1526
+ | `--spawn` | Also spawn a workspace Metabase; the returned credential is saved to the `ws-<id>` profile (never printed) and made the default. |
1527
+ | `--keep-existing-auth` | Proceed despite broader same-server credentials in the profile store. Interactive only — refused in non-interactive contexts. |
1528
+
1529
+ Before creating, the profile store is swept for broader credentials against the same server: any API key profile, or any OAuth profile wider than `mb:workspace-manager`. Interactive runs offer to revoke the offenders (local clear + best-effort server-side token revocation; API keys must additionally be deleted in Admin settings); non-interactive runs hard-refuse so an agent can't proceed while a full-power credential is in reach.
1530
+
1531
+ With `--spawn` the parent asks its instance manager for a workspace Metabase (`spawn_instance: true`) and the CLI consumes the returned `url` + `api_key`: the credential is written straight to the profile store as `ws-<id>` — never to stdout, `--json`, or an agent transcript — and that profile becomes the default, so bare `mb` targets the new workspace from then on (explicit `--profile`/`MB_PROFILE` still win). Destroying the workspace (or `mb auth logout` on the profile) unhooks the default again. Because an exported `MB_API_KEY` outranks stored profiles, `--spawn` refuses to run while it is set — it would silently shadow the profile it is about to install.
1532
+
1533
+ ### `mb workspace destroy <id>`
1534
+
1535
+ Destroy is the only irreversible moment, so it closes the work-loss window first: when a local profile named `ws-<id>` exists, the child is checked for unsynced work (`remote-sync is-dirty`) and a dirty workspace is auto-exported to its target branch before teardown. `--discard` skips the check and the export; a machine without the workspace's profile warns and proceeds (destroy is the billing-stop lever — ops cleanup must work from anywhere), while a profile whose child can't be reached refuses without `--discard`.
1536
+
1537
+ Then each provisioned database's warehouse isolation is torn down and the workspace removed; the matching local profile is dropped on success. Prompts unless `--yes`. Refuses (409) while any database is still provisioning/deprovisioning unless `--ignore-pending`, which removes the records and leaves those warehouse objects behind; unreachable-warehouse leftovers are reported as `orphaned_resources`.
1538
+
1539
+ ```sh
1540
+ mb workspace destroy 1 --yes
1541
+ mb workspace destroy 1 --yes --discard
1542
+ mb workspace destroy 1 --yes --ignore-pending
1543
+ ```
1544
+
1545
+ | Flag | Description |
1546
+ | ------------------ | ----------------------------------------------------------------------- |
1547
+ | `--yes` | Skip confirmation. |
1548
+ | `--discard` | Destroy without exporting unsynced work (skips the is-dirty check). |
1549
+ | `--ignore-pending` | Remove workspace records even while databases are mid-(de)provisioning. |
1550
+
1339
1551
  ## Instance setup
1340
1552
 
1341
1553
  Bootstrapping a fresh, not-yet-configured Metabase instance.
@@ -1536,7 +1748,7 @@ Exit codes: `0` success, `2` `ConfigError` (missing name, unknown name, `MB_SKIL
1536
1748
  | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1537
1749
  | `MB_URL` | Default URL for `auth login` and config resolution. |
1538
1750
  | `MB_API_KEY` | Default API key (makes `auth login` non-interactive, skipping the browser flow; not stored). |
1539
- | `MB_PROFILE` | Default profile when `--profile` is omitted. Falls back to `default`. |
1751
+ | `MB_PROFILE` | Default profile when `--profile` is omitted. Falls back to the stored default pointer (set by `workspace create --spawn`), then `default`. |
1540
1752
  | `MB_VERBOSE` | When set to `1`, prints structured developer-detail JSON to stderr on failure. |
1541
1753
  | `MB_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. |
1542
1754
  | `MB_CLI_DISABLE_KEYRING` | When set to `1`, skips the OS keychain and stores credentials as plaintext in the profiles file. |
@@ -0,0 +1,9 @@
1
+ import "./capabilities-CiaAfUgX.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import "./runtime-C6ASrgVA.mjs";
4
+ import "./parse-id-xS1tWJAq.mjs";
5
+ import "./poll-CuTlWBwI.mjs";
6
+ import "./poll-task-DhsYs8Hx.mjs";
7
+ import { SyncSettingsUpdateResult, add_collection_default, setCollectionRemoteSynced, syncSettingsUpdateView } from "./add-collection-CLXfrgp4.mjs";
8
+
9
+ export { add_collection_default as default };
@@ -1,7 +1,7 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
2
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
3
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
4
- import { REMOTE_SYNC_PATHS } from "./poll-task-DLUZaglY.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
3
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
4
+ import { REMOTE_SYNC_PATHS } from "./poll-task-DhsYs8Hx.mjs";
5
5
  import { z } from "zod";
6
6
 
7
7
  //#region src/commands/git-sync/add-collection.ts
@@ -1,9 +1,9 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import "./input-m9ctfLxZ.mjs";
5
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
6
- import { UploadUpdateResult, readCsvFile, requireUploadFilePath, updateTableFromCsv, uploadUpdateResultView } from "./requests-KBiY9UYy.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import "./input-BGyHn0Kr.mjs";
5
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
6
+ import { UploadUpdateResult, readCsvFile, requireUploadFilePath, updateTableFromCsv, uploadUpdateResultView } from "./requests-DYrDe-D0.mjs";
7
7
 
8
8
  //#region src/commands/upload/append.ts
9
9
  var append_default = defineMetabaseCommand({
@@ -0,0 +1,38 @@
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
5
+ import { Timeline, timelineView } from "./timeline-DEaiuB5V.mjs";
6
+
7
+ //#region src/commands/timeline/archive.ts
8
+ var archive_default = defineMetabaseCommand({
9
+ meta: {
10
+ name: "archive",
11
+ description: "Archive (soft-delete) a timeline and all its events by id"
12
+ },
13
+ capabilities: { minVersion: 58 },
14
+ args: {
15
+ ...outputFlags,
16
+ ...profileFlag,
17
+ ...connectionFlags,
18
+ id: {
19
+ type: "positional",
20
+ description: "Timeline id",
21
+ required: true
22
+ }
23
+ },
24
+ outputSchema: Timeline,
25
+ examples: ["mb timeline archive 1", "mb timeline archive 1 --json"],
26
+ async run({ args, ctx, getClient }) {
27
+ const id = parseId(args.id);
28
+ const client = await getClient();
29
+ const updated = await client.requestParsed(Timeline, `/api/timeline/${id}`, {
30
+ method: "PUT",
31
+ body: { archived: true }
32
+ });
33
+ renderSummary(updated, timelineView, `Archived timeline ${updated.id} "${updated.name}".`, ctx);
34
+ }
35
+ });
36
+
37
+ //#endregion
38
+ export { archive_default as default };
@@ -1,8 +1,8 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
5
- import { Collection, collectionView } from "./collection-CFoLPrY5.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
5
+ import { Collection, collectionView } from "./collection-C52Ndi_O.mjs";
6
6
 
7
7
  //#region src/commands/collection/archive.ts
8
8
  var archive_default = defineMetabaseCommand({
@@ -1,9 +1,9 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
5
- import { revisionMessageFlag } from "./revision-message-flag-CHzX0cqV.mjs";
6
- import { Segment, segmentView } from "./segment-BPb1H6DW.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
5
+ import { revisionMessageFlag } from "./revision-message-flag-CHrJgFFx.mjs";
6
+ import { Segment, segmentView } from "./segment-CxRYEXeO.mjs";
7
7
 
8
8
  //#region src/commands/segment/archive.ts
9
9
  var archive_default = defineMetabaseCommand({
@@ -1,11 +1,11 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
4
  import "./embedding-CKdw8q7p.mjs";
5
5
  import "./field-DsXTeqBy.mjs";
6
6
  import "./parameter-BZ6y-Gfs.mjs";
7
7
  import { Card, cardView } from "./card-B8G5jQQT.mjs";
8
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
8
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
9
9
 
10
10
  //#region src/commands/card/archive.ts
11
11
  var archive_default = defineMetabaseCommand({
@@ -1,8 +1,8 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
5
- import { Document, documentView } from "./document-CL4ML5FN.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
5
+ import { Document, documentView } from "./document-D4zB-5a0.mjs";
6
6
 
7
7
  //#region src/commands/document/archive.ts
8
8
  var archive_default = defineMetabaseCommand({
@@ -1,8 +1,8 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
5
- import { Snippet, snippetView } from "./snippet-DWiXNy4T.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
5
+ import { Snippet, snippetView } from "./snippet-C8PVaPY9.mjs";
6
6
 
7
7
  //#region src/commands/snippet/archive.ts
8
8
  var archive_default = defineMetabaseCommand({
@@ -0,0 +1,38 @@
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
5
+ import { TimelineEvent, timelineEventView } from "./timeline-DEaiuB5V.mjs";
6
+
7
+ //#region src/commands/timeline-event/archive.ts
8
+ var archive_default = defineMetabaseCommand({
9
+ meta: {
10
+ name: "archive",
11
+ description: "Archive (soft-delete) a timeline event by id"
12
+ },
13
+ capabilities: { minVersion: 58 },
14
+ args: {
15
+ ...outputFlags,
16
+ ...profileFlag,
17
+ ...connectionFlags,
18
+ id: {
19
+ type: "positional",
20
+ description: "Timeline event id",
21
+ required: true
22
+ }
23
+ },
24
+ outputSchema: TimelineEvent,
25
+ examples: ["mb timeline-event archive 1", "mb timeline-event archive 1 --json"],
26
+ async run({ args, ctx, getClient }) {
27
+ const id = parseId(args.id);
28
+ const client = await getClient();
29
+ const updated = await client.requestParsed(TimelineEvent, `/api/timeline-event/${id}`, {
30
+ method: "PUT",
31
+ body: { archived: true }
32
+ });
33
+ renderSummary(updated, timelineEventView, `Archived timeline event ${updated.id} "${updated.name}".`, ctx);
34
+ }
35
+ });
36
+
37
+ //#endregion
38
+ export { archive_default as default };
@@ -1,10 +1,10 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
4
  import "./embedding-CKdw8q7p.mjs";
5
5
  import "./parameter-BZ6y-Gfs.mjs";
6
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
7
- import { Dashboard, dashboardView } from "./dashboard-B-MTpfeS.mjs";
6
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
7
+ import { Dashboard, dashboardView } from "./dashboard-BLihjDXg.mjs";
8
8
 
9
9
  //#region src/commands/dashboard/archive.ts
10
10
  var archive_default = defineMetabaseCommand({
@@ -1,9 +1,9 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
5
- import { Measure, measureView } from "./measure-S9WszHre.mjs";
6
- import { revisionMessageFlag } from "./revision-message-flag-CHzX0cqV.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
5
+ import { Measure, measureView } from "./measure-C3G1srWb.mjs";
6
+ import { revisionMessageFlag } from "./revision-message-flag-CHrJgFFx.mjs";
7
7
 
8
8
  //#region src/commands/measure/archive.ts
9
9
  var archive_default = defineMetabaseCommand({
@@ -11,10 +11,10 @@ var auth_default = defineCommandGroup({
11
11
  purpose: "authentication and named profiles"
12
12
  }],
13
13
  subCommands: {
14
- login: () => import("./login-hKlYsAa1.mjs").then((m) => m.default),
15
- status: () => import("./status-C-0jFjFn.mjs").then((m) => m.default),
16
- list: () => import("./list-CMb03cv3.mjs").then((m) => m.default),
17
- logout: () => import("./logout-DO8GVC6b.mjs").then((m) => m.default)
14
+ login: () => import("./login-CRlmR4op.mjs").then((m) => m.default),
15
+ status: () => import("./status--Dm2Jv6k.mjs").then((m) => m.default),
16
+ list: () => import("./list-wxIVl45_.mjs").then((m) => m.default),
17
+ logout: () => import("./logout-DSZEUxSQ.mjs").then((m) => m.default)
18
18
  }
19
19
  });
20
20
 
@@ -1,6 +1,6 @@
1
- import { ConfigError } from "./capabilities-DrDJo_ng.mjs";
2
- import { parseJson } from "./runtime-B-c-Fc2i.mjs";
3
- import { DEFAULT_FLAG_NAME, readInput } from "./input-m9ctfLxZ.mjs";
1
+ import { ConfigError } from "./capabilities-CiaAfUgX.mjs";
2
+ import { parseJson } from "./runtime-C6ASrgVA.mjs";
3
+ import { DEFAULT_FLAG_NAME, readInput } from "./input-BGyHn0Kr.mjs";
4
4
 
5
5
  //#region src/runtime/body.ts
6
6
  async function readBody(sources, schema) {
@@ -1,8 +1,8 @@
1
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, renderList, wrapList } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, renderList, wrapList } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import "./poll-D1Yg78c3.mjs";
5
- import { REMOTE_SYNC_PATHS } from "./poll-task-DLUZaglY.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import "./poll-CuTlWBwI.mjs";
5
+ import { REMOTE_SYNC_PATHS } from "./poll-task-DhsYs8Hx.mjs";
6
6
  import { z } from "zod";
7
7
 
8
8
  //#region src/commands/git-sync/branches.ts
@@ -1,7 +1,7 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
5
5
  import { z } from "zod";
6
6
 
7
7
  //#region src/commands/transform/cancel.ts
@@ -1,8 +1,8 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import "./poll-D1Yg78c3.mjs";
5
- import { REMOTE_SYNC_PATHS, SyncTask, syncTaskView } from "./poll-task-DLUZaglY.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
+ import "./poll-CuTlWBwI.mjs";
5
+ import { REMOTE_SYNC_PATHS, SyncTask, syncTaskView } from "./poll-task-DhsYs8Hx.mjs";
6
6
 
7
7
  //#region src/commands/git-sync/cancel-task.ts
8
8
  var cancel_task_default = defineMetabaseCommand({
@@ -266,7 +266,7 @@ function errorMessage(value) {
266
266
  //#endregion
267
267
  //#region package.json
268
268
  var name = "@metabase/cli";
269
- var version = "0.2.0";
269
+ var version = "0.2.1-alpha.bcm-ghy-4075-spawn-default-profile.eb120d1";
270
270
  var description = "Metabase CLI";
271
271
  var license = "AGPL-3.0";
272
272
  var repository = {
@@ -13,12 +13,12 @@ var card_default = defineCommandGroup({
13
13
  purpose: "choose display and visualization_settings"
14
14
  }],
15
15
  subCommands: {
16
- list: () => import("./list-D9FY30xH.mjs").then((mod) => mod.default),
17
- get: () => import("./get-AvGH_oph.mjs").then((mod) => mod.default),
18
- query: () => import("./query-DTASj9Zu.mjs").then((mod) => mod.default),
19
- create: () => import("./create-C8ndg3g4.mjs").then((mod) => mod.default),
20
- update: () => import("./update-HxYcvpSq.mjs").then((mod) => mod.default),
21
- archive: () => import("./archive-pHsa4dL0.mjs").then((mod) => mod.default)
16
+ list: () => import("./list-Be8xMtS3.mjs").then((mod) => mod.default),
17
+ get: () => import("./get-DTkvGu_J.mjs").then((mod) => mod.default),
18
+ query: () => import("./query-Dfx69iJ4.mjs").then((mod) => mod.default),
19
+ create: () => import("./create-VrSowEbj.mjs").then((mod) => mod.default),
20
+ update: () => import("./update-C1_aIL6X.mjs").then((mod) => mod.default),
21
+ archive: () => import("./archive-BmhehbS0.mjs").then((mod) => mod.default)
22
22
  }
23
23
  });
24
24
 
@@ -1,10 +1,10 @@
1
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, renderList, wrapList } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, renderList, wrapList } from "./capabilities-CiaAfUgX.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C6ASrgVA.mjs";
4
4
  import "./embedding-CKdw8q7p.mjs";
5
5
  import "./parameter-BZ6y-Gfs.mjs";
6
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
7
- import { DashboardDetail, DashcardCompact, dashcardView } from "./dashboard-B-MTpfeS.mjs";
6
+ import { parseId } from "./parse-id-xS1tWJAq.mjs";
7
+ import { DashboardDetail, DashcardCompact, dashcardView } from "./dashboard-BLihjDXg.mjs";
8
8
 
9
9
  //#region src/commands/dashboard/cards.ts
10
10
  const DashcardListEnvelope = listEnvelopeSchema(DashcardCompact);