@metabase/cli 0.5.13 → 0.5.14-alpha.cover-more-endpoints-for-mbcode.5fc0688
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-Bdnq6dfy.mjs → add-collection-DJzcGtj4.mjs} +1 -1
- package/dist/{alert-o2pHsbTh.mjs → alert-BMvkIX-V.mjs} +6 -6
- package/dist/{alerts-DS_uGWg-.mjs → alerts-CTyKwehF.mjs} +2 -2
- package/dist/{api-key-CfniVimJ.mjs → api-key-D23nm3yO.mjs} +3 -3
- package/dist/{append-DQCGJbx4.mjs → append-OiwbsoSf.mjs} +2 -2
- package/dist/{archive-Dku9fvdF.mjs → archive-5Iq32HEZ.mjs} +1 -1
- package/dist/{archive-DdnsMLHq.mjs → archive-6EMDIxGQ.mjs} +1 -1
- package/dist/{archive-BGHhmYW5.mjs → archive-B0cppwFz.mjs} +1 -1
- package/dist/{archive-CynNRHMt.mjs → archive-BJjGUSYK.mjs} +1 -1
- package/dist/{archive-DpT24NkM.mjs → archive-BXGTQk6v.mjs} +1 -1
- package/dist/{archive-DPETdLEn.mjs → archive-BlqPlRkv.mjs} +1 -1
- package/dist/{archive-CXsX26eE.mjs → archive-BrfFLutN.mjs} +1 -1
- package/dist/{archive-8xnKLGce.mjs → archive-CfA3hLMB.mjs} +1 -1
- package/dist/{archive-DoDF-x8G.mjs → archive-Cy2ErmV_.mjs} +1 -1
- package/dist/{archive-CNrp0Xu5.mjs → archive-DFRet_WE.mjs} +1 -1
- package/dist/{archive-BbXaLXFf.mjs → archive-DYRWEtgS.mjs} +1 -1
- package/dist/{archive-BhNU06xM.mjs → archive-wFufkogP.mjs} +1 -1
- package/dist/{auth-BQxyR2Ky.mjs → auth-DbvHl1mv.mjs} +4 -4
- package/dist/{branches-wa3G1T3B.mjs → branches-4nQwBRn-.mjs} +1 -1
- package/dist/{breaking-Cem7y-9U.mjs → breaking-B60w28TB.mjs} +1 -1
- package/dist/{broken-BkGLSqSO.mjs → broken-AYBRS3fU.mjs} +1 -1
- package/dist/{bulk-discard-values-BHryu-rZ.mjs → bulk-discard-values-BrGUZjx3.mjs} +1 -1
- package/dist/{bulk-edit-BPFITnRN.mjs → bulk-edit-DRKPfdvF.mjs} +1 -1
- package/dist/{bulk-rescan-values-DaeLpv7G.mjs → bulk-rescan-values-BRskV9Ug.mjs} +1 -1
- package/dist/{bulk-sync-schema-C_HNWZpZ.mjs → bulk-sync-schema-5tLPgo4m.mjs} +1 -1
- package/dist/{cancel-DiMIFIU9.mjs → cancel-CUusj5DZ.mjs} +1 -1
- package/dist/{cancel-task-0N0qb4_g.mjs → cancel-task-CPpxw9ro.mjs} +1 -1
- package/dist/{card-CWDFIZAt.mjs → card-Bb7HmgWr.mjs} +8 -8
- package/dist/{cards-Cu4jpvyn.mjs → cards-BtI858fw.mjs} +1 -1
- package/dist/{ci-CpsS8nSN.mjs → ci-B3RibgkB.mjs} +1 -1
- package/dist/cli.mjs +72 -43
- package/dist/{client-C8qLIQKB.mjs → client-Blk6DEyS.mjs} +402 -10
- package/dist/{collection-DF-kPs9K.mjs → collection-Co14NbD6.mjs} +7 -7
- package/dist/{content-translation-CfV9Ro5C.mjs → content-translation-52Eeb4ex.mjs} +2 -2
- package/dist/{copy-C8TUUSSh.mjs → copy-ByiA99ad.mjs} +1 -1
- package/dist/{copy-x3tre7ha.mjs → copy-fjdEbKEL.mjs} +1 -1
- package/dist/{create-BsbmZHOQ.mjs → create-BCE54UOt.mjs} +1 -1
- package/dist/{create-DcFQ2i9q.mjs → create-BCh91WW-.mjs} +1 -1
- package/dist/{create-6kfGBJ0u.mjs → create-BR9EwLe3.mjs} +1 -1
- package/dist/{create-CLxy2CyM.mjs → create-BSLCwcng.mjs} +1 -1
- package/dist/{create-axKIP4Lc.mjs → create-BT0AF_Uw.mjs} +1 -1
- package/dist/{create-DIRUAgUx.mjs → create-Btg4ubCp.mjs} +1 -1
- package/dist/{create-cXQtGG2g2.mjs → create-C4TeNsId2.mjs} +1 -1
- package/dist/{create-BEAJgGgc.mjs → create-COn_7kvg.mjs} +1 -1
- package/dist/{create-CtMZUIOK.mjs → create-CYXLviXa.mjs} +1 -1
- package/dist/{create-0nBN5L6G.mjs → create-D3jW-1Px.mjs} +2 -2
- package/dist/{create-Cj75IfaX.mjs → create-DTf9Ow_X.mjs} +1 -1
- package/dist/{create-DG1mYdU7.mjs → create-DiiSZf-a.mjs} +1 -1
- package/dist/{create-CCxsc9eK.mjs → create-Dsw3sj8m.mjs} +1 -1
- package/dist/{create-zuE-3HGv.mjs → create-Dv3EXqPH.mjs} +1 -1
- package/dist/{create-DS1ayvrI.mjs → create-O6NRnXN2.mjs} +1 -1
- package/dist/{create-DloJkv0t.mjs → create-OUmMh_VF.mjs} +1 -1
- package/dist/{create-BaIQ7zio.mjs → create-S_Zxue41.mjs} +1 -1
- package/dist/{create-lsrPI45N.mjs → create-UxNxOCly.mjs} +1 -1
- package/dist/{create-branch-CQHIvpmr.mjs → create-branch-Dr3xaBVZ.mjs} +1 -1
- package/dist/{create-B8qSd0YU.mjs → create-s4jqUEnS.mjs} +1 -1
- package/dist/{csv-zQ5stw4T.mjs → csv-C5fM43Kq.mjs} +2 -2
- package/dist/{current-task-CYWaDg5P.mjs → current-task-CVIxHhZD.mjs} +1 -1
- package/dist/{dashboard-CDNnQXAe.mjs → dashboard-C9c-3M-D.mjs} +11 -11
- package/dist/{data-action-DX_TuywQ.mjs → data-action-C686IOS8.mjs} +7 -7
- package/dist/{data-app-xTQWmzq-.mjs → data-app-BWj4SpLT.mjs} +12 -8
- package/dist/{database-C5ucihp3.mjs → database-BSETP2o-.mjs} +9 -2
- package/dist/{database-u_spHEa0.mjs → database-CCUXiXH_.mjs} +1 -1
- package/dist/{dataset-LJxNN6p5.mjs → dataset-a7Q_ocDR.mjs} +1 -1
- package/dist/{db-DBT-XMcs.mjs → db-DRZSHe1q.mjs} +7 -7
- package/dist/{delete-Du7t8vTU.mjs → delete-3Z4oIBdy.mjs} +1 -1
- package/dist/{delete-DiBfDyWE.mjs → delete-B7RBZmY_.mjs} +1 -1
- package/dist/{delete-lSNap63e.mjs → delete-BNVRCj6Q.mjs} +1 -1
- package/dist/{delete-DwbfrWC4.mjs → delete-BbCSnpU4.mjs} +1 -1
- package/dist/{delete-Du3GTGrS.mjs → delete-Byr5lvqH.mjs} +1 -1
- package/dist/{delete-FOycMM5r.mjs → delete-D-BxPS-t.mjs} +1 -1
- package/dist/{delete-CSlir440.mjs → delete-DueThJ9s.mjs} +1 -1
- package/dist/{delete-BHHw-4oq.mjs → delete-Qu3KFV4S.mjs} +1 -1
- package/dist/{delete-DAE74TK7.mjs → delete-dYG0WOzJ.mjs} +1 -1
- package/dist/{delete-table-Bn3lb-gW.mjs → delete-table-B7gWdygE.mjs} +1 -1
- package/dist/{dependencies-CHQOCCXo.mjs → dependencies-BxPGkZV0.mjs} +1 -1
- package/dist/{dependency-BQuI3QS1.mjs → dependency-lYZqkVhF.mjs} +5 -5
- package/dist/{dependents-COag5f7O.mjs → dependents-BNhX8duy.mjs} +1 -1
- package/dist/{dirty-DEsgt8QN.mjs → dirty-dcixQIPk.mjs} +1 -1
- package/dist/{discard-values-CkGnpZB3.mjs → discard-values-xbO7_GZP.mjs} +1 -1
- package/dist/{document-BY74mMhh.mjs → document-u01leBVr.mjs} +6 -6
- package/dist/{download-DMxWx04z.mjs → download-DOnWhcxJ.mjs} +1 -1
- package/dist/{eid-Dk7g1tz0.mjs → eid-C6mw8GTY.mjs} +1 -1
- package/dist/{embedding-sdk-DdFCPKMa.mjs → embedding-sdk-Fw8QM10p.mjs} +1 -1
- package/dist/{entry-flags-C63qXMR4.mjs → entry-flags-ZsxJgNQX.mjs} +1 -1
- package/dist/{events-DtN-OE9S.mjs → events-DbiGBvOO.mjs} +1 -1
- package/dist/{execute-CEbgEWvO.mjs → execute-Dut8mp4x.mjs} +1 -1
- package/dist/{export-CikXGxZP.mjs → export-DWm9KD8P.mjs} +2 -2
- package/dist/{export-preflight-2RkCrd6x.mjs → export-preflight-C8ZEm4LA.mjs} +1 -1
- package/dist/{field-SgHCyoPp.mjs → field-DgjHHVxm.mjs} +7 -7
- package/dist/{fields-30XWd-y0.mjs → fields-D83_FRxX.mjs} +1 -1
- package/dist/{fks-DbCuuP96.mjs → fks-CvHFfc9-.mjs} +1 -1
- package/dist/{generate-actions-PYrvMiLN.mjs → generate-actions-DdWCBLbI.mjs} +1 -1
- package/dist/{generate-queries-DlGaK7DB.mjs → generate-queries-D2-hoHbH.mjs} +1 -1
- package/dist/{generate-schema-DqXCs2iX.mjs → generate-schema-GzOla0-H.mjs} +1 -1
- package/dist/{get-titd1P4z.mjs → get-B6Oun1Wt.mjs} +1 -1
- package/dist/{get-BY2dpwUf.mjs → get-BHzgu9Vn.mjs} +1 -1
- package/dist/{get-BiJUoTTz.mjs → get-Bjs0bdq-.mjs} +1 -1
- package/dist/{get-f6LqvU79.mjs → get-Bpkaz8yl.mjs} +1 -1
- package/dist/{get-c5S1A1KR.mjs → get-C0Pou1iS.mjs} +1 -1
- package/dist/{get-B5IXr2LA.mjs → get-CE8XB5Ff.mjs} +1 -1
- package/dist/{get-DffZWqVG.mjs → get-CFnCAJ8A.mjs} +1 -1
- package/dist/{get-FQUF2V2a.mjs → get-CIiw9jYG.mjs} +1 -1
- package/dist/{get-C4V3bjdM.mjs → get-CJIMItSK.mjs} +1 -1
- package/dist/{get-CWt5CGo1.mjs → get-Cc7a55Qq.mjs} +1 -1
- package/dist/{get-CDy5pcag.mjs → get-Cix3ChSR.mjs} +1 -1
- package/dist/{get-DhzTEa4L.mjs → get-CpoEMbjo.mjs} +1 -1
- package/dist/{get-Dv5FwVWt.mjs → get-DAYyzoap.mjs} +1 -1
- package/dist/{get-DpJr1uPp.mjs → get-DDaAPHvY.mjs} +1 -1
- package/dist/{get-ChuHytCB.mjs → get-DLUfFObl.mjs} +1 -1
- package/dist/{get-DNtdPWc7.mjs → get-DlUJRAgf.mjs} +1 -1
- package/dist/{get-D2QYpaHG.mjs → get-Dp-pkw9c.mjs} +1 -1
- package/dist/{get-BPg5lW4z.mjs → get-DxvR0it8.mjs} +1 -1
- package/dist/{get-C3VvI9wW.mjs → get-JcggOTHQ.mjs} +1 -1
- package/dist/{get-DdtPtNWP.mjs → get-YTWSCyhk.mjs} +3 -3
- package/dist/{get-run-BdEVSnOR.mjs → get-run-CjhSF4xV.mjs} +1 -1
- package/dist/{get-DBnnbbJU.mjs → get-rzewe7MT.mjs} +1 -1
- package/dist/{get-DgVbjtv7.mjs → get-scHHOIDB.mjs} +2 -2
- package/dist/git-sync-NroY04HH.mjs +29 -0
- package/dist/{glossary-C2p6xe3-.mjs → glossary-DYZ_oNE1.mjs} +4 -4
- package/dist/{graph-Dp0sxg6m.mjs → graph-q-ho-Ckx.mjs} +1 -1
- package/dist/{has-remote-changes-CMMXEsXa.mjs → has-remote-changes-BPT3ro8x.mjs} +1 -1
- package/dist/{import-DZmfmoBw.mjs → import-csQ0DwW5.mjs} +2 -2
- package/dist/{is-dirty-DgrWNWdj.mjs → is-dirty-DC5HD7x9.mjs} +1 -1
- package/dist/{items-BvyV49xR.mjs → items-CY8s_m8H.mjs} +1 -1
- package/dist/{library-CMC67i7O.mjs → library-Cfs1NYLf.mjs} +4 -4
- package/dist/{list-rPk7T17I.mjs → list-B0UNVc3n.mjs} +1 -1
- package/dist/{list-BjIwIaNZ.mjs → list-BJNP1BQT.mjs} +1 -1
- package/dist/{list-B1NRLXpA.mjs → list-BRszRCfL.mjs} +1 -1
- package/dist/{list-XRvOaGPo.mjs → list-BTZjkrSb.mjs} +1 -1
- package/dist/{list-CcFPkvbL.mjs → list-BbfYuR8B.mjs} +1 -1
- package/dist/{list-AcjI7IXu.mjs → list-BiQ420kS.mjs} +1 -1
- package/dist/{list-BV-qhqJB.mjs → list-BjLjVNcZ.mjs} +1 -1
- package/dist/{list-pMhI_i46.mjs → list-BjP-K2tb.mjs} +2 -2
- package/dist/{list-Bkmb6qmP.mjs → list-BmhbG3wJ.mjs} +1 -1
- package/dist/{list-CUQa6nrb.mjs → list-BnoYDfr5.mjs} +1 -1
- package/dist/{list-DPNOIQbS.mjs → list-BskRDrtC.mjs} +1 -1
- package/dist/{list-BcTm5zD7.mjs → list-C2Jfy1Da.mjs} +1 -1
- package/dist/{list-DgEws5kk.mjs → list-C4N4ia-K.mjs} +1 -1
- package/dist/{list-Bh0hf0aa.mjs → list-CELONJ3c.mjs} +1 -1
- package/dist/{list-CSK4Ee6N.mjs → list-CQZwD2p8.mjs} +1 -1
- package/dist/{list-ClMrjYPe.mjs → list-Cd8kmSoR.mjs} +1 -1
- package/dist/{list-D2I4stFV.mjs → list-Ch6m2lp2.mjs} +3 -3
- package/dist/{list-DyKjezNg.mjs → list-Dt5fK66s.mjs} +1 -1
- package/dist/{list-Bt2qs02U.mjs → list-Du5brDb-.mjs} +1 -1
- package/dist/{list-D7iymMGH.mjs → list-E_agT4ZM.mjs} +1 -1
- package/dist/{list-DK0LD_us.mjs → list-KlezfVK2.mjs} +1 -1
- package/dist/{list-C0bBB4ay.mjs → list-_VIvph66.mjs} +1 -1
- package/dist/{list-9tV8el7U.mjs → list-qLFwCjmm.mjs} +3 -3
- package/dist/{login-DGfZBNuL.mjs → login-29tLLVJP.mjs} +3 -3
- package/dist/{logout-bG_ZJkyr.mjs → logout-DwmXJLsp.mjs} +1 -1
- package/dist/{measure-Do19ivCX.mjs → measure-DcHw_MiT.mjs} +5 -5
- package/dist/{nano-id-D_xVCG80.mjs → nano-id-BRmKx_yj.mjs} +1 -1
- package/dist/{parameter-values-gcfN0NVF.mjs → parameter-values-ZwmQ1Udg.mjs} +1 -1
- package/dist/{path-bfe3wQV4.mjs → path-BlDwkDf9.mjs} +2 -2
- package/dist/{poll-DsKAeWSG.mjs → poll-kX01Xu7c.mjs} +1 -1
- package/dist/{publish-uDuRQoQ5.mjs → publish-BEBIyLN5.mjs} +1 -1
- package/dist/{query-BBblM0de.mjs → query-BP-djKNO.mjs} +3 -3
- package/dist/{query-yzdVy8IY.mjs → query-BoU_Hk1V.mjs} +1 -1
- package/dist/{registry-flag-C6CMpxSu.mjs → registry-flag-DcJSw5a5.mjs} +1 -1
- package/dist/{remapping-BYNOF4xJ.mjs → remapping-5M8OXoYq.mjs} +1 -1
- package/dist/{remove-collection-C_nLjEG6.mjs → remove-collection-BKYePbf6.mjs} +1 -1
- package/dist/{render-DPahQNYA.mjs → render-CTBZejXY.mjs} +1 -1
- package/dist/{replace-Dx_IgvBM.mjs → replace-CRO_HjDu.mjs} +2 -2
- package/dist/{requirement-check-juL6K2it.mjs → requirement-check-BuzAsCEY.mjs} +1 -1
- package/dist/{rescan-values-C1ryy_S5.mjs → rescan-values-CuNJ1lGi.mjs} +3 -3
- package/dist/{rescan-values-B_5r6t7K.mjs → rescan-values-DMfiAgMb.mjs} +1 -1
- package/dist/{run-B19FOhID.mjs → run-C-3POoeR.mjs} +2 -2
- package/dist/{run-DM99qbxN.mjs → run-CizS77_E.mjs} +1 -1
- package/dist/{run-By9Q7-P6.mjs → run-DG2s6HbZ.mjs} +2 -2
- package/dist/{run-Dh4TQtVl.mjs → run-DVv5LbTr.mjs} +1 -1
- package/dist/{runs-BlnHJEpy.mjs → runs-Cga1onM9.mjs} +1 -1
- package/dist/{runtime-DMb47Kan.mjs → runtime-icvfPElD.mjs} +65 -21
- package/dist/{scaffold-xys21-_c.mjs → scaffold-rI9rqE8J.mjs} +4 -4
- package/dist/{schema-CItr2vjk.mjs → schema-ChNwnR_v.mjs} +1 -1
- package/dist/{schema-tables-CxgXdUtj.mjs → schema-tables-BsQB8kdp.mjs} +1 -1
- package/dist/{schemas-BLhPyQRt.mjs → schemas-DizhjGRh.mjs} +1 -1
- package/dist/{sdk-version-C_rurdw5.mjs → sdk-version-CW1yxLZG.mjs} +3 -3
- package/dist/{search-D9RL_Ao0.mjs → search-CO-lBs1n.mjs} +1 -1
- package/dist/{search-DW9byR1X.mjs → search-CZvjLzlk.mjs} +1 -1
- package/dist/{segment-DYN7sJO_.mjs → segment-CEkRgEM5.mjs} +5 -5
- package/dist/{send-OMqLoun6.mjs → send-DnACnI3O.mjs} +1 -1
- package/dist/{set-DjYrobzO.mjs → set-_14cgP8Q.mjs} +1 -1
- package/dist/{set-active-RCOa06in.mjs → set-active-uPlvtNW_.mjs} +1 -1
- package/dist/{set-data-actions-CcZHF3ot.mjs → set-data-actions-CUDz-Z1n.mjs} +3 -3
- package/dist/{set-enabled-IrDIT7Uc.mjs → set-enabled-BIaLKzh-.mjs} +1 -1
- package/dist/{set-sensitivity-ZJb78vYE.mjs → set-sensitivity-BiiFrr8R.mjs} +1 -1
- package/dist/{setting-DjFeW_Bd.mjs → setting-Exfniunx.mjs} +3 -3
- package/dist/{setup-71MuR246.mjs → setup-CHW9VP4d.mjs} +1 -1
- package/dist/{skills-yg-WfvpW.mjs → skills-CbMRgDyg.mjs} +1 -1
- package/dist/{skills-6NMamShR.mjs → skills-JvfWVDdS.mjs} +3 -3
- package/dist/{snippet-CnTWEAgc.mjs → snippet-OVXR6Y3M.mjs} +5 -5
- package/dist/{stash-CREL1rEx.mjs → stash-DuuL-oE4.mjs} +2 -2
- package/dist/{status-C7_WDust.mjs → status-CklSnHEH.mjs} +1 -1
- package/dist/{status-CIK0pGS1.mjs → status-kNuvMf-E.mjs} +2 -2
- package/dist/{subscription-Cssyopsy.mjs → subscription-CA2ij8ax.mjs} +5 -5
- package/dist/{subscriptions-DW-rgYA2.mjs → subscriptions-BVpir88T.mjs} +2 -2
- package/dist/{summary-BgYasLRg.mjs → summary-D4IdS4ui.mjs} +1 -1
- package/dist/{sync-schema-CERYSKAq.mjs → sync-schema-CmouoUmN.mjs} +4 -4
- package/dist/{sync-schema-Bw5lh64d.mjs → sync-schema-DGRksKzn.mjs} +1 -1
- package/dist/table-SnjFwjwZ.mjs +26 -0
- package/dist/{timeline-C1EGYIWm.mjs → timeline-BzZLfQ4C.mjs} +7 -7
- package/dist/{timeline-event-CNResXsb.mjs → timeline-event-Dl5VLbkp.mjs} +5 -5
- package/dist/transform-DVHety41.mjs +28 -0
- package/dist/transform-job-CTBdu_fH.mjs +22 -0
- package/dist/{transform-tag-Co2WuSBJ.mjs → transform-tag-Yp69-53i.mjs} +4 -4
- package/dist/{transform-test-DJTET6yX.mjs → transform-test-DOg55TiR.mjs} +6 -6
- package/dist/{transforms-D4WJPdxv.mjs → transforms-mIukRzGi.mjs} +1 -1
- package/dist/{transport-C23PjC9C.mjs → transport-CooEZWSM.mjs} +4 -3
- package/dist/{tree-BOzjsQT9.mjs → tree-CrI6CExE.mjs} +1 -1
- package/dist/{unpublish-jVyBAFYQ.mjs → unpublish-9xelQnKg.mjs} +1 -1
- package/dist/{unreferenced-CxZBGK-v.mjs → unreferenced-DwybWbv_.mjs} +1 -1
- package/dist/{update-DS7FwMdV.mjs → update-B2KG-bPS.mjs} +1 -1
- package/dist/{update-B0fK8ufL.mjs → update-B5o9YGR4.mjs} +1 -1
- package/dist/{update-DmVDc-cc.mjs → update-BGO8A-Dc.mjs} +1 -1
- package/dist/{update-CnOJU0E9.mjs → update-BMGh9Yut.mjs} +2 -2
- package/dist/{update-DkzE2qOr.mjs → update-BT-KU5ik.mjs} +1 -1
- package/dist/{update-DhyyfH1b.mjs → update-CRV8iYYM.mjs} +1 -1
- package/dist/{update-Datagi0N.mjs → update-CTReVn24.mjs} +1 -1
- package/dist/{update-C86ovTcd.mjs → update-CYo8FgXL.mjs} +1 -1
- package/dist/{update-DTkJqBmp.mjs → update-Cctb5Q6Q.mjs} +1 -1
- package/dist/{update-B2zy3jnR.mjs → update-Cdi5mRB0.mjs} +1 -1
- package/dist/{update-B9xWx1RV.mjs → update-CfH57l5u.mjs} +1 -1
- package/dist/{update-BvbuAD8_2.mjs → update-DJaxlhTr2.mjs} +1 -1
- package/dist/{update-Dmfimhno.mjs → update-DdoWropW.mjs} +1 -1
- package/dist/{update-B82aqBJ5.mjs → update-DeSEWxcE.mjs} +1 -1
- package/dist/{update-BPSI4D36.mjs → update-DlpaYaQJ.mjs} +1 -1
- package/dist/{update-nzPxtrWU.mjs → update-Dmc9beTx.mjs} +1 -1
- package/dist/{update-DTwwlTus.mjs → update-DsQWw0lg.mjs} +1 -1
- package/dist/{update-BP4Jzan1.mjs → update-_oK-yApr.mjs} +1 -1
- package/dist/{update-dashcard-dhjE7CQz.mjs → update-dashcard-2MHNS7N0.mjs} +1 -1
- package/dist/{update-SQtRtpRg.mjs → update-eXuJTw_J.mjs} +1 -1
- package/dist/{upgrade-Ckdl0SYl.mjs → upgrade-DqzD-StO.mjs} +2 -2
- package/dist/{upload-UYuGBsus.mjs → upload-BjannDFx.mjs} +2 -2
- package/dist/{upload-CTj7eVZk.mjs → upload-CPElN9Tz.mjs} +1 -1
- package/dist/{upload-DGl7iSh3.mjs → upload-CpVpqOx2.mjs} +3 -3
- package/dist/{uuid-CPLh7mDU.mjs → uuid-YUh1CUuc.mjs} +1 -1
- package/dist/{values-Bplkmfue.mjs → values-DE9CTWJ0.mjs} +1 -1
- package/dist/{verify-Cg1TFaPs.mjs → verify--wo2Ac1M.mjs} +2 -2
- package/dist/{verify-pLZ7b7JP.mjs → verify-DmJVskU0.mjs} +1 -1
- package/dist/{verify-CzlfG_Or.mjs → verify-qPqmekfD.mjs} +1 -1
- package/dist/{wait-D9yIDRpl.mjs → wait-COrnYsYy.mjs} +3 -3
- package/dist/{wait-flags-C4CH6rTJ.mjs → wait-flags-DIeSd2rv.mjs} +1 -1
- package/package.json +1 -1
- package/skill-data/data-app/SKILL.md +25 -23
- package/skill-data/data-app/template/README.md +8 -1
- package/skill-data/data-app/template/e2e/app.spec.ts +6 -0
- package/skill-data/data-app/template/gitignore +3 -0
- package/skill-data/data-app/template/package.json +12 -2
- package/skill-data/data-app/template/playwright.config.ts +14 -0
- package/skill-data/data-app/template/src/App.test.tsx +10 -0
- package/skill-data/data-app/template/src/test/render.tsx +10 -0
- package/skill-data/data-app/template/src/test/setup.ts +5 -0
- package/skill-data/data-app/template/tsconfig.json +2 -2
- package/skill-data/data-app/template/vitest.config.ts +9 -0
- package/skill-data/data-app-actions/SKILL.md +4 -2
- package/skill-data/data-app-data/SKILL.md +2 -2
- package/skill-data/data-app-filters/SKILL.md +6 -4
- package/skill-data/data-app-testing/SKILL.md +118 -0
- package/skill-data/data-app-ui/SKILL.md +1 -1
- package/dist/git-sync-BY0dqrLE.mjs +0 -29
- package/dist/table-Be5Vl7JT.mjs +0 -26
- package/dist/transform-Cev-LAhH.mjs +0 -28
- package/dist/transform-job-BnI6Ivqh.mjs +0 -22
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { _ as formatZodIssue, c as InternalError, d as PartialWriteError, f as ResponseShapeError, g as errorMessage, o as ConfigError, p as TimeoutError, r as isPlainObject, y as isNonInterruptFailure } from "./predicates-0C0TsWcJ.mjs";
|
|
2
|
-
import { R as CapabilityError, Y as HttpError, i as methodRequirements, r as isMethodKey, tt as parseJsonOrPlain } from "./cli.mjs";
|
|
2
|
+
import { R as CapabilityError, Y as HttpError, i as methodRequirements, nt as parseJsonResult, r as isMethodKey, tt as parseJsonOrPlain } from "./cli.mjs";
|
|
3
3
|
import { i as NotificationCardPayload, n as CARD_PAYLOAD_TYPE, r as Notification, t as AnyNotification } from "./notification-B5yMuPmo.mjs";
|
|
4
|
-
import { H as profileFromProperties, st as SessionProperties } from "./runtime-
|
|
4
|
+
import { H as profileFromProperties, ct as sessionSettingsSchema, st as SessionProperties } from "./runtime-icvfPElD.mjs";
|
|
5
5
|
import { i as CreatedApiKey, t as ApiKey } from "./api-key-DbsqHlN6.mjs";
|
|
6
|
-
import { n as featureFailures, r as supersedingFeature, t as checkFeatures } from "./requirement-check-
|
|
7
|
-
import { n as createTransport } from "./transport-
|
|
6
|
+
import { n as featureFailures, r as supersedingFeature, t as checkFeatures } from "./requirement-check-BuzAsCEY.mjs";
|
|
7
|
+
import { n as createTransport } from "./transport-CooEZWSM.mjs";
|
|
8
8
|
import { i as CardDetail, o as CardQueryResult, t as Card } from "./card-BJRZ5D5Q.mjs";
|
|
9
9
|
import { t as gateInput } from "./input-gate-registry-Dh8QjKgW.mjs";
|
|
10
10
|
import { _ as fieldRemappedValueSchema, c as FieldSemanticType, d as FieldValues, g as fieldDetailSchema, p as FieldWithDataSensitivity, r as FieldBaseType, s as FieldSearchMatches, t as DATA_SENSITIVITY_GATE } from "./field-C2qOViFZ.mjs";
|
|
@@ -12,15 +12,15 @@ import { r as ModerationReviewCreateInput, t as ModerationReview } from "./moder
|
|
|
12
12
|
import { i as ParameterValues, o as TemporalUnit } from "./parameter-Bucz3cLJ.mjs";
|
|
13
13
|
import { r as PivotExportFormat, t as DatasetQuery } from "./query-BKtMP5eH.mjs";
|
|
14
14
|
import { S as TableSelectors, _ as TableQueryMetadata, a as Table, d as TableDataLayerTier, m as TableForeignKey, n as DATA_LAYER_MEDALLION_GATE, r as DATA_LAYER_TIER_GATE, t as DATA_AUTHORITY_WITHDRAWAL_GATE, w as TableVisibilityType } from "./table-hgrX1i-R.mjs";
|
|
15
|
-
import { c as DatabaseWithSettings, t as Database } from "./database-
|
|
15
|
+
import { c as DatabaseWithSettings, t as Database } from "./database-BSETP2o-.mjs";
|
|
16
16
|
import { t as Snippet } from "./snippet-CyKAgIZl.mjs";
|
|
17
|
-
import { r as QueryMetadata, t as CompiledQuery } from "./dataset-
|
|
17
|
+
import { r as QueryMetadata, t as CompiledQuery } from "./dataset-a7Q_ocDR.mjs";
|
|
18
18
|
import { c as CollectionItem, m as CollectionTreeNode, r as Collection } from "./collection-Cz2qLX2m.mjs";
|
|
19
19
|
import { t as ContentTranslationUploadResult } from "./content-translation-BrHOrmj9.mjs";
|
|
20
20
|
import { a as DashboardCreateInput, f as Dashcard, g as dashboardDetailSchema, r as DashboardCopy, t as Dashboard } from "./dashboard-Cwsf-e9T.mjs";
|
|
21
21
|
import { l as dataActionSchema, n as DATA_ACTION_TABLE_GATE, s as DataActionExecuteResult, t as DATA_ACTION_COLLECTION_GATE } from "./data-action-DAw6WRTH.mjs";
|
|
22
22
|
import { a as DataAppGeneratedFiles, i as DataAppEntry, t as DataApp } from "./data-app-bl88oUla.mjs";
|
|
23
|
-
import { r as pollUntil } from "./poll-
|
|
23
|
+
import { r as pollUntil } from "./poll-kX01Xu7c.mjs";
|
|
24
24
|
import { i as DependencyEntity, s as DependencyGraph, t as BreakingSource, u as DependencyNode } from "./dependency-C1DExO6k.mjs";
|
|
25
25
|
import { t as Document } from "./document-BHOQq2T_.mjs";
|
|
26
26
|
import { i as EidTranslateResult } from "./eid-translation-Ba92VOHe.mjs";
|
|
@@ -1498,6 +1498,12 @@ function isRemoteUnreadable(error) {
|
|
|
1498
1498
|
if (!(error instanceof HttpError)) return false;
|
|
1499
1499
|
return error.status === 403 || error.status === 404;
|
|
1500
1500
|
}
|
|
1501
|
+
function settingsUpdateFeatures(params) {
|
|
1502
|
+
return params["remote-sync-transforms"] === void 0 ? [] : [{
|
|
1503
|
+
feature: "remoteSyncTransformsSetting",
|
|
1504
|
+
fields: ["remote-sync-transforms"]
|
|
1505
|
+
}];
|
|
1506
|
+
}
|
|
1501
1507
|
function gitSyncResource(transport) {
|
|
1502
1508
|
const { explain, refuse, refuseAfterReading } = explainer(transport, "gitSync");
|
|
1503
1509
|
/** Get the running or most recently finished sync task, or null when the server has none. */
|
|
@@ -1709,6 +1715,26 @@ function gitSyncResource(transport) {
|
|
|
1709
1715
|
"remote-sync-token": token
|
|
1710
1716
|
};
|
|
1711
1717
|
}
|
|
1718
|
+
/**
|
|
1719
|
+
* Configure the remote, the sync direction, the tracked branch, whether remote changes are
|
|
1720
|
+
* imported on their own, whether transforms are synced, and which collections are synced; a key
|
|
1721
|
+
* left out keeps its value. Admin only. A blank URL clears the remote. Send `remote-sync-url`
|
|
1722
|
+
* with the token, the direction or the branch: most servers check such an update against the URL
|
|
1723
|
+
* it carries and refuse it with 400 without one, and a server without
|
|
1724
|
+
* `remoteSyncCollectionsOnlyUpdate` checks every update that way. A read-write instance that
|
|
1725
|
+
* tracks a branch may refuse another `remote-sync-branch` with 400, leaving the switch to an
|
|
1726
|
+
* import of that branch. The server refuses with 400 while a sync task runs; one without
|
|
1727
|
+
* `remoteSyncCollectionsOnlyUpdate` saves the settings first and refuses only the import it would
|
|
1728
|
+
* start. On an instance left read-only the update starts an import, whose task id the answer
|
|
1729
|
+
* carries.
|
|
1730
|
+
*/
|
|
1731
|
+
async function updateSettings(params, options = {}) {
|
|
1732
|
+
return transport.requestParsed(SyncSettingsUpdateResult, "/api/ee/remote-sync/settings", {
|
|
1733
|
+
...options,
|
|
1734
|
+
method: "PUT",
|
|
1735
|
+
body: params
|
|
1736
|
+
});
|
|
1737
|
+
}
|
|
1712
1738
|
/** The collections currently in git-sync's scope. */
|
|
1713
1739
|
async function syncedCollections(options = {}) {
|
|
1714
1740
|
return {
|
|
@@ -1789,6 +1815,7 @@ function gitSyncResource(transport) {
|
|
|
1789
1815
|
branches: explain("branches", branches),
|
|
1790
1816
|
createBranch: explain("createBranch", createBranch),
|
|
1791
1817
|
setCollectionSynced: explain("setCollectionSynced", setCollectionSynced),
|
|
1818
|
+
updateSettings: explain("updateSettings", updateSettings, settingsUpdateFeatures),
|
|
1792
1819
|
syncedCollections: refuse("syncedCollections", syncedCollections),
|
|
1793
1820
|
remoteUrl,
|
|
1794
1821
|
branch: refuseAfterReading("branch", RemoteSyncBranchProperty, branch),
|
|
@@ -1859,6 +1886,41 @@ function glossaryResource(transport) {
|
|
|
1859
1886
|
};
|
|
1860
1887
|
}
|
|
1861
1888
|
//#endregion
|
|
1889
|
+
//#region ../client/src/domain/health.ts
|
|
1890
|
+
const Health = z.object({
|
|
1891
|
+
status: z.string(),
|
|
1892
|
+
progress: z.number().min(0).max(1).optional()
|
|
1893
|
+
}).loose();
|
|
1894
|
+
Health.pick({
|
|
1895
|
+
status: true,
|
|
1896
|
+
progress: true
|
|
1897
|
+
}).strip();
|
|
1898
|
+
//#endregion
|
|
1899
|
+
//#region ../client/src/resources/health.ts
|
|
1900
|
+
function healthResource(transport) {
|
|
1901
|
+
/**
|
|
1902
|
+
* Check whether the server is up: `ok` once it has booted and reaches its app database, else
|
|
1903
|
+
* `initializing` with its `progress`, or why the app database is out of reach. Needs no
|
|
1904
|
+
* credential. Answers without retrying unless `retries` is set.
|
|
1905
|
+
*/
|
|
1906
|
+
async function get(options = {}) {
|
|
1907
|
+
try {
|
|
1908
|
+
return await transport.requestParsed(Health, "/api/health", {
|
|
1909
|
+
...options,
|
|
1910
|
+
retries: options.retries ?? 0
|
|
1911
|
+
});
|
|
1912
|
+
} catch (error) {
|
|
1913
|
+
if (!(error instanceof HttpError) || error.status !== 503) throw error;
|
|
1914
|
+
const { body } = error.developerDetail;
|
|
1915
|
+
if (body === null) throw error;
|
|
1916
|
+
const health = parseJsonResult(body, Health);
|
|
1917
|
+
if (!health.ok) throw error;
|
|
1918
|
+
return health.value;
|
|
1919
|
+
}
|
|
1920
|
+
}
|
|
1921
|
+
return { get };
|
|
1922
|
+
}
|
|
1923
|
+
//#endregion
|
|
1862
1924
|
//#region ../client/src/resources/library.ts
|
|
1863
1925
|
const LIBRARY_ROOT_PATH = "/api/ee/library/";
|
|
1864
1926
|
const PUBLISH_TABLES_PATH = "/api/ee/data-studio/table/publish-tables";
|
|
@@ -2317,6 +2379,17 @@ const PermissionsGraph = z.object({
|
|
|
2317
2379
|
revision: z.number().int().nonnegative(),
|
|
2318
2380
|
groups: z.record(z.string(), z.record(z.string(), DatabasePermissions))
|
|
2319
2381
|
}).loose();
|
|
2382
|
+
const PermissionGroup = z.object({
|
|
2383
|
+
id: z.number().int(),
|
|
2384
|
+
name: z.string(),
|
|
2385
|
+
magic_group_type: z.string().nullable(),
|
|
2386
|
+
member_count: z.number().int().nonnegative()
|
|
2387
|
+
}).loose();
|
|
2388
|
+
PermissionGroup.pick({
|
|
2389
|
+
id: true,
|
|
2390
|
+
name: true,
|
|
2391
|
+
magic_group_type: true
|
|
2392
|
+
}).strip();
|
|
2320
2393
|
//#endregion
|
|
2321
2394
|
//#region ../client/src/resources/permission.ts
|
|
2322
2395
|
function permissionResource(transport) {
|
|
@@ -2340,10 +2413,22 @@ function permissionResource(transport) {
|
|
|
2340
2413
|
async function groupGraph(id, options = {}) {
|
|
2341
2414
|
return transport.requestParsed(PermissionsGraph, `/api/permissions/graph/group/${id}`, { ...options });
|
|
2342
2415
|
}
|
|
2416
|
+
/**
|
|
2417
|
+
* List the permission groups, each with its member count. Needs an admin, the settings
|
|
2418
|
+
* application permission, or a group manager, who sees only the groups they manage.
|
|
2419
|
+
* `GET /api/permissions/group` answers a bare array.
|
|
2420
|
+
*/
|
|
2421
|
+
async function groups(options = {}) {
|
|
2422
|
+
return {
|
|
2423
|
+
data: await transport.requestParsed(z.array(PermissionGroup), "/api/permissions/group", { ...options }),
|
|
2424
|
+
total: null
|
|
2425
|
+
};
|
|
2426
|
+
}
|
|
2343
2427
|
return {
|
|
2344
2428
|
graph,
|
|
2345
2429
|
databaseGraph,
|
|
2346
|
-
groupGraph
|
|
2430
|
+
groupGraph,
|
|
2431
|
+
groups
|
|
2347
2432
|
};
|
|
2348
2433
|
}
|
|
2349
2434
|
//#endregion
|
|
@@ -2839,8 +2924,21 @@ function segmentResource(transport) {
|
|
|
2839
2924
|
archive
|
|
2840
2925
|
};
|
|
2841
2926
|
}
|
|
2927
|
+
z.object({
|
|
2928
|
+
username: z.string().min(1),
|
|
2929
|
+
password: z.string().min(1)
|
|
2930
|
+
}).strict();
|
|
2931
|
+
const Session = z.object({ id: z.string() }).loose();
|
|
2932
|
+
Session.pick({ id: true }).strip();
|
|
2842
2933
|
//#endregion
|
|
2843
2934
|
//#region ../client/src/resources/session.ts
|
|
2935
|
+
const SessionSettingsRead = SessionProperties.transform((properties, ctx) => {
|
|
2936
|
+
const { features } = profileFromProperties(properties);
|
|
2937
|
+
const parsed = sessionSettingsSchema(features).safeParse(properties);
|
|
2938
|
+
if (parsed.success) return parsed.data;
|
|
2939
|
+
for (const issue of parsed.error.issues) ctx.addIssue({ ...issue });
|
|
2940
|
+
return z.NEVER;
|
|
2941
|
+
});
|
|
2844
2942
|
function sessionResource(transport) {
|
|
2845
2943
|
/**
|
|
2846
2944
|
* Get the session properties: the settings the caller may read, among them the server's version
|
|
@@ -2849,7 +2947,32 @@ function sessionResource(transport) {
|
|
|
2849
2947
|
async function properties(options = {}) {
|
|
2850
2948
|
return transport.probe(SessionProperties, options);
|
|
2851
2949
|
}
|
|
2852
|
-
|
|
2950
|
+
/**
|
|
2951
|
+
* Get the settings a bootstrap reads from the session properties: the setup state, the site name,
|
|
2952
|
+
* the AI and MCP switches and remote sync, parsed by the shape of the server that answers. Read
|
|
2953
|
+
* afresh, never from a profile handed in.
|
|
2954
|
+
*/
|
|
2955
|
+
async function settings(options = {}) {
|
|
2956
|
+
return transport.probe(SessionSettingsRead, options);
|
|
2957
|
+
}
|
|
2958
|
+
/**
|
|
2959
|
+
* Log in with a username and password, answering the new session's id. A wrong password answers
|
|
2960
|
+
* 401. An account with a second factor is answered with a challenge rather than a session, and
|
|
2961
|
+
* one without where the instance requires a second factor with an enrollment; this method
|
|
2962
|
+
* reports either as a `ResponseShapeError`.
|
|
2963
|
+
*/
|
|
2964
|
+
async function create(params, options = {}) {
|
|
2965
|
+
return transport.requestParsed(Session, "/api/session", {
|
|
2966
|
+
...options,
|
|
2967
|
+
method: "POST",
|
|
2968
|
+
body: params
|
|
2969
|
+
});
|
|
2970
|
+
}
|
|
2971
|
+
return {
|
|
2972
|
+
properties,
|
|
2973
|
+
settings,
|
|
2974
|
+
create
|
|
2975
|
+
};
|
|
2853
2976
|
}
|
|
2854
2977
|
//#endregion
|
|
2855
2978
|
//#region ../client/src/resources/setting.ts
|
|
@@ -3218,6 +3341,73 @@ function describeCollectionAnswer(answered) {
|
|
|
3218
3341
|
return `the table stays in collection ${answered.value}`;
|
|
3219
3342
|
}
|
|
3220
3343
|
//#endregion
|
|
3344
|
+
//#region ../client/src/domain/task.ts
|
|
3345
|
+
const TaskRunType = z.enum([
|
|
3346
|
+
"subscription",
|
|
3347
|
+
"alert",
|
|
3348
|
+
"sync",
|
|
3349
|
+
"fingerprint"
|
|
3350
|
+
]);
|
|
3351
|
+
const TaskRunEntityType = z.enum([
|
|
3352
|
+
"database",
|
|
3353
|
+
"card",
|
|
3354
|
+
"dashboard"
|
|
3355
|
+
]);
|
|
3356
|
+
const TaskRunStatus = z.enum([
|
|
3357
|
+
"started",
|
|
3358
|
+
"success",
|
|
3359
|
+
"failed",
|
|
3360
|
+
"abandoned"
|
|
3361
|
+
]);
|
|
3362
|
+
const TaskRun = z.object({
|
|
3363
|
+
id: z.number().int(),
|
|
3364
|
+
run_type: TaskRunType,
|
|
3365
|
+
entity_type: TaskRunEntityType,
|
|
3366
|
+
entity_id: z.number().int(),
|
|
3367
|
+
started_at: z.string(),
|
|
3368
|
+
ended_at: z.string().nullable(),
|
|
3369
|
+
status: TaskRunStatus,
|
|
3370
|
+
entity_name: z.string().nullable().optional(),
|
|
3371
|
+
task_count: z.number().int().optional(),
|
|
3372
|
+
success_count: z.number().int().optional(),
|
|
3373
|
+
failed_count: z.number().int().optional()
|
|
3374
|
+
}).loose();
|
|
3375
|
+
TaskRun.pick({
|
|
3376
|
+
id: true,
|
|
3377
|
+
run_type: true,
|
|
3378
|
+
entity_type: true,
|
|
3379
|
+
entity_id: true,
|
|
3380
|
+
status: true,
|
|
3381
|
+
started_at: true,
|
|
3382
|
+
ended_at: true
|
|
3383
|
+
}).strip();
|
|
3384
|
+
//#endregion
|
|
3385
|
+
//#region ../client/src/resources/task.ts
|
|
3386
|
+
function taskResource(transport) {
|
|
3387
|
+
const { explainWalk } = explainer(transport, "task");
|
|
3388
|
+
/**
|
|
3389
|
+
* Walk the background-job runs, such as database syncs and subscription sends, newest first,
|
|
3390
|
+
* each with the name of the entity it ran against and a count of its tasks. Needs the monitoring
|
|
3391
|
+
* application permission.
|
|
3392
|
+
*/
|
|
3393
|
+
async function* runPages(params = {}, options = {}) {
|
|
3394
|
+
yield* paginatePages(transport, "/api/task/runs", TaskRun, {
|
|
3395
|
+
query: {
|
|
3396
|
+
"run-type": params["run-type"],
|
|
3397
|
+
"entity-type": params["entity-type"],
|
|
3398
|
+
"entity-id": params["entity-id"],
|
|
3399
|
+
status: params.status,
|
|
3400
|
+
"started-at": params["started-at"]
|
|
3401
|
+
},
|
|
3402
|
+
...options.offset !== void 0 && { offset: options.offset },
|
|
3403
|
+
...options.max !== void 0 && { max: options.max },
|
|
3404
|
+
...options.pageSize !== void 0 && { pageSize: options.pageSize },
|
|
3405
|
+
...options.signal !== void 0 && { signal: options.signal }
|
|
3406
|
+
});
|
|
3407
|
+
}
|
|
3408
|
+
return { runPages: explainWalk("runPages", runPages) };
|
|
3409
|
+
}
|
|
3410
|
+
//#endregion
|
|
3221
3411
|
//#region ../client/src/resources/timeline-event.ts
|
|
3222
3412
|
function timelineEventResource(transport) {
|
|
3223
3413
|
/** Get one timeline event by id. */
|
|
@@ -4149,14 +4339,212 @@ CurrentUser.pick({
|
|
|
4149
4339
|
common_name: true,
|
|
4150
4340
|
is_superuser: true
|
|
4151
4341
|
}).strip();
|
|
4342
|
+
const User = z.object({
|
|
4343
|
+
id: z.number().int(),
|
|
4344
|
+
email: z.string(),
|
|
4345
|
+
first_name: z.string().nullable(),
|
|
4346
|
+
last_name: z.string().nullable(),
|
|
4347
|
+
common_name: z.string(),
|
|
4348
|
+
is_superuser: z.boolean().optional(),
|
|
4349
|
+
is_active: z.boolean().optional()
|
|
4350
|
+
}).loose();
|
|
4351
|
+
User.pick({
|
|
4352
|
+
id: true,
|
|
4353
|
+
email: true,
|
|
4354
|
+
common_name: true,
|
|
4355
|
+
is_superuser: true
|
|
4356
|
+
}).strip();
|
|
4357
|
+
z.enum([
|
|
4358
|
+
"active",
|
|
4359
|
+
"deactivated",
|
|
4360
|
+
"all"
|
|
4361
|
+
]);
|
|
4362
|
+
z.object({
|
|
4363
|
+
first_name: z.string().min(1).nullable().optional(),
|
|
4364
|
+
last_name: z.string().min(1).nullable().optional(),
|
|
4365
|
+
email: z.string(),
|
|
4366
|
+
password: z.string().min(1).nullable().optional()
|
|
4367
|
+
}).strict();
|
|
4152
4368
|
//#endregion
|
|
4153
4369
|
//#region ../client/src/resources/user.ts
|
|
4370
|
+
const UserList = z.object({
|
|
4371
|
+
data: z.array(User),
|
|
4372
|
+
total: z.number().int().nonnegative()
|
|
4373
|
+
});
|
|
4154
4374
|
function userResource(transport) {
|
|
4155
4375
|
/** Get the user the request's credentials authenticate as. */
|
|
4156
4376
|
async function current(options = {}) {
|
|
4157
4377
|
return transport.requestParsed(CurrentUser, "/api/user/current", { ...options });
|
|
4158
4378
|
}
|
|
4159
|
-
|
|
4379
|
+
/**
|
|
4380
|
+
* List the users, ordered by first name. Needs an admin, a data analyst or a group manager, who
|
|
4381
|
+
* sees the members of the groups they manage; a sandboxed user sees only themselves. Which
|
|
4382
|
+
* columns each user carries depends on the caller, as `User` says.
|
|
4383
|
+
*/
|
|
4384
|
+
async function list(params = {}, options = {}) {
|
|
4385
|
+
const response = await transport.requestParsed(UserList, "/api/user", {
|
|
4386
|
+
...options,
|
|
4387
|
+
query: {
|
|
4388
|
+
status: params.status,
|
|
4389
|
+
query: params.query,
|
|
4390
|
+
group_id: params.group_id
|
|
4391
|
+
}
|
|
4392
|
+
});
|
|
4393
|
+
return {
|
|
4394
|
+
data: response.data,
|
|
4395
|
+
total: response.total
|
|
4396
|
+
};
|
|
4397
|
+
}
|
|
4398
|
+
/**
|
|
4399
|
+
* Create a user and send the invite. Admin only. Without a password the account gets a random
|
|
4400
|
+
* one, so it can sign in only through the invite. A taken email answers 400 naming `email`.
|
|
4401
|
+
*/
|
|
4402
|
+
async function create(params, options = {}) {
|
|
4403
|
+
return transport.requestParsed(User, "/api/user", {
|
|
4404
|
+
...options,
|
|
4405
|
+
method: "POST",
|
|
4406
|
+
body: params
|
|
4407
|
+
});
|
|
4408
|
+
}
|
|
4409
|
+
return {
|
|
4410
|
+
current,
|
|
4411
|
+
list,
|
|
4412
|
+
create
|
|
4413
|
+
};
|
|
4414
|
+
}
|
|
4415
|
+
//#endregion
|
|
4416
|
+
//#region ../client/src/domain/workspace-instance.ts
|
|
4417
|
+
const WorkspaceInstanceOutput = z.object({
|
|
4418
|
+
db: z.string().nullable().optional(),
|
|
4419
|
+
schema: z.string().nullable().optional()
|
|
4420
|
+
}).loose();
|
|
4421
|
+
const WorkspaceInstanceDatabase = z.object({
|
|
4422
|
+
input_schemas: z.array(z.string()),
|
|
4423
|
+
output: WorkspaceInstanceOutput
|
|
4424
|
+
}).loose();
|
|
4425
|
+
const WorkspaceInstance = z.object({
|
|
4426
|
+
name: z.string(),
|
|
4427
|
+
databases: z.record(z.string(), WorkspaceInstanceDatabase),
|
|
4428
|
+
can_write: z.boolean()
|
|
4429
|
+
}).loose();
|
|
4430
|
+
WorkspaceInstance.pick({
|
|
4431
|
+
name: true,
|
|
4432
|
+
can_write: true
|
|
4433
|
+
}).strip();
|
|
4434
|
+
//#endregion
|
|
4435
|
+
//#region ../client/src/resources/workspace-instance.ts
|
|
4436
|
+
const WorkspaceInstanceEnvelope = z.object({ data: WorkspaceInstance.nullable() }).loose();
|
|
4437
|
+
function workspaceInstanceResource(transport) {
|
|
4438
|
+
const { explain } = explainer(transport, "workspaceInstance");
|
|
4439
|
+
/**
|
|
4440
|
+
* The workspace loaded on this instance, from its `config.yml` at boot or set at runtime; admins
|
|
4441
|
+
* only. `null` when none is loaded, as on a manager-only instance. `can_write` is `false` when
|
|
4442
|
+
* deployment config set the workspace, which then cannot be changed at runtime.
|
|
4443
|
+
*/
|
|
4444
|
+
async function current(options = {}) {
|
|
4445
|
+
return (await transport.requestParsed(WorkspaceInstanceEnvelope, "/api/ee/workspace-instance/current", { ...options })).data;
|
|
4446
|
+
}
|
|
4447
|
+
return { current: explain("current", current) };
|
|
4448
|
+
}
|
|
4449
|
+
//#endregion
|
|
4450
|
+
//#region ../client/src/domain/workspace.ts
|
|
4451
|
+
const WorkspaceDatabaseStatus = z.enum([
|
|
4452
|
+
"unprovisioned",
|
|
4453
|
+
"provisioning",
|
|
4454
|
+
"provisioned",
|
|
4455
|
+
"deprovisioning"
|
|
4456
|
+
]);
|
|
4457
|
+
const WorkspaceDatabase = z.object({
|
|
4458
|
+
database_id: z.number().int(),
|
|
4459
|
+
input_schemas: z.array(z.string()),
|
|
4460
|
+
output_namespace: z.string(),
|
|
4461
|
+
status: WorkspaceDatabaseStatus
|
|
4462
|
+
}).loose();
|
|
4463
|
+
const WorkspaceDatabaseCompact = WorkspaceDatabase.pick({
|
|
4464
|
+
database_id: true,
|
|
4465
|
+
status: true
|
|
4466
|
+
}).strip();
|
|
4467
|
+
const WorkspaceCreator = z.object({
|
|
4468
|
+
id: z.number().int(),
|
|
4469
|
+
first_name: z.string().nullable(),
|
|
4470
|
+
last_name: z.string().nullable(),
|
|
4471
|
+
email: z.string(),
|
|
4472
|
+
common_name: z.string().nullable().optional()
|
|
4473
|
+
}).loose();
|
|
4474
|
+
const Workspace = z.object({
|
|
4475
|
+
id: z.number().int().positive(),
|
|
4476
|
+
name: z.string(),
|
|
4477
|
+
creator: WorkspaceCreator.nullable(),
|
|
4478
|
+
created_at: z.string(),
|
|
4479
|
+
updated_at: z.string(),
|
|
4480
|
+
databases: z.array(WorkspaceDatabase).optional()
|
|
4481
|
+
}).loose();
|
|
4482
|
+
Workspace.pick({
|
|
4483
|
+
id: true,
|
|
4484
|
+
name: true
|
|
4485
|
+
}).strip().extend({ databases: z.array(WorkspaceDatabaseCompact).optional() });
|
|
4486
|
+
z.object({
|
|
4487
|
+
name: z.string().min(1),
|
|
4488
|
+
database_ids: z.array(z.number().int().positive()).min(1)
|
|
4489
|
+
}).strict();
|
|
4490
|
+
//#endregion
|
|
4491
|
+
//#region ../client/src/resources/workspace-manager.ts
|
|
4492
|
+
const WORKSPACE_MANAGER_PATH = "/api/ee/workspace-manager";
|
|
4493
|
+
function workspaceManagerResource(transport) {
|
|
4494
|
+
const { explain } = explainer(transport, "workspaceManager");
|
|
4495
|
+
/** List all workspaces, each with its databases; admins only. `GET /api/ee/workspace-manager` answers a bare array. */
|
|
4496
|
+
async function list(options = {}) {
|
|
4497
|
+
return {
|
|
4498
|
+
data: await transport.requestParsed(z.array(Workspace), WORKSPACE_MANAGER_PATH, { ...options }),
|
|
4499
|
+
total: null
|
|
4500
|
+
};
|
|
4501
|
+
}
|
|
4502
|
+
/** Get a single workspace by id. */
|
|
4503
|
+
async function get(id, options = {}) {
|
|
4504
|
+
return transport.requestParsed(Workspace, `${WORKSPACE_MANAGER_PATH}/${id}`, { ...options });
|
|
4505
|
+
}
|
|
4506
|
+
/**
|
|
4507
|
+
* Create a workspace attached to the given databases, each of which must be eligible for
|
|
4508
|
+
* workspaces, and provision it. The server provisions every database before it answers, so the
|
|
4509
|
+
* caller sets a `timeoutMs` long enough for that. A provisioning failure whose cleanup also fails
|
|
4510
|
+
* answers the workspace with its databases `unprovisioned`, to be torn down by a delete.
|
|
4511
|
+
*/
|
|
4512
|
+
async function create(params, options = {}) {
|
|
4513
|
+
return transport.requestParsed(Workspace, WORKSPACE_MANAGER_PATH, {
|
|
4514
|
+
...options,
|
|
4515
|
+
method: "POST",
|
|
4516
|
+
body: params
|
|
4517
|
+
});
|
|
4518
|
+
}
|
|
4519
|
+
/**
|
|
4520
|
+
* Delete a workspace, tearing down every database's warehouse isolation first. When any teardown
|
|
4521
|
+
* fails the workspace is kept with the failed databases, so the delete can be retried.
|
|
4522
|
+
*/
|
|
4523
|
+
async function remove(id, options = {}) {
|
|
4524
|
+
await transport.requestRaw(`${WORKSPACE_MANAGER_PATH}/${id}`, {
|
|
4525
|
+
...options,
|
|
4526
|
+
method: "DELETE",
|
|
4527
|
+
expectContentType: "binary"
|
|
4528
|
+
});
|
|
4529
|
+
}
|
|
4530
|
+
/**
|
|
4531
|
+
* The workspace's developer-instance config, the YAML a Metabase boots from. It holds the
|
|
4532
|
+
* workspace's warehouse login. The server refuses with 409 while any of its databases is not
|
|
4533
|
+
* `provisioned`.
|
|
4534
|
+
*/
|
|
4535
|
+
async function config(id, options = {}) {
|
|
4536
|
+
return (await transport.requestRaw(`${WORKSPACE_MANAGER_PATH}/${id}/config`, {
|
|
4537
|
+
...options,
|
|
4538
|
+
expectContentType: "binary"
|
|
4539
|
+
})).text();
|
|
4540
|
+
}
|
|
4541
|
+
return {
|
|
4542
|
+
list: explain("list", list),
|
|
4543
|
+
get: explain("get", get),
|
|
4544
|
+
create: explain("create", create),
|
|
4545
|
+
delete: explain("delete", remove),
|
|
4546
|
+
config: explain("config", config)
|
|
4547
|
+
};
|
|
4160
4548
|
}
|
|
4161
4549
|
//#endregion
|
|
4162
4550
|
//#region ../client/src/client.ts
|
|
@@ -4180,6 +4568,7 @@ function createClient(config, options) {
|
|
|
4180
4568
|
field: fieldResource(transport),
|
|
4181
4569
|
gitSync: gitSyncResource(transport),
|
|
4182
4570
|
glossary: glossaryResource(transport),
|
|
4571
|
+
health: healthResource(transport),
|
|
4183
4572
|
library: libraryResource(transport),
|
|
4184
4573
|
measure: measureResource(transport),
|
|
4185
4574
|
metric: metricResource(transport),
|
|
@@ -4196,6 +4585,7 @@ function createClient(config, options) {
|
|
|
4196
4585
|
setup: setupResource(transport),
|
|
4197
4586
|
snippet: snippetResource(transport),
|
|
4198
4587
|
table: tableResource(transport),
|
|
4588
|
+
task: taskResource(transport),
|
|
4199
4589
|
timeline: timelineResource(transport),
|
|
4200
4590
|
timelineEvent: timelineEventResource(transport),
|
|
4201
4591
|
transform: transformResource(transport),
|
|
@@ -4207,6 +4597,8 @@ function createClient(config, options) {
|
|
|
4207
4597
|
transformTest: transformTestResource(transport),
|
|
4208
4598
|
upload: uploadResource(transport),
|
|
4209
4599
|
user: userResource(transport),
|
|
4600
|
+
workspaceInstance: workspaceInstanceResource(transport),
|
|
4601
|
+
workspaceManager: workspaceManagerResource(transport),
|
|
4210
4602
|
server: transport.server,
|
|
4211
4603
|
verifiedServer: transport.verifiedServer,
|
|
4212
4604
|
probesSettled: transport.probesSettled,
|
|
@@ -8,13 +8,13 @@ var collection_default = defineCommandGroup({
|
|
|
8
8
|
purpose: "collection ref forms and the transforms namespace"
|
|
9
9
|
}],
|
|
10
10
|
subCommands: {
|
|
11
|
-
list: () => import("./list-
|
|
12
|
-
get: () => import("./get-
|
|
13
|
-
items: () => import("./items-
|
|
14
|
-
tree: () => import("./tree-
|
|
15
|
-
create: () => import("./create-
|
|
16
|
-
update: () => import("./update-
|
|
17
|
-
archive: () => import("./archive-
|
|
11
|
+
list: () => import("./list-BmhbG3wJ.mjs").then((mod) => mod.default),
|
|
12
|
+
get: () => import("./get-DlUJRAgf.mjs").then((mod) => mod.default),
|
|
13
|
+
items: () => import("./items-CY8s_m8H.mjs").then((mod) => mod.default),
|
|
14
|
+
tree: () => import("./tree-CrI6CExE.mjs").then((mod) => mod.default),
|
|
15
|
+
create: () => import("./create-O6NRnXN2.mjs").then((mod) => mod.default),
|
|
16
|
+
update: () => import("./update-B2KG-bPS.mjs").then((mod) => mod.default),
|
|
17
|
+
archive: () => import("./archive-wFufkogP.mjs").then((mod) => mod.default)
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
//#endregion
|
|
@@ -4,8 +4,8 @@ var content_translation_default = defineCommandGroup({
|
|
|
4
4
|
name: "content-translation",
|
|
5
5
|
description: "Download or replace the content translation dictionary",
|
|
6
6
|
subCommands: {
|
|
7
|
-
download: () => import("./download-
|
|
8
|
-
upload: () => import("./upload-
|
|
7
|
+
download: () => import("./download-DOnWhcxJ.mjs").then((mod) => mod.default),
|
|
8
|
+
upload: () => import("./upload-BjannDFx.mjs").then((mod) => mod.default)
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
//#endregion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-DKKwr4c8.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
4
4
|
import { t as Document } from "./document-BHOQq2T_.mjs";
|
|
5
5
|
import { n as parseCopyFlags, t as copyFlags } from "./copy-flags-Bgy3sSFg.mjs";
|
|
6
6
|
import { t as documentView } from "./document-lS1XZEF3.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
2
|
import { t as parseId } from "./parse-id-DKKwr4c8.mjs";
|
|
3
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
3
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
4
4
|
import { r as DashboardCopy } from "./dashboard-Cwsf-e9T.mjs";
|
|
5
5
|
import { t as dashboardCopyView } from "./dashboard-Bx2sYijR.mjs";
|
|
6
6
|
import { n as parseCopyFlags, t as copyFlags } from "./copy-flags-Bgy3sSFg.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
4
|
import { r as TransformTestCreateInput, t as TransformTest } from "./transform-test-D6QIyu8C.mjs";
|
|
5
5
|
import { n as transformTestView } from "./transform-test-D-e9oi6r.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
4
|
import { i as CreatedApiKey, r as ApiKeyCreateInput } from "./api-key-DbsqHlN6.mjs";
|
|
5
5
|
import { n as createdApiKeyView } from "./api-key-9jVV67hF.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
4
|
import { r as TransformTagCreateInput, t as TransformTag } from "./transform-tag-CcElGp3C.mjs";
|
|
5
5
|
import { t as transformTagView } from "./transform-tag-Dmb4u3-Q.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
4
|
import { r as DocumentCreateInput, t as Document } from "./document-BHOQq2T_.mjs";
|
|
5
5
|
import { t as documentView } from "./document-lS1XZEF3.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
4
|
import { r as SnippetCreateInput, t as Snippet } from "./snippet-CyKAgIZl.mjs";
|
|
5
5
|
import { t as snippetView } from "./snippet-oJLaYW9V.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
4
|
import { a as DashboardCreateInput, s as DashboardLayoutInput, t as Dashboard } from "./dashboard-Cwsf-e9T.mjs";
|
|
5
5
|
import { n as dashboardView } from "./dashboard-Bx2sYijR.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
4
|
import { r as TransformCreateInput, t as Transform } from "./transform-B62craFM.mjs";
|
|
5
5
|
import { TRANSFORM_SOURCE_QUERY, skipValidateFlag } from "./validate-query-37KgmRbb.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
4
|
import { i as PulseCreateInput, t as Pulse } from "./pulse-B2AmIWsO.mjs";
|
|
5
5
|
import { t as pulseView } from "./pulse-BWs9tqVG.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { t as bodyInputFlags } from "./body-flags-AqKpN01Y.mjs";
|
|
4
4
|
import { r as TimelineCreateInput, t as Timeline } from "./timeline-DcsCXNUt.mjs";
|
|
5
5
|
import { n as timelineView } from "./timeline-BgWz8DYK.mjs";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ct as connectionFlags, f as renderSummary, mt as profileFlag, pt as outputFlags } from "./cli.mjs";
|
|
2
|
-
import { t as defineMetabaseCommand } from "./runtime-
|
|
2
|
+
import { t as defineMetabaseCommand } from "./runtime-icvfPElD.mjs";
|
|
3
3
|
import { r as GlossaryCreateInput, t as Glossary } from "./glossary-iPIWrEbP.mjs";
|
|
4
4
|
import { t as glossaryView } from "./glossary-CQRW3Z4d.mjs";
|
|
5
|
-
import { n as readEntryInput, t as entryFlags } from "./entry-flags-
|
|
5
|
+
import { n as readEntryInput, t as entryFlags } from "./entry-flags-ZsxJgNQX.mjs";
|
|
6
6
|
//#region src/commands/glossary/create.ts
|
|
7
7
|
var create_default = defineMetabaseCommand({
|
|
8
8
|
meta: {
|