@metabase/cli 0.5.4 → 0.5.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 (255) hide show
  1. package/dist/{add-collection-D2x34KVO.mjs → add-collection-C_PXX4ls.mjs} +1 -1
  2. package/dist/{alert-B-w0c61D.mjs → alert-C8-KXr_o.mjs} +6 -6
  3. package/dist/{alerts-nnrpqD-U.mjs → alerts-BXEyXQRl.mjs} +2 -2
  4. package/dist/{api-key-CTyXuYui.mjs → api-key-DgEtUdtr.mjs} +3 -3
  5. package/dist/{append-BPrVW4RB.mjs → append-DHsRfdyS.mjs} +2 -2
  6. package/dist/{archive-p7gGwh0n.mjs → archive-1u8702EH.mjs} +1 -1
  7. package/dist/{archive-Bw_cvk_4.mjs → archive-78gVBFu3.mjs} +1 -1
  8. package/dist/{archive-CJFUFozc.mjs → archive-BHhKF2_r.mjs} +1 -1
  9. package/dist/{archive-CTZs6Hl6.mjs → archive-BfCuJyWK.mjs} +1 -1
  10. package/dist/{archive-Cwetg5kK.mjs → archive-BofgzTAr.mjs} +1 -1
  11. package/dist/{archive-BYo35OGC.mjs → archive-CU9OhyrM.mjs} +1 -1
  12. package/dist/{archive-F5hoWW7f.mjs → archive-Cm3GcZRd.mjs} +1 -1
  13. package/dist/{archive-Ccf6Qqrf.mjs → archive-D87H0xOc.mjs} +1 -1
  14. package/dist/{archive-BZVRJYTT.mjs → archive-DxLrdlxM.mjs} +1 -1
  15. package/dist/{archive-OZQaaQkK.mjs → archive-DyB65bNo.mjs} +1 -1
  16. package/dist/{archive-DBQnauVo.mjs → archive-Lgd6irTm.mjs} +1 -1
  17. package/dist/{archive-tmrsG41w.mjs → archive-eINikapF.mjs} +1 -1
  18. package/dist/{auth-eogOlU4X.mjs → auth-CeSe2l6R.mjs} +4 -4
  19. package/dist/{branches-CERgKqFq.mjs → branches-iu9tRXr6.mjs} +1 -1
  20. package/dist/{breaking-B8f_vl0i.mjs → breaking-DicKTkii.mjs} +1 -1
  21. package/dist/{broken-mrkOdV4j.mjs → broken-70_zMy0L.mjs} +1 -1
  22. package/dist/{bulk-discard-values-BQ3z6nJb.mjs → bulk-discard-values-Bsdq0Aid.mjs} +1 -1
  23. package/dist/{bulk-edit-CJxoxDGQ.mjs → bulk-edit-vWzm2uEj.mjs} +1 -1
  24. package/dist/{bulk-rescan-values-DflzyxEj.mjs → bulk-rescan-values-qTNZkMRH.mjs} +1 -1
  25. package/dist/{bulk-sync-schema-CBIs4yHs.mjs → bulk-sync-schema-neL4AxaB.mjs} +1 -1
  26. package/dist/{cancel-CyTRWSOr.mjs → cancel-DsyTp_jV.mjs} +1 -1
  27. package/dist/{cancel-task-BuZsQuLp.mjs → cancel-task-DMlaD81O.mjs} +1 -1
  28. package/dist/{card-DA1W3Axw.mjs → card-uZeDk5uH.mjs} +8 -8
  29. package/dist/{cards-BEeFNiCt.mjs → cards-DLEx1zfQ.mjs} +1 -1
  30. package/dist/cli.mjs +38 -38
  31. package/dist/{client-DvWllzKd.mjs → client-BN93yUlt.mjs} +10 -5
  32. package/dist/{collection-C98jgufi.mjs → collection-Cowt7nWW.mjs} +7 -7
  33. package/dist/{content-translation-1coWME1P.mjs → content-translation-C2V3jNV7.mjs} +2 -2
  34. package/dist/{copy-DVe4rcLK.mjs → copy-9iOg50lN.mjs} +1 -1
  35. package/dist/{copy-hE6SaHfb.mjs → copy-C4Nf6Sqt.mjs} +1 -1
  36. package/dist/{create-DJg0Ohj5.mjs → create-9p0vyQkK.mjs} +1 -1
  37. package/dist/{create-BjH0i2BC.mjs → create-B5h_621T.mjs} +1 -1
  38. package/dist/{create-XCzUuT42.mjs → create-BDBHkgLv.mjs} +1 -1
  39. package/dist/{create-DR5tpMUA.mjs → create-BNgkKeY4.mjs} +1 -1
  40. package/dist/{create-D271V9Cf.mjs → create-BUmS6B9_.mjs} +1 -1
  41. package/dist/{create-DdfFgF-w.mjs → create-BafMBtrH.mjs} +1 -1
  42. package/dist/{create-DCoo3sI2.mjs → create-BtExn-0P.mjs} +1 -1
  43. package/dist/{create-XVjr8IDS.mjs → create-C1DBXOxh.mjs} +1 -1
  44. package/dist/{create-Btwnm6D2.mjs → create-CA9c4U1m.mjs} +1 -1
  45. package/dist/{create-DXivfl69.mjs → create-CBk4CFjA.mjs} +1 -1
  46. package/dist/{create-DR8g_rEL.mjs → create-CWMC90-0.mjs} +1 -1
  47. package/dist/{create-LpdQKxUt.mjs → create-D6eWvVcd.mjs} +2 -2
  48. package/dist/{create-D6Xm2b2D.mjs → create-DBWbf0DF.mjs} +2 -2
  49. package/dist/{create-DEIIUohY2.mjs → create-DDEKafSb2.mjs} +1 -1
  50. package/dist/{create-CCb2_Kcc.mjs → create-DJzWxTOV.mjs} +1 -1
  51. package/dist/{create-B3P62NaN.mjs → create-D_AwGujc.mjs} +1 -1
  52. package/dist/{create-Dz4c8E33.mjs → create-VPzYsXKz.mjs} +1 -1
  53. package/dist/{create-BPRuU7Mv.mjs → create-ZKrdArmQ.mjs} +1 -1
  54. package/dist/{create-branch-D_nbKxDS.mjs → create-branch-D56lVQNd.mjs} +1 -1
  55. package/dist/{create-B3kz_fHg.mjs → create-il08Ub78.mjs} +1 -1
  56. package/dist/{create-DkFCjBp3.mjs → create-vN4sgCHU.mjs} +1 -1
  57. package/dist/{csv-LP7sE-CS.mjs → csv-D50rzoTk.mjs} +2 -2
  58. package/dist/{current-task-DhgwtGN3.mjs → current-task-CpPUJYbQ.mjs} +1 -1
  59. package/dist/{dashboard-CR97_zXn.mjs → dashboard-CrD7w0mE.mjs} +11 -11
  60. package/dist/{data-action-C4jE-RLb.mjs → data-action-p-8TbHAj.mjs} +7 -7
  61. package/dist/{data-app-BlBvvRzC.mjs → data-app-3cmb-x-I.mjs} +9 -9
  62. package/dist/{data-app-project-DjDDWgUF.mjs → data-app-project-DUCJcvfJ.mjs} +1 -1
  63. package/dist/{db-D8mPRqZc.mjs → db-BO1aJAAn.mjs} +7 -7
  64. package/dist/{delete-DWTqIlbr.mjs → delete-8qsotOGB.mjs} +1 -1
  65. package/dist/{delete-DaqzPLcG.mjs → delete-BSCnAB2g.mjs} +1 -1
  66. package/dist/{delete-DuaJ8PUI.mjs → delete-ByYgGnoo.mjs} +1 -1
  67. package/dist/{delete-CaaPrNOf.mjs → delete-CTtToAYO.mjs} +1 -1
  68. package/dist/{delete-CuyGTe0i.mjs → delete-DHJ3ea0o.mjs} +1 -1
  69. package/dist/{delete-8k7oYDFr.mjs → delete-DU-Kinm4.mjs} +1 -1
  70. package/dist/{delete-DC-DEYSq.mjs → delete-DU1K-Cy4.mjs} +1 -1
  71. package/dist/{delete-ZjLpkwgx.mjs → delete-DXL1orAc.mjs} +1 -1
  72. package/dist/{delete-B1SbEVIc.mjs → delete-DuVEKGA5.mjs} +1 -1
  73. package/dist/{delete-CqyBkMCd.mjs → delete-DwNkDTga.mjs} +1 -1
  74. package/dist/{delete-table-CnGv1gx9.mjs → delete-table-RAznoioi.mjs} +1 -1
  75. package/dist/{dependencies-D6SNdLW8.mjs → dependencies-CKT460jf.mjs} +1 -1
  76. package/dist/{dependency-Bbg9x1V9.mjs → dependency-B1wYuRR1.mjs} +5 -5
  77. package/dist/{dependents-BizQb14Q.mjs → dependents-D85CaupB.mjs} +1 -1
  78. package/dist/{dirty-BHwdHOEj.mjs → dirty-BnuuGVxz.mjs} +1 -1
  79. package/dist/{discard-values-BWlh2ce8.mjs → discard-values-CXyBp5pq.mjs} +1 -1
  80. package/dist/{document-B6254tue.mjs → document-BHXXSx3u.mjs} +6 -6
  81. package/dist/{download-D2wEAgi_.mjs → download--RQk3dyK.mjs} +1 -1
  82. package/dist/{eid-KtWIPUCC.mjs → eid-BwhUajT8.mjs} +1 -1
  83. package/dist/{entry-flags-DLS6r8Vf.mjs → entry-flags-DS_MMJbV.mjs} +1 -1
  84. package/dist/{events-B8yMqrrD.mjs → events-DuHSrJuz.mjs} +1 -1
  85. package/dist/{execute-Bebvab7D.mjs → execute-BjWeMJ0l.mjs} +1 -1
  86. package/dist/{export-BNj3RvAl.mjs → export-C_G6D1MF.mjs} +2 -2
  87. package/dist/{export-preflight-F3OapAD5.mjs → export-preflight-DeqCCYP0.mjs} +1 -1
  88. package/dist/{field-DQAcCjXr.mjs → field-C02nW-20.mjs} +7 -7
  89. package/dist/{fields-BkAS_wIA.mjs → fields-Ds2PnxA7.mjs} +1 -1
  90. package/dist/{fks--SaqvPw1.mjs → fks-CCKTcQ4c.mjs} +1 -1
  91. package/dist/{get-B2nBYYCw.mjs → get-8gu6wblt.mjs} +1 -1
  92. package/dist/{get-uHs9Ve-4.mjs → get-BB0b96ox.mjs} +1 -1
  93. package/dist/{get-iOs1ci6x.mjs → get-BOcwk9jz.mjs} +1 -1
  94. package/dist/{get-CTTKQDr7.mjs → get-B_5Y65cZ.mjs} +1 -1
  95. package/dist/{get-CM9IOr82.mjs → get-B_Vz5OMY.mjs} +1 -1
  96. package/dist/{get-f2km9wsq.mjs → get-C6qjCvoM.mjs} +1 -1
  97. package/dist/{get-B1uiZyyi.mjs → get-CDA-g71Z.mjs} +1 -1
  98. package/dist/{get-BSKpQJVB.mjs → get-CGrfQxXy.mjs} +1 -1
  99. package/dist/{get-Boql3_0n.mjs → get-CJEE2ApL.mjs} +1 -1
  100. package/dist/{get-Cdcj1c9U.mjs → get-CTwU2SwT.mjs} +1 -1
  101. package/dist/{get-gGSl7Se4.mjs → get-D3k4Pyfn.mjs} +1 -1
  102. package/dist/{get-CWDz6eV2.mjs → get-D3kYRX7B.mjs} +1 -1
  103. package/dist/{get-C_hatP_z.mjs → get-D7Uq4t19.mjs} +1 -1
  104. package/dist/{get-CGPxAoow.mjs → get-DSQSwjDw.mjs} +1 -1
  105. package/dist/{get-B1S1kW2N.mjs → get-DVctVDj6.mjs} +1 -1
  106. package/dist/{get-De6qpuzO.mjs → get-DXH0zRv1.mjs} +1 -1
  107. package/dist/{get-BseHija1.mjs → get-D_eGmu67.mjs} +1 -1
  108. package/dist/{get-C9VumVZ3.mjs → get-DkEOLIF5.mjs} +2 -2
  109. package/dist/{get-VpGfaL7c.mjs → get-Du0KCtaC.mjs} +1 -1
  110. package/dist/{get-BjgB5l7X.mjs → get-R4_vq3U9.mjs} +1 -1
  111. package/dist/{get-run-CHup8cMl.mjs → get-run-Ds50O2Rn.mjs} +1 -1
  112. package/dist/{get-CiLYhFjU.mjs → get-v_BtTCdl.mjs} +1 -1
  113. package/dist/{get-CU1zKfBS.mjs → get-xJTVgvSu.mjs} +1 -1
  114. package/dist/git-sync-Dje-mnMh.mjs +29 -0
  115. package/dist/{glossary-BVxRpD7o.mjs → glossary-TBjFyeRN.mjs} +4 -4
  116. package/dist/{graph-B7SlzpkC.mjs → graph-DeGkHvI5.mjs} +1 -1
  117. package/dist/{has-remote-changes-DZq7q2Wk.mjs → has-remote-changes-DUCn8d5k.mjs} +1 -1
  118. package/dist/{import-DKZF0kMU.mjs → import-Bnun0H8L.mjs} +2 -2
  119. package/dist/{is-dirty-haRLODo1.mjs → is-dirty-BRdzj548.mjs} +1 -1
  120. package/dist/{items-BGWE5hLl.mjs → items-BmFznkYw.mjs} +1 -1
  121. package/dist/{library-e3aiJ1Yb.mjs → library-Cy8n_GoQ.mjs} +4 -4
  122. package/dist/{list-BNel4hYs.mjs → list-B8FE0mi7.mjs} +1 -1
  123. package/dist/{list-DUCxqhtn.mjs → list-B8WxIHZh.mjs} +1 -1
  124. package/dist/{list-DJyIkrY1.mjs → list-BJaTl4Z3.mjs} +3 -3
  125. package/dist/{list-B9yhUzCc.mjs → list-BXgbS3xg.mjs} +1 -1
  126. package/dist/{list-DcXqKZyg.mjs → list-CgiBw3H-.mjs} +1 -1
  127. package/dist/{list-DDt1iLXj.mjs → list-ChPsUv0M.mjs} +1 -1
  128. package/dist/{list-Dvf1iB8r.mjs → list-CnQnHNwI.mjs} +1 -1
  129. package/dist/{list-D0ASRA_6.mjs → list-CucyGz_M.mjs} +1 -1
  130. package/dist/{list-HI7Mpoy-.mjs → list-Cv9U6hop.mjs} +1 -1
  131. package/dist/{list-P7FnSsbZ.mjs → list-D7oLTX1F.mjs} +1 -1
  132. package/dist/{list-gcDxZ7Th.mjs → list-DCooGGd-.mjs} +1 -1
  133. package/dist/{list-D_8GeDG-.mjs → list-DQNmzmbE.mjs} +1 -1
  134. package/dist/{list-COPGHkWL.mjs → list-DVdfoOmD.mjs} +1 -1
  135. package/dist/{list-CNiCM1NL.mjs → list-DkJsUigU.mjs} +1 -1
  136. package/dist/{list-CsXdnNyp.mjs → list-DqvwXEY3.mjs} +2 -2
  137. package/dist/{list-DFxfpa4W.mjs → list-DwA83Hut.mjs} +1 -1
  138. package/dist/{list-DAa4EWlv.mjs → list-Hkl1mEcn.mjs} +1 -1
  139. package/dist/{list-DednUvr3.mjs → list-emgvzTcQ.mjs} +1 -1
  140. package/dist/{list-Bbc8VYDi.mjs → list-hrR_sluM.mjs} +1 -1
  141. package/dist/{list-BiIZdUoN.mjs → list-jPZgEqWH.mjs} +1 -1
  142. package/dist/{list-C-AnwSRP.mjs → list-jfnzEgFg.mjs} +1 -1
  143. package/dist/{list-OUSeeuXb.mjs → list-uDe8e-8m.mjs} +1 -1
  144. package/dist/{list-DFuydMdV.mjs → list-zIJcjZwa.mjs} +1 -1
  145. package/dist/{login-APHXId1p.mjs → login-DMpRrZoJ.mjs} +31 -14
  146. package/dist/{logout-V0pxj6AM.mjs → logout-DEB_Rs3z.mjs} +1 -1
  147. package/dist/{measure-DnGWkKyx.mjs → measure-Dop8G1p3.mjs} +5 -5
  148. package/dist/{parameter-values-DfZSEK3O.mjs → parameter-values-CuNu1kDf.mjs} +1 -1
  149. package/dist/{path-Bni-pnKS.mjs → path-6xIAWlup.mjs} +2 -2
  150. package/dist/{poll-vxN__4cz.mjs → poll-uailHW3t.mjs} +1 -1
  151. package/dist/{publish-DkYn86ak.mjs → publish-D7tndpBc.mjs} +9 -3
  152. package/dist/{query-gHeYfWj_.mjs → query-C_6GZwbJ.mjs} +1 -1
  153. package/dist/{query-CZbI4Rlv.mjs → query-Do1Ms0k9.mjs} +1 -1
  154. package/dist/{remapping-hcWkFQsx.mjs → remapping-B5Z3Ustf.mjs} +1 -1
  155. package/dist/{remove-collection-Qne5ww6M.mjs → remove-collection-p9OgcXQ0.mjs} +1 -1
  156. package/dist/{render-d1-sCPn_.mjs → render-C3ygE5nO.mjs} +1 -1
  157. package/dist/{replace-DoU0IFGd.mjs → replace-D3I8Cb6E.mjs} +2 -2
  158. package/dist/{requirement-check-BoVSK1uK.mjs → requirement-check-DWGbJZUM.mjs} +1 -1
  159. package/dist/{rescan-values-COzM86P5.mjs → rescan-values-DgUwDmwZ.mjs} +1 -1
  160. package/dist/{rescan-values-s82n_You.mjs → rescan-values-DwYuiNzi.mjs} +1 -1
  161. package/dist/{run-JYNbEO_V.mjs → run-BtRi59Hd.mjs} +2 -2
  162. package/dist/{run-Q7fHux1F.mjs → run-Dr-DsQVO.mjs} +2 -2
  163. package/dist/{run-Bwj4Uuxk.mjs → run-qAs_RthF.mjs} +1 -1
  164. package/dist/{runs-GQD6FO2k.mjs → runs-hulvKxUw.mjs} +1 -1
  165. package/dist/{runtime-iIsqiOwO.mjs → runtime-CEAFobLj.mjs} +77 -39
  166. package/dist/{scaffold-CJo9l-2p.mjs → scaffold-CO9Oea2N.mjs} +3 -3
  167. package/dist/{schema-2JhmK8FM.mjs → schema-D5AhDYTD.mjs} +1 -1
  168. package/dist/{schema-tables-CarGLayY.mjs → schema-tables-KIsDvvGs.mjs} +1 -1
  169. package/dist/{schemas-oSjtuQ4G.mjs → schemas-DuGltR33.mjs} +1 -1
  170. package/dist/{search-CvGEL2h-.mjs → search-BJPNMvnK.mjs} +1 -1
  171. package/dist/{search-Ca0sIr28.mjs → search-CM3ybv8O.mjs} +1 -1
  172. package/dist/{segment-BJCEJwNY.mjs → segment-BROyKyC3.mjs} +5 -5
  173. package/dist/{send-B4nZI6CU.mjs → send-cSr60J2Z.mjs} +1 -1
  174. package/dist/{set-BjMZCdN8.mjs → set-DpBA6eOn.mjs} +1 -1
  175. package/dist/{set-active-CWDdv3kN.mjs → set-active-DaGUZCbh.mjs} +1 -1
  176. package/dist/{set-bundle-C2uk4jdt.mjs → set-bundle-CgJuQ3fe.mjs} +5 -5
  177. package/dist/{set-data-actions-lWl05ekf.mjs → set-data-actions-CyuKhCDs.mjs} +1 -1
  178. package/dist/{set-enabled-CPhw1AX4.mjs → set-enabled-DxxlZePU.mjs} +4 -4
  179. package/dist/{set-sensitivity-B7WI5BJC.mjs → set-sensitivity-BBkuW5wQ.mjs} +1 -1
  180. package/dist/{setting-BvPpFjJT.mjs → setting-BixEhGR2.mjs} +3 -3
  181. package/dist/{setup-DPRa8Uxm.mjs → setup-DqAjBhZz.mjs} +1 -1
  182. package/dist/{skills-BCivFuuZ.mjs → skills-ByZWUsPC.mjs} +3 -3
  183. package/dist/{skills-BY3MCR8i.mjs → skills-CPNaSE_d.mjs} +1 -1
  184. package/dist/{snippet-BcN1UwoS.mjs → snippet-CK5QjPXs.mjs} +5 -5
  185. package/dist/{stash-leoW1fby.mjs → stash-BMitlOt0.mjs} +2 -2
  186. package/dist/{status-BezD_K-g.mjs → status-4ewKKM1J.mjs} +1 -1
  187. package/dist/{status-AA4APlwZ.mjs → status-BxYGT5I4.mjs} +2 -2
  188. package/dist/{subscription-BDukZFlC.mjs → subscription-9WV3hwAq.mjs} +5 -5
  189. package/dist/{subscriptions-CU4E_p7B.mjs → subscriptions-EVIRobQM.mjs} +2 -2
  190. package/dist/{summary-BFspP71W.mjs → summary-CaWLpvcZ.mjs} +1 -1
  191. package/dist/{sync-schema-BhRhsm8Y.mjs → sync-schema-BntqB-68.mjs} +2 -2
  192. package/dist/{sync-schema-BtjC-PNY.mjs → sync-schema-Dt0zekZR.mjs} +1 -1
  193. package/dist/table-BAOSPOlO.mjs +26 -0
  194. package/dist/{timeline-Cr5d4Oer.mjs → timeline-CyIVLhsz.mjs} +7 -7
  195. package/dist/{timeline-event-BiYDbW3r.mjs → timeline-event-CaXRyGXH.mjs} +5 -5
  196. package/dist/transform-C8ZiOTWq.mjs +28 -0
  197. package/dist/transform-job-BKX10IUY.mjs +22 -0
  198. package/dist/{transform-tag-DQXOPhmt.mjs → transform-tag-QBmEYxZi.mjs} +4 -4
  199. package/dist/{transform-test-wmAjyaka.mjs → transform-test-DMShXj--.mjs} +6 -6
  200. package/dist/{transforms-DcXL4Dox.mjs → transforms-yuckjEH-.mjs} +1 -1
  201. package/dist/{transport-DZSxmmtY.mjs → transport-3xv524C_.mjs} +2 -3
  202. package/dist/{tree-DrYYCdXP.mjs → tree-DhZWC6AW.mjs} +1 -1
  203. package/dist/{typed-schema-DEzmTY3J.mjs → typed-schema-9umakTr7.mjs} +2 -2
  204. package/dist/{unpublish-D8hmulCx.mjs → unpublish-BmrZNEcs.mjs} +1 -1
  205. package/dist/{unreferenced-C3CqO3tu.mjs → unreferenced-C0dYogu7.mjs} +1 -1
  206. package/dist/{update-4sOfpwpv.mjs → update-B0j7R5BU.mjs} +1 -1
  207. package/dist/{update-4TDRNrV-.mjs → update-BIDjJnEh.mjs} +1 -1
  208. package/dist/{update-BVz0oIwS.mjs → update-BsCY9WoI.mjs} +1 -1
  209. package/dist/{update-B21GAnzT.mjs → update-BtyHjKV6.mjs} +1 -1
  210. package/dist/{update-LlJM4tUd.mjs → update-CqqZHGBZ.mjs} +1 -1
  211. package/dist/{update-BxRFktpB.mjs → update-CsYMNm1n.mjs} +1 -1
  212. package/dist/{update-3lRE8G9k.mjs → update-CzCc5og7.mjs} +1 -1
  213. package/dist/{update-DvGIaZdl.mjs → update-D4s8mpef.mjs} +1 -1
  214. package/dist/{update-l4WRN6Jh.mjs → update-DIsbIcWv.mjs} +1 -1
  215. package/dist/{update-Zv7PP8nl.mjs → update-DRH78xMc.mjs} +1 -1
  216. package/dist/{update-Ch6AAOeh.mjs → update-DTvdH8rF.mjs} +1 -1
  217. package/dist/{update-DmMHHn75.mjs → update-DVEqN-uO.mjs} +1 -1
  218. package/dist/{update-CEDMvgJI.mjs → update-D_9HdXGt.mjs} +1 -1
  219. package/dist/{update-CcNYCalv.mjs → update-DoZZ-pii.mjs} +1 -1
  220. package/dist/{update-sma1ZRm2.mjs → update-Dr66Dv3x.mjs} +3 -3
  221. package/dist/{update-CctMr2T1.mjs → update-DuJ7Pu5t.mjs} +2 -2
  222. package/dist/{update-CtuLA42g.mjs → update-Gv4cQsS3.mjs} +1 -1
  223. package/dist/{update-dashcard-BijqiYQd.mjs → update-dashcard-fWxyfSG5.mjs} +1 -1
  224. package/dist/{update-7iXRB23T2.mjs → update-eL6rSQvo2.mjs} +1 -1
  225. package/dist/{update-552UGPAG.mjs → update-nZkZHbL5.mjs} +1 -1
  226. package/dist/{update-DVD77mVR.mjs → update-zKgO1dbJ.mjs} +1 -1
  227. package/dist/{upgrade-TzILOkiM.mjs → upgrade-PIUDxb6V.mjs} +1 -2
  228. package/dist/{upload-Do-kOGtc.mjs → upload-B6S0Vqgn.mjs} +2 -2
  229. package/dist/{upload-B37bUVl_.mjs → upload-Dzn5OAbv.mjs} +3 -3
  230. package/dist/{upload-CdiDKe69.mjs → upload-KuHgzGJU.mjs} +1 -1
  231. package/dist/{uuid-Dqq2WfAT.mjs → uuid-BPr2deuu.mjs} +1 -1
  232. package/dist/{values-CtY5zv0m.mjs → values-DHvfVT9h.mjs} +1 -1
  233. package/dist/{verify-DBTlWx-S.mjs → verify-CvGdvC7R.mjs} +1 -1
  234. package/dist/{verify-DJ7fGyLL.mjs → verify-D9i63gmK.mjs} +2 -2
  235. package/dist/{verify-BiB8jzXB.mjs → verify-DS0REVed.mjs} +1 -1
  236. package/dist/{wait-DEYagfq4.mjs → wait-DrOL01Y_.mjs} +3 -3
  237. package/dist/{wait-flags-C3cu_O0w.mjs → wait-flags-DT1zA69Z.mjs} +1 -1
  238. package/package.json +1 -1
  239. package/skill-data/core/SKILL.md +5 -2
  240. package/skill-data/data-app/SKILL.md +16 -17
  241. package/skill-data/data-app/template/README.md +7 -3
  242. package/skill-data/data-app/template/gitignore +1 -1
  243. package/skill-data/data-app/template/package.json +1 -0
  244. package/skill-data/data-app-actions/SKILL.md +3 -0
  245. package/skill-data/data-app-data/SKILL.md +6 -6
  246. package/skill-data/data-app-filters/SKILL.md +12 -4
  247. package/skill-data/data-app-ui/SKILL.md +11 -11
  248. package/skill-data/data-workflow/references/reusable-definitions.md +2 -2
  249. package/skill-data/git-sync/SKILL.md +13 -11
  250. package/skill-data/mbql/SKILL.md +2 -2
  251. package/dist/git-sync-Czena0TW.mjs +0 -29
  252. package/dist/signal-BNUlQjpc.mjs +0 -25
  253. package/dist/table-Dzp1uANs.mjs +0 -26
  254. package/dist/transform-C-0nV5Et.mjs +0 -28
  255. package/dist/transform-job-B9MPk7S5.mjs +0 -22
@@ -7,7 +7,7 @@ requires: [remoteSync]
7
7
 
8
8
  # git-sync (representations ↔ instance)
9
9
 
10
- Metabase content (cards, dashboards, transforms, snippets, collections, …) can live in a git repo as YAML and round-trip in and out of a Metabase instance via the `git-sync` verbs. The instance is configured with a `remote-sync-*` settings block (URL, branch, token, type read-only/read-write); the CLI drives the sync tasks against `/api/ee/remote-sync/*`. Only collections flagged for sync serialize; everything else is local-only. Table and field metadata round-trips too, for Library-published tables in a flagged collection — see "Published table metadata" below.
10
+ Metabase content (cards, dashboards, transforms, snippets, collections, …) can live in a git repo as YAML and round-trip in and out of a Metabase instance via the `git-sync` verbs. The instance is configured with a `remote-sync-*` settings block (URL, branch, token, type read-only/read-write); the CLI drives the sync tasks against `/api/ee/remote-sync/*`. Only flagged collections serialize, plus, unflagged: each data app's collection (with its app, `data_apps/<slug>/`), transforms (`remote-sync-transforms`), and snippets, data actions and glossary once the Library is synced. Everything else is local-only. Table and field metadata round-trips too, for Library-published tables in a flagged collection — see "Published table metadata" below.
11
11
 
12
12
  The repo and the instance are two ends of the same state; what "push my changes" means depends on where the changes were made. If they were made **in the instance** (CLI verbs against a read-write instance — cards edited, transforms created, tables published, metadata written), "push my changes" / "save this to the repo" / "open a PR with these changes" means driving the instance's export to a branch (`stash` or `create-branch` + `export`) and opening the PR from that branch — not reconstructing the changes as files. If the workflow is **repo-first** (content YAML edited in the repo, the instance imports it), plain `git` against the repo is the way — but only in the serialized layout already there: files in paths or formats the serializer doesn't own are invisible to Metabase and never apply on import.
13
13
 
@@ -64,7 +64,7 @@ Workflow:
64
64
 
65
65
  <!-- requires: remoteSyncRemoteChanges -->
66
66
 
67
- Between the two, confirm `has-remote-changes` reports `has_changes: true` — there's actually something to import.
67
+ Between the two, confirm `has-remote-changes` reports `has_changes: true` (`--force-refresh` after your own push: the answer is cached).
68
68
 
69
69
  <!-- /requires -->
70
70
 
@@ -168,7 +168,7 @@ Skip the prompt only if the user's instructions already specified the branch (e.
168
168
  ```bash
169
169
  mb git-sync branches --profile <n> --json # list remote branches
170
170
  mb git-sync create-branch <name> --profile <n> # create + switch sync to it
171
- mb git-sync stash --profile <n> # export current state to a NEW branch
171
+ mb git-sync stash --new-branch <name> --profile <n> # export current state to a NEW branch
172
172
  ```
173
173
 
174
174
  `stash` is the safe move when the instance has team work you don't want to lose, but you need to pivot to a different branch (`import` would discard, `export --force` would overwrite). It exports current state to a fresh branch first.
@@ -184,19 +184,21 @@ Use `wait` after `import --no-wait` / `export --no-wait`. Use `cancel-task` if a
184
184
 
185
185
  ## Adding / removing a directory (collection) to sync
186
186
 
187
- The set of directories under sync is governed by which **collections** carry `is_remote_synced: true`. Every collection so flagged serializes to its own folder under `collections/` in the repo; everything outside that set is local-only. The CLI exposes per-collection toggles that route to the underlying bulk endpoint (`PUT /api/ee/remote-sync/settings`):
187
+ The set of directories under sync is governed by which **collections** carry `is_remote_synced: true`. Every collection so flagged serializes to its own folder under `collections/` in the repo; so do the unflagged ones above (a data app's collection can't be flagged). Everything else is local-only. Toggle one collection at a time:
188
188
 
189
189
  ```bash
190
190
  mb git-sync add-collection <collection-id> --profile <n> --json
191
191
  mb git-sync remove-collection <collection-id> --profile <n> --json
192
192
  ```
193
193
 
194
- `<collection-id>` is a **positive integer** (the bulk endpoint's schema is `pos-int? → boolean`; nano-id / `root` / `trash` refs are not supported). Get the id from `collection list` (see `core`).
194
+ `<collection-id>` is a **positive integer** (no nano-id, `root` or `trash`). Get the id from `collection list` (see `core`).
195
195
 
196
- Both verbs return `{ success: true }`, plus a `task_id` only when the toggle started a follow-up task (e.g. a finalization import after switching to read-only).
196
+ Both return `{ success: true }`, plus a `task_id` when the toggle started a follow-up task.
197
197
 
198
198
  **Cascade.** A toggle on a parent cascades to every descendant by `location` prefix — `add-collection 4` flips `4` plus every collection nested under it. `remove-collection 4` is the symmetric inverse. There is no per-leaf-only mode.
199
199
 
200
+ **Custom collections.** Outside the Library, transforms, snippets and data actions, a flag answers 400 unless the admin setting `remote-sync-custom-collections-enabled` is on (a data app's collection can't be flagged at all).
201
+
200
202
  **Mode prerequisite.** The server rejects toggles while `remote-sync-type` is `:read-only` (the install default; `mb git-sync status --json` reports it as `sync_type`). If `mb git-sync add-collection 12` returns `Metabase returned 400 … Cannot change synced collections when remote-sync-type is read-only.`, switch first with:
201
203
 
202
204
  ```bash
@@ -237,13 +239,13 @@ To plan the order before the first move, `mb dependency graph dashboard <id> --j
237
239
 
238
240
  ## Published table metadata (Library) and sync scope
239
241
 
240
- Table and field metadata — table/field descriptions, semantic types (`type/PK`, `type/FK`), FK targets, plus segments and measures on the table — serializes for **Library-published tables only**, under `databases/<db>/schemas/<schema>/tables/<table>/…` in the repo. Eligibility is two-gated: the table must be published (`mb library publish`), **and** the Library collection holding it must itself carry `is_remote_synced: true`. An ordinary warehouse table, or a transform's target table that isn't published, never serializes — a transform's YAML carries only the transform definition (query, target, description), not the output table's field metadata.
242
+ Table and field metadata — table/field descriptions, semantic types (`type/PK`, `type/FK`), FK targets, plus segments and measures on the table — serializes for **Library-published tables only**, under `databases/<db>/schemas/<schema>/tables/<table>/…` in the repo. Eligibility is two-gated: the table must be published (`mb library publish`), **and** Library Data must be synced; flag the Library root, as Data alone leaves out Metrics, Dashboards, snippets, data actions and glossary. An ordinary warehouse table, or a transform's target table that isn't published, never serializes — a transform's YAML carries only the transform definition (query, target, description), not the output table's field metadata.
241
243
 
242
- The classic trap: publish tables, write field metadata, then `git-sync dirty` comes back empty and nothing lands in the repo. That does not mean git-sync can't carry table metadata — it means the Library collection isn't in the sync scope, so nothing was eligible for dirty-tracking when the writes happened. Check the scope (`synced_collections` in `status`), then:
244
+ The classic trap: publish tables, write field metadata, then `git-sync dirty` comes back empty and nothing lands in the repo. It means the Library collection isn't in the sync scope, so nothing was eligible for dirty-tracking when the writes happened. Check the scope (`synced_collections` in `status`), then:
243
245
 
244
246
  ```bash
245
- mb library get --profile <n> --json # Library Data collection id
246
- mb git-sync add-collection <library-data-id> --profile <n>
247
+ mb collection list --profile <n> --json # the "type": "library" entry's id
248
+ mb git-sync add-collection <library-id> --profile <n>
247
249
  mb git-sync stash --new-branch <branch> -m "..." --profile <n> # or create-branch + export
248
250
  ```
249
251
 
@@ -256,7 +258,7 @@ Flagging the collection records it for the next export, which serializes its cur
256
258
  - Don't turn instance-side changes into hand-written repo files: export them and PR the exported branch (see the top of this skill). Files pushed behind Metabase's back race its own sync tasks.
257
259
  - Don't conclude from an empty `dirty` list that a change type isn't tracked. Dirty-tracking only records changes to _eligible_ objects; the usual cause is scope (the collection isn't flagged — see "Published table metadata"), not capability. Check `synced_collections` in `status` before concluding.
258
260
  - Don't run `git-sync import --force` or `git-sync export --force` without explicit user confirmation. Both are lossy — `--force` import discards instance-side work, `--force` export overwrites the remote branch.
259
- - Don't drive `git-sync` against a Metabase instance that doesn't have remote-sync configured — every verb returns an error pointing at the missing `remote-sync-*` settings. To check: `mb git-sync status --profile <n> --json` reports `remote_configured: false` when no remote is configured.
261
+ - Don't drive `git-sync` against a Metabase instance that doesn't have remote-sync configured — import, export, has-remote-changes and export-preflight answer `Remote sync is not configured.` To check: `mb git-sync status --profile <n> --json` succeeds and reports `remote_configured: false`.
260
262
  - Don't author content directly via `card create` / `transform create` and then assume `git-sync export` will commit it cleanly — the instance and repo can drift if you mix direct API writes with sync-tracked changes. If you do, follow direct writes immediately with `git-sync export -m "..."` to keep them in step.
261
263
  - Don't move a dashboard or question into a synced collection before what it depends on, and don't retry a `Uses content that is not remote synced.` refusal unchanged. Move the listed dependencies first, move the whole containing collection, or build the content in the synced collection to begin with (see "Moving content into or out of a synced collection").
262
264
  - Don't omit `-m` on `export` if the user wants a meaningful commit message — the default server-generated message is generic.
@@ -49,7 +49,7 @@ An options key the server doesn't know is rejected or silently dropped, never ap
49
49
  - `filters` are ANDed; OR is `["or", {}, a, b, …]`. Multi-value is `["in", {}, <field>, "a", "b"]` / `["not-in", …]`.
50
50
  - Relative dates: `["time-interval", {}, <field>, -30, "day"]`, `["time-interval", {}, <field>, "current", "month"]`. A stated year or date range is absolute: `["between", {}, <field>, "2024-01-01", "2024-12-31"]` (inclusive).
51
51
  - `aggregation` is a list of aggregation clauses, `breakout` a list of refs. "only / where X" is a filter; "by / per / over time" is a breakout.
52
- - Name every aggregation a later stage, a chart setting or a target table reads: `["sum", {"name": "revenue", "display-name": "Revenue"}, <field>]`. Unnamed, it is `count`, `sum`, `avg`, … and a second `sum` is `sum_2`.
52
+ - An unnamed aggregation is `count`, `sum`, `avg`, …, a breakout keeps its field's name, and a repeat gets a suffix that moves when clauses change: a second `sum` is `sum_2`, a second `ID` breakout (another table's) `ID_2`. When a later stage, a chart setting or a target table reads such a column, set `"name"` in the clause's options: `["sum", {"name": "revenue", "display-name": "Revenue"}, <field>]`, `["field", {"name": "product_id", "source-field": 11}, 12]`.
53
53
  - An aggregation can be arithmetic over aggregations: `["/", {"name": "aov"}, ["sum", {}, <field>], ["count", {}]]`.
54
54
  - Date arithmetic is `["datetime-diff", {}, a, b, "day"]`.
55
55
 
@@ -122,7 +122,7 @@ A later stage reads the previous stage's output by column name, with the column'
122
122
  ]
123
123
  ```
124
124
 
125
- The names and base types are the `name` and `base_type` of the columns the earlier stages return: run them once (`mb query … --json`, `data.cols`) and copy both. A breakout keeps its field's name (`CREATED_AT`, even when bucketed); an aggregation has the `name` you gave it.
125
+ The names and base types are the `name` and `base_type` of the columns the earlier stages return: run them once (`mb query … --json`, `data.cols`) and copy both. A breakout keeps its field's name (`CREATED_AT`, even when bucketed) and an aggregation its operator's, unless its options set `name`.
126
126
 
127
127
  **Window:** `offset` sits in `aggregation` and reads another breakout row. Month-over-month against a monthly breakout:
128
128
 
@@ -1,29 +0,0 @@
1
- import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
2
- //#region src/commands/git-sync/index.ts
3
- var git_sync_default = defineCommandGroup({
4
- name: "git-sync",
5
- description: "Sync Metabase content with a git remote",
6
- skills: [{
7
- skill: "git-sync",
8
- purpose: "import/export round-trip and dirty checks"
9
- }],
10
- subCommands: {
11
- status: () => import("./status-BezD_K-g.mjs").then((mod) => mod.default),
12
- "is-dirty": () => import("./is-dirty-haRLODo1.mjs").then((mod) => mod.default),
13
- "has-remote-changes": () => import("./has-remote-changes-DZq7q2Wk.mjs").then((mod) => mod.default),
14
- dirty: () => import("./dirty-BHwdHOEj.mjs").then((mod) => mod.default),
15
- "current-task": () => import("./current-task-DhgwtGN3.mjs").then((mod) => mod.default),
16
- "cancel-task": () => import("./cancel-task-BuZsQuLp.mjs").then((mod) => mod.default),
17
- wait: () => import("./wait-DEYagfq4.mjs").then((mod) => mod.default),
18
- import: () => import("./import-DKZF0kMU.mjs").then((mod) => mod.default),
19
- export: () => import("./export-BNj3RvAl.mjs").then((mod) => mod.default),
20
- "export-preflight": () => import("./export-preflight-F3OapAD5.mjs").then((mod) => mod.default),
21
- stash: () => import("./stash-leoW1fby.mjs").then((mod) => mod.default),
22
- branches: () => import("./branches-CERgKqFq.mjs").then((mod) => mod.default),
23
- "create-branch": () => import("./create-branch-D_nbKxDS.mjs").then((mod) => mod.default),
24
- "add-collection": () => import("./add-collection-D2x34KVO.mjs").then((mod) => mod.default),
25
- "remove-collection": () => import("./remove-collection-Qne5ww6M.mjs").then((mod) => mod.default)
26
- }
27
- });
28
- //#endregion
29
- export { git_sync_default as default };
@@ -1,25 +0,0 @@
1
- import { g as errorMessage, i as AbortError, l as MetabaseError } from "./predicates-0C0TsWcJ.mjs";
2
- //#region ../client/src/signal.ts
3
- function combineAborts(...signals) {
4
- return AbortSignal.any(signals.filter((signal) => signal !== void 0));
5
- }
6
- function throwIfAborted(...signals) {
7
- for (const signal of signals) if (signal?.aborted) throw abortReason(signal);
8
- }
9
- function abortReason(signal) {
10
- const reason = signal.reason;
11
- if (reason instanceof MetabaseError) return reason;
12
- if (reason instanceof Error || typeof reason === "string") return new AbortError(errorMessage(reason) || "aborted");
13
- return new AbortError("aborted");
14
- }
15
- function untilAborted(promise, signal) {
16
- if (signal === void 0) return promise;
17
- throwIfAborted(signal);
18
- return new Promise((resolve, reject) => {
19
- const onAbort = () => reject(abortReason(signal));
20
- signal.addEventListener("abort", onAbort, { once: true });
21
- promise.then(resolve, reject).finally(() => signal.removeEventListener("abort", onAbort));
22
- });
23
- }
24
- //#endregion
25
- export { throwIfAborted as n, untilAborted as r, combineAborts as t };
@@ -1,26 +0,0 @@
1
- import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
2
- //#region src/commands/table/index.ts
3
- var table_default = defineCommandGroup({
4
- name: "table",
5
- description: "Manage Metabase tables",
6
- skills: [{
7
- skill: "metadata",
8
- purpose: "table and column metadata, semantic types, visibility"
9
- }],
10
- subCommands: {
11
- list: () => import("./list-P7FnSsbZ.mjs").then((m) => m.default),
12
- get: () => import("./get-uHs9Ve-4.mjs").then((m) => m.default),
13
- fields: () => import("./fields-BkAS_wIA.mjs").then((m) => m.default),
14
- fks: () => import("./fks--SaqvPw1.mjs").then((m) => m.default),
15
- update: () => import("./update-Zv7PP8nl.mjs").then((m) => m.default),
16
- "sync-schema": () => import("./sync-schema-BtjC-PNY.mjs").then((m) => m.default),
17
- "rescan-values": () => import("./rescan-values-COzM86P5.mjs").then((m) => m.default),
18
- "discard-values": () => import("./discard-values-BWlh2ce8.mjs").then((m) => m.default),
19
- "bulk-edit": () => import("./bulk-edit-CJxoxDGQ.mjs").then((m) => m.default),
20
- "bulk-sync-schema": () => import("./bulk-sync-schema-CBIs4yHs.mjs").then((m) => m.default),
21
- "bulk-rescan-values": () => import("./bulk-rescan-values-DflzyxEj.mjs").then((m) => m.default),
22
- "bulk-discard-values": () => import("./bulk-discard-values-BQ3z6nJb.mjs").then((m) => m.default)
23
- }
24
- });
25
- //#endregion
26
- export { table_default as default };
@@ -1,28 +0,0 @@
1
- import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
2
- //#region src/commands/transform/index.ts
3
- var transform_default = defineCommandGroup({
4
- name: "transform",
5
- description: "Manage Metabase transforms",
6
- skills: [{
7
- skill: "transform",
8
- purpose: "body shape, run-with-wait, iterate"
9
- }, {
10
- skill: "mbql",
11
- purpose: "MBQL source.query bodies"
12
- }],
13
- subCommands: {
14
- list: () => import("./list-BiIZdUoN.mjs").then((mod) => mod.default),
15
- get: () => import("./get-BjgB5l7X.mjs").then((mod) => mod.default),
16
- dependencies: () => import("./dependencies-D6SNdLW8.mjs").then((mod) => mod.default),
17
- create: () => import("./create-DEIIUohY2.mjs").then((mod) => mod.default),
18
- update: () => import("./update-CEDMvgJI.mjs").then((mod) => mod.default),
19
- delete: () => import("./delete-ZjLpkwgx.mjs").then((mod) => mod.default),
20
- "delete-table": () => import("./delete-table-CnGv1gx9.mjs").then((mod) => mod.default),
21
- run: () => import("./run-JYNbEO_V.mjs").then((mod) => mod.default),
22
- cancel: () => import("./cancel-CyTRWSOr.mjs").then((mod) => mod.default),
23
- "get-run": () => import("./get-run-CHup8cMl.mjs").then((mod) => mod.default),
24
- runs: () => import("./runs-GQD6FO2k.mjs").then((mod) => mod.default)
25
- }
26
- });
27
- //#endregion
28
- export { transform_default as default };
@@ -1,22 +0,0 @@
1
- import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
2
- //#region src/commands/transform-job/index.ts
3
- var transform_job_default = defineCommandGroup({
4
- name: "transform-job",
5
- description: "Manage Metabase transform jobs",
6
- skills: [{
7
- skill: "transform",
8
- purpose: "tag-driven job schedules"
9
- }],
10
- subCommands: {
11
- list: () => import("./list-OUSeeuXb.mjs").then((mod) => mod.default),
12
- get: () => import("./get-gGSl7Se4.mjs").then((mod) => mod.default),
13
- create: () => import("./create-XVjr8IDS.mjs").then((mod) => mod.default),
14
- update: () => import("./update-7iXRB23T2.mjs").then((mod) => mod.default),
15
- delete: () => import("./delete-CuyGTe0i.mjs").then((mod) => mod.default),
16
- run: () => import("./run-Bwj4Uuxk.mjs").then((mod) => mod.default),
17
- transforms: () => import("./transforms-DcXL4Dox.mjs").then((mod) => mod.default),
18
- "set-active": () => import("./set-active-CWDdv3kN.mjs").then((mod) => mod.default)
19
- }
20
- });
21
- //#endregion
22
- export { transform_job_default as default };