@metabase/cli 0.5.6 → 0.5.7

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 (246) hide show
  1. package/dist/{add-collection-C_PXX4ls.mjs → add-collection-BbPkd9Hj.mjs} +1 -1
  2. package/dist/{alert-C8-KXr_o.mjs → alert-DSql1Ep7.mjs} +6 -6
  3. package/dist/{alerts-BXEyXQRl.mjs → alerts-DuBBNAlw.mjs} +2 -2
  4. package/dist/{api-key-DgEtUdtr.mjs → api-key-Phua-UKC.mjs} +3 -3
  5. package/dist/{append-DHsRfdyS.mjs → append-DsVKGdZJ.mjs} +2 -2
  6. package/dist/{archive-CU9OhyrM.mjs → archive-1VQCMgaz.mjs} +1 -1
  7. package/dist/{archive-eINikapF.mjs → archive-BCmfehL3.mjs} +1 -1
  8. package/dist/{archive-BofgzTAr.mjs → archive-BV6Z3YJA.mjs} +1 -1
  9. package/dist/{archive-1u8702EH.mjs → archive-CXMG-fgO.mjs} +1 -1
  10. package/dist/{archive-D87H0xOc.mjs → archive-CXXxSfha.mjs} +1 -1
  11. package/dist/{archive-78gVBFu3.mjs → archive-Ck_Xg7ns.mjs} +1 -1
  12. package/dist/{archive-DxLrdlxM.mjs → archive-DD__EWKz.mjs} +1 -1
  13. package/dist/{archive-BHhKF2_r.mjs → archive-DXz6AUiA.mjs} +1 -1
  14. package/dist/{archive-Lgd6irTm.mjs → archive-DqJwr9vQ.mjs} +3 -3
  15. package/dist/{archive-Cm3GcZRd.mjs → archive-Dvh9rizn.mjs} +1 -1
  16. package/dist/{archive-BfCuJyWK.mjs → archive-DyMGCNDz.mjs} +1 -1
  17. package/dist/{archive-DyB65bNo.mjs → archive-pSV2qSiA.mjs} +1 -1
  18. package/dist/{auth-CeSe2l6R.mjs → auth-J8JdlqFn.mjs} +4 -4
  19. package/dist/{branches-iu9tRXr6.mjs → branches-CPQ3HP-R.mjs} +1 -1
  20. package/dist/{breaking-DicKTkii.mjs → breaking-D6ICAVOR.mjs} +1 -1
  21. package/dist/{broken-70_zMy0L.mjs → broken-BczVkbIB.mjs} +1 -1
  22. package/dist/{bulk-discard-values-Bsdq0Aid.mjs → bulk-discard-values-g46lzzus.mjs} +1 -1
  23. package/dist/{bulk-edit-vWzm2uEj.mjs → bulk-edit-AOFHuhfZ.mjs} +1 -1
  24. package/dist/{bulk-rescan-values-qTNZkMRH.mjs → bulk-rescan-values-5Di3olNO.mjs} +1 -1
  25. package/dist/{bulk-sync-schema-neL4AxaB.mjs → bulk-sync-schema-CFC3koGc.mjs} +1 -1
  26. package/dist/{cancel-DsyTp_jV.mjs → cancel-BGYUVj8X.mjs} +1 -1
  27. package/dist/{cancel-task-DMlaD81O.mjs → cancel-task-upC5n6uL.mjs} +1 -1
  28. package/dist/{card-uZeDk5uH.mjs → card-D-TPi4AP.mjs} +8 -8
  29. package/dist/{cards-DLEx1zfQ.mjs → cards-Bi0gfBth.mjs} +1 -1
  30. package/dist/cli.mjs +38 -38
  31. package/dist/{client-BN93yUlt.mjs → client-BLoUVLvN.mjs} +14 -9
  32. package/dist/{collection-Cowt7nWW.mjs → collection-BeEwIJBP.mjs} +7 -7
  33. package/dist/{content-translation-C2V3jNV7.mjs → content-translation-BpLzaU0B.mjs} +2 -2
  34. package/dist/{copy-C4Nf6Sqt.mjs → copy-UsVSYgy4.mjs} +1 -1
  35. package/dist/{copy-9iOg50lN.mjs → copy-f95AEumd.mjs} +1 -1
  36. package/dist/{create-D_AwGujc.mjs → create-7K2NXL-M.mjs} +1 -1
  37. package/dist/{create-ZKrdArmQ.mjs → create-7ncgawHS.mjs} +1 -1
  38. package/dist/{create-DDEKafSb2.mjs → create-BD6VIGWQ2.mjs} +1 -1
  39. package/dist/{create-CBk4CFjA.mjs → create-BNcuZIPD.mjs} +1 -1
  40. package/dist/{create-CA9c4U1m.mjs → create-BbC_R_Oz.mjs} +6 -5
  41. package/dist/{create-BtExn-0P.mjs → create-CO18QOFb.mjs} +1 -1
  42. package/dist/{create-DBWbf0DF.mjs → create-CVh6ggJb.mjs} +1 -1
  43. package/dist/{create-BDBHkgLv.mjs → create-CY9LOAXi.mjs} +1 -1
  44. package/dist/{create-CWMC90-0.mjs → create-CeczpJ0L.mjs} +1 -1
  45. package/dist/{create-il08Ub78.mjs → create-CuNXv1Ep.mjs} +1 -1
  46. package/dist/{create-9p0vyQkK.mjs → create-D5LhDFOo.mjs} +1 -1
  47. package/dist/{create-DJzWxTOV.mjs → create-D5kh4vAL.mjs} +1 -1
  48. package/dist/{create-C1DBXOxh.mjs → create-DBX-uy9W.mjs} +1 -1
  49. package/dist/{create-BNgkKeY4.mjs → create-DLFkb3OR.mjs} +1 -1
  50. package/dist/{create-VPzYsXKz.mjs → create-Di1QVcNp.mjs} +1 -1
  51. package/dist/{create-B5h_621T.mjs → create-GkTAKk5R.mjs} +1 -1
  52. package/dist/{create-branch-D56lVQNd.mjs → create-branch-Bo0AjZtH.mjs} +1 -1
  53. package/dist/{create-BafMBtrH.mjs → create-k4mrdwwl.mjs} +1 -1
  54. package/dist/{create-BUmS6B9_.mjs → create-lzRFz7kJ.mjs} +1 -1
  55. package/dist/{create-vN4sgCHU.mjs → create-u0CTmvuf.mjs} +1 -1
  56. package/dist/{create-D6eWvVcd.mjs → create-x7HAP-Ad.mjs} +2 -2
  57. package/dist/{csv-D50rzoTk.mjs → csv-DwFtBGrk.mjs} +2 -2
  58. package/dist/{current-task-CpPUJYbQ.mjs → current-task-BJtRUPla.mjs} +1 -1
  59. package/dist/{dashboard-CrD7w0mE.mjs → dashboard-REKSjnMI.mjs} +11 -11
  60. package/dist/{data-action-p-8TbHAj.mjs → data-action-BjaLSKed.mjs} +7 -7
  61. package/dist/{data-action-DLj9cgpu.mjs → data-action-Co_Yf1uC.mjs} +23 -5
  62. package/dist/{data-action-CuvI17XF.mjs → data-action-DAw6WRTH.mjs} +43 -10
  63. package/dist/{data-app-3cmb-x-I.mjs → data-app-DO2JDssf.mjs} +9 -9
  64. package/dist/{db-BO1aJAAn.mjs → db-N75yLlEU.mjs} +7 -7
  65. package/dist/{delete-DuVEKGA5.mjs → delete-8OdbYsJ5.mjs} +1 -1
  66. package/dist/{delete-CTtToAYO.mjs → delete-BdOdU-pY.mjs} +1 -1
  67. package/dist/{delete-ByYgGnoo.mjs → delete-C4xxlLHk.mjs} +1 -1
  68. package/dist/{delete-DwNkDTga.mjs → delete-CjaFm4k-.mjs} +1 -1
  69. package/dist/{delete-BSCnAB2g.mjs → delete-Cl4U9VSc.mjs} +1 -1
  70. package/dist/{delete-DHJ3ea0o.mjs → delete-CnASt2yl.mjs} +1 -1
  71. package/dist/{delete-DU1K-Cy4.mjs → delete-DeSsSMfX.mjs} +1 -1
  72. package/dist/{delete-DXL1orAc.mjs → delete-DxiCwXgz.mjs} +1 -1
  73. package/dist/{delete-8qsotOGB.mjs → delete-l2szNHB_.mjs} +1 -1
  74. package/dist/{delete-table-RAznoioi.mjs → delete-table-BUF-8jMm.mjs} +1 -1
  75. package/dist/{delete-DU-Kinm4.mjs → delete-vwfsnQPy.mjs} +1 -1
  76. package/dist/{dependencies-CKT460jf.mjs → dependencies-DZX8NlPW.mjs} +1 -1
  77. package/dist/{dependency-B1wYuRR1.mjs → dependency-DWt1YSeu.mjs} +5 -5
  78. package/dist/{dependents-D85CaupB.mjs → dependents-BqO3l5bu.mjs} +1 -1
  79. package/dist/{dirty-BnuuGVxz.mjs → dirty-ovaaa9Mz.mjs} +1 -1
  80. package/dist/{discard-values-CXyBp5pq.mjs → discard-values-C0hxOxST.mjs} +1 -1
  81. package/dist/{document-BHXXSx3u.mjs → document-BiYuO-TS.mjs} +6 -6
  82. package/dist/{download--RQk3dyK.mjs → download-TKkYyPGz.mjs} +1 -1
  83. package/dist/{eid-BwhUajT8.mjs → eid-BMEaAUf7.mjs} +1 -1
  84. package/dist/{entry-flags-DS_MMJbV.mjs → entry-flags-B1iNsTLZ.mjs} +1 -1
  85. package/dist/{events-DuHSrJuz.mjs → events-DawQN6kU.mjs} +1 -1
  86. package/dist/{execute-BjWeMJ0l.mjs → execute-YbkICF1K.mjs} +9 -5
  87. package/dist/{export-C_G6D1MF.mjs → export-X-6wfnwT.mjs} +2 -2
  88. package/dist/{export-preflight-DeqCCYP0.mjs → export-preflight-B8v9LJNm.mjs} +1 -1
  89. package/dist/{field-C02nW-20.mjs → field-z7nU5at_.mjs} +7 -7
  90. package/dist/{fields-Ds2PnxA7.mjs → fields-BhXMw2Tn.mjs} +1 -1
  91. package/dist/{fks-CCKTcQ4c.mjs → fks-8cVnZFmC.mjs} +1 -1
  92. package/dist/{get-CTwU2SwT.mjs → get-4f27Aqvg.mjs} +1 -1
  93. package/dist/{get-D_eGmu67.mjs → get-B2ml9ucl.mjs} +3 -3
  94. package/dist/{get-Du0KCtaC.mjs → get-B6uimv77.mjs} +1 -1
  95. package/dist/{get-BB0b96ox.mjs → get-BF3Uo0Tt.mjs} +1 -1
  96. package/dist/{get-v_BtTCdl.mjs → get-BbL5r1fz.mjs} +1 -1
  97. package/dist/{get-D3kYRX7B.mjs → get-Bo96ebpj.mjs} +1 -1
  98. package/dist/{get-DkEOLIF5.mjs → get-BtBc5Abl.mjs} +2 -2
  99. package/dist/{get-B_5Y65cZ.mjs → get-Bw4pTxpu.mjs} +1 -1
  100. package/dist/{get-CDA-g71Z.mjs → get-C7z5ZvgH.mjs} +1 -1
  101. package/dist/{get-R4_vq3U9.mjs → get-C83Nptcn.mjs} +1 -1
  102. package/dist/{get-CJEE2ApL.mjs → get-CDnlRGML.mjs} +1 -1
  103. package/dist/{get-CGrfQxXy.mjs → get-CM_iqCVJ.mjs} +1 -1
  104. package/dist/{get-xJTVgvSu.mjs → get-CZ1rSEC1.mjs} +1 -1
  105. package/dist/{get-D3k4Pyfn.mjs → get-CeKWEfkY.mjs} +1 -1
  106. package/dist/{get-BOcwk9jz.mjs → get-Cpx-XbMF.mjs} +1 -1
  107. package/dist/{get-DVctVDj6.mjs → get-DNbe2MG3.mjs} +1 -1
  108. package/dist/{get-8gu6wblt.mjs → get-Dp1ujLbV.mjs} +1 -1
  109. package/dist/{get-C6qjCvoM.mjs → get-Dvt9zn0x.mjs} +1 -1
  110. package/dist/{get-D7Uq4t19.mjs → get-Dxtlj2My.mjs} +1 -1
  111. package/dist/{get-DSQSwjDw.mjs → get-I1_CB82F.mjs} +1 -1
  112. package/dist/{get-DXH0zRv1.mjs → get-edf6ZezS.mjs} +1 -1
  113. package/dist/{get-run-Ds50O2Rn.mjs → get-run-BIsvXGiW.mjs} +1 -1
  114. package/dist/{get-B_Vz5OMY.mjs → get-zwsgING1.mjs} +1 -1
  115. package/dist/git-sync-D-27dQ4p.mjs +29 -0
  116. package/dist/{glossary-TBjFyeRN.mjs → glossary-Dtoy9bGl.mjs} +4 -4
  117. package/dist/{graph-DeGkHvI5.mjs → graph-r_Ny78Et.mjs} +1 -1
  118. package/dist/{has-remote-changes-DUCn8d5k.mjs → has-remote-changes-B_i31H2V.mjs} +1 -1
  119. package/dist/{import-Bnun0H8L.mjs → import-po_7IOPt.mjs} +2 -2
  120. package/dist/{is-dirty-BRdzj548.mjs → is-dirty-PBHnBaT_.mjs} +1 -1
  121. package/dist/{items-BmFznkYw.mjs → items-DpYoeJnW.mjs} +1 -1
  122. package/dist/{library-Cy8n_GoQ.mjs → library-Bx-5aHg0.mjs} +4 -4
  123. package/dist/{list-CnQnHNwI.mjs → list-3LnxA7HU.mjs} +1 -1
  124. package/dist/{list-ChPsUv0M.mjs → list-B8RvfRvk.mjs} +1 -1
  125. package/dist/{list-CgiBw3H-.mjs → list-BALDFgbl.mjs} +3 -3
  126. package/dist/{list-D7oLTX1F.mjs → list-BGwYQo6I.mjs} +1 -1
  127. package/dist/{list-jfnzEgFg.mjs → list-BOyLrnUG.mjs} +1 -1
  128. package/dist/{list-jPZgEqWH.mjs → list-C12p3rEc.mjs} +1 -1
  129. package/dist/{list-hrR_sluM.mjs → list-C1Wh_Slv.mjs} +1 -1
  130. package/dist/{list-CucyGz_M.mjs → list-CBwWhmqe.mjs} +1 -1
  131. package/dist/{list-emgvzTcQ.mjs → list-CrWXMfr6.mjs} +1 -1
  132. package/dist/{list-Cv9U6hop.mjs → list-Cr_sPpp-.mjs} +1 -1
  133. package/dist/{list-DVdfoOmD.mjs → list-DKV9DtGa.mjs} +1 -1
  134. package/dist/{list-B8WxIHZh.mjs → list-DS9fMuno.mjs} +1 -1
  135. package/dist/{list-BXgbS3xg.mjs → list-DVqD1U1l.mjs} +1 -1
  136. package/dist/{list-DQNmzmbE.mjs → list-DZy5euhj.mjs} +1 -1
  137. package/dist/{list-Hkl1mEcn.mjs → list-DceMKQ6a.mjs} +1 -1
  138. package/dist/{list-DCooGGd-.mjs → list-DxdHEB5R.mjs} +1 -1
  139. package/dist/{list-B8FE0mi7.mjs → list-DyQ2lSVl.mjs} +1 -1
  140. package/dist/{list-DqvwXEY3.mjs → list-T__r3VMU.mjs} +2 -2
  141. package/dist/{list-zIJcjZwa.mjs → list-X8eebbXY.mjs} +1 -1
  142. package/dist/{list-DkJsUigU.mjs → list-Y5wS6EaZ.mjs} +1 -1
  143. package/dist/{list-DwA83Hut.mjs → list-cK0UL1ZA.mjs} +1 -1
  144. package/dist/{list-BJaTl4Z3.mjs → list-jEl4fNSi.mjs} +3 -3
  145. package/dist/{list-uDe8e-8m.mjs → list-xbkz1qBV.mjs} +1 -1
  146. package/dist/{login-DMpRrZoJ.mjs → login-P2L_8iQN.mjs} +3 -3
  147. package/dist/{logout-DEB_Rs3z.mjs → logout-D-WoK1AI.mjs} +1 -1
  148. package/dist/{measure-Dop8G1p3.mjs → measure-D2r-3q-X.mjs} +5 -5
  149. package/dist/{parameter-values-CuNu1kDf.mjs → parameter-values-BD9l9Hyp.mjs} +1 -1
  150. package/dist/{path-6xIAWlup.mjs → path-CRMn9iZY.mjs} +2 -2
  151. package/dist/{poll-uailHW3t.mjs → poll-DqqOqx78.mjs} +1 -1
  152. package/dist/{publish-D7tndpBc.mjs → publish-D0z76x-b.mjs} +1 -1
  153. package/dist/{query-Do1Ms0k9.mjs → query-CUVLtPE_.mjs} +1 -1
  154. package/dist/{query-C_6GZwbJ.mjs → query-zFuvlOS0.mjs} +1 -1
  155. package/dist/{remapping-B5Z3Ustf.mjs → remapping-Dhb722en.mjs} +1 -1
  156. package/dist/{remove-collection-p9OgcXQ0.mjs → remove-collection-DZXgxdKX.mjs} +1 -1
  157. package/dist/{render-C3ygE5nO.mjs → render-oEZzsoFQ.mjs} +1 -1
  158. package/dist/{replace-D3I8Cb6E.mjs → replace-7dPKXgcC.mjs} +2 -2
  159. package/dist/{requirement-check-DWGbJZUM.mjs → requirement-check-DAWBg7Q9.mjs} +1 -1
  160. package/dist/{rescan-values-DwYuiNzi.mjs → rescan-values-CLrviE6Q.mjs} +1 -1
  161. package/dist/{rescan-values-DgUwDmwZ.mjs → rescan-values-DSr_ZvG_.mjs} +1 -1
  162. package/dist/{run-BtRi59Hd.mjs → run-B0xlfNxz.mjs} +2 -2
  163. package/dist/{run-qAs_RthF.mjs → run-C-7Jqr7g.mjs} +1 -1
  164. package/dist/{run-Dr-DsQVO.mjs → run-ZSHtfyJ5.mjs} +2 -2
  165. package/dist/{runs-hulvKxUw.mjs → runs-DhTxL1ZX.mjs} +1 -1
  166. package/dist/{runtime-CEAFobLj.mjs → runtime-LdcG5yv4.mjs} +1 -1
  167. package/dist/{scaffold-CO9Oea2N.mjs → scaffold-DjXyOYBc.mjs} +2 -2
  168. package/dist/{schema-D5AhDYTD.mjs → schema-olxaMFgn.mjs} +1 -1
  169. package/dist/{schema-tables-KIsDvvGs.mjs → schema-tables-C8PvLCZ3.mjs} +1 -1
  170. package/dist/{schemas-DuGltR33.mjs → schemas-CHXrSjAS.mjs} +1 -1
  171. package/dist/{search-BJPNMvnK.mjs → search-BUoRSx00.mjs} +1 -1
  172. package/dist/{search-CM3ybv8O.mjs → search-xkiNHiwe.mjs} +1 -1
  173. package/dist/{segment-BROyKyC3.mjs → segment-C6A1dSBA.mjs} +5 -5
  174. package/dist/{send-cSr60J2Z.mjs → send-CaDx_a6O.mjs} +1 -1
  175. package/dist/{set-active-DaGUZCbh.mjs → set-active-Db1w9BRn.mjs} +1 -1
  176. package/dist/{set-bundle-CgJuQ3fe.mjs → set-bundle-Dlk0ZEHn.mjs} +1 -1
  177. package/dist/{set-data-actions-CyuKhCDs.mjs → set-data-actions-BPnO0ZDb.mjs} +1 -1
  178. package/dist/{set-enabled-DxxlZePU.mjs → set-enabled-DmC4OaLp.mjs} +1 -1
  179. package/dist/{set-DpBA6eOn.mjs → set-gJ6v5NIe.mjs} +1 -1
  180. package/dist/{set-sensitivity-BBkuW5wQ.mjs → set-sensitivity-BD1R9re1.mjs} +1 -1
  181. package/dist/{setting-BixEhGR2.mjs → setting-C2jQD_g8.mjs} +3 -3
  182. package/dist/{setup-DqAjBhZz.mjs → setup-QmD-t1pE.mjs} +1 -1
  183. package/dist/{skills-ByZWUsPC.mjs → skills-BAS2gDjf.mjs} +3 -3
  184. package/dist/{skills-CPNaSE_d.mjs → skills-SJUpkpK0.mjs} +1 -1
  185. package/dist/{snippet-CK5QjPXs.mjs → snippet-D4Hi7urP.mjs} +5 -5
  186. package/dist/{stash-BMitlOt0.mjs → stash-DqmWy3Sh.mjs} +2 -2
  187. package/dist/{status-BxYGT5I4.mjs → status-D53dMSSs.mjs} +2 -2
  188. package/dist/{status-4ewKKM1J.mjs → status-eg3_xFyQ.mjs} +1 -1
  189. package/dist/{subscription-9WV3hwAq.mjs → subscription-D9e9tr6s.mjs} +5 -5
  190. package/dist/{subscriptions-EVIRobQM.mjs → subscriptions-Bqqlqf5T.mjs} +2 -2
  191. package/dist/{summary-CaWLpvcZ.mjs → summary-BpTu2cty.mjs} +1 -1
  192. package/dist/{sync-schema-BntqB-68.mjs → sync-schema-DaTcqvaG.mjs} +2 -2
  193. package/dist/{sync-schema-Dt0zekZR.mjs → sync-schema-wJ7q9gAE.mjs} +1 -1
  194. package/dist/table-CM6cPt2s.mjs +26 -0
  195. package/dist/{timeline-CyIVLhsz.mjs → timeline-0JJWeOi5.mjs} +7 -7
  196. package/dist/{timeline-event-CaXRyGXH.mjs → timeline-event-feyA3Udc.mjs} +5 -5
  197. package/dist/transform-emVHRuKO.mjs +28 -0
  198. package/dist/transform-job-B81jbOuN.mjs +22 -0
  199. package/dist/{transform-tag-QBmEYxZi.mjs → transform-tag-CKSAwl4d.mjs} +4 -4
  200. package/dist/{transform-test-DMShXj--.mjs → transform-test-CEmn-5-S.mjs} +6 -6
  201. package/dist/{transforms-yuckjEH-.mjs → transforms-VsNAUcKg.mjs} +1 -1
  202. package/dist/{transport-3xv524C_.mjs → transport-5CHP_tMs.mjs} +2 -2
  203. package/dist/{tree-DhZWC6AW.mjs → tree-CPjGQ2wm.mjs} +1 -1
  204. package/dist/{typed-schema-9umakTr7.mjs → typed-schema-W4OW1Edq.mjs} +1 -1
  205. package/dist/{unpublish-BmrZNEcs.mjs → unpublish-PuVviojR.mjs} +1 -1
  206. package/dist/{unreferenced-C0dYogu7.mjs → unreferenced-BT9gANlE.mjs} +1 -1
  207. package/dist/{update-CzCc5og7.mjs → update--2TTQzzF.mjs} +1 -1
  208. package/dist/{update-DVEqN-uO.mjs → update-BGXD76ks.mjs} +3 -3
  209. package/dist/{update-eL6rSQvo2.mjs → update-Bo6KGX9D2.mjs} +1 -1
  210. package/dist/{update-zKgO1dbJ.mjs → update-CBC8lAqs.mjs} +1 -1
  211. package/dist/{update-Gv4cQsS3.mjs → update-CGYUDxv3.mjs} +1 -1
  212. package/dist/{update-DRH78xMc.mjs → update-CNIi5f88.mjs} +1 -1
  213. package/dist/{update-DTvdH8rF.mjs → update-DJBofThn.mjs} +1 -1
  214. package/dist/{update-CsYMNm1n.mjs → update-DZs7eBGa.mjs} +1 -1
  215. package/dist/{update-nZkZHbL5.mjs → update-Da3-3dUO.mjs} +1 -1
  216. package/dist/{update-B0j7R5BU.mjs → update-DeLyAU3L.mjs} +1 -1
  217. package/dist/{update-D4s8mpef.mjs → update-Dmhrlzst.mjs} +1 -1
  218. package/dist/{update-D_9HdXGt.mjs → update-Dp3AUNWA.mjs} +1 -1
  219. package/dist/{update-DIsbIcWv.mjs → update-EXLe8XCO.mjs} +1 -1
  220. package/dist/{update-DuJ7Pu5t.mjs → update-TV4PBAZv.mjs} +2 -2
  221. package/dist/{update-BtyHjKV6.mjs → update-Xc-hfOcM.mjs} +1 -1
  222. package/dist/{update-dashcard-fWxyfSG5.mjs → update-dashcard-3jW0jYXV.mjs} +1 -1
  223. package/dist/{update-DoZZ-pii.mjs → update-ircRP-Ga.mjs} +1 -1
  224. package/dist/{update-BsCY9WoI.mjs → update-lrnQ5RIy.mjs} +1 -1
  225. package/dist/{update-CqqZHGBZ.mjs → update-n1X8JM4b.mjs} +1 -1
  226. package/dist/{update-Dr66Dv3x.mjs → update-qNsPwe0E.mjs} +1 -1
  227. package/dist/{update-BIDjJnEh.mjs → update-tlpf9Nd7.mjs} +1 -1
  228. package/dist/{upgrade-PIUDxb6V.mjs → upgrade-C08e6bwK.mjs} +1 -1
  229. package/dist/{upload-KuHgzGJU.mjs → upload-B3pz8QNS.mjs} +1 -1
  230. package/dist/{upload-Dzn5OAbv.mjs → upload-CGcx9rCH.mjs} +3 -3
  231. package/dist/{upload-B6S0Vqgn.mjs → upload-Cazgw9jX.mjs} +2 -2
  232. package/dist/{uuid-BPr2deuu.mjs → uuid-B1PCdTpU.mjs} +1 -1
  233. package/dist/{values-DHvfVT9h.mjs → values-Ym6iwLLB.mjs} +1 -1
  234. package/dist/{verify-D9i63gmK.mjs → verify-CIxbC-Xz.mjs} +2 -2
  235. package/dist/{verify-CvGdvC7R.mjs → verify-CZiiby5b.mjs} +1 -1
  236. package/dist/{verify-DS0REVed.mjs → verify-CnC3Oemx.mjs} +1 -1
  237. package/dist/{wait-DrOL01Y_.mjs → wait-DiwWdpia.mjs} +3 -3
  238. package/dist/{wait-flags-DT1zA69Z.mjs → wait-flags-DJK0_BcR.mjs} +1 -1
  239. package/package.json +1 -1
  240. package/skill-data/core/SKILL.md +1 -1
  241. package/skill-data/data-action/SKILL.md +50 -18
  242. package/skill-data/data-app-actions/SKILL.md +11 -5
  243. package/dist/git-sync-Dje-mnMh.mjs +0 -29
  244. package/dist/table-BAOSPOlO.mjs +0 -26
  245. package/dist/transform-C8ZiOTWq.mjs +0 -28
  246. package/dist/transform-job-BKX10IUY.mjs +0 -22
@@ -1,16 +1,21 @@
1
1
  ---
2
2
  name: data-action
3
- description: Author and run Metabase data actions with the `mb` CLI — saved, parameterized native SQL writes (INSERT, UPDATE, DELETE) filed in a collection and run with values. Covers enabling them on a database, the collection they go in, the body, mapping template tags to parameters, running, and the lifecycle. Triggers — "add a data action", "let users update a row", "a button that inserts a record", "run a write query", "a form that saves to the database", "delete rows from Metabase". Inside a data app, start with `data-app-actions`.
3
+ description: Author and run Metabase data actions with the `mb` CLI — table actions that insert, update or delete one row of a table, and query actions that run a parameterized native SQL write (INSERT, UPDATE, DELETE), filed in a collection and run with values. Covers enabling them on a database, picking the type, the collection they go in, each type's body and parameters, running, and the lifecycle. Triggers — "add a data action", "let users update a row", "a button that inserts a record", "add a record to a table", "run a write query", "a form that saves to the database", "delete rows from Metabase". Inside a data app, start with `data-app-actions`.
4
4
  allowed-tools: Read, Write, Edit, Bash, AskUserQuestion
5
5
  requires: [dataActionsWithoutModel]
6
6
  ---
7
7
 
8
8
  # Data actions
9
9
 
10
- A **data action** is one native SQL statement that writes — `INSERT`, `UPDATE` or `DELETE` — with named inputs. It lives in a collection, and dashboards, apps and `mb data-action execute` run it with values.
10
+ A **data action** writes to a database with named inputs. A **table action** (`type: "implicit"`) inserts, updates or deletes one row of a table; a **query action** (`type: "query"`) runs one native SQL statement — `INSERT`, `UPDATE` or `DELETE`. Either lives in a collection, and dashboards, apps and `mb data-action execute` run it with values.
11
11
 
12
12
  Flag conventions and `./.scratch` are in `core`; the native query and its template tags follow `native-sql`. This skill covers what a data action adds.
13
13
 
14
+ ## Pick the type
15
+
16
+ - **Table action** (_Table actions_) for a write of one row by its primary key: insert a row, change some of its columns, delete it. There is no SQL to write.
17
+ - **Query action** (_Query actions_) for anything else: a computed value (`now()`), several rows or tables, rows matched by another column, a table without exactly one primary key, or setting a column to `NULL`.
18
+
14
19
  ## Check the database first
15
20
 
16
21
  Data actions are off on every database until an admin turns on **Data actions** for it ("Allow data actions that use this database to be run", Admin → Databases → the database). That toggle is the database setting `database-enable-actions`.
@@ -30,7 +35,7 @@ A data action goes in a data actions collection, a data app collection, or the d
30
35
  mb collection create --namespace data-actions --body '{"name":"Order actions"}' --json
31
36
  ```
32
37
 
33
- ## The body
38
+ ## Query actions
34
39
 
35
40
  Mint one template-tag `id` per tag with `mb uuid --count <n> --format text`.
36
41
 
@@ -38,7 +43,6 @@ Mint one template-tag `id` per tag with `mb uuid --count <n> --format text`.
38
43
  {
39
44
  "name": "Set order note",
40
45
  "type": "query",
41
- "database_id": 1,
42
46
  "collection_id": 12,
43
47
  "dataset_query": {
44
48
  "lib/type": "mbql/query",
@@ -87,12 +91,12 @@ Mint one template-tag `id` per tag with `mb uuid --count <n> --format text`.
87
91
  }
88
92
  ```
89
93
 
90
- - `type` is always `"query"`. Never set `model_id` or `type: "implicit"`; `mb data-action create` refuses both.
91
- - `database_id` and `dataset_query.database` are the same id (`mb db list`). `collection_id` is the data actions collection (here `12`); omit it for the data actions root.
94
+ - Never set `model_id`; `mb data-action create` refuses it.
95
+ - `dataset_query.database` is the database the action writes to (`mb db list`); Metabase takes the action's `database_id` from it. `collection_id` is the data actions collection (here `12`); omit it for the data actions root.
92
96
  - A template tag's `id` is a UUID, unique among the tags: the representation schema requires one.
93
97
  - One statement, no `;`. `create` and `update` validate `dataset_query` as `native-sql` does.
94
98
 
95
- ## Parameters: one per template tag
99
+ ### Parameters: one per template tag
96
100
 
97
101
  Each `{{name}}` needs a `template-tags` entry and a `parameters` entry, all using the same name:
98
102
 
@@ -108,26 +112,54 @@ Each `{{name}}` needs a `template-tags` entry and a `parameters` entry, all usin
108
112
  - Set `required: true` on every input the statement cannot run without (`WHERE` keys, `NOT NULL` columns).
109
113
  - Wrap an optional input in `[[ … ]]` with `required: false`; the clause drops out when no value is given. This makes one action do partial updates: `UPDATE orders SET updated_at = now() [[, note = {{note}}]] [[, status = {{status}}]] WHERE id = {{order_id}}`.
110
114
 
115
+ ## Table actions
116
+
117
+ ```json
118
+ {
119
+ "name": "Add customer",
120
+ "type": "implicit",
121
+ "kind": "row/create",
122
+ "table_id": 7,
123
+ "collection_id": 12
124
+ }
125
+ ```
126
+
127
+ - `kind` is `row/create`, `row/update` or `row/delete`; `table_id` comes from `mb table list --db-id <id>`. The table needs exactly one primary key, or create answers `An implicit action needs a table with exactly one primary key.`
128
+ - In a data app's collection the table must also be published to the Library (`mb library publish`), or create answers `An implicit action in a data app's collection can write only to a table published to the Library.`
129
+ - The body has no `dataset_query` or `parameters`: Metabase derives the parameters from the table's columns, without sensitive and retired ones. Each parameter `id` is its column name, slugified; `mb data-action get <id> --full --json` lists them.
130
+
131
+ | `kind` | Parameters | Answers |
132
+ | ------------ | -------------------------------------- | ----------------------------------------------------------------------- |
133
+ | `row/create` | every column but an auto-increment key | `{"created-row": {...}}`: the new row's parameter columns, key included |
134
+ | `row/update` | the key and every other column | `{"rows-updated": 1}` |
135
+ | `row/delete` | the key | `{"rows-deleted": 1}` |
136
+
137
+ - `required` marks each `NOT NULL` column without a default, and the key of an update or delete. Execution itself checks only that an update or delete has the key; an insert without a `NOT NULL` column fails in the database.
138
+ - An update writes only the columns given a value. A `null` value is dropped, so an update can't clear a column. A key that matches no row is refused: `Sorry, the row you're trying to update doesn't exist` (or `delete`).
139
+ - `visualization_settings.fields.<parameter id>.hidden: true` hides a parameter: execution refuses a value for it, and a data app's `src/metabase.ts` leaves it out. Hide a column an insert needs only when the same field has a `defaultValue`.
140
+ - A patch (_Lifecycle_) changes a query action's `dataset_query` or a table action's `kind` and `table_id`, never both.
141
+
111
142
  ## Run it
112
143
 
113
144
  ```bash
114
145
  mb data-action execute <id> --body '{"parameters":{"order_id":1042,"note":"rush delivery"}}'
115
146
  ```
116
147
 
117
- `parameters` is keyed by parameter `id`. The result is `{"rows-affected": <n>}`. A missing required value is refused. A run cannot be undone, so confirm with the user before running against data that matters, and test a new action on a row created for the purpose.
148
+ `parameters` is keyed by parameter `id`. A query action refuses a missing required value and answers `{"rows-affected": <n>}`; a table action answers as _Table actions_ shows. A run cannot be undone, so confirm with the user before running against data that matters, and test a new action on a row created for the purpose.
118
149
 
119
150
  ## Lifecycle
120
151
 
121
- | Task | Command |
122
- | ------------------------ | ---------------------------------------------------------------------------------------- |
123
- | Find | `mb data-action list` (unarchived only), `mb search --models action <text>` |
124
- | Inspect | `mb data-action get <id> --full --json` |
125
- | Change SQL, inputs, name | `mb data-action update <id> --file patch.json` (changed fields only) |
126
- | Move | `mb data-action update <id> --body '{"collection_id":<id>}'` |
127
- | Archive / restore | `mb data-action archive <id>` / `mb data-action update <id> --body '{"archived":false}'` |
128
- | Delete | `mb data-action delete <id> --yes` (also removes the dashboard buttons that run it) |
129
-
130
- Archiving or deleting a collection archives or deletes its data actions. Existing model-bound or implicit data actions still list, run and archive; leave them as they are.
152
+ | Task | Command |
153
+ | --------------------- | ---------------------------------------------------------------------------------------- |
154
+ | Find | `mb data-action list` (unarchived only), `mb search --models action <text>` |
155
+ | Inspect | `mb data-action get <id> --full --json` |
156
+ | Change a query action | `mb data-action update <id> --file patch.json` (changed fields only) |
157
+ | Change a table action | `mb data-action update <id> --body '{"kind":"row/update"}'` (or `table_id`) |
158
+ | Move | `mb data-action update <id> --body '{"collection_id":<id>}'` |
159
+ | Archive / restore | `mb data-action archive <id>` / `mb data-action update <id> --body '{"archived":false}'` |
160
+ | Delete | `mb data-action delete <id> --yes` (also removes the dashboard buttons that run it) |
161
+
162
+ Archiving or deleting a collection archives or deletes its data actions. Existing data actions of a model still list, run and archive; leave them as they are.
131
163
 
132
164
  ## Don't
133
165
 
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: data-app-actions
3
- description: Make a Metabase data app write data — an action in the app's collection, its typed definition in `src/metabase.ts`, and the `useAction` hook from `@metabase/embedding-sdk-react/data-app` behind a form or a button, with inputs typed from each parameter, the server's error shown as it comes, and every affected query refreshed. Triggers — "a form that saves a row", "a button that updates a record", "delete an entry from the app", "submit doesn't refresh the list", "the action fails in the app". Creating the action itself is `data-action`; reads are `data-app-data`.
3
+ description: Make a Metabase data app write data — an action in the app's collection (a table action that inserts, updates or deletes a row, or a SQL query action), its typed definition in `src/metabase.ts`, and the `useAction` hook from `@metabase/embedding-sdk-react/data-app` behind a form or a button, with inputs typed from each parameter, the server's error shown as it comes, and every affected query refreshed. Triggers — "a form that saves a row", "a button that updates a record", "delete an entry from the app", "submit doesn't refresh the list", "the action fails in the app". Creating the action itself is `data-action`; reads are `data-app-data`.
4
4
  allowed-tools: Read, Write, Edit, Bash, AskUserQuestion
5
5
  requires: [dataApps]
6
6
  ---
7
7
 
8
8
  # Writes in a data app
9
9
 
10
- An **action** is a saved, parameterized SQL write — `INSERT`, `UPDATE` or `DELETE`. A data app runs only the actions in **the app's collection** (`data-app`, _Create the app_).
10
+ An **action** is a table action, which inserts, updates or deletes one row of a table, or a query action, a saved SQL write (`data-action`). A data app runs only the actions in **the app's collection** (`data-app`, _Create the app_).
11
11
 
12
- 1. Draft the action as `data-action` describes — the database must allow actions — with `collection_id` the app's collection. Show the user its SQL and parameters, and create it once they agree.
12
+ 1. Draft the action as `data-action` describes, with `collection_id` the app's collection: the database must allow actions, and a table action's table must be published to the Library, as every table the app reads is. Pick the type as `data-action`, _Pick the type_, says. Show the user the table and kind, or the SQL, and the parameters; create it once they agree.
13
13
  2. Regenerate `src/metabase.ts` (`data-app-data`).
14
14
  3. Pass `actions.<name>` from it to `useAction`.
15
15
 
@@ -29,7 +29,7 @@ const { execute, isExecuting, result, error, reset } = useAction(actions.setOrde
29
29
  - **Import it from `/data-app`.** The main `@metabase/embedding-sdk-react` entry exports the general SDK `useAction`, which takes raw ids and isn't typed from the definition. Write no generics: the definition types `execute`'s keys and values.
30
30
  - `execute(params)` resolves to the response body; on failure it both throws and sets `error`. It resolves to `null` without sending anything while the SDK is still starting, so guard a call that can happen at mount. It never runs on its own and has no `enabled`: return early in the handler to skip it.
31
31
  - `isExecuting` is true until it settles: disable the trigger and show progress, so a double click can't send twice.
32
- - `result` is the last response, `null` before the first call; `result?.["rows-affected"]` is a quick confirmation. `reset()` clears `result` and `error`, for example when the user dismisses a message.
32
+ - `result` is the last response, `null` before the first call; a query action answers `{"rows-affected": <n>}`, a table action `rows-updated`, `rows-deleted` or `created-row` (`data-action`, _Table actions_). `reset()` clears `result` and `error`, for example when the user dismisses a message.
33
33
 
34
34
  ## A form
35
35
 
@@ -76,9 +76,15 @@ export function NoteForm({ orderId, onSaved }: { orderId: number; onSaved: () =>
76
76
  | `Date` | `type="date"`, or `datetime-local` when a time is expected |
77
77
  | `unknown` | `type="text"`, converted at the call |
78
78
 
79
+ **Table actions.** The parameter slugs are the table's column names, slugified.
80
+
81
+ - **Insert** (`row/create`): every column but an auto-increment key. `result["created-row"]` holds the new row's parameter columns, its key among them.
82
+ - **Update** (`row/update`): the key and every other column, `required` on each `NOT NULL` one without a default. Start the form from the row's current values, read by the query on screen, and send them all. A `null` is dropped, so an update can't clear a column.
83
+ - **Delete** (`row/delete`): the key only. Ask the viewer to confirm first.
84
+
79
85
  **Validation** is `required` on each required parameter and nothing else — no length, range or format checks of your own. Disable submit from the browser's verdict, `form.checkValidity()`, never from hand-rolled checks. Anything stricter comes back from the server.
80
86
 
81
- **Errors.** `error` is `{ status?, data: { message?, errors? }, isCancelled }` — read it without a cast. A failing SQL action comes back as a 500 whose `data.message` wraps the driver's text (`Error executing Action: …`): show it as it comes, in a `white-space: pre-wrap` element, since driver messages span lines — never "Something went wrong", `String(error)` or a friendlier paraphrase. `error.data.errors?.[parameterSlug]`, when present, goes beside its field (`aria-invalid` on the input).
87
+ **Errors.** `error` is `{ status?, data: { message?, errors? }, isCancelled }` — read it without a cast. A failing query action comes back as a 500 whose `data.message` wraps the driver's text (`Error executing Action: …`): show it as it comes, in a `white-space: pre-wrap` element, since driver messages span lines — never "Something went wrong", `String(error)` or a friendlier paraphrase. A table action's refusals and constraint errors are 400s, shown the same way (`Sorry, the row you're trying to update doesn't exist`). `error.data.errors?.[parameterSlug]`, when present, goes beside its field (`aria-invalid` on the input).
82
88
 
83
89
  ## Refresh
84
90
 
@@ -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-4ewKKM1J.mjs").then((mod) => mod.default),
12
- "is-dirty": () => import("./is-dirty-BRdzj548.mjs").then((mod) => mod.default),
13
- "has-remote-changes": () => import("./has-remote-changes-DUCn8d5k.mjs").then((mod) => mod.default),
14
- dirty: () => import("./dirty-BnuuGVxz.mjs").then((mod) => mod.default),
15
- "current-task": () => import("./current-task-CpPUJYbQ.mjs").then((mod) => mod.default),
16
- "cancel-task": () => import("./cancel-task-DMlaD81O.mjs").then((mod) => mod.default),
17
- wait: () => import("./wait-DrOL01Y_.mjs").then((mod) => mod.default),
18
- import: () => import("./import-Bnun0H8L.mjs").then((mod) => mod.default),
19
- export: () => import("./export-C_G6D1MF.mjs").then((mod) => mod.default),
20
- "export-preflight": () => import("./export-preflight-DeqCCYP0.mjs").then((mod) => mod.default),
21
- stash: () => import("./stash-BMitlOt0.mjs").then((mod) => mod.default),
22
- branches: () => import("./branches-iu9tRXr6.mjs").then((mod) => mod.default),
23
- "create-branch": () => import("./create-branch-D56lVQNd.mjs").then((mod) => mod.default),
24
- "add-collection": () => import("./add-collection-C_PXX4ls.mjs").then((mod) => mod.default),
25
- "remove-collection": () => import("./remove-collection-p9OgcXQ0.mjs").then((mod) => mod.default)
26
- }
27
- });
28
- //#endregion
29
- export { git_sync_default as default };
@@ -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-D7oLTX1F.mjs").then((m) => m.default),
12
- get: () => import("./get-BB0b96ox.mjs").then((m) => m.default),
13
- fields: () => import("./fields-Ds2PnxA7.mjs").then((m) => m.default),
14
- fks: () => import("./fks-CCKTcQ4c.mjs").then((m) => m.default),
15
- update: () => import("./update-DRH78xMc.mjs").then((m) => m.default),
16
- "sync-schema": () => import("./sync-schema-Dt0zekZR.mjs").then((m) => m.default),
17
- "rescan-values": () => import("./rescan-values-DgUwDmwZ.mjs").then((m) => m.default),
18
- "discard-values": () => import("./discard-values-CXyBp5pq.mjs").then((m) => m.default),
19
- "bulk-edit": () => import("./bulk-edit-vWzm2uEj.mjs").then((m) => m.default),
20
- "bulk-sync-schema": () => import("./bulk-sync-schema-neL4AxaB.mjs").then((m) => m.default),
21
- "bulk-rescan-values": () => import("./bulk-rescan-values-qTNZkMRH.mjs").then((m) => m.default),
22
- "bulk-discard-values": () => import("./bulk-discard-values-Bsdq0Aid.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-jPZgEqWH.mjs").then((mod) => mod.default),
15
- get: () => import("./get-R4_vq3U9.mjs").then((mod) => mod.default),
16
- dependencies: () => import("./dependencies-CKT460jf.mjs").then((mod) => mod.default),
17
- create: () => import("./create-DDEKafSb2.mjs").then((mod) => mod.default),
18
- update: () => import("./update-D_9HdXGt.mjs").then((mod) => mod.default),
19
- delete: () => import("./delete-DXL1orAc.mjs").then((mod) => mod.default),
20
- "delete-table": () => import("./delete-table-RAznoioi.mjs").then((mod) => mod.default),
21
- run: () => import("./run-BtRi59Hd.mjs").then((mod) => mod.default),
22
- cancel: () => import("./cancel-DsyTp_jV.mjs").then((mod) => mod.default),
23
- "get-run": () => import("./get-run-Ds50O2Rn.mjs").then((mod) => mod.default),
24
- runs: () => import("./runs-hulvKxUw.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-uDe8e-8m.mjs").then((mod) => mod.default),
12
- get: () => import("./get-D3k4Pyfn.mjs").then((mod) => mod.default),
13
- create: () => import("./create-C1DBXOxh.mjs").then((mod) => mod.default),
14
- update: () => import("./update-eL6rSQvo2.mjs").then((mod) => mod.default),
15
- delete: () => import("./delete-DHJ3ea0o.mjs").then((mod) => mod.default),
16
- run: () => import("./run-qAs_RthF.mjs").then((mod) => mod.default),
17
- transforms: () => import("./transforms-yuckjEH-.mjs").then((mod) => mod.default),
18
- "set-active": () => import("./set-active-DaGUZCbh.mjs").then((mod) => mod.default)
19
- }
20
- });
21
- //#endregion
22
- export { transform_job_default as default };