@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.
- package/dist/{add-collection-D2x34KVO.mjs → add-collection-C_PXX4ls.mjs} +1 -1
- package/dist/{alert-B-w0c61D.mjs → alert-C8-KXr_o.mjs} +6 -6
- package/dist/{alerts-nnrpqD-U.mjs → alerts-BXEyXQRl.mjs} +2 -2
- package/dist/{api-key-CTyXuYui.mjs → api-key-DgEtUdtr.mjs} +3 -3
- package/dist/{append-BPrVW4RB.mjs → append-DHsRfdyS.mjs} +2 -2
- package/dist/{archive-p7gGwh0n.mjs → archive-1u8702EH.mjs} +1 -1
- package/dist/{archive-Bw_cvk_4.mjs → archive-78gVBFu3.mjs} +1 -1
- package/dist/{archive-CJFUFozc.mjs → archive-BHhKF2_r.mjs} +1 -1
- package/dist/{archive-CTZs6Hl6.mjs → archive-BfCuJyWK.mjs} +1 -1
- package/dist/{archive-Cwetg5kK.mjs → archive-BofgzTAr.mjs} +1 -1
- package/dist/{archive-BYo35OGC.mjs → archive-CU9OhyrM.mjs} +1 -1
- package/dist/{archive-F5hoWW7f.mjs → archive-Cm3GcZRd.mjs} +1 -1
- package/dist/{archive-Ccf6Qqrf.mjs → archive-D87H0xOc.mjs} +1 -1
- package/dist/{archive-BZVRJYTT.mjs → archive-DxLrdlxM.mjs} +1 -1
- package/dist/{archive-OZQaaQkK.mjs → archive-DyB65bNo.mjs} +1 -1
- package/dist/{archive-DBQnauVo.mjs → archive-Lgd6irTm.mjs} +1 -1
- package/dist/{archive-tmrsG41w.mjs → archive-eINikapF.mjs} +1 -1
- package/dist/{auth-eogOlU4X.mjs → auth-CeSe2l6R.mjs} +4 -4
- package/dist/{branches-CERgKqFq.mjs → branches-iu9tRXr6.mjs} +1 -1
- package/dist/{breaking-B8f_vl0i.mjs → breaking-DicKTkii.mjs} +1 -1
- package/dist/{broken-mrkOdV4j.mjs → broken-70_zMy0L.mjs} +1 -1
- package/dist/{bulk-discard-values-BQ3z6nJb.mjs → bulk-discard-values-Bsdq0Aid.mjs} +1 -1
- package/dist/{bulk-edit-CJxoxDGQ.mjs → bulk-edit-vWzm2uEj.mjs} +1 -1
- package/dist/{bulk-rescan-values-DflzyxEj.mjs → bulk-rescan-values-qTNZkMRH.mjs} +1 -1
- package/dist/{bulk-sync-schema-CBIs4yHs.mjs → bulk-sync-schema-neL4AxaB.mjs} +1 -1
- package/dist/{cancel-CyTRWSOr.mjs → cancel-DsyTp_jV.mjs} +1 -1
- package/dist/{cancel-task-BuZsQuLp.mjs → cancel-task-DMlaD81O.mjs} +1 -1
- package/dist/{card-DA1W3Axw.mjs → card-uZeDk5uH.mjs} +8 -8
- package/dist/{cards-BEeFNiCt.mjs → cards-DLEx1zfQ.mjs} +1 -1
- package/dist/cli.mjs +38 -38
- package/dist/{client-DvWllzKd.mjs → client-BN93yUlt.mjs} +10 -5
- package/dist/{collection-C98jgufi.mjs → collection-Cowt7nWW.mjs} +7 -7
- package/dist/{content-translation-1coWME1P.mjs → content-translation-C2V3jNV7.mjs} +2 -2
- package/dist/{copy-DVe4rcLK.mjs → copy-9iOg50lN.mjs} +1 -1
- package/dist/{copy-hE6SaHfb.mjs → copy-C4Nf6Sqt.mjs} +1 -1
- package/dist/{create-DJg0Ohj5.mjs → create-9p0vyQkK.mjs} +1 -1
- package/dist/{create-BjH0i2BC.mjs → create-B5h_621T.mjs} +1 -1
- package/dist/{create-XCzUuT42.mjs → create-BDBHkgLv.mjs} +1 -1
- package/dist/{create-DR5tpMUA.mjs → create-BNgkKeY4.mjs} +1 -1
- package/dist/{create-D271V9Cf.mjs → create-BUmS6B9_.mjs} +1 -1
- package/dist/{create-DdfFgF-w.mjs → create-BafMBtrH.mjs} +1 -1
- package/dist/{create-DCoo3sI2.mjs → create-BtExn-0P.mjs} +1 -1
- package/dist/{create-XVjr8IDS.mjs → create-C1DBXOxh.mjs} +1 -1
- package/dist/{create-Btwnm6D2.mjs → create-CA9c4U1m.mjs} +1 -1
- package/dist/{create-DXivfl69.mjs → create-CBk4CFjA.mjs} +1 -1
- package/dist/{create-DR8g_rEL.mjs → create-CWMC90-0.mjs} +1 -1
- package/dist/{create-LpdQKxUt.mjs → create-D6eWvVcd.mjs} +2 -2
- package/dist/{create-D6Xm2b2D.mjs → create-DBWbf0DF.mjs} +2 -2
- package/dist/{create-DEIIUohY2.mjs → create-DDEKafSb2.mjs} +1 -1
- package/dist/{create-CCb2_Kcc.mjs → create-DJzWxTOV.mjs} +1 -1
- package/dist/{create-B3P62NaN.mjs → create-D_AwGujc.mjs} +1 -1
- package/dist/{create-Dz4c8E33.mjs → create-VPzYsXKz.mjs} +1 -1
- package/dist/{create-BPRuU7Mv.mjs → create-ZKrdArmQ.mjs} +1 -1
- package/dist/{create-branch-D_nbKxDS.mjs → create-branch-D56lVQNd.mjs} +1 -1
- package/dist/{create-B3kz_fHg.mjs → create-il08Ub78.mjs} +1 -1
- package/dist/{create-DkFCjBp3.mjs → create-vN4sgCHU.mjs} +1 -1
- package/dist/{csv-LP7sE-CS.mjs → csv-D50rzoTk.mjs} +2 -2
- package/dist/{current-task-DhgwtGN3.mjs → current-task-CpPUJYbQ.mjs} +1 -1
- package/dist/{dashboard-CR97_zXn.mjs → dashboard-CrD7w0mE.mjs} +11 -11
- package/dist/{data-action-C4jE-RLb.mjs → data-action-p-8TbHAj.mjs} +7 -7
- package/dist/{data-app-BlBvvRzC.mjs → data-app-3cmb-x-I.mjs} +9 -9
- package/dist/{data-app-project-DjDDWgUF.mjs → data-app-project-DUCJcvfJ.mjs} +1 -1
- package/dist/{db-D8mPRqZc.mjs → db-BO1aJAAn.mjs} +7 -7
- package/dist/{delete-DWTqIlbr.mjs → delete-8qsotOGB.mjs} +1 -1
- package/dist/{delete-DaqzPLcG.mjs → delete-BSCnAB2g.mjs} +1 -1
- package/dist/{delete-DuaJ8PUI.mjs → delete-ByYgGnoo.mjs} +1 -1
- package/dist/{delete-CaaPrNOf.mjs → delete-CTtToAYO.mjs} +1 -1
- package/dist/{delete-CuyGTe0i.mjs → delete-DHJ3ea0o.mjs} +1 -1
- package/dist/{delete-8k7oYDFr.mjs → delete-DU-Kinm4.mjs} +1 -1
- package/dist/{delete-DC-DEYSq.mjs → delete-DU1K-Cy4.mjs} +1 -1
- package/dist/{delete-ZjLpkwgx.mjs → delete-DXL1orAc.mjs} +1 -1
- package/dist/{delete-B1SbEVIc.mjs → delete-DuVEKGA5.mjs} +1 -1
- package/dist/{delete-CqyBkMCd.mjs → delete-DwNkDTga.mjs} +1 -1
- package/dist/{delete-table-CnGv1gx9.mjs → delete-table-RAznoioi.mjs} +1 -1
- package/dist/{dependencies-D6SNdLW8.mjs → dependencies-CKT460jf.mjs} +1 -1
- package/dist/{dependency-Bbg9x1V9.mjs → dependency-B1wYuRR1.mjs} +5 -5
- package/dist/{dependents-BizQb14Q.mjs → dependents-D85CaupB.mjs} +1 -1
- package/dist/{dirty-BHwdHOEj.mjs → dirty-BnuuGVxz.mjs} +1 -1
- package/dist/{discard-values-BWlh2ce8.mjs → discard-values-CXyBp5pq.mjs} +1 -1
- package/dist/{document-B6254tue.mjs → document-BHXXSx3u.mjs} +6 -6
- package/dist/{download-D2wEAgi_.mjs → download--RQk3dyK.mjs} +1 -1
- package/dist/{eid-KtWIPUCC.mjs → eid-BwhUajT8.mjs} +1 -1
- package/dist/{entry-flags-DLS6r8Vf.mjs → entry-flags-DS_MMJbV.mjs} +1 -1
- package/dist/{events-B8yMqrrD.mjs → events-DuHSrJuz.mjs} +1 -1
- package/dist/{execute-Bebvab7D.mjs → execute-BjWeMJ0l.mjs} +1 -1
- package/dist/{export-BNj3RvAl.mjs → export-C_G6D1MF.mjs} +2 -2
- package/dist/{export-preflight-F3OapAD5.mjs → export-preflight-DeqCCYP0.mjs} +1 -1
- package/dist/{field-DQAcCjXr.mjs → field-C02nW-20.mjs} +7 -7
- package/dist/{fields-BkAS_wIA.mjs → fields-Ds2PnxA7.mjs} +1 -1
- package/dist/{fks--SaqvPw1.mjs → fks-CCKTcQ4c.mjs} +1 -1
- package/dist/{get-B2nBYYCw.mjs → get-8gu6wblt.mjs} +1 -1
- package/dist/{get-uHs9Ve-4.mjs → get-BB0b96ox.mjs} +1 -1
- package/dist/{get-iOs1ci6x.mjs → get-BOcwk9jz.mjs} +1 -1
- package/dist/{get-CTTKQDr7.mjs → get-B_5Y65cZ.mjs} +1 -1
- package/dist/{get-CM9IOr82.mjs → get-B_Vz5OMY.mjs} +1 -1
- package/dist/{get-f2km9wsq.mjs → get-C6qjCvoM.mjs} +1 -1
- package/dist/{get-B1uiZyyi.mjs → get-CDA-g71Z.mjs} +1 -1
- package/dist/{get-BSKpQJVB.mjs → get-CGrfQxXy.mjs} +1 -1
- package/dist/{get-Boql3_0n.mjs → get-CJEE2ApL.mjs} +1 -1
- package/dist/{get-Cdcj1c9U.mjs → get-CTwU2SwT.mjs} +1 -1
- package/dist/{get-gGSl7Se4.mjs → get-D3k4Pyfn.mjs} +1 -1
- package/dist/{get-CWDz6eV2.mjs → get-D3kYRX7B.mjs} +1 -1
- package/dist/{get-C_hatP_z.mjs → get-D7Uq4t19.mjs} +1 -1
- package/dist/{get-CGPxAoow.mjs → get-DSQSwjDw.mjs} +1 -1
- package/dist/{get-B1S1kW2N.mjs → get-DVctVDj6.mjs} +1 -1
- package/dist/{get-De6qpuzO.mjs → get-DXH0zRv1.mjs} +1 -1
- package/dist/{get-BseHija1.mjs → get-D_eGmu67.mjs} +1 -1
- package/dist/{get-C9VumVZ3.mjs → get-DkEOLIF5.mjs} +2 -2
- package/dist/{get-VpGfaL7c.mjs → get-Du0KCtaC.mjs} +1 -1
- package/dist/{get-BjgB5l7X.mjs → get-R4_vq3U9.mjs} +1 -1
- package/dist/{get-run-CHup8cMl.mjs → get-run-Ds50O2Rn.mjs} +1 -1
- package/dist/{get-CiLYhFjU.mjs → get-v_BtTCdl.mjs} +1 -1
- package/dist/{get-CU1zKfBS.mjs → get-xJTVgvSu.mjs} +1 -1
- package/dist/git-sync-Dje-mnMh.mjs +29 -0
- package/dist/{glossary-BVxRpD7o.mjs → glossary-TBjFyeRN.mjs} +4 -4
- package/dist/{graph-B7SlzpkC.mjs → graph-DeGkHvI5.mjs} +1 -1
- package/dist/{has-remote-changes-DZq7q2Wk.mjs → has-remote-changes-DUCn8d5k.mjs} +1 -1
- package/dist/{import-DKZF0kMU.mjs → import-Bnun0H8L.mjs} +2 -2
- package/dist/{is-dirty-haRLODo1.mjs → is-dirty-BRdzj548.mjs} +1 -1
- package/dist/{items-BGWE5hLl.mjs → items-BmFznkYw.mjs} +1 -1
- package/dist/{library-e3aiJ1Yb.mjs → library-Cy8n_GoQ.mjs} +4 -4
- package/dist/{list-BNel4hYs.mjs → list-B8FE0mi7.mjs} +1 -1
- package/dist/{list-DUCxqhtn.mjs → list-B8WxIHZh.mjs} +1 -1
- package/dist/{list-DJyIkrY1.mjs → list-BJaTl4Z3.mjs} +3 -3
- package/dist/{list-B9yhUzCc.mjs → list-BXgbS3xg.mjs} +1 -1
- package/dist/{list-DcXqKZyg.mjs → list-CgiBw3H-.mjs} +1 -1
- package/dist/{list-DDt1iLXj.mjs → list-ChPsUv0M.mjs} +1 -1
- package/dist/{list-Dvf1iB8r.mjs → list-CnQnHNwI.mjs} +1 -1
- package/dist/{list-D0ASRA_6.mjs → list-CucyGz_M.mjs} +1 -1
- package/dist/{list-HI7Mpoy-.mjs → list-Cv9U6hop.mjs} +1 -1
- package/dist/{list-P7FnSsbZ.mjs → list-D7oLTX1F.mjs} +1 -1
- package/dist/{list-gcDxZ7Th.mjs → list-DCooGGd-.mjs} +1 -1
- package/dist/{list-D_8GeDG-.mjs → list-DQNmzmbE.mjs} +1 -1
- package/dist/{list-COPGHkWL.mjs → list-DVdfoOmD.mjs} +1 -1
- package/dist/{list-CNiCM1NL.mjs → list-DkJsUigU.mjs} +1 -1
- package/dist/{list-CsXdnNyp.mjs → list-DqvwXEY3.mjs} +2 -2
- package/dist/{list-DFxfpa4W.mjs → list-DwA83Hut.mjs} +1 -1
- package/dist/{list-DAa4EWlv.mjs → list-Hkl1mEcn.mjs} +1 -1
- package/dist/{list-DednUvr3.mjs → list-emgvzTcQ.mjs} +1 -1
- package/dist/{list-Bbc8VYDi.mjs → list-hrR_sluM.mjs} +1 -1
- package/dist/{list-BiIZdUoN.mjs → list-jPZgEqWH.mjs} +1 -1
- package/dist/{list-C-AnwSRP.mjs → list-jfnzEgFg.mjs} +1 -1
- package/dist/{list-OUSeeuXb.mjs → list-uDe8e-8m.mjs} +1 -1
- package/dist/{list-DFuydMdV.mjs → list-zIJcjZwa.mjs} +1 -1
- package/dist/{login-APHXId1p.mjs → login-DMpRrZoJ.mjs} +31 -14
- package/dist/{logout-V0pxj6AM.mjs → logout-DEB_Rs3z.mjs} +1 -1
- package/dist/{measure-DnGWkKyx.mjs → measure-Dop8G1p3.mjs} +5 -5
- package/dist/{parameter-values-DfZSEK3O.mjs → parameter-values-CuNu1kDf.mjs} +1 -1
- package/dist/{path-Bni-pnKS.mjs → path-6xIAWlup.mjs} +2 -2
- package/dist/{poll-vxN__4cz.mjs → poll-uailHW3t.mjs} +1 -1
- package/dist/{publish-DkYn86ak.mjs → publish-D7tndpBc.mjs} +9 -3
- package/dist/{query-gHeYfWj_.mjs → query-C_6GZwbJ.mjs} +1 -1
- package/dist/{query-CZbI4Rlv.mjs → query-Do1Ms0k9.mjs} +1 -1
- package/dist/{remapping-hcWkFQsx.mjs → remapping-B5Z3Ustf.mjs} +1 -1
- package/dist/{remove-collection-Qne5ww6M.mjs → remove-collection-p9OgcXQ0.mjs} +1 -1
- package/dist/{render-d1-sCPn_.mjs → render-C3ygE5nO.mjs} +1 -1
- package/dist/{replace-DoU0IFGd.mjs → replace-D3I8Cb6E.mjs} +2 -2
- package/dist/{requirement-check-BoVSK1uK.mjs → requirement-check-DWGbJZUM.mjs} +1 -1
- package/dist/{rescan-values-COzM86P5.mjs → rescan-values-DgUwDmwZ.mjs} +1 -1
- package/dist/{rescan-values-s82n_You.mjs → rescan-values-DwYuiNzi.mjs} +1 -1
- package/dist/{run-JYNbEO_V.mjs → run-BtRi59Hd.mjs} +2 -2
- package/dist/{run-Q7fHux1F.mjs → run-Dr-DsQVO.mjs} +2 -2
- package/dist/{run-Bwj4Uuxk.mjs → run-qAs_RthF.mjs} +1 -1
- package/dist/{runs-GQD6FO2k.mjs → runs-hulvKxUw.mjs} +1 -1
- package/dist/{runtime-iIsqiOwO.mjs → runtime-CEAFobLj.mjs} +77 -39
- package/dist/{scaffold-CJo9l-2p.mjs → scaffold-CO9Oea2N.mjs} +3 -3
- package/dist/{schema-2JhmK8FM.mjs → schema-D5AhDYTD.mjs} +1 -1
- package/dist/{schema-tables-CarGLayY.mjs → schema-tables-KIsDvvGs.mjs} +1 -1
- package/dist/{schemas-oSjtuQ4G.mjs → schemas-DuGltR33.mjs} +1 -1
- package/dist/{search-CvGEL2h-.mjs → search-BJPNMvnK.mjs} +1 -1
- package/dist/{search-Ca0sIr28.mjs → search-CM3ybv8O.mjs} +1 -1
- package/dist/{segment-BJCEJwNY.mjs → segment-BROyKyC3.mjs} +5 -5
- package/dist/{send-B4nZI6CU.mjs → send-cSr60J2Z.mjs} +1 -1
- package/dist/{set-BjMZCdN8.mjs → set-DpBA6eOn.mjs} +1 -1
- package/dist/{set-active-CWDdv3kN.mjs → set-active-DaGUZCbh.mjs} +1 -1
- package/dist/{set-bundle-C2uk4jdt.mjs → set-bundle-CgJuQ3fe.mjs} +5 -5
- package/dist/{set-data-actions-lWl05ekf.mjs → set-data-actions-CyuKhCDs.mjs} +1 -1
- package/dist/{set-enabled-CPhw1AX4.mjs → set-enabled-DxxlZePU.mjs} +4 -4
- package/dist/{set-sensitivity-B7WI5BJC.mjs → set-sensitivity-BBkuW5wQ.mjs} +1 -1
- package/dist/{setting-BvPpFjJT.mjs → setting-BixEhGR2.mjs} +3 -3
- package/dist/{setup-DPRa8Uxm.mjs → setup-DqAjBhZz.mjs} +1 -1
- package/dist/{skills-BCivFuuZ.mjs → skills-ByZWUsPC.mjs} +3 -3
- package/dist/{skills-BY3MCR8i.mjs → skills-CPNaSE_d.mjs} +1 -1
- package/dist/{snippet-BcN1UwoS.mjs → snippet-CK5QjPXs.mjs} +5 -5
- package/dist/{stash-leoW1fby.mjs → stash-BMitlOt0.mjs} +2 -2
- package/dist/{status-BezD_K-g.mjs → status-4ewKKM1J.mjs} +1 -1
- package/dist/{status-AA4APlwZ.mjs → status-BxYGT5I4.mjs} +2 -2
- package/dist/{subscription-BDukZFlC.mjs → subscription-9WV3hwAq.mjs} +5 -5
- package/dist/{subscriptions-CU4E_p7B.mjs → subscriptions-EVIRobQM.mjs} +2 -2
- package/dist/{summary-BFspP71W.mjs → summary-CaWLpvcZ.mjs} +1 -1
- package/dist/{sync-schema-BhRhsm8Y.mjs → sync-schema-BntqB-68.mjs} +2 -2
- package/dist/{sync-schema-BtjC-PNY.mjs → sync-schema-Dt0zekZR.mjs} +1 -1
- package/dist/table-BAOSPOlO.mjs +26 -0
- package/dist/{timeline-Cr5d4Oer.mjs → timeline-CyIVLhsz.mjs} +7 -7
- package/dist/{timeline-event-BiYDbW3r.mjs → timeline-event-CaXRyGXH.mjs} +5 -5
- package/dist/transform-C8ZiOTWq.mjs +28 -0
- package/dist/transform-job-BKX10IUY.mjs +22 -0
- package/dist/{transform-tag-DQXOPhmt.mjs → transform-tag-QBmEYxZi.mjs} +4 -4
- package/dist/{transform-test-wmAjyaka.mjs → transform-test-DMShXj--.mjs} +6 -6
- package/dist/{transforms-DcXL4Dox.mjs → transforms-yuckjEH-.mjs} +1 -1
- package/dist/{transport-DZSxmmtY.mjs → transport-3xv524C_.mjs} +2 -3
- package/dist/{tree-DrYYCdXP.mjs → tree-DhZWC6AW.mjs} +1 -1
- package/dist/{typed-schema-DEzmTY3J.mjs → typed-schema-9umakTr7.mjs} +2 -2
- package/dist/{unpublish-D8hmulCx.mjs → unpublish-BmrZNEcs.mjs} +1 -1
- package/dist/{unreferenced-C3CqO3tu.mjs → unreferenced-C0dYogu7.mjs} +1 -1
- package/dist/{update-4sOfpwpv.mjs → update-B0j7R5BU.mjs} +1 -1
- package/dist/{update-4TDRNrV-.mjs → update-BIDjJnEh.mjs} +1 -1
- package/dist/{update-BVz0oIwS.mjs → update-BsCY9WoI.mjs} +1 -1
- package/dist/{update-B21GAnzT.mjs → update-BtyHjKV6.mjs} +1 -1
- package/dist/{update-LlJM4tUd.mjs → update-CqqZHGBZ.mjs} +1 -1
- package/dist/{update-BxRFktpB.mjs → update-CsYMNm1n.mjs} +1 -1
- package/dist/{update-3lRE8G9k.mjs → update-CzCc5og7.mjs} +1 -1
- package/dist/{update-DvGIaZdl.mjs → update-D4s8mpef.mjs} +1 -1
- package/dist/{update-l4WRN6Jh.mjs → update-DIsbIcWv.mjs} +1 -1
- package/dist/{update-Zv7PP8nl.mjs → update-DRH78xMc.mjs} +1 -1
- package/dist/{update-Ch6AAOeh.mjs → update-DTvdH8rF.mjs} +1 -1
- package/dist/{update-DmMHHn75.mjs → update-DVEqN-uO.mjs} +1 -1
- package/dist/{update-CEDMvgJI.mjs → update-D_9HdXGt.mjs} +1 -1
- package/dist/{update-CcNYCalv.mjs → update-DoZZ-pii.mjs} +1 -1
- package/dist/{update-sma1ZRm2.mjs → update-Dr66Dv3x.mjs} +3 -3
- package/dist/{update-CctMr2T1.mjs → update-DuJ7Pu5t.mjs} +2 -2
- package/dist/{update-CtuLA42g.mjs → update-Gv4cQsS3.mjs} +1 -1
- package/dist/{update-dashcard-BijqiYQd.mjs → update-dashcard-fWxyfSG5.mjs} +1 -1
- package/dist/{update-7iXRB23T2.mjs → update-eL6rSQvo2.mjs} +1 -1
- package/dist/{update-552UGPAG.mjs → update-nZkZHbL5.mjs} +1 -1
- package/dist/{update-DVD77mVR.mjs → update-zKgO1dbJ.mjs} +1 -1
- package/dist/{upgrade-TzILOkiM.mjs → upgrade-PIUDxb6V.mjs} +1 -2
- package/dist/{upload-Do-kOGtc.mjs → upload-B6S0Vqgn.mjs} +2 -2
- package/dist/{upload-B37bUVl_.mjs → upload-Dzn5OAbv.mjs} +3 -3
- package/dist/{upload-CdiDKe69.mjs → upload-KuHgzGJU.mjs} +1 -1
- package/dist/{uuid-Dqq2WfAT.mjs → uuid-BPr2deuu.mjs} +1 -1
- package/dist/{values-CtY5zv0m.mjs → values-DHvfVT9h.mjs} +1 -1
- package/dist/{verify-DBTlWx-S.mjs → verify-CvGdvC7R.mjs} +1 -1
- package/dist/{verify-DJ7fGyLL.mjs → verify-D9i63gmK.mjs} +2 -2
- package/dist/{verify-BiB8jzXB.mjs → verify-DS0REVed.mjs} +1 -1
- package/dist/{wait-DEYagfq4.mjs → wait-DrOL01Y_.mjs} +3 -3
- package/dist/{wait-flags-C3cu_O0w.mjs → wait-flags-DT1zA69Z.mjs} +1 -1
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +5 -2
- package/skill-data/data-app/SKILL.md +16 -17
- package/skill-data/data-app/template/README.md +7 -3
- package/skill-data/data-app/template/gitignore +1 -1
- package/skill-data/data-app/template/package.json +1 -0
- package/skill-data/data-app-actions/SKILL.md +3 -0
- package/skill-data/data-app-data/SKILL.md +6 -6
- package/skill-data/data-app-filters/SKILL.md +12 -4
- package/skill-data/data-app-ui/SKILL.md +11 -11
- package/skill-data/data-workflow/references/reusable-definitions.md +2 -2
- package/skill-data/git-sync/SKILL.md +13 -11
- package/skill-data/mbql/SKILL.md +2 -2
- package/dist/git-sync-Czena0TW.mjs +0 -29
- package/dist/signal-BNUlQjpc.mjs +0 -25
- package/dist/table-Dzp1uANs.mjs +0 -26
- package/dist/transform-C-0nV5Et.mjs +0 -28
- 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
|
|
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`
|
|
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>
|
|
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;
|
|
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** (
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
246
|
-
mb git-sync add-collection <library-
|
|
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 —
|
|
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.
|
package/skill-data/mbql/SKILL.md
CHANGED
|
@@ -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
|
-
-
|
|
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)
|
|
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 };
|
package/dist/signal-BNUlQjpc.mjs
DELETED
|
@@ -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 };
|
package/dist/table-Dzp1uANs.mjs
DELETED
|
@@ -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 };
|