@metabase/cli 0.1.8 → 0.1.10
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/.claude-plugin/marketplace.json +1 -1
- package/README.md +89 -236
- package/dist/add-collection-D9wXgmRj.mjs +10 -0
- package/dist/{add-collection-CwrbKmC1.mjs → add-collection-DUqTrC5T.mjs} +5 -5
- package/dist/{archive-DqUtqRut.mjs → archive-0krZxAXq.mjs} +5 -6
- package/dist/{archive-ZnnJc2iT.mjs → archive-44EWiXud.mjs} +6 -7
- package/dist/{archive-BpKZsGAm.mjs → archive-B59Y7ajB.mjs} +6 -7
- package/dist/{archive-BO3DOWI4.mjs → archive-BEIyIsin.mjs} +5 -6
- package/dist/{archive-BzvqQd34.mjs → archive-BZfpjMir.mjs} +5 -6
- package/dist/{archive-BAjGIzhn.mjs → archive-DtE2H4A6.mjs} +6 -7
- package/dist/archive-_GMNY8wH.mjs +39 -0
- package/dist/auth-cFC5m69m.mjs +19 -0
- package/dist/{body-DDYKoyMt.mjs → body-BdRyuvU4.mjs} +2 -2
- package/dist/{branches-DjiGsjAz.mjs → branches-Jpv-FNds.mjs} +5 -6
- package/dist/{cancel-BwtDQ2MR.mjs → cancel-ChC4lFd4.mjs} +4 -5
- package/dist/{cancel-task-uJp18RvR.mjs → cancel-task-DyhIkNaL.mjs} +5 -6
- package/dist/{render-0_GsapXa.mjs → capabilities-7L9GVMd_.mjs} +45 -4
- package/dist/card-ClvGX6dQ.mjs +20 -0
- package/dist/{card-ezYiriML.mjs → card-DnIeMmUn.mjs} +18 -2
- package/dist/{cards-z68PANDD.mjs → cards-O-nKkQKP.mjs} +5 -6
- package/dist/cli.mjs +24 -34
- package/dist/{collection-Bcy8cWYH.mjs → collection-BPTlcFw5.mjs} +8 -2
- package/dist/collection-DjvowSJC.mjs +20 -0
- package/dist/collection-namespace-7724zUMx.mjs +12 -0
- package/dist/{create-BzK59YlR.mjs → create-B4f4Pldw.mjs} +11 -12
- package/dist/{create-4EAGYVyp.mjs → create-BbF9zVFP.mjs} +12 -10
- package/dist/{create-Dd_Gyg_F.mjs → create-BnFHcnlL.mjs} +7 -8
- package/dist/{create-GVfCQU3B.mjs → create-BuKx7kw6.mjs} +7 -8
- package/dist/{create-CQ4Vg4Ge.mjs → create-BxRsXQrm.mjs} +9 -10
- package/dist/{create-7JOWFxqu.mjs → create-CvYKJOcE.mjs} +10 -11
- package/dist/create-D45uFXlo.mjs +44 -0
- package/dist/create-DS52EhPd.mjs +52 -0
- package/dist/{create-DHWfmO2L.mjs → create-DeZ2x2Db.mjs} +9 -10
- package/dist/{create-branch-CdWGiREu.mjs → create-branch-KOWUIE72.mjs} +5 -6
- package/dist/{current-task-nPs-iCLi.mjs → current-task-ClcWPPMc.mjs} +5 -6
- package/dist/dashboard-BFeURTOw.mjs +21 -0
- package/dist/{database-BXiue1in.mjs → database-Dsv4QBs0.mjs} +20 -10
- package/dist/db-CSH1kwQr.mjs +22 -0
- package/dist/{delete-CJqLgr6w.mjs → delete-CX2VUA5R.mjs} +6 -7
- package/dist/{delete-Do1agSiL.mjs → delete-D68oS73R.mjs} +6 -7
- package/dist/{delete-runtime-uuYbd4k2.mjs → delete-runtime-CjFc69tS.mjs} +2 -2
- package/dist/{delete-table-ZiJDpMFT.mjs → delete-table-DLvL9mDA.mjs} +6 -7
- package/dist/{dirty-BnTG7w7v.mjs → dirty-1OrXpc7E.mjs} +5 -6
- package/dist/document-CcfiiV3b.mjs +100 -0
- package/dist/document-KdT_Xj6r.mjs +19 -0
- package/dist/{eid-CwQ_smOD.mjs → eid-CzLhHZMW.mjs} +6 -7
- package/dist/{error-CTVL5CdB.mjs → error-BWXBhqLW.mjs} +1 -1
- package/dist/{export-DR2cC4rL.mjs → export-B5z8w-xo.mjs} +7 -8
- package/dist/field-CTFnZI8G.mjs +18 -0
- package/dist/{fields-Ck31lDz9.mjs → fields-sC7pzmPX.mjs} +6 -7
- package/dist/{get-pO0wiy1e.mjs → get-4GEDd9YN.mjs} +5 -6
- package/dist/get-BC60bhel.mjs +36 -0
- package/dist/{get-CyG_P55z.mjs → get-BYw3xS0X.mjs} +6 -7
- package/dist/{get-C71ypFQk.mjs → get-Bo1FGyFs.mjs} +5 -6
- package/dist/{get-BNKsNCcx.mjs → get-ByZ4HR2T.mjs} +5 -6
- package/dist/{get-DxqzDKKK.mjs → get-C6n86-dS.mjs} +5 -6
- package/dist/{get-DyArILlF.mjs → get-CHb6J908.mjs} +5 -6
- package/dist/{get-F338MOK-.mjs → get-DLwb_gUh.mjs} +5 -6
- package/dist/{get-CICzGFSW.mjs → get-DTHLETau.mjs} +6 -7
- package/dist/{get-BFJ3VBPa.mjs → get-Dl62Fy6Y.mjs} +5 -6
- package/dist/{get-BZiu-u-9.mjs → get-Fn9WkNhS.mjs} +7 -8
- package/dist/{get-GWRprk7k.mjs → get-ZesERdyk.mjs} +5 -7
- package/dist/{get-BPOd0Rm8.mjs → get-lcX52Skc.mjs} +5 -6
- package/dist/{get-DauAF3sm.mjs → get-reSMTfQi.mjs} +5 -6
- package/dist/{get-run-DhM_PyVy.mjs → get-run-CpCbHJad.mjs} +5 -6
- package/dist/git-sync-C2vib8rx.mjs +28 -0
- package/dist/{has-remote-changes-Ca0exJmb.mjs → has-remote-changes-CPz_-uxd.mjs} +5 -6
- package/dist/{import-DjclIzGP.mjs → import-DaWgprK6.mjs} +7 -8
- package/dist/is-dirty-Bb0Rtj7x.mjs +9 -0
- package/dist/{is-dirty-Cke0a1ie.mjs → is-dirty-DZlI7lQx.mjs} +4 -4
- package/dist/{items-BSpapmCU.mjs → items-hgbRYsYD.mjs} +7 -8
- package/dist/{list-BI1PfPjn.mjs → list-36H-dvJZ.mjs} +5 -6
- package/dist/list-B9J3ujwn.mjs +32 -0
- package/dist/{list-BRXGDSMo.mjs → list-BGerkRHH.mjs} +5 -6
- package/dist/{list-CEE9yKNp.mjs → list-BWv5y307.mjs} +4 -5
- package/dist/{list-V5IuMr_5.mjs → list-BgHESP7b.mjs} +4 -5
- package/dist/{list-DWWGcUTg.mjs → list-CCZnH2-Z.mjs} +5 -7
- package/dist/{list-Fjjtpghb.mjs → list-CGdOC9zX.mjs} +6 -7
- package/dist/{list-DmO4ADQq.mjs → list-CKeVS1IZ.mjs} +4 -5
- package/dist/{list-D1qhCQn0.mjs → list-Cd2nOCAx.mjs} +6 -7
- package/dist/{list-fIV-P6wP.mjs → list-D9EuxFHO.mjs} +4 -5
- package/dist/{list-Br77Mw6U.mjs → list-DBlsRSpZ.mjs} +5 -6
- package/dist/{list-bVlCwg8g.mjs → list-DO8T-nmF.mjs} +4 -5
- package/dist/{list-Brt4oKO7.mjs → list-DOVX3vCb.mjs} +6 -7
- package/dist/{list-DUyWON1F.mjs → list-kath_2cX.mjs} +4 -5
- package/dist/{login-BJGhZLgZ.mjs → login-BzrAGJfu.mjs} +9 -10
- package/dist/{logout-BAGLqtnV.mjs → logout-CKBiltoS.mjs} +4 -5
- package/dist/{manifest-BNh0Lw6p.mjs → manifest-BPHqF5LY.mjs} +1 -2
- package/dist/measure-Dw1QpRZa.mjs +19 -0
- package/dist/{metadata-B-GOcWqL.mjs → metadata-BcGcUEVJ.mjs} +6 -7
- package/dist/{metadata-DJAdsOoh.mjs → metadata-BjOrKtnv.mjs} +7 -8
- package/dist/{parse-id-D1LTTt9L.mjs → parse-id--iVTCKSo.mjs} +1 -1
- package/dist/{path-D5kX-msX.mjs → path-LgGU6Bd0.mjs} +4 -6
- package/dist/{poll-DxpnK1wW.mjs → poll-BucRFJT-.mjs} +1 -1
- package/dist/{poll-task-D8mG49IN.mjs → poll-task-DTzKB3T3.mjs} +2 -2
- package/dist/{preflight-Df_FqJ6o.mjs → preflight-CzqVX0PP.mjs} +3 -3
- package/dist/{query-zWFRDH3T.mjs → query-BVZkK6Qk.mjs} +7 -8
- package/dist/{query-OIuumiXN.mjs → query-DG_jygDF.mjs} +11 -12
- package/dist/{query-result-ABPLz6I4.mjs → query-result-B4kTRid7.mjs} +1 -1
- package/dist/{remove-collection-BxmiXWKz.mjs → remove-collection-HdeAfLyi.mjs} +7 -8
- package/dist/{rescan-values-M7g81KIl.mjs → rescan-values-hWubCruZ.mjs} +8 -11
- package/dist/run-C1-lDmQF.mjs +136 -0
- package/dist/{runs-CqfJIuh_.mjs → runs-Q6DYQyqj.mjs} +6 -7
- package/dist/{runtime-B40L_bj8.mjs → runtime-colqvhLf.mjs} +11 -78
- package/dist/{schema-tables-CjBRF0_0.mjs → schema-tables-BEastV_8.mjs} +6 -7
- package/dist/{schemas-GIIbek2O.mjs → schemas-CgawwI_k.mjs} +4 -5
- package/dist/{search-h78uOYec.mjs → search-BWo7xSPP.mjs} +4 -5
- package/dist/segment-DMuYvFjg.mjs +19 -0
- package/dist/{set-BRDxcLcQ.mjs → set-7Nm2ZTb_.mjs} +7 -8
- package/dist/{setting-mKzZJpQY.mjs → setting-DSGXJehQ.mjs} +3 -3
- package/dist/{setup-WTIT2WbM.mjs → setup-aJLGLrIT.mjs} +6 -7
- package/dist/{skills-BkregMyb.mjs → skills-CY_FmaPo.mjs} +33 -2
- package/dist/skills-Q2AFsYvc.mjs +18 -0
- package/dist/snippet-Df2TrP7-.mjs +19 -0
- package/dist/{stash-DxoAJzcK.mjs → stash-DPQ0c-Cd.mjs} +7 -8
- package/dist/{status-B1dc3bbQ.mjs → status-CvAATvV0.mjs} +4 -5
- package/dist/{status-D0Ukfodl.mjs → status-CvKPrV5X.mjs} +6 -7
- package/dist/{summary-3qOMUcEX.mjs → summary-CeOnoOq2.mjs} +5 -6
- package/dist/sync-schema-aOPBc3CY.mjs +55 -0
- package/dist/{table-qDD2kApF.mjs → table-CkWja2UH.mjs} +1 -1
- package/dist/table-pK4OkVtL.mjs +19 -0
- package/dist/{transform-BKahefz_.mjs → transform--dviwMA1.mjs} +1 -0
- package/dist/transform-D60veFH8.mjs +24 -0
- package/dist/transform-job-DXt5LsrY.mjs +19 -0
- package/dist/{tree-DsnIPFyE.mjs → tree-MOQOBeAP.mjs} +4 -5
- package/dist/update-57uxZWcR.mjs +52 -0
- package/dist/{update-CLsqoEJ8.mjs → update-B6mg3AZD.mjs} +8 -9
- package/dist/{update-CZEd_Eej.mjs → update-BD9xkglP.mjs} +9 -10
- package/dist/{update-BEtl9LpG.mjs → update-BRrnfG0q.mjs} +8 -9
- package/dist/{update-DPouQi4U.mjs → update-BWyCK8QV.mjs} +13 -11
- package/dist/{update-DWn-nLPo.mjs → update-Bj9s0ri8.mjs} +8 -9
- package/dist/{update-BsgHRoZ8.mjs → update-BkMWBzvk.mjs} +11 -12
- package/dist/{update-Baya6OkO.mjs → update-CitS-QRN.mjs} +12 -13
- package/dist/{update-BRLcnSwK.mjs → update-DfNKr_vS.mjs} +10 -11
- package/dist/{update-UaPqSfPN.mjs → update-Dri4Zg2H.mjs} +10 -11
- package/dist/{update-dashcard-DK9X91ha.mjs → update-dashcard-D_-ura3Y.mjs} +8 -9
- package/dist/{upgrade-UqdvTikR.mjs → upgrade-CFkZ4USY.mjs} +34 -7
- package/dist/{uuid-BWCaWG4O.mjs → uuid-DpinhSxA.mjs} +3 -4
- package/dist/{validate-dPEOnOf8.mjs → validate-B62TRDGV.mjs} +1 -1
- package/dist/{validate-query-CYvOP8Ld.mjs → validate-query-BpiN1CFu.mjs} +2 -2
- package/dist/{values-D_wycrcr.mjs → values-BSS4DRxk.mjs} +5 -6
- package/dist/{verify-D7hb6VMy.mjs → verify-B_A7v8TY.mjs} +1 -1
- package/dist/{wait-B5IpNFCG.mjs → wait-D3iSnjMM.mjs} +6 -7
- package/dist/{wait-flags-CNIeSq0_.mjs → wait-flags-_LnHOeBA.mjs} +2 -2
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +19 -32
- package/skill-data/document/SKILL.md +162 -0
- package/skill-data/git-sync/SKILL.md +8 -63
- package/skill-data/mbql/SKILL.md +95 -28
- package/skill-data/mbql/references/operators.md +13 -13
- package/skill-data/transform/SKILL.md +18 -7
- package/skills/metabase-cli/SKILL.md +1 -1
- package/dist/add-collection-DxtuNxeP.mjs +0 -11
- package/dist/auth-B9B4pUaH.mjs +0 -19
- package/dist/capabilities-7e9MgquN.mjs +0 -29
- package/dist/card-D54unw6r.mjs +0 -20
- package/dist/collection-B5kIKRTL.mjs +0 -20
- package/dist/create-6XE7GYxk.mjs +0 -45
- package/dist/create-C8gA-XP2.mjs +0 -54
- package/dist/credentials-CFA9iGZG.mjs +0 -88
- package/dist/dashboard-lw6IFfOs.mjs +0 -21
- package/dist/database-BPT6BrmF.mjs +0 -17
- package/dist/db-CBCj8sBg.mjs +0 -22
- package/dist/delete-CiV6f69N.mjs +0 -104
- package/dist/deprovision-C-qEnh-P.mjs +0 -67
- package/dist/docker-B-QQWThD.mjs +0 -515
- package/dist/field-DJmQ2pul.mjs +0 -18
- package/dist/git-sync-rmjYOGFK.mjs +0 -28
- package/dist/is-dirty-DFGgGLDi.mjs +0 -10
- package/dist/license-j0tDQLKI.mjs +0 -17
- package/dist/list-evetBTcH.mjs +0 -36
- package/dist/logs-jx5b_YDk.mjs +0 -60
- package/dist/measure-BfgxqewH.mjs +0 -19
- package/dist/parse-schemas-DDK9nXuh.mjs +0 -12
- package/dist/process-CM7Uu5q_.mjs +0 -105
- package/dist/provision-BJd6zO1D.mjs +0 -83
- package/dist/ps-CpyHEvv7.mjs +0 -11
- package/dist/ps-dEqRGeB3.mjs +0 -80
- package/dist/remove-BNQ1c6hB.mjs +0 -64
- package/dist/run-DTsx8bLb.mjs +0 -96
- package/dist/segment-CoElN2b-.mjs +0 -19
- package/dist/set-Dclba9xF.mjs +0 -68
- package/dist/skills-tMYd5d9v.mjs +0 -18
- package/dist/snippet-B84H3tfp.mjs +0 -19
- package/dist/start-B7ByBicB.mjs +0 -414
- package/dist/status-DAzD1Cn_.mjs +0 -34
- package/dist/stop-Cvexagxh.mjs +0 -87
- package/dist/sync-schema-CrmVX1cy.mjs +0 -44
- package/dist/table-B0fRQv91.mjs +0 -19
- package/dist/transform-K_kp6Rdm.mjs +0 -24
- package/dist/transform-job-CuNN8zgv.mjs +0 -19
- package/dist/update-hiJdbbsb.mjs +0 -78
- package/dist/url-LMJZRDv4.mjs +0 -56
- package/dist/wait-DHjXk3jD.mjs +0 -19
- package/dist/workspace-Bt8n3ojY.mjs +0 -25
- package/dist/workspace-D8HtUN0y.mjs +0 -72
- package/dist/workspace-credentials-8CBMQJFz.mjs +0 -100
- package/dist/yaml-Gv6wRFMF.mjs +0 -43
- package/skill-data/workspace/SKILL.md +0 -390
- /package/dist/{body-flags-D7q87Btw.mjs → body-flags-D78h_-Ua.mjs} +0 -0
- /package/dist/{dashboard-B4bn3z6t.mjs → dashboard-FY5UzJ_Z.mjs} +0 -0
- /package/dist/{field-E0IBy4Uw.mjs → field-MGxpNQUH.mjs} +0 -0
- /package/dist/{input-cMSEqISy.mjs → input-xewHccej.mjs} +0 -0
- /package/dist/{key-vkNkH82H.mjs → key-y4TtxKwU.mjs} +0 -0
- /package/dist/{measure-Bt3InQsA.mjs → measure-COGAoZpo.mjs} +0 -0
- /package/dist/{paginate-BexjkjbY.mjs → paginate-Dfm9eO9A.mjs} +0 -0
- /package/dist/{parse-enum-CrEWOhuY.mjs → parse-enum-Dr7ACrTR.mjs} +0 -0
- /package/dist/{parse-ref-DKag6a6I.mjs → parse-ref-BiETXmvm.mjs} +0 -0
- /package/dist/{prompt-CFKoys7k.mjs → prompt-u4WhE4T5.mjs} +0 -0
- /package/dist/{render-khznBlla.mjs → render-BQHJhSP1.mjs} +0 -0
- /package/dist/{revision-message-flag-DY29-cgz.mjs → revision-message-flag-Bo-Kvv6F.mjs} +0 -0
- /package/dist/{segment-DhBmcr_E.mjs → segment-d-708KKO.mjs} +0 -0
- /package/dist/{setting-BzCng1Ub.mjs → setting-CSJvi1-6.mjs} +0 -0
- /package/dist/{snippet-bi_0XbNT.mjs → snippet-BZvo05ua.mjs} +0 -0
- /package/dist/{transform-job-DjhoJbiV.mjs → transform-job-n8W6tLqF.mjs} +0 -0
package/dist/create-6XE7GYxk.mjs
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
|
|
3
|
-
import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import { renderSummary } from "./render-0_GsapXa.mjs";
|
|
6
|
-
import "./input-cMSEqISy.mjs";
|
|
7
|
-
import { readBody } from "./body-DDYKoyMt.mjs";
|
|
8
|
-
import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
|
|
9
|
-
import { Collection, CollectionCreateInput, collectionView } from "./collection-Bcy8cWYH.mjs";
|
|
10
|
-
|
|
11
|
-
//#region src/commands/collection/create.ts
|
|
12
|
-
var create_default = defineMetabaseCommand({
|
|
13
|
-
meta: {
|
|
14
|
-
name: "create",
|
|
15
|
-
description: "Create a collection from a JSON spec"
|
|
16
|
-
},
|
|
17
|
-
capabilities: { minVersion: 58 },
|
|
18
|
-
args: {
|
|
19
|
-
...outputFlags,
|
|
20
|
-
...profileFlag,
|
|
21
|
-
...connectionFlags,
|
|
22
|
-
...bodyInputFlags
|
|
23
|
-
},
|
|
24
|
-
outputSchema: Collection,
|
|
25
|
-
examples: [
|
|
26
|
-
"cat collection.json | mb collection create",
|
|
27
|
-
"mb collection create --file collection.json",
|
|
28
|
-
"mb collection create --body '{\"name\":\"My Collection\",\"parent_id\":4}'"
|
|
29
|
-
],
|
|
30
|
-
async run({ args, ctx, getClient }) {
|
|
31
|
-
const body = await readBody({
|
|
32
|
-
flag: args.body,
|
|
33
|
-
file: args.file
|
|
34
|
-
}, CollectionCreateInput);
|
|
35
|
-
const client = await getClient();
|
|
36
|
-
const created = await client.requestParsed(Collection, "/api/collection", {
|
|
37
|
-
method: "POST",
|
|
38
|
-
body
|
|
39
|
-
});
|
|
40
|
-
renderSummary(created, collectionView, `Created collection ${created.id} "${created.name}".`, ctx);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
//#endregion
|
|
45
|
-
export { create_default as default };
|
package/dist/create-C8gA-XP2.mjs
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
|
|
3
|
-
import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import { renderSummary } from "./render-0_GsapXa.mjs";
|
|
6
|
-
import "./input-cMSEqISy.mjs";
|
|
7
|
-
import { readBody } from "./body-DDYKoyMt.mjs";
|
|
8
|
-
import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
|
|
9
|
-
import { Workspace, WorkspaceCreateInput, workspaceView } from "./workspace-D8HtUN0y.mjs";
|
|
10
|
-
|
|
11
|
-
//#region src/commands/workspace/create.ts
|
|
12
|
-
var create_default = defineMetabaseCommand({
|
|
13
|
-
meta: {
|
|
14
|
-
name: "create",
|
|
15
|
-
description: "Create a workspace"
|
|
16
|
-
},
|
|
17
|
-
capabilities: {
|
|
18
|
-
minVersion: 62,
|
|
19
|
-
tokenFeature: "workspaces"
|
|
20
|
-
},
|
|
21
|
-
args: {
|
|
22
|
-
...outputFlags,
|
|
23
|
-
...profileFlag,
|
|
24
|
-
...connectionFlags,
|
|
25
|
-
...bodyInputFlags,
|
|
26
|
-
name: {
|
|
27
|
-
type: "string",
|
|
28
|
-
description: "Workspace name (alternative to --body / --file)"
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
outputSchema: Workspace,
|
|
32
|
-
examples: [
|
|
33
|
-
"mb workspace create --name \"analytics\"",
|
|
34
|
-
"echo '{\"name\":\"analytics\"}' | mb workspace create",
|
|
35
|
-
"mb workspace create --file workspace.json"
|
|
36
|
-
],
|
|
37
|
-
async run({ args, ctx, getClient }) {
|
|
38
|
-
const body = args.name !== void 0 && args.name !== "" ? WorkspaceCreateInput.parse({ name: args.name }) : await readBody({
|
|
39
|
-
flag: args.body,
|
|
40
|
-
file: args.file
|
|
41
|
-
}, WorkspaceCreateInput);
|
|
42
|
-
const client = await getClient();
|
|
43
|
-
const created = await client.requestParsed(Workspace, "/api/ee/workspace-manager", {
|
|
44
|
-
method: "POST",
|
|
45
|
-
body
|
|
46
|
-
});
|
|
47
|
-
const hasDatabases = (created.databases ?? []).length > 0;
|
|
48
|
-
const hint = hasDatabases ? "" : " No databases yet — run `mb workspace database provision`.";
|
|
49
|
-
renderSummary(created, workspaceView, `Created workspace ${created.id} "${created.name}".${hint}`, ctx);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
//#endregion
|
|
54
|
-
export { create_default as default };
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { outputFlags } from "./error-CTVL5CdB.mjs";
|
|
3
|
-
import { defineMetabaseCommand, localUrl, parseJson } from "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import { renderItem } from "./render-0_GsapXa.mjs";
|
|
6
|
-
import { parseId } from "./parse-id-D1LTTt9L.mjs";
|
|
7
|
-
import "./poll-DxpnK1wW.mjs";
|
|
8
|
-
import "./yaml-Gv6wRFMF.mjs";
|
|
9
|
-
import "./process-CM7Uu5q_.mjs";
|
|
10
|
-
import { checkDockerReady, readContainerCredentialsFile, requireWorkspaceContainerLocation } from "./docker-B-QQWThD.mjs";
|
|
11
|
-
import { WorkspaceCredentials } from "./workspace-credentials-8CBMQJFz.mjs";
|
|
12
|
-
import { z } from "zod";
|
|
13
|
-
|
|
14
|
-
//#region src/commands/workspace/credentials.ts
|
|
15
|
-
const WorkspaceCredentialsResult = z.object({
|
|
16
|
-
workspace_id: z.number().int().positive(),
|
|
17
|
-
url: z.string(),
|
|
18
|
-
email: z.string(),
|
|
19
|
-
password: z.string(),
|
|
20
|
-
api_key_name: z.string(),
|
|
21
|
-
api_key: z.string()
|
|
22
|
-
});
|
|
23
|
-
const credentialsView = {
|
|
24
|
-
compactPick: WorkspaceCredentialsResult,
|
|
25
|
-
tableColumns: [
|
|
26
|
-
{
|
|
27
|
-
key: "workspace_id",
|
|
28
|
-
label: "ID"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
key: "url",
|
|
32
|
-
label: "URL"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
key: "email",
|
|
36
|
-
label: "Email"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
key: "password",
|
|
40
|
-
label: "Password"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
key: "api_key_name",
|
|
44
|
-
label: "API Key Name"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
key: "api_key",
|
|
48
|
-
label: "API Key"
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
};
|
|
52
|
-
const textDecoder = new TextDecoder("utf-8");
|
|
53
|
-
var credentials_default = defineMetabaseCommand({
|
|
54
|
-
meta: {
|
|
55
|
-
name: "credentials",
|
|
56
|
-
description: "Read the workspace child instance's admin credentials (email + password + API key) from the running container"
|
|
57
|
-
},
|
|
58
|
-
capabilities: null,
|
|
59
|
-
args: {
|
|
60
|
-
...outputFlags,
|
|
61
|
-
id: {
|
|
62
|
-
type: "positional",
|
|
63
|
-
description: "Workspace id",
|
|
64
|
-
required: true
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
outputSchema: WorkspaceCredentialsResult,
|
|
68
|
-
examples: ["mb workspace credentials 1", "mb workspace credentials 1 --json"],
|
|
69
|
-
async run({ args, ctx }) {
|
|
70
|
-
const workspaceId = parseId(args.id);
|
|
71
|
-
await checkDockerReady();
|
|
72
|
-
const { containerName, hostPort } = await requireWorkspaceContainerLocation(workspaceId);
|
|
73
|
-
const bytes = await readContainerCredentialsFile(workspaceId);
|
|
74
|
-
const credentials = parseJson(textDecoder.decode(bytes), WorkspaceCredentials, { source: `${containerName}:credentials.json` });
|
|
75
|
-
const result = {
|
|
76
|
-
workspace_id: workspaceId,
|
|
77
|
-
url: localUrl(hostPort),
|
|
78
|
-
email: credentials.user.email,
|
|
79
|
-
password: credentials.user.password,
|
|
80
|
-
api_key_name: credentials.api_key.name,
|
|
81
|
-
api_key: credentials.api_key.key
|
|
82
|
-
};
|
|
83
|
-
renderItem(result, credentialsView, ctx);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
//#endregion
|
|
88
|
-
export { credentials_default as default };
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/dashboard/index.ts
|
|
4
|
-
var dashboard_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "dashboard",
|
|
7
|
-
description: "Manage Metabase dashboards"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-Br77Mw6U.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-BNKsNCcx.mjs").then((mod) => mod.default),
|
|
12
|
-
cards: () => import("./cards-z68PANDD.mjs").then((mod) => mod.default),
|
|
13
|
-
create: () => import("./create-BzK59YlR.mjs").then((mod) => mod.default),
|
|
14
|
-
update: () => import("./update-Baya6OkO.mjs").then((mod) => mod.default),
|
|
15
|
-
"update-dashcard": () => import("./update-dashcard-DK9X91ha.mjs").then((mod) => mod.default),
|
|
16
|
-
archive: () => import("./archive-DqUtqRut.mjs").then((mod) => mod.default)
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
//#endregion
|
|
21
|
-
export { dashboard_default as default };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/workspace/database/index.ts
|
|
4
|
-
var database_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "database",
|
|
7
|
-
description: "Manage databases provisioned to a workspace"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
provision: () => import("./provision-BJd6zO1D.mjs").then((mod) => mod.default),
|
|
11
|
-
update: () => import("./update-hiJdbbsb.mjs").then((mod) => mod.default),
|
|
12
|
-
deprovision: () => import("./deprovision-C-qEnh-P.mjs").then((mod) => mod.default)
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
//#endregion
|
|
17
|
-
export { database_default as default };
|
package/dist/db-CBCj8sBg.mjs
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/db/index.ts
|
|
4
|
-
var db_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "db",
|
|
7
|
-
description: "Inspect and sync Metabase databases",
|
|
8
|
-
alias: "database"
|
|
9
|
-
},
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-D1qhCQn0.mjs").then((m) => m.default),
|
|
12
|
-
get: () => import("./get-BZiu-u-9.mjs").then((m) => m.default),
|
|
13
|
-
metadata: () => import("./metadata-DJAdsOoh.mjs").then((m) => m.default),
|
|
14
|
-
schemas: () => import("./schemas-GIIbek2O.mjs").then((m) => m.default),
|
|
15
|
-
"schema-tables": () => import("./schema-tables-CjBRF0_0.mjs").then((m) => m.default),
|
|
16
|
-
"sync-schema": () => import("./sync-schema-CrmVX1cy.mjs").then((m) => m.default),
|
|
17
|
-
"rescan-values": () => import("./rescan-values-M7g81KIl.mjs").then((m) => m.default)
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
export { db_default as default };
|
package/dist/delete-CiV6f69N.mjs
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { outputFlags } from "./error-CTVL5CdB.mjs";
|
|
3
|
-
import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import { renderSummary } from "./render-0_GsapXa.mjs";
|
|
6
|
-
import { promptConfirm } from "./prompt-CFKoys7k.mjs";
|
|
7
|
-
import { parseId } from "./parse-id-D1LTTt9L.mjs";
|
|
8
|
-
import "./poll-DxpnK1wW.mjs";
|
|
9
|
-
import "./process-CM7Uu5q_.mjs";
|
|
10
|
-
import { checkDockerReady, containerNameFor, removeContainer, removeVolume, volumeNameFor } from "./docker-B-QQWThD.mjs";
|
|
11
|
-
import { z } from "zod";
|
|
12
|
-
|
|
13
|
-
//#region src/commands/workspace/delete.ts
|
|
14
|
-
const DeleteResult = z.object({
|
|
15
|
-
workspace_id: z.number().int().positive(),
|
|
16
|
-
container_name: z.string(),
|
|
17
|
-
volume_name: z.string(),
|
|
18
|
-
removed_container: z.boolean(),
|
|
19
|
-
removed_volume: z.boolean()
|
|
20
|
-
});
|
|
21
|
-
const deleteResultView = {
|
|
22
|
-
compactPick: DeleteResult.pick({
|
|
23
|
-
workspace_id: true,
|
|
24
|
-
removed_container: true,
|
|
25
|
-
removed_volume: true
|
|
26
|
-
}).strip(),
|
|
27
|
-
tableColumns: [
|
|
28
|
-
{
|
|
29
|
-
key: "workspace_id",
|
|
30
|
-
label: "ID"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
key: "container_name",
|
|
34
|
-
label: "Container"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
key: "volume_name",
|
|
38
|
-
label: "Volume"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
key: "removed_container",
|
|
42
|
-
label: "Removed Container"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
key: "removed_volume",
|
|
46
|
-
label: "Removed Volume"
|
|
47
|
-
}
|
|
48
|
-
]
|
|
49
|
-
};
|
|
50
|
-
var delete_default = defineMetabaseCommand({
|
|
51
|
-
meta: {
|
|
52
|
-
name: "delete",
|
|
53
|
-
description: "Stop and remove the local container + app-db volume (does not affect remote)"
|
|
54
|
-
},
|
|
55
|
-
capabilities: null,
|
|
56
|
-
args: {
|
|
57
|
-
...outputFlags,
|
|
58
|
-
id: {
|
|
59
|
-
type: "positional",
|
|
60
|
-
description: "Workspace id",
|
|
61
|
-
required: true
|
|
62
|
-
},
|
|
63
|
-
"keep-volume": {
|
|
64
|
-
type: "boolean",
|
|
65
|
-
description: "Keep the workspace's app-db volume (faster restart, app-db survives)",
|
|
66
|
-
default: false
|
|
67
|
-
},
|
|
68
|
-
yes: {
|
|
69
|
-
type: "boolean",
|
|
70
|
-
description: "Skip the confirmation prompt",
|
|
71
|
-
default: false
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
outputSchema: DeleteResult,
|
|
75
|
-
examples: ["mb workspace delete 1 --yes", "mb workspace delete 1 --keep-volume --yes"],
|
|
76
|
-
async run({ args, ctx }) {
|
|
77
|
-
const workspaceId = parseId(args.id);
|
|
78
|
-
const containerName = containerNameFor(workspaceId);
|
|
79
|
-
const volumeName = volumeNameFor(workspaceId);
|
|
80
|
-
const shouldRemoveVolume = args["keep-volume"] !== true;
|
|
81
|
-
await checkDockerReady();
|
|
82
|
-
if (!args.yes && process.stdin.isTTY === true) {
|
|
83
|
-
const confirmed = await promptConfirm({ message: shouldRemoveVolume ? `Remove container ${containerName} and its app-db volume ${volumeName}?` : `Remove container ${containerName}? (volume ${volumeName} will be kept)` });
|
|
84
|
-
if (!confirmed) return;
|
|
85
|
-
}
|
|
86
|
-
const removedContainer = await removeContainer(containerName);
|
|
87
|
-
const removedVolume = shouldRemoveVolume ? await removeVolume(volumeName) : false;
|
|
88
|
-
const result = {
|
|
89
|
-
workspace_id: workspaceId,
|
|
90
|
-
container_name: containerName,
|
|
91
|
-
volume_name: volumeName,
|
|
92
|
-
removed_container: removedContainer,
|
|
93
|
-
removed_volume: removedVolume
|
|
94
|
-
};
|
|
95
|
-
let message;
|
|
96
|
-
if (!result.removed_container) message = `No container found for workspace ${workspaceId} — nothing to remove.`;
|
|
97
|
-
else if (result.removed_volume) message = `Removed workspace ${workspaceId}: container ${containerName} and app-db volume ${volumeName}.`;
|
|
98
|
-
else message = `Removed workspace ${workspaceId}: container ${containerName} (volume ${volumeName} kept).`;
|
|
99
|
-
renderSummary(result, deleteResultView, message, ctx);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
//#endregion
|
|
104
|
-
export { delete_default as default };
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
|
|
3
|
-
import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import "./render-0_GsapXa.mjs";
|
|
6
|
-
import "./prompt-CFKoys7k.mjs";
|
|
7
|
-
import { parseId } from "./parse-id-D1LTTt9L.mjs";
|
|
8
|
-
import "./poll-DxpnK1wW.mjs";
|
|
9
|
-
import { parseWaitFlags, waitFlags } from "./wait-flags-CNIeSq0_.mjs";
|
|
10
|
-
import { DeleteResult, confirmAndDelete } from "./delete-runtime-uuYbd4k2.mjs";
|
|
11
|
-
import "./workspace-D8HtUN0y.mjs";
|
|
12
|
-
import { waitForDatabaseGone } from "./wait-DHjXk3jD.mjs";
|
|
13
|
-
|
|
14
|
-
//#region src/commands/workspace/database/deprovision.ts
|
|
15
|
-
var deprovision_default = defineMetabaseCommand({
|
|
16
|
-
meta: {
|
|
17
|
-
name: "deprovision",
|
|
18
|
-
description: "Deprovision a database from a workspace"
|
|
19
|
-
},
|
|
20
|
-
capabilities: {
|
|
21
|
-
minVersion: 62,
|
|
22
|
-
tokenFeature: "workspaces"
|
|
23
|
-
},
|
|
24
|
-
args: {
|
|
25
|
-
...outputFlags,
|
|
26
|
-
...profileFlag,
|
|
27
|
-
...connectionFlags,
|
|
28
|
-
...waitFlags,
|
|
29
|
-
yes: {
|
|
30
|
-
type: "boolean",
|
|
31
|
-
description: "Skip confirmation",
|
|
32
|
-
default: false
|
|
33
|
-
},
|
|
34
|
-
id: {
|
|
35
|
-
type: "positional",
|
|
36
|
-
description: "Workspace id",
|
|
37
|
-
required: true
|
|
38
|
-
},
|
|
39
|
-
"db-id": {
|
|
40
|
-
type: "positional",
|
|
41
|
-
description: "Database id",
|
|
42
|
-
required: true
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
outputSchema: DeleteResult,
|
|
46
|
-
examples: ["mb workspace database deprovision 1 5 --yes", "mb workspace database deprovision 1 5 --yes --wait"],
|
|
47
|
-
async run({ args, ctx, getClient }) {
|
|
48
|
-
const workspaceId = parseId(args.id);
|
|
49
|
-
const databaseId = parseId(args["db-id"], "db-id");
|
|
50
|
-
const wait = parseWaitFlags(args);
|
|
51
|
-
const client = await getClient();
|
|
52
|
-
await confirmAndDelete({
|
|
53
|
-
id: databaseId,
|
|
54
|
-
path: `/api/ee/workspace-manager/${workspaceId}/database/${databaseId}`,
|
|
55
|
-
yes: args.yes,
|
|
56
|
-
promptMessage: `Deprovision database ${databaseId} from workspace ${workspaceId}?`,
|
|
57
|
-
successMessage: `Deprovisioned database ${databaseId} from workspace ${workspaceId}.`,
|
|
58
|
-
abortMessage: `Aborted; database ${databaseId} was not deprovisioned.`,
|
|
59
|
-
client,
|
|
60
|
-
ctx,
|
|
61
|
-
...wait.enabled ? { afterDelete: () => waitForDatabaseGone(client, workspaceId, databaseId, wait.schedule) } : {}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
//#endregion
|
|
67
|
-
export { deprovision_default as default };
|