@metabase/cli 0.5.6 → 0.5.7-alpha.bryan-rci-6-coverage.6f886fd
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-C_PXX4ls.mjs → add-collection-C7c6Y3T3.mjs} +3 -3
- package/dist/{alert-C8-KXr_o.mjs → alert-J0qLs6rc.mjs} +7 -7
- package/dist/{alerts-BXEyXQRl.mjs → alerts-mjDIdof3.mjs} +6 -6
- package/dist/api-key-Bw2jDvT4.mjs +13 -0
- package/dist/{append-DHsRfdyS.mjs → append-yaTEz2AE.mjs} +4 -4
- package/dist/{archive-CU9OhyrM.mjs → archive-B93SkIvs.mjs} +4 -4
- package/dist/{archive-BHhKF2_r.mjs → archive-BmU6DnFz.mjs} +4 -4
- package/dist/{archive-1u8702EH.mjs → archive-CbtQNK96.mjs} +3 -3
- package/dist/{archive-DxLrdlxM.mjs → archive-Cg67G-qa.mjs} +3 -3
- package/dist/{archive-BofgzTAr.mjs → archive-CgcNck0G.mjs} +3 -3
- package/dist/{archive-BfCuJyWK.mjs → archive-DYdHrm6V.mjs} +3 -3
- package/dist/{archive-eINikapF.mjs → archive-Dg9eMYU6.mjs} +3 -3
- package/dist/{archive-Cm3GcZRd.mjs → archive-DrCoSvio.mjs} +3 -3
- package/dist/{archive-D87H0xOc.mjs → archive-DzXi2Frh.mjs} +3 -3
- package/dist/{archive-DyB65bNo.mjs → archive-P-y61Wi_.mjs} +3 -3
- package/dist/{archive-Lgd6irTm.mjs → archive-VZ0dgYTd.mjs} +5 -5
- package/dist/{archive-78gVBFu3.mjs → archive-rhxBPOrL.mjs} +3 -3
- package/dist/{auth-CeSe2l6R.mjs → auth-CxN5tDg1.mjs} +5 -5
- package/dist/{branches-iu9tRXr6.mjs → branches-1ZK62u6h.mjs} +3 -3
- package/dist/{breaking-DicKTkii.mjs → breaking-Bv4wZN9X.mjs} +5 -5
- package/dist/{broken-70_zMy0L.mjs → broken-BU7MrnHI.mjs} +6 -6
- package/dist/{bulk-discard-values-Bsdq0Aid.mjs → bulk-discard-values-6TLs4p2e.mjs} +5 -5
- package/dist/{bulk-edit-vWzm2uEj.mjs → bulk-edit-CYnFA1xm.mjs} +3 -3
- package/dist/{bulk-rescan-values-qTNZkMRH.mjs → bulk-rescan-values-T__5XlPh.mjs} +4 -4
- package/dist/{bulk-sync-schema-neL4AxaB.mjs → bulk-sync-schema-V1Tpqvxg.mjs} +4 -4
- package/dist/{cancel-DsyTp_jV.mjs → cancel-RTd-Bg5f.mjs} +3 -3
- package/dist/{cancel-task-DMlaD81O.mjs → cancel-task-B6GpgrME.mjs} +2 -2
- package/dist/card-BlSUKf2e.mjs +25 -0
- package/dist/{cards-DLEx1zfQ.mjs → cards-hYVyzntk.mjs} +4 -4
- package/dist/ci-CPRKvyWe.mjs +9 -0
- package/dist/cli.mjs +43 -39
- package/dist/{client-BN93yUlt.mjs → client-C_5K9lZA.mjs} +16 -11
- package/dist/collection-CeaSalia.mjs +21 -0
- package/dist/{collection-namespace-C0JcSEwN.mjs → collection-namespace-D0_-6eWp.mjs} +1 -1
- package/dist/{content-translation-C2V3jNV7.mjs → content-translation-Bux3aWnt.mjs} +3 -3
- package/dist/{copy-C4Nf6Sqt.mjs → copy-B8HnAc11.mjs} +4 -4
- package/dist/{copy-9iOg50lN.mjs → copy-BAP_y6s1.mjs} +4 -4
- package/dist/{copy-flags-DZ5Cy-Gk.mjs → copy-flags-VQzi7vqf.mjs} +1 -1
- package/dist/{create-BafMBtrH.mjs → create-B0l5arU2.mjs} +2 -2
- package/dist/{create-C1DBXOxh.mjs → create-BOn7IisH.mjs} +2 -2
- package/dist/{create-CWMC90-0.mjs → create-BUPy6vmU.mjs} +2 -2
- package/dist/{create-VPzYsXKz.mjs → create-BWrIVbLC.mjs} +2 -2
- package/dist/{create-B5h_621T.mjs → create-BcbdVQr_.mjs} +2 -2
- package/dist/{create-DJzWxTOV.mjs → create-Bckej8a2.mjs} +3 -3
- package/dist/{create-BNgkKeY4.mjs → create-BfD4GgYA.mjs} +2 -2
- package/dist/{create-DDEKafSb2.mjs → create-BmEECHlW2.mjs} +4 -4
- package/dist/{create-il08Ub78.mjs → create-CH2ebn9r.mjs} +4 -4
- package/dist/{create-ZKrdArmQ.mjs → create-CUcwiQgH.mjs} +2 -2
- package/dist/{create-BUmS6B9_.mjs → create-C_5-HH9u.mjs} +3 -3
- package/dist/{create-vN4sgCHU.mjs → create-CzVYAVbb.mjs} +3 -3
- package/dist/{create-CBk4CFjA.mjs → create-D70fh_7H.mjs} +2 -2
- package/dist/{create-9p0vyQkK.mjs → create-DF7jPhn1.mjs} +2 -2
- package/dist/{create-DBWbf0DF.mjs → create-DNkqcne5.mjs} +2 -2
- package/dist/{create-D_AwGujc.mjs → create-Dd_NNxYT.mjs} +2 -2
- package/dist/{create-BtExn-0P.mjs → create-DqtqJZa8.mjs} +2 -2
- package/dist/create-Ds6gZXFm.mjs +48 -0
- package/dist/{create-D6eWvVcd.mjs → create-Z3UZdGTY.mjs} +3 -3
- package/dist/{create-branch-D56lVQNd.mjs → create-branch-CQyWpIxd.mjs} +2 -2
- package/dist/{create-BDBHkgLv.mjs → create-qCZ9z3II.mjs} +2 -2
- package/dist/{csv-D50rzoTk.mjs → csv-CFL145Ta.mjs} +4 -4
- package/dist/{current-task-CpPUJYbQ.mjs → current-task-l8KZ0nv8.mjs} +2 -2
- package/dist/dashboard-CIOXUaBJ.mjs +35 -0
- package/dist/{data-action-DLj9cgpu.mjs → data-action-Co_Yf1uC.mjs} +23 -5
- package/dist/{data-action-CuvI17XF.mjs → data-action-DAw6WRTH.mjs} +43 -10
- package/dist/data-action-_7UX21i9.mjs +24 -0
- package/dist/{data-app-3cmb-x-I.mjs → data-app-CxQNqhV2.mjs} +10 -10
- package/dist/{data-app-project-DUCJcvfJ.mjs → data-app-project-B_zd-YrJ.mjs} +1 -1
- package/dist/{db-BO1aJAAn.mjs → db-DlDWN6UP.mjs} +8 -8
- package/dist/{delete-DXL1orAc.mjs → delete-3KVEIg6-.mjs} +4 -4
- package/dist/{delete-DU1K-Cy4.mjs → delete-BlLyxBY_.mjs} +4 -4
- package/dist/{delete-8qsotOGB.mjs → delete-BmPR3qB0.mjs} +4 -4
- package/dist/{delete-CTtToAYO.mjs → delete-CcY_tcx4.mjs} +4 -4
- package/dist/{delete-DuVEKGA5.mjs → delete-CfkSkxHN.mjs} +4 -4
- package/dist/{delete-BSCnAB2g.mjs → delete-D3D0CTo-.mjs} +3 -3
- package/dist/{delete-ByYgGnoo.mjs → delete-Dj0ImrZL.mjs} +4 -4
- package/dist/{delete-DwNkDTga.mjs → delete-DweFD4-0.mjs} +4 -4
- package/dist/{delete-DHJ3ea0o.mjs → delete-Eje0xxEa.mjs} +4 -4
- package/dist/{delete-DU-Kinm4.mjs → delete-YFXRPnnb.mjs} +4 -4
- package/dist/{delete-runtime-DOOy3gzH.mjs → delete-runtime-C05-0fcn.mjs} +1 -1
- package/dist/{delete-table-RAznoioi.mjs → delete-table-BqpeGdMY.mjs} +4 -4
- package/dist/{dependencies-CKT460jf.mjs → dependencies-DhA1jbDT.mjs} +5 -5
- package/dist/{dependency-DcM96XJ-.mjs → dependency-BPCRTBKd.mjs} +1 -1
- package/dist/dependency-BPwCXzX4.mjs +15 -0
- package/dist/{dependents-D85CaupB.mjs → dependents-4KgDZ4tl.mjs} +6 -6
- package/dist/{dirty-BnuuGVxz.mjs → dirty-DWwwmOmi.mjs} +3 -3
- package/dist/{discard-values-CXyBp5pq.mjs → discard-values-6nmAd4kW.mjs} +5 -5
- package/dist/document-CC60L29U.mjs +20 -0
- package/dist/{download--RQk3dyK.mjs → download-ZCfcKa2L.mjs} +2 -2
- package/dist/{eid-BwhUajT8.mjs → eid-CjLvyBgT.mjs} +2 -2
- package/dist/{entry-flags-DS_MMJbV.mjs → entry-flags-2u45mDJ4.mjs} +1 -1
- package/dist/{events-DuHSrJuz.mjs → events-B_UxJw3Z.mjs} +4 -4
- package/dist/{execute-BjWeMJ0l.mjs → execute-Dg94sYQd.mjs} +11 -7
- package/dist/{export-C_G6D1MF.mjs → export-BdLB30iy.mjs} +3 -3
- package/dist/{export-flags-iXfEILf7.mjs → export-flags-DvdxpRMt.mjs} +1 -1
- package/dist/{export-preflight-DeqCCYP0.mjs → export-preflight-ChaWosZf.mjs} +2 -2
- package/dist/field-ClWwbYtG.mjs +21 -0
- package/dist/{fields-Ds2PnxA7.mjs → fields-B1cPeIGv.mjs} +4 -4
- package/dist/{filter-flags-ezqqsOQL.mjs → filter-flags-BEz2s28-.mjs} +1 -1
- package/dist/{fks-CCKTcQ4c.mjs → fks-DgvW6D_7.mjs} +5 -5
- package/dist/{get-R4_vq3U9.mjs → get-B69NUYR0.mjs} +4 -4
- package/dist/{get-D7Uq4t19.mjs → get-B94nj2uY.mjs} +2 -2
- package/dist/{get-8gu6wblt.mjs → get-BK7nxbPU.mjs} +2 -2
- package/dist/{get-CJEE2ApL.mjs → get-BM9AFJAi.mjs} +2 -2
- package/dist/{get-D_eGmu67.mjs → get-BYNEZFNj.mjs} +5 -5
- package/dist/{get-BB0b96ox.mjs → get-BxrS4Vi8.mjs} +4 -4
- package/dist/{get-CDA-g71Z.mjs → get-C_bCGVsR.mjs} +3 -3
- package/dist/{get-D3k4Pyfn.mjs → get-Ck2LNXxw.mjs} +3 -3
- package/dist/{get-C6qjCvoM.mjs → get-CmWe9xq9.mjs} +5 -5
- package/dist/{get-DkEOLIF5.mjs → get-D4oXmJTn.mjs} +5 -5
- package/dist/{get-D3kYRX7B.mjs → get-DC1lAsH_.mjs} +3 -3
- package/dist/{get-DVctVDj6.mjs → get-DIR9LODa.mjs} +4 -4
- package/dist/{get-CGrfQxXy.mjs → get-DStLX5Ah.mjs} +3 -3
- package/dist/{get-BOcwk9jz.mjs → get-DckpwiZG.mjs} +4 -4
- package/dist/{get-DXH0zRv1.mjs → get-DkSvigdw.mjs} +3 -3
- package/dist/{get-B_Vz5OMY.mjs → get-Dsm_2AXn.mjs} +3 -3
- package/dist/{get-v_BtTCdl.mjs → get-DuVVF8xb.mjs} +3 -3
- package/dist/{get-B_5Y65cZ.mjs → get-Ljt0QVR0.mjs} +3 -3
- package/dist/{get-xJTVgvSu.mjs → get-UNjwy8OI.mjs} +3 -3
- package/dist/{get-CTwU2SwT.mjs → get-VrzY4qxg.mjs} +2 -2
- package/dist/{get-Du0KCtaC.mjs → get-jphhROdg.mjs} +3 -3
- package/dist/{get-DSQSwjDw.mjs → get-n9udbUQS.mjs} +3 -3
- package/dist/{get-run-Ds50O2Rn.mjs → get-run-D5vfGnIN.mjs} +4 -4
- package/dist/git-sync-Bc9pf1LL.mjs +29 -0
- package/dist/glossary-CAzA-OIR.mjs +14 -0
- package/dist/{graph-DeGkHvI5.mjs → graph-CvIhSOEe.mjs} +4 -4
- package/dist/{group--6adAsqG.mjs → group-KiKh0UFs.mjs} +1 -1
- package/dist/{has-remote-changes-DUCn8d5k.mjs → has-remote-changes-57yJkr3b.mjs} +2 -2
- package/dist/{import-Bnun0H8L.mjs → import-HHsz_zDq.mjs} +3 -3
- package/dist/{is-dirty-BRdzj548.mjs → is-dirty-CxX_4rBC.mjs} +2 -2
- package/dist/{items-BmFznkYw.mjs → items-B2NR1_u3.mjs} +3 -3
- package/dist/{library-Cy8n_GoQ.mjs → library-DXvOVBTe.mjs} +5 -5
- package/dist/{list-B8WxIHZh.mjs → list-B44qweQa.mjs} +3 -3
- package/dist/{list-DwA83Hut.mjs → list-BK4VwtKe.mjs} +3 -3
- package/dist/{list-D7oLTX1F.mjs → list-BTpj7dv4.mjs} +5 -5
- package/dist/{list-CucyGz_M.mjs → list-BU72dCx0.mjs} +3 -3
- package/dist/{list-BXgbS3xg.mjs → list-BsQHh8w4.mjs} +3 -3
- package/dist/{list-DQNmzmbE.mjs → list-Bwi5npRx.mjs} +3 -3
- package/dist/{list-BJaTl4Z3.mjs → list-C6A-Eqgv.mjs} +5 -5
- package/dist/{list-B8FE0mi7.mjs → list-CNoCRL4D.mjs} +3 -3
- package/dist/{list-DCooGGd-.mjs → list-CY54buuD.mjs} +4 -4
- package/dist/{list-CgiBw3H-.mjs → list-CcZAP1sH.mjs} +5 -5
- package/dist/{list-emgvzTcQ.mjs → list-CtW9rAs4.mjs} +3 -3
- package/dist/{list-DqvwXEY3.mjs → list-DEQvaioL.mjs} +5 -5
- package/dist/{list-ChPsUv0M.mjs → list-DJ0_FcgB.mjs} +6 -6
- package/dist/{list-Hkl1mEcn.mjs → list-DJogq3Ez.mjs} +3 -3
- package/dist/{list-DkJsUigU.mjs → list-DMbtH6tY.mjs} +3 -3
- package/dist/{list-DVdfoOmD.mjs → list-DQ5BDB52.mjs} +4 -4
- package/dist/{list-hrR_sluM.mjs → list-DhCSllG2.mjs} +3 -3
- package/dist/{list-uDe8e-8m.mjs → list-DiN5mPrk.mjs} +3 -3
- package/dist/{list-jfnzEgFg.mjs → list-Dv8U4e-C.mjs} +3 -3
- package/dist/{list-jPZgEqWH.mjs → list-JS7ASJc-.mjs} +4 -4
- package/dist/{list-zIJcjZwa.mjs → list-L4_At_o9.mjs} +3 -3
- package/dist/{list-CnQnHNwI.mjs → list-l09h4Zp6.mjs} +3 -3
- package/dist/{list-Cv9U6hop.mjs → list-rA9U_VyF.mjs} +3 -3
- package/dist/{login-DMpRrZoJ.mjs → login-DVLN1666.mjs} +5 -5
- package/dist/{logout-DEB_Rs3z.mjs → logout-BiZxbftK.mjs} +2 -2
- package/dist/{measure-Dop8G1p3.mjs → measure-B7Ud8GU1.mjs} +6 -6
- package/dist/{notification-BEJaEZS2.mjs → notification-Bj45MgWm.mjs} +1 -1
- package/dist/{parameter-values-CuNu1kDf.mjs → parameter-values-BwaIYczs.mjs} +3 -3
- package/dist/{parse-id-EXZan40V.mjs → parse-id-BXkvTl89.mjs} +1 -1
- package/dist/{path-6xIAWlup.mjs → path-BbR0QB1I.mjs} +4 -4
- package/dist/{poll-uailHW3t.mjs → poll-D5eA9cN2.mjs} +1 -1
- package/dist/{preflight-4iy2qzsh.mjs → preflight-BJ5Bve-N.mjs} +1 -1
- package/dist/process-cDa9fEBe.mjs +144 -0
- package/dist/{publish-D7tndpBc.mjs → publish-d_WnLoJD.mjs} +3 -3
- package/dist/{pulse-CPSpum5U.mjs → pulse-DhddeMMG.mjs} +1 -1
- package/dist/{query-Do1Ms0k9.mjs → query-DFb-XQNz.mjs} +3 -3
- package/dist/{query-C_6GZwbJ.mjs → query-Dkod9Tev.mjs} +4 -4
- package/dist/{remapping-B5Z3Ustf.mjs → remapping-clW2Rgcz.mjs} +3 -3
- package/dist/{remove-collection-p9OgcXQ0.mjs → remove-collection-CjRtrkLW.mjs} +3 -3
- package/dist/{render-C3ygE5nO.mjs → render-C_Oy6cF5.mjs} +1 -1
- package/dist/{replace-D3I8Cb6E.mjs → replace-8hEY7br8.mjs} +4 -4
- package/dist/{requirement-check-DWGbJZUM.mjs → requirement-check-B7MNfiXv.mjs} +2 -2
- package/dist/{rescan-values-DgUwDmwZ.mjs → rescan-values-0owEJyWj.mjs} +4 -4
- package/dist/{rescan-values-DwYuiNzi.mjs → rescan-values-DaEu5sVZ.mjs} +3 -3
- package/dist/{run-BtRi59Hd.mjs → run-BlCJ0MYm.mjs} +4 -4
- package/dist/{run-qAs_RthF.mjs → run-CXv_3NQt.mjs} +3 -3
- package/dist/{run-Dr-DsQVO.mjs → run-Cr7QHB5S.mjs} +6 -6
- package/dist/run-Dc3u_olU.mjs +819 -0
- package/dist/{runs-hulvKxUw.mjs → runs-624fiVP3.mjs} +5 -5
- package/dist/{runtime-CEAFobLj.mjs → runtime-DsfR_yrb.mjs} +2 -2
- package/dist/{scaffold-CO9Oea2N.mjs → scaffold-D4Jo6VQc.mjs} +4 -4
- package/dist/{schema-D5AhDYTD.mjs → schema-DXsx2_Mk.mjs} +2 -2
- package/dist/{schema-tables-KIsDvvGs.mjs → schema-tables-Bat1bYLS.mjs} +5 -5
- package/dist/{schemas-DuGltR33.mjs → schemas-B8bgnxOA.mjs} +4 -4
- package/dist/{search-CM3ybv8O.mjs → search-BslDGFtS.mjs} +4 -4
- package/dist/{search-BJPNMvnK.mjs → search-fXh_MkLZ.mjs} +4 -4
- package/dist/{segment-BROyKyC3.mjs → segment-Bb7JTPmv.mjs} +6 -6
- package/dist/{send-cSr60J2Z.mjs → send-YnL6iiOt.mjs} +3 -3
- package/dist/{set-DpBA6eOn.mjs → set-CydWEHNW.mjs} +2 -2
- package/dist/{set-active-DaGUZCbh.mjs → set-active-C-x_A0AY.mjs} +2 -2
- package/dist/{set-bundle-CgJuQ3fe.mjs → set-bundle-DaHlkEYA.mjs} +3 -3
- package/dist/{set-data-actions-CyuKhCDs.mjs → set-data-actions-C3NwuCSF.mjs} +3 -3
- package/dist/{set-enabled-DxxlZePU.mjs → set-enabled-CjUOudzn.mjs} +2 -2
- package/dist/{set-sensitivity-BBkuW5wQ.mjs → set-sensitivity-DAodU0MG.mjs} +3 -3
- package/dist/{setting-BixEhGR2.mjs → setting-Bil7qFf0.mjs} +4 -4
- package/dist/{setup-DqAjBhZz.mjs → setup-B8GRygkY.mjs} +2 -2
- package/dist/{skill-list-BoJITnw8.mjs → skill-list-4LagdTq5.mjs} +1 -1
- package/dist/{skills-ByZWUsPC.mjs → skills-CW1wIl0c.mjs} +3 -3
- package/dist/{skills-CPNaSE_d.mjs → skills-DYfZF1GA.mjs} +4 -39
- package/dist/snippet-D9g83-mO.mjs +19 -0
- package/dist/{stash-BMitlOt0.mjs → stash-T0WRHnFD.mjs} +3 -3
- package/dist/{status-BxYGT5I4.mjs → status-BRMzSa12.mjs} +3 -3
- package/dist/{status-4ewKKM1J.mjs → status-CW1bsfaP.mjs} +2 -2
- package/dist/{subscription-9WV3hwAq.mjs → subscription-Edc8UK2V.mjs} +6 -6
- package/dist/{subscriptions-EVIRobQM.mjs → subscriptions-DMiWl84r.mjs} +6 -6
- package/dist/{summary-CaWLpvcZ.mjs → summary-CFnwsMoV.mjs} +3 -3
- package/dist/{sync-schema-BntqB-68.mjs → sync-schema-COvbx-g4.mjs} +4 -4
- package/dist/{sync-schema-Dt0zekZR.mjs → sync-schema-VzwA_5tH.mjs} +4 -4
- package/dist/table-CC-rFakp.mjs +26 -0
- package/dist/{table-BNA9Or05.mjs → table-DFbkLSgK.mjs} +1 -1
- package/dist/{table-selector-flags-BpFFoSaT.mjs → table-selector-flags-BhZo8RHH.mjs} +2 -2
- package/dist/timeline-C2ZUL_9F.mjs +21 -0
- package/dist/{timeline-event-CaXRyGXH.mjs → timeline-event-BqM82_7L.mjs} +6 -6
- package/dist/transform-BtB6iOJ9.mjs +28 -0
- package/dist/{transform-DKPtUV54.mjs → transform-CKeLIqoc.mjs} +1 -1
- package/dist/transform-job-I2Q5f0yN.mjs +22 -0
- package/dist/{transform-tag-QBmEYxZi.mjs → transform-tag-CxXDADhM.mjs} +5 -5
- package/dist/transform-test-B6jvvXeh.mjs +16 -0
- package/dist/{transform-test-C49ZTK7M.mjs → transform-test-C0c4zjcf.mjs} +1 -1
- package/dist/{transform-test-Bexa_K89.mjs → transform-test-DHTxBt4k.mjs} +2 -2
- package/dist/{transforms-yuckjEH-.mjs → transforms-WyRUDM1j.mjs} +5 -5
- package/dist/{transport-3xv524C_.mjs → transport-Byycx3RW.mjs} +3 -3
- package/dist/{tree-DhZWC6AW.mjs → tree-CMeV4bI8.mjs} +2 -2
- package/dist/{typed-schema-9umakTr7.mjs → typed-schema-DsGXH-La.mjs} +3 -3
- package/dist/{unpublish-BmrZNEcs.mjs → unpublish-EaVPnnZ5.mjs} +3 -3
- package/dist/{unreferenced-C0dYogu7.mjs → unreferenced-BvE7ke0M.mjs} +5 -5
- package/dist/{update-BIDjJnEh.mjs → update--uKYjq9_.mjs} +4 -4
- package/dist/{update-BsCY9WoI.mjs → update-B8EnadKJ.mjs} +3 -3
- package/dist/{update-DoZZ-pii.mjs → update-BDghcetp.mjs} +3 -3
- package/dist/{update-Dr66Dv3x.mjs → update-BPhLIVs9.mjs} +2 -2
- package/dist/{update-CzCc5og7.mjs → update-BSWoKNrf.mjs} +3 -3
- package/dist/{update-DRH78xMc.mjs → update-Bb1HPTH2.mjs} +4 -4
- package/dist/{update-D_9HdXGt.mjs → update-BgQ9TU63.mjs} +5 -5
- package/dist/{update-DTvdH8rF.mjs → update-BtWR4ri9.mjs} +3 -3
- package/dist/{update-B0j7R5BU.mjs → update-CFYVJJqw.mjs} +3 -3
- package/dist/{update-D4s8mpef.mjs → update-CNzu9eG1.mjs} +5 -5
- package/dist/{update-Gv4cQsS3.mjs → update-CT9e8m-I.mjs} +3 -3
- package/dist/{update-nZkZHbL5.mjs → update-DZPo69an.mjs} +4 -4
- package/dist/{update-DIsbIcWv.mjs → update-Dcwpy8BO.mjs} +3 -3
- package/dist/{update-BtyHjKV6.mjs → update-DjBJQCNg.mjs} +3 -3
- package/dist/{update-DuJ7Pu5t.mjs → update-DrY4i6eO.mjs} +4 -4
- package/dist/{update-CsYMNm1n.mjs → update-DwGo58Kc.mjs} +4 -4
- package/dist/{update-CqqZHGBZ.mjs → update-DyXj5mTv.mjs} +3 -3
- package/dist/{update-dashcard-fWxyfSG5.mjs → update-dashcard-BhT2FBd4.mjs} +3 -3
- package/dist/{update-DVEqN-uO.mjs → update-t2zdccd5.mjs} +5 -5
- package/dist/{update-eL6rSQvo2.mjs → update-wh2EjN242.mjs} +3 -3
- package/dist/{update-zKgO1dbJ.mjs → update-xYxKw2UB.mjs} +3 -3
- package/dist/{upgrade-PIUDxb6V.mjs → upgrade-BqBjnjjU.mjs} +3 -3
- package/dist/upload-C0GfBUvp.mjs +13 -0
- package/dist/{upload-KuHgzGJU.mjs → upload-D0zRTkyv.mjs} +1 -1
- package/dist/{upload-B6S0Vqgn.mjs → upload-kM0-7Bx2.mjs} +3 -3
- package/dist/{uuid-BPr2deuu.mjs → uuid-DsuYe9z7.mjs} +2 -2
- package/dist/{values-DHvfVT9h.mjs → values-kLEvyjSy.mjs} +3 -3
- package/dist/{verify-D9i63gmK.mjs → verify-ChvmI4lq.mjs} +3 -3
- package/dist/{verify-DS0REVed.mjs → verify-CvYsiaqY.mjs} +3 -3
- package/dist/{verify-CvGdvC7R.mjs → verify-D27n5y3t.mjs} +3 -3
- package/dist/{wait-DrOL01Y_.mjs → wait-DioDMGLJ.mjs} +4 -4
- package/dist/{wait-flags-DT1zA69Z.mjs → wait-flags-Qqvlb3Rv.mjs} +2 -2
- package/dist/{window-D1w7B0vh.mjs → window-BoW2xWwm.mjs} +1 -1
- package/dist/yaml-QoEP-7KU.mjs +38 -0
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +1 -1
- package/skill-data/data-action/SKILL.md +50 -18
- package/skill-data/data-app-actions/SKILL.md +11 -5
- package/dist/api-key-DgEtUdtr.mjs +0 -13
- package/dist/card-uZeDk5uH.mjs +0 -25
- package/dist/collection-Cowt7nWW.mjs +0 -21
- package/dist/create-CA9c4U1m.mjs +0 -47
- package/dist/dashboard-CrD7w0mE.mjs +0 -35
- package/dist/data-action-p-8TbHAj.mjs +0 -24
- package/dist/dependency-B1wYuRR1.mjs +0 -15
- package/dist/document-BHXXSx3u.mjs +0 -20
- package/dist/field-C02nW-20.mjs +0 -21
- package/dist/git-sync-Dje-mnMh.mjs +0 -29
- package/dist/glossary-TBjFyeRN.mjs +0 -14
- package/dist/process-BQC3mK2k.mjs +0 -71
- package/dist/snippet-CK5QjPXs.mjs +0 -19
- package/dist/table-BAOSPOlO.mjs +0 -26
- package/dist/timeline-CyIVLhsz.mjs +0 -21
- package/dist/transform-C8ZiOTWq.mjs +0 -28
- package/dist/transform-job-BKX10IUY.mjs +0 -22
- package/dist/transform-test-DMShXj--.mjs +0 -16
- package/dist/upload-Dzn5OAbv.mjs +0 -13
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { g as errorMessage, h as ValidationError, o as ConfigError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
+
import { YAMLParseError, parse } from "yaml";
|
|
3
|
+
//#region src/runtime/yaml.ts
|
|
4
|
+
function parseYaml(input, schema, opts = {}) {
|
|
5
|
+
const result = parseYamlResult(input, schema, opts);
|
|
6
|
+
if (!result.ok) throw result.error;
|
|
7
|
+
return result.value;
|
|
8
|
+
}
|
|
9
|
+
function parseYamlResult(input, schema, opts = {}) {
|
|
10
|
+
const sourcePrefix = opts.source ? `${opts.source}: ` : "";
|
|
11
|
+
let raw;
|
|
12
|
+
try {
|
|
13
|
+
raw = parse(input);
|
|
14
|
+
} catch (error) {
|
|
15
|
+
if (error instanceof YAMLParseError) return {
|
|
16
|
+
ok: false,
|
|
17
|
+
error: new ConfigError(`${sourcePrefix}invalid YAML: ${error.message}`)
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
ok: false,
|
|
21
|
+
error: new ConfigError(`${sourcePrefix}invalid YAML: ${errorMessage(error)}`)
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const parsed = schema.safeParse(raw);
|
|
25
|
+
if (!parsed.success) return {
|
|
26
|
+
ok: false,
|
|
27
|
+
error: new ValidationError(`${sourcePrefix}value did not match expected schema`, {
|
|
28
|
+
source: opts.source ?? "<input>",
|
|
29
|
+
zodIssues: parsed.error.issues
|
|
30
|
+
})
|
|
31
|
+
};
|
|
32
|
+
return {
|
|
33
|
+
ok: true,
|
|
34
|
+
value: parsed.data
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { parseYaml as t };
|
package/package.json
CHANGED
package/skill-data/core/SKILL.md
CHANGED
|
@@ -181,7 +181,7 @@ This file is enough for any single-command task. For anything deeper, load the r
|
|
|
181
181
|
<!-- /requires -->
|
|
182
182
|
- **`document`** — Metabase documents (TipTap body, embedding cards).
|
|
183
183
|
<!-- requires: dataActionsWithoutModel -->
|
|
184
|
-
- **`data-action`** —
|
|
184
|
+
- **`data-action`** — writes, as table actions or SQL query actions: enabling, body, parameters, running.
|
|
185
185
|
<!-- /requires -->
|
|
186
186
|
<!-- requires: remoteSync -->
|
|
187
187
|
- **`git-sync`** — round-tripping content to/from a git remote.
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: data-action
|
|
3
|
-
description: Author and run Metabase data actions with the `mb` CLI —
|
|
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**
|
|
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
|
-
##
|
|
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
|
-
-
|
|
91
|
-
- `
|
|
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
|
-
|
|
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`.
|
|
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
|
|
122
|
-
|
|
|
123
|
-
| Find
|
|
124
|
-
| Inspect
|
|
125
|
-
| Change
|
|
126
|
-
|
|
|
127
|
-
|
|
|
128
|
-
|
|
|
129
|
-
|
|
130
|
-
|
|
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
|
|
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
|
|
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; `
|
|
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
|
|
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,13 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/api-key/index.ts
|
|
3
|
-
var api_key_default = defineCommandGroup({
|
|
4
|
-
name: "api-key",
|
|
5
|
-
description: "Manage Metabase API keys",
|
|
6
|
-
subCommands: {
|
|
7
|
-
list: () => import("./list-DkJsUigU.mjs").then((mod) => mod.default),
|
|
8
|
-
create: () => import("./create-BafMBtrH.mjs").then((mod) => mod.default),
|
|
9
|
-
delete: () => import("./delete-DU1K-Cy4.mjs").then((mod) => mod.default)
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
//#endregion
|
|
13
|
-
export { api_key_default as default };
|
package/dist/card-uZeDk5uH.mjs
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/card/index.ts
|
|
3
|
-
var card_default = defineCommandGroup({
|
|
4
|
-
name: "card",
|
|
5
|
-
description: "Manage Metabase cards (questions, models, metrics)",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "mbql",
|
|
8
|
-
purpose: "author the dataset_query"
|
|
9
|
-
}, {
|
|
10
|
-
skill: "visualization",
|
|
11
|
-
purpose: "choose display and visualization_settings"
|
|
12
|
-
}],
|
|
13
|
-
subCommands: {
|
|
14
|
-
list: () => import("./list-zIJcjZwa.mjs").then((mod) => mod.default),
|
|
15
|
-
get: () => import("./get-CDA-g71Z.mjs").then((mod) => mod.default),
|
|
16
|
-
query: () => import("./query-C_6GZwbJ.mjs").then((mod) => mod.default),
|
|
17
|
-
alerts: () => import("./alerts-BXEyXQRl.mjs").then((mod) => mod.default),
|
|
18
|
-
create: () => import("./create-VPzYsXKz.mjs").then((mod) => mod.default),
|
|
19
|
-
update: () => import("./update-CqqZHGBZ.mjs").then((mod) => mod.default),
|
|
20
|
-
verify: () => import("./verify-DS0REVed.mjs").then((mod) => mod.default),
|
|
21
|
-
archive: () => import("./archive-BfCuJyWK.mjs").then((mod) => mod.default)
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
//#endregion
|
|
25
|
-
export { card_default as default };
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/collection/index.ts
|
|
3
|
-
var collection_default = defineCommandGroup({
|
|
4
|
-
name: "collection",
|
|
5
|
-
description: "Manage Metabase collections",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "core",
|
|
8
|
-
purpose: "collection ref forms and the transforms namespace"
|
|
9
|
-
}],
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-B8FE0mi7.mjs").then((mod) => mod.default),
|
|
12
|
-
get: () => import("./get-CJEE2ApL.mjs").then((mod) => mod.default),
|
|
13
|
-
items: () => import("./items-BmFznkYw.mjs").then((mod) => mod.default),
|
|
14
|
-
tree: () => import("./tree-DhZWC6AW.mjs").then((mod) => mod.default),
|
|
15
|
-
create: () => import("./create-ZKrdArmQ.mjs").then((mod) => mod.default),
|
|
16
|
-
update: () => import("./update-Gv4cQsS3.mjs").then((mod) => mod.default),
|
|
17
|
-
archive: () => import("./archive-DyB65bNo.mjs").then((mod) => mod.default)
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
//#endregion
|
|
21
|
-
export { collection_default as default };
|
package/dist/create-CA9c4U1m.mjs
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { it as connectionFlags, l as renderSummary, lt as outputFlags, ut as profileFlag } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-CEAFobLj.mjs";
|
|
3
|
-
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
|
-
import { i as DataActionCreateInput, n as DataAction } from "./data-action-CuvI17XF.mjs";
|
|
5
|
-
import { DATA_ACTION_DATASET_QUERY, skipValidateFlag } from "./validate-query-Bf5FhhMI.mjs";
|
|
6
|
-
import { n as dataActionView } from "./data-action-DLj9cgpu.mjs";
|
|
7
|
-
//#region src/commands/data-action/create.ts
|
|
8
|
-
var create_default = defineMetabaseCommand({
|
|
9
|
-
meta: {
|
|
10
|
-
name: "create",
|
|
11
|
-
description: "Create a data action from JSON"
|
|
12
|
-
},
|
|
13
|
-
details: "A data action is a parameterized native query that writes to a database, filed in a collection. The JSON body needs `name`, `type: \"query\"`, `database_id`, a native `dataset_query` whose `{{tag}}` placeholders are its inputs, and `parameters` targeting those tags; `collection_id` picks a collection in the `data-actions` or `data-apps` namespace (omit for the data actions root; a regular collection is refused). Data actions must be enabled on the database (`mb db set-data-actions <id> true`). An MBQL 5 `dataset_query` is checked against a bundled JSON Schema (print it with `mb schema query`) before sending; pass --skip-validate to bypass.",
|
|
14
|
-
skills: [{
|
|
15
|
-
skill: "data-action",
|
|
16
|
-
purpose: "author a data action and its parameters"
|
|
17
|
-
}, {
|
|
18
|
-
skill: "native-sql",
|
|
19
|
-
purpose: "the native query and its template tags"
|
|
20
|
-
}],
|
|
21
|
-
requires: ["dataAction.create"],
|
|
22
|
-
args: {
|
|
23
|
-
...outputFlags,
|
|
24
|
-
...profileFlag,
|
|
25
|
-
...connectionFlags,
|
|
26
|
-
...bodyInputFlags,
|
|
27
|
-
...skipValidateFlag
|
|
28
|
-
},
|
|
29
|
-
inputSchema: DataActionCreateInput,
|
|
30
|
-
embeddedDocuments: [DATA_ACTION_DATASET_QUERY],
|
|
31
|
-
outputSchema: DataAction,
|
|
32
|
-
examples: [
|
|
33
|
-
"cat data-action.json | mb data-action create",
|
|
34
|
-
"mb data-action create --file data-action.json",
|
|
35
|
-
"mb data-action create --file data-action.json --skip-validate"
|
|
36
|
-
],
|
|
37
|
-
async run({ args, ctx, getClient, readBody }) {
|
|
38
|
-
const body = await readBody({
|
|
39
|
-
flag: args.body,
|
|
40
|
-
file: args.file
|
|
41
|
-
});
|
|
42
|
-
const created = await (await getClient()).dataAction.create(body);
|
|
43
|
-
renderSummary(created, dataActionView, `Created data action ${created.id} "${created.name}".`, ctx);
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
//#endregion
|
|
47
|
-
export { create_default as default };
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/dashboard/index.ts
|
|
3
|
-
var dashboard_default = defineCommandGroup({
|
|
4
|
-
name: "dashboard",
|
|
5
|
-
description: "Manage Metabase dashboards",
|
|
6
|
-
skills: [
|
|
7
|
-
{
|
|
8
|
-
skill: "dashboard",
|
|
9
|
-
purpose: "wiring filters, linked filters, cross-filtering, click behavior, tabs"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
skill: "visualization",
|
|
13
|
-
purpose: "dashcard display and visualization_settings"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
skill: "core",
|
|
17
|
-
purpose: "the 24-column dashcard grid layout"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
subCommands: {
|
|
21
|
-
list: () => import("./list-DwA83Hut.mjs").then((mod) => mod.default),
|
|
22
|
-
get: () => import("./get-Du0KCtaC.mjs").then((mod) => mod.default),
|
|
23
|
-
cards: () => import("./cards-DLEx1zfQ.mjs").then((mod) => mod.default),
|
|
24
|
-
"parameter-values": () => import("./parameter-values-CuNu1kDf.mjs").then((mod) => mod.default),
|
|
25
|
-
subscriptions: () => import("./subscriptions-EVIRobQM.mjs").then((mod) => mod.default),
|
|
26
|
-
create: () => import("./create-BUmS6B9_.mjs").then((mod) => mod.default),
|
|
27
|
-
update: () => import("./update-CsYMNm1n.mjs").then((mod) => mod.default),
|
|
28
|
-
"update-dashcard": () => import("./update-dashcard-fWxyfSG5.mjs").then((mod) => mod.default),
|
|
29
|
-
copy: () => import("./copy-9iOg50lN.mjs").then((mod) => mod.default),
|
|
30
|
-
verify: () => import("./verify-CvGdvC7R.mjs").then((mod) => mod.default),
|
|
31
|
-
archive: () => import("./archive-1u8702EH.mjs").then((mod) => mod.default)
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
//#endregion
|
|
35
|
-
export { dashboard_default as default };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/data-action/index.ts
|
|
3
|
-
var data_action_default = defineCommandGroup({
|
|
4
|
-
name: "data-action",
|
|
5
|
-
description: "Manage Metabase data actions",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "data-action",
|
|
8
|
-
purpose: "author and run data actions"
|
|
9
|
-
}, {
|
|
10
|
-
skill: "native-sql",
|
|
11
|
-
purpose: "the data action's native query and its template tags"
|
|
12
|
-
}],
|
|
13
|
-
subCommands: {
|
|
14
|
-
list: () => import("./list-CgiBw3H-.mjs").then((mod) => mod.default),
|
|
15
|
-
get: () => import("./get-D_eGmu67.mjs").then((mod) => mod.default),
|
|
16
|
-
create: () => import("./create-CA9c4U1m.mjs").then((mod) => mod.default),
|
|
17
|
-
update: () => import("./update-DVEqN-uO.mjs").then((mod) => mod.default),
|
|
18
|
-
archive: () => import("./archive-Lgd6irTm.mjs").then((mod) => mod.default),
|
|
19
|
-
delete: () => import("./delete-ByYgGnoo.mjs").then((mod) => mod.default),
|
|
20
|
-
execute: () => import("./execute-BjWeMJ0l.mjs").then((mod) => mod.default)
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
//#endregion
|
|
24
|
-
export { data_action_default as default };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/dependency/index.ts
|
|
3
|
-
var dependency_default = defineCommandGroup({
|
|
4
|
-
name: "dependency",
|
|
5
|
-
description: "Trace what Metabase content depends on and what depends on it",
|
|
6
|
-
subCommands: {
|
|
7
|
-
graph: () => import("./graph-DeGkHvI5.mjs").then((m) => m.default),
|
|
8
|
-
dependents: () => import("./dependents-D85CaupB.mjs").then((m) => m.default),
|
|
9
|
-
broken: () => import("./broken-70_zMy0L.mjs").then((m) => m.default),
|
|
10
|
-
unreferenced: () => import("./unreferenced-C0dYogu7.mjs").then((m) => m.default),
|
|
11
|
-
breaking: () => import("./breaking-DicKTkii.mjs").then((m) => m.default)
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
//#endregion
|
|
15
|
-
export { dependency_default as default };
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/document/index.ts
|
|
3
|
-
var document_default = defineCommandGroup({
|
|
4
|
-
name: "document",
|
|
5
|
-
description: "Manage Metabase documents",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "document",
|
|
8
|
-
purpose: "author the ProseMirror document body"
|
|
9
|
-
}],
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-BXgbS3xg.mjs").then((mod) => mod.default),
|
|
12
|
-
get: () => import("./get-DXH0zRv1.mjs").then((mod) => mod.default),
|
|
13
|
-
create: () => import("./create-CWMC90-0.mjs").then((mod) => mod.default),
|
|
14
|
-
update: () => import("./update-BtyHjKV6.mjs").then((mod) => mod.default),
|
|
15
|
-
copy: () => import("./copy-C4Nf6Sqt.mjs").then((mod) => mod.default),
|
|
16
|
-
archive: () => import("./archive-DxLrdlxM.mjs").then((mod) => mod.default)
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
//#endregion
|
|
20
|
-
export { document_default as default };
|
package/dist/field-C02nW-20.mjs
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/field/index.ts
|
|
3
|
-
var field_default = defineCommandGroup({
|
|
4
|
-
name: "field",
|
|
5
|
-
description: "Manage Metabase fields",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "metadata",
|
|
8
|
-
purpose: "semantic types, FK targets, visibility, dropdown behavior"
|
|
9
|
-
}],
|
|
10
|
-
subCommands: {
|
|
11
|
-
get: () => import("./get-xJTVgvSu.mjs").then((m) => m.default),
|
|
12
|
-
values: () => import("./values-DHvfVT9h.mjs").then((m) => m.default),
|
|
13
|
-
summary: () => import("./summary-CaWLpvcZ.mjs").then((m) => m.default),
|
|
14
|
-
update: () => import("./update-DIsbIcWv.mjs").then((m) => m.default),
|
|
15
|
-
search: () => import("./search-CM3ybv8O.mjs").then((m) => m.default),
|
|
16
|
-
remapping: () => import("./remapping-B5Z3Ustf.mjs").then((m) => m.default),
|
|
17
|
-
"set-sensitivity": () => import("./set-sensitivity-BBkuW5wQ.mjs").then((m) => m.default)
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
//#endregion
|
|
21
|
-
export { field_default as default };
|
|
@@ -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,14 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/glossary/index.ts
|
|
3
|
-
var glossary_default = defineCommandGroup({
|
|
4
|
-
name: "glossary",
|
|
5
|
-
description: "Manage the Metabase glossary of business terms",
|
|
6
|
-
subCommands: {
|
|
7
|
-
list: () => import("./list-CucyGz_M.mjs").then((mod) => mod.default),
|
|
8
|
-
create: () => import("./create-D6eWvVcd.mjs").then((mod) => mod.default),
|
|
9
|
-
update: () => import("./update-DuJ7Pu5t.mjs").then((mod) => mod.default),
|
|
10
|
-
delete: () => import("./delete-CTtToAYO.mjs").then((mod) => mod.default)
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
//#endregion
|
|
14
|
-
export { glossary_default as default };
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { v as isFileNotFoundError } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
-
import { spawn } from "node:child_process";
|
|
3
|
-
//#region src/runtime/process.ts
|
|
4
|
-
var ProcessNotFoundError = class extends Error {
|
|
5
|
-
command;
|
|
6
|
-
constructor(command) {
|
|
7
|
-
super(`command not found: ${command}`);
|
|
8
|
-
this.name = "ProcessNotFoundError";
|
|
9
|
-
this.command = command;
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
new TextDecoder("utf-8");
|
|
13
|
-
function streamProcess(command, args, options = {}) {
|
|
14
|
-
return new Promise((resolve, reject) => {
|
|
15
|
-
const child = spawn(command, args, {
|
|
16
|
-
stdio: "inherit",
|
|
17
|
-
...options.shell === true ? { shell: true } : {}
|
|
18
|
-
});
|
|
19
|
-
child.on("error", (error) => {
|
|
20
|
-
if (isFileNotFoundError(error)) {
|
|
21
|
-
reject(new ProcessNotFoundError(command));
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
reject(error);
|
|
25
|
-
});
|
|
26
|
-
child.on("close", (code) => resolve(code));
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
const CMD_METACHARACTERS = /[&|<>^()"%!]/g;
|
|
30
|
-
function escapeForCmd(value) {
|
|
31
|
-
return value.replace(CMD_METACHARACTERS, (char) => `^${char}`);
|
|
32
|
-
}
|
|
33
|
-
function browserOpener(platform, url) {
|
|
34
|
-
if (platform === "darwin") return {
|
|
35
|
-
command: "open",
|
|
36
|
-
args: [url],
|
|
37
|
-
windowsVerbatim: false
|
|
38
|
-
};
|
|
39
|
-
if (platform === "win32") return {
|
|
40
|
-
command: "cmd",
|
|
41
|
-
args: [
|
|
42
|
-
"/c",
|
|
43
|
-
"start",
|
|
44
|
-
"\"\"",
|
|
45
|
-
escapeForCmd(url)
|
|
46
|
-
],
|
|
47
|
-
windowsVerbatim: true
|
|
48
|
-
};
|
|
49
|
-
return {
|
|
50
|
-
command: "xdg-open",
|
|
51
|
-
args: [url],
|
|
52
|
-
windowsVerbatim: false
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
function openBrowser(url) {
|
|
56
|
-
const opener = browserOpener(process.platform, url);
|
|
57
|
-
return new Promise((resolve) => {
|
|
58
|
-
const child = spawn(opener.command, opener.args, {
|
|
59
|
-
stdio: "ignore",
|
|
60
|
-
detached: true,
|
|
61
|
-
...opener.windowsVerbatim ? { windowsVerbatimArguments: true } : {}
|
|
62
|
-
});
|
|
63
|
-
child.on("error", () => resolve(false));
|
|
64
|
-
child.on("spawn", () => {
|
|
65
|
-
child.unref();
|
|
66
|
-
resolve(true);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
//#endregion
|
|
71
|
-
export { streamProcess as n, openBrowser as t };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { t as defineCommandGroup } from "./group--6adAsqG.mjs";
|
|
2
|
-
//#region src/commands/snippet/index.ts
|
|
3
|
-
var snippet_default = defineCommandGroup({
|
|
4
|
-
name: "snippet",
|
|
5
|
-
description: "Manage Metabase native query snippets",
|
|
6
|
-
skills: [{
|
|
7
|
-
skill: "core",
|
|
8
|
-
purpose: "native-SQL snippets and body input"
|
|
9
|
-
}],
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-hrR_sluM.mjs").then((mod) => mod.default),
|
|
12
|
-
get: () => import("./get-D3kYRX7B.mjs").then((mod) => mod.default),
|
|
13
|
-
create: () => import("./create-BDBHkgLv.mjs").then((mod) => mod.default),
|
|
14
|
-
update: () => import("./update-B0j7R5BU.mjs").then((mod) => mod.default),
|
|
15
|
-
archive: () => import("./archive-eINikapF.mjs").then((mod) => mod.default)
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
//#endregion
|
|
19
|
-
export { snippet_default as default };
|
package/dist/table-BAOSPOlO.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-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 };
|