@metabase/cli 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -115
- package/dist/add-collection-C9BdVBs2.mjs +11 -0
- package/dist/{add-collection-C_iovi9i.mjs → add-collection-DQjTlDNF.mjs} +12 -5
- package/dist/archive-B3qiL-kK.mjs +40 -0
- package/dist/{archive-DdaP94H3.mjs → archive-BXzghEQX.mjs} +10 -9
- package/dist/{archive-WaEW85NB.mjs → archive-CBGKzEAl.mjs} +9 -8
- package/dist/{archive-BKPO8lEO.mjs → archive-CuVk8iwN.mjs} +10 -9
- package/dist/archive-DTN9tLGT.mjs +40 -0
- package/dist/{archive-Dvzrmdbk.mjs → archive-De8jzzq7.mjs} +10 -9
- package/dist/auth-D9eAyVoG.mjs +19 -0
- package/dist/{body-XtR7-uCO.mjs → body-tcURGnGh.mjs} +4 -4
- package/dist/{branches-XUY4JY-X.mjs → branches-CIGkjXIk.mjs} +11 -7
- package/dist/{cancel-BrUVO_ax.mjs → cancel-pPsvgJ0Z.mjs} +9 -8
- package/dist/{cancel-task-oXheTOB6.mjs → cancel-task-BLGE4UlL.mjs} +12 -8
- package/dist/capabilities-7e9MgquN.mjs +29 -0
- package/dist/card-DDDrWcDU.mjs +20 -0
- package/dist/{card-CQxvHeyP.mjs → card-ezYiriML.mjs} +1 -1
- package/dist/{cards-CONTTAG9.mjs → cards-Dq3nx_9n.mjs} +8 -7
- package/dist/cli.mjs +264 -44
- package/dist/collection-DkEvCDar.mjs +20 -0
- package/dist/{predicates-CGO17Q15.mjs → command-augment-BH9qgQ5u.mjs} +66 -14
- package/dist/{create-Cs2xntFG.mjs → create-9DBTkbMq.mjs} +18 -16
- package/dist/{create-kYpjobrq.mjs → create-B1dyuL9Y.mjs} +16 -10
- package/dist/create-BIphz0kO.mjs +52 -0
- package/dist/create-BcgoukG4.mjs +50 -0
- package/dist/create-BdPoSk_7.mjs +50 -0
- package/dist/{create-DZxUeqdf.mjs → create-BrUqxreg.mjs} +11 -10
- package/dist/create-DHscDhRd.mjs +50 -0
- package/dist/{create-Dq25vsMu.mjs → create-aPaUEGdr.mjs} +11 -10
- package/dist/{create-branch-D5u14AxL.mjs → create-branch-DGoc9CUU.mjs} +12 -8
- package/dist/{create-Ca9lIDwP.mjs → create-w3mQg9n4.mjs} +11 -10
- package/dist/{credentials-BIQ1cEzM.mjs → credentials-qryRLUed.mjs} +12 -11
- package/dist/current-task-DZM28rnr.mjs +40 -0
- package/dist/{dashboard-CnMD04PQ.mjs → dashboard-B4bn3z6t.mjs} +2 -1
- package/dist/dashboard-BLf1RZlk.mjs +21 -0
- package/dist/{database-vvig8k4x.mjs → database-BXiue1in.mjs} +1 -1
- package/dist/{database-BSvzYlRe.mjs → database-Ce1gOJF7.mjs} +3 -3
- package/dist/db-CWTFe_FZ.mjs +22 -0
- package/dist/{delete-VTAS9EUt.mjs → delete-BPaFdHZP.mjs} +11 -8
- package/dist/{delete-CUx6RT9e.mjs → delete-BrJOotpW.mjs} +11 -8
- package/dist/{remove-C6bS0Z6w.mjs → delete-FFj1xQWO.mjs} +25 -20
- package/dist/{delete-runtime-DfFMWJJ6.mjs → delete-runtime-uuYbd4k2.mjs} +9 -7
- package/dist/{delete-table-DzUneMKe.mjs → delete-table-CNupWUO0.mjs} +11 -8
- package/dist/{deprovision-CpJfGgCt.mjs → deprovision-BNr9fPDY.mjs} +18 -12
- package/dist/{dirty-nkAOXxgC.mjs → dirty-BCkNOY8c.mjs} +11 -7
- package/dist/{docker-D5FTIoD0.mjs → docker-Ds252Mwc.mjs} +4 -4
- package/dist/{translate-Cqsd0Px5.mjs → eid-CLY5X0Uw.mjs} +43 -23
- package/dist/error-ZsFeevV2.mjs +191 -0
- package/dist/{export-BWvY7X_G.mjs → export-CgHgWW3I.mjs} +20 -18
- package/dist/{field-B3gvaqpK.mjs → field-E0IBy4Uw.mjs} +12 -3
- package/dist/field-LL6W_c-c.mjs +18 -0
- package/dist/{fields-dH16G5UV.mjs → fields-RkRWU-u9.mjs} +9 -8
- package/dist/{get-D96QEU49.mjs → get-42tJ7BNp.mjs} +8 -7
- package/dist/{get-C6SR3A9t.mjs → get-B8l4t4Pz.mjs} +10 -9
- package/dist/{get-BnBRKHr7.mjs → get-B9kwSs6U.mjs} +8 -7
- package/dist/{get-7macOPAI.mjs → get-Bo4Cpd_c.mjs} +7 -7
- package/dist/{get-BcqxMVC1.mjs → get-C9O_aEGo.mjs} +8 -7
- package/dist/{get-CKxlhMy1.mjs → get-CRvbChoX.mjs} +8 -7
- package/dist/{get-B7i_nYJB.mjs → get-CTDqioaj.mjs} +8 -7
- package/dist/{get-D8e_RzZ0.mjs → get-CiZrZJLt.mjs} +10 -9
- package/dist/{get-B08K82JV.mjs → get-CvmqPN30.mjs} +8 -7
- package/dist/{get-CACaBFLt.mjs → get-DmzgSgrl.mjs} +9 -8
- package/dist/{get-R7OaVL_t.mjs → get-DsqGHNHN.mjs} +8 -7
- package/dist/get-run-CBwcRc8E.mjs +38 -0
- package/dist/{get-DNN1X2gN.mjs → get-sMpa-X4E.mjs} +9 -8
- package/dist/{get-DAWofnzK.mjs → get-y17zJMnU.mjs} +8 -7
- package/dist/git-sync-CrWTo3YX.mjs +28 -0
- package/dist/{has-remote-changes-BAnIXQXU.mjs → has-remote-changes-CfRidwXT.mjs} +13 -8
- package/dist/{import-CfdPEMng.mjs → import-BZV0Z2KR.mjs} +21 -18
- package/dist/{input-BQ-BZA8h.mjs → input-cMSEqISy.mjs} +7 -4
- package/dist/is-dirty-CPzOnnH6.mjs +10 -0
- package/dist/{is-dirty-CZWcG0vj.mjs → is-dirty-hKcB4OH9.mjs} +9 -4
- package/dist/{items-DqwahOKf.mjs → items-C94eW2Yd.mjs} +10 -9
- package/dist/key-vkNkH82H.mjs +17 -0
- package/dist/license-B37055sr.mjs +17 -0
- package/dist/{list-L63TpX1t.mjs → list-B0V7FeL2.mjs} +7 -7
- package/dist/{list-Bkd7Nbds.mjs → list-BFlzLGlw.mjs} +7 -6
- package/dist/{list-yxVAE1S7.mjs → list-BJXaGk-z.mjs} +7 -6
- package/dist/{list-BqNMpIXy.mjs → list-BS_Bxejg.mjs} +9 -8
- package/dist/{list-J277Qtki.mjs → list-BmHoYJr7.mjs} +7 -6
- package/dist/list-C-oZe1_p.mjs +173 -0
- package/dist/{list-ViT2KWhv.mjs → list-CF1pMN4S.mjs} +7 -6
- package/dist/{list-BpNU1neq.mjs → list-CU6sOfI-.mjs} +9 -7
- package/dist/{list-oftHLFbE.mjs → list-CqN4gvCk.mjs} +9 -7
- package/dist/{list-DBOYoJtA.mjs → list-DUXdt0XI.mjs} +10 -6
- package/dist/{list-D41gfkKb.mjs → list-DfDZr55C.mjs} +10 -8
- package/dist/{list-vF4EneaE.mjs → list-DrINpVLM.mjs} +7 -6
- package/dist/{list-DJcGwJ4W.mjs → list-DuSoEk_J.mjs} +9 -8
- package/dist/{list-CQkDqphl.mjs → list-HS15y_WN.mjs} +7 -6
- package/dist/login-enh9Yimb.mjs +181 -0
- package/dist/{logout-DD4q5whi.mjs → logout-BWLPLDh8.mjs} +13 -11
- package/dist/{logs-Ci3mJE2z.mjs → logs-Cu3QtvPs.mjs} +9 -8
- package/dist/{manifest-CGM7XNLC.mjs → manifest-BNh0Lw6p.mjs} +15 -15
- package/dist/{measure-BEQfnLdN.mjs → measure-Bt3InQsA.mjs} +2 -2
- package/dist/measure-CDlEPFtB.mjs +19 -0
- package/dist/{metadata-BDat-jN9.mjs → metadata-BTTEBWdS.mjs} +10 -9
- package/dist/{metadata-29_qlqbz.mjs → metadata-D2TxboMm.mjs} +9 -8
- package/dist/parse-enum-CrEWOhuY.mjs +11 -0
- package/dist/{parse-id-CysSaCbf.mjs → parse-id-0_tOPvfI.mjs} +1 -1
- package/dist/{parse-ref-D1yeDOn8.mjs → parse-ref-DKag6a6I.mjs} +1 -1
- package/dist/{parse-schemas-B10n01ez.mjs → parse-schemas-D-qVLl4z.mjs} +2 -2
- package/dist/{path-DLByFMMA.mjs → path-C8GrBdgT.mjs} +7 -7
- package/dist/{poll-p9Y7-JEQ.mjs → poll-4eoh5J0r.mjs} +2 -2
- package/dist/{poll-task-BQe0NvJZ.mjs → poll-task-51WRdugU.mjs} +19 -20
- package/dist/{preflight-CvFu0Cct.mjs → preflight-BhsErYz3.mjs} +4 -4
- package/dist/{process-zJeVJZTM.mjs → process-CM7Uu5q_.mjs} +1 -1
- package/dist/{prompt-DgDNy_Pc.mjs → prompt-CFKoys7k.mjs} +3 -1
- package/dist/provision-Chf86BF0.mjs +83 -0
- package/dist/{ps-BxQdpkr5.mjs → ps-CEYtsKBj.mjs} +5 -3
- package/dist/ps-CIDwaubS.mjs +11 -0
- package/dist/{query-C7zTlFJA.mjs → query-BBCAF-tG.mjs} +17 -14
- package/dist/{query-CFH4nBlK.mjs → query-DYVBnu9d.mjs} +12 -9
- package/dist/query-result-ABPLz6I4.mjs +19 -0
- package/dist/{remove-BuWxx3hY.mjs → remove-2yInufA6.mjs} +14 -12
- package/dist/remove-collection-CBAHz0Dk.mjs +44 -0
- package/dist/{render-DuoDUTVL.mjs → render-0_GsapXa.mjs} +51 -23
- package/dist/render-khznBlla.mjs +32 -0
- package/dist/{rescan-values-DabyRYQ_.mjs → rescan-values-cfTSNQZo.mjs} +12 -11
- package/dist/{run-Cl-9RtC4.mjs → run-qgdEJv-I.mjs} +17 -15
- package/dist/{runs-BH6s1Zao.mjs → runs-BFIIH4GL.mjs} +9 -8
- package/dist/{runtime-CDu6fykq.mjs → runtime-Duawf5lE.mjs} +653 -428
- package/dist/{schema-tables-i58wp_p3.mjs → schema-tables-C2xM3dho.mjs} +9 -8
- package/dist/{schemas-_m8RYRl9.mjs → schemas-BP7xiktH.mjs} +7 -6
- package/dist/{search-DObOsjbP.mjs → search-DYP3lOlq.mjs} +12 -16
- package/dist/segment-B6HnNGDs.mjs +19 -0
- package/dist/{set-CwVWeAsi.mjs → set-DpRQqdo7.mjs} +13 -11
- package/dist/{set-CJA9dpK6.mjs → set-Tt-ioa4L.mjs} +14 -13
- package/dist/setting-DUa96KF3.mjs +17 -0
- package/dist/{setup-DqBOe3HZ.mjs → setup-BPlllnim.mjs} +10 -9
- package/dist/{skills-CHU7uuDU.mjs → skills-BkregMyb.mjs} +2 -2
- package/dist/{skills-C2rTVj0n.mjs → skills-SqbPo0BI.mjs} +3 -3
- package/dist/snippet-dJ68tGsl.mjs +19 -0
- package/dist/{start-CfruN4wF.mjs → start-DJZA67WF.mjs} +70 -38
- package/dist/{stash-CWuXKSZq.mjs → stash-C89zNKxo.mjs} +21 -18
- package/dist/{status-D-RYZB9G.mjs → status-B1EJ_jv0.mjs} +16 -9
- package/dist/status-BNvFPemM.mjs +100 -0
- package/dist/status-D5wSqYV_.mjs +34 -0
- package/dist/{stop-D8Hr4cKX.mjs → stop-5rCLmkCQ.mjs} +16 -11
- package/dist/{summary-Lt2XLBK9.mjs → summary-Cihbx0Qs.mjs} +8 -7
- package/dist/{sync-schema-BDElSynU.mjs → sync-schema-C3odu0ZH.mjs} +12 -11
- package/dist/table-J2f0STnB.mjs +19 -0
- package/dist/{table-B-PYcgGb.mjs → table-qDD2kApF.mjs} +1 -1
- package/dist/{transform-job-BrhOLO4M.mjs → transform-job-DjhoJbiV.mjs} +1 -1
- package/dist/transform-job-OW4SDhsQ.mjs +19 -0
- package/dist/transform-q1LYWQtW.mjs +24 -0
- package/dist/{tree-DfvjDjmk.mjs → tree-mvq9gM9w.mjs} +7 -6
- package/dist/{update-DzgXF082.mjs → update-BoIiuC70.mjs} +16 -14
- package/dist/{update-qnFY5IuC.mjs → update-C0jP0AKT.mjs} +12 -11
- package/dist/{update-zp7pCBZH.mjs → update-CbBnHz42.mjs} +16 -14
- package/dist/{update-B0bjPqKC.mjs → update-CtOo3LsX.mjs} +13 -12
- package/dist/{update-CVxOxmt6.mjs → update-DCrOQ1PW.mjs} +17 -15
- package/dist/{update-BYduslhn.mjs → update-DEZayTb4.mjs} +20 -15
- package/dist/{update-BgcroYkF.mjs → update-DwRxdflw.mjs} +12 -11
- package/dist/{update-D9Z8cL7h.mjs → update-Rr4usmCo.mjs} +12 -11
- package/dist/{update-DuA8-cCq.mjs → update-VvKMnwsM.mjs} +16 -14
- package/dist/{update-dashcard-CQ3kmmss.mjs → update-dashcard-DFvIz8Qj.mjs} +12 -11
- package/dist/{update-CqnDMNtZ.mjs → update-tRparnUs.mjs} +18 -16
- package/dist/{upgrade-CIgTr2CG.mjs → upgrade-D-Rl_fH9.mjs} +16 -29
- package/dist/{url-B5MgZXzg.mjs → url-BB6jeNQj.mjs} +11 -10
- package/dist/{uuid-CJz9TmHI.mjs → uuid-BSVUk8u2.mjs} +8 -6
- package/dist/{validate-CB0bu50i.mjs → validate-dPEOnOf8.mjs} +2 -1
- package/dist/{validate-query-CavIA0Q2.mjs → validate-query-CYvOP8Ld.mjs} +3 -3
- package/dist/values-D1RJE4H6.mjs +45 -0
- package/dist/verify-A7BWfBPZ.mjs +79 -0
- package/dist/{wait-BFqBlg0y.mjs → wait-B17I_pWy.mjs} +2 -2
- package/dist/{wait-tDp9ZOou.mjs → wait-DK5QDZ8n.mjs} +14 -10
- package/dist/{wait-flags-CN-e9zNq.mjs → wait-flags-DlfbIXHw.mjs} +20 -9
- package/dist/{workspace-credentials-4lIxxz4g.mjs → workspace-credentials-8CBMQJFz.mjs} +2 -2
- package/dist/workspace-ri6r3zWo.mjs +25 -0
- package/dist/{yaml-ECiog374.mjs → yaml-Gv6wRFMF.mjs} +1 -1
- package/package.json +2 -1
- package/skill-data/core/SKILL.md +55 -453
- package/skill-data/git-sync/SKILL.md +1 -1
- package/skill-data/mbql/SKILL.md +156 -0
- package/skill-data/mbql/references/operators.md +253 -0
- package/skill-data/transform/SKILL.md +2 -40
- package/skill-data/viz/SKILL.md +137 -0
- package/skill-data/viz/references/settings.md +312 -0
- package/skill-data/workspace/SKILL.md +45 -63
- package/skills/metabase-cli/SKILL.md +5 -26
- package/dist/add-collection-ucsyAMkV.mjs +0 -11
- package/dist/api-key-BENHbTbV.mjs +0 -13
- package/dist/auth-DICRtJDy.mjs +0 -19
- package/dist/card-l-UmrUIo.mjs +0 -20
- package/dist/collection-oV0olVY-.mjs +0 -19
- package/dist/command-augment-D9pI9Vbh.mjs +0 -11
- package/dist/create-CrUq6sib.mjs +0 -125
- package/dist/create-D3Z878yr.mjs +0 -50
- package/dist/create-Le3Bqn7b.mjs +0 -48
- package/dist/create-V-q2rU0T.mjs +0 -48
- package/dist/create-swbIXdo5.mjs +0 -48
- package/dist/current-task-DCq7rk9V.mjs +0 -36
- package/dist/dashboard-hbKDd36X.mjs +0 -20
- package/dist/db-qVK6NsdB.mjs +0 -22
- package/dist/eid-CDFXX_6H.mjs +0 -13
- package/dist/field-C0LE7RQI.mjs +0 -18
- package/dist/flag-pair-Fmcdkrfx.mjs +0 -17
- package/dist/get-run-CwFuR4Uw.mjs +0 -36
- package/dist/git-sync-DV7YjniX.mjs +0 -28
- package/dist/is-dirty-LxVbm2C5.mjs +0 -10
- package/dist/key-CCJdVWKc.mjs +0 -12
- package/dist/license-Cb6ewEJO.mjs +0 -17
- package/dist/list-DV6CONhp.mjs +0 -55
- package/dist/login-D1nZwgKv.mjs +0 -192
- package/dist/measure-XhJuL77y.mjs +0 -19
- package/dist/package-DFUprkSZ.mjs +0 -85
- package/dist/provision-BP-b4Are.mjs +0 -77
- package/dist/ps-Bk6unzaX.mjs +0 -11
- package/dist/remove-collection-Bc4roCq0.mjs +0 -38
- package/dist/segment-DfxZdJmR.mjs +0 -19
- package/dist/setting-Czy4ws6h.mjs +0 -18
- package/dist/snippet-BCY4KHBU.mjs +0 -19
- package/dist/status-1oUnw803.mjs +0 -56
- package/dist/status-J9HIDcA5.mjs +0 -32
- package/dist/table-BwX3Ib5f.mjs +0 -19
- package/dist/transform-iaAi37V0.mjs +0 -24
- package/dist/transform-job-Bemonf82.mjs +0 -19
- package/dist/values-BXN6tx1i.mjs +0 -36
- package/dist/workspace-BBsT0H0g.mjs +0 -24
- /package/dist/{body-flags-BK7J6Daz.mjs → body-flags-D7q87Btw.mjs} +0 -0
- /package/dist/{collection-B3sPXRLs.mjs → collection-Bcy8cWYH.mjs} +0 -0
- /package/dist/{paginate-CTSfuYiF.mjs → paginate-BexjkjbY.mjs} +0 -0
- /package/dist/{revision-message-flag-oyq2xrDU.mjs → revision-message-flag-DY29-cgz.mjs} +0 -0
- /package/dist/{segment-BMrUBz94.mjs → segment-DhBmcr_E.mjs} +0 -0
- /package/dist/{setting-CTaAeMci.mjs → setting-BzCng1Ub.mjs} +0 -0
- /package/dist/{snippet-CSWqkslB.mjs → snippet-bi_0XbNT.mjs} +0 -0
- /package/dist/{transform-DR4ejuPM.mjs → transform-BKahefz_.mjs} +0 -0
- /package/dist/{workspace-DUfqhPm5.mjs → workspace-D8HtUN0y.mjs} +0 -0
package/dist/login-D1nZwgKv.mjs
DELETED
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import "./package-DFUprkSZ.mjs";
|
|
2
|
-
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
-
import { renderItem, warn } from "./render-DuoDUTVL.mjs";
|
|
4
|
-
import { ConfigError, MetabaseError, errorMessage } from "./predicates-CGO17Q15.mjs";
|
|
5
|
-
import { readInput } from "./input-BQ-BZA8h.mjs";
|
|
6
|
-
import { DEFAULT_PROFILE, HttpError, clearRejection, connectionFlags, createClient, defineMetabaseCommand, explicitProfileName, normalizeUrl, outputFlags, profileFlag, readEnvCredentials, recordRejection, writeProfile } from "./runtime-CDu6fykq.mjs";
|
|
7
|
-
import { promptPassword, promptText } from "./prompt-DgDNy_Pc.mjs";
|
|
8
|
-
import { z } from "zod";
|
|
9
|
-
|
|
10
|
-
//#region src/domain/user.ts
|
|
11
|
-
const CurrentUser = z.object({
|
|
12
|
-
id: z.number().int(),
|
|
13
|
-
email: z.email()
|
|
14
|
-
}).loose();
|
|
15
|
-
const CurrentUserCompact = CurrentUser.pick({
|
|
16
|
-
id: true,
|
|
17
|
-
email: true
|
|
18
|
-
}).strip();
|
|
19
|
-
|
|
20
|
-
//#endregion
|
|
21
|
-
//#region src/core/auth/verify.ts
|
|
22
|
-
const VERIFY_TIMEOUT_MS = 15e3;
|
|
23
|
-
async function verifyCredentials(url, apiKey) {
|
|
24
|
-
const client = createClient({
|
|
25
|
-
url,
|
|
26
|
-
apiKey
|
|
27
|
-
});
|
|
28
|
-
try {
|
|
29
|
-
const user = await client.requestParsed(CurrentUser, "/api/user/current", {
|
|
30
|
-
timeoutMs: VERIFY_TIMEOUT_MS,
|
|
31
|
-
retries: 0
|
|
32
|
-
});
|
|
33
|
-
return {
|
|
34
|
-
ok: true,
|
|
35
|
-
user
|
|
36
|
-
};
|
|
37
|
-
} catch (error) {
|
|
38
|
-
return failure(error);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function failure(error) {
|
|
42
|
-
if (error instanceof HttpError) return {
|
|
43
|
-
ok: false,
|
|
44
|
-
status: error.status,
|
|
45
|
-
message: error.userMessage
|
|
46
|
-
};
|
|
47
|
-
if (error instanceof MetabaseError) return {
|
|
48
|
-
ok: false,
|
|
49
|
-
message: error.userMessage
|
|
50
|
-
};
|
|
51
|
-
return {
|
|
52
|
-
ok: false,
|
|
53
|
-
message: errorMessage(error)
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
//#endregion
|
|
58
|
-
//#region src/commands/auth/login.ts
|
|
59
|
-
const LoginResult = z.object({
|
|
60
|
-
profile: z.string(),
|
|
61
|
-
url: z.string(),
|
|
62
|
-
authenticated: z.boolean(),
|
|
63
|
-
email: z.string().nullable()
|
|
64
|
-
});
|
|
65
|
-
const loginView = {
|
|
66
|
-
compactPick: LoginResult,
|
|
67
|
-
tableColumns: [
|
|
68
|
-
{
|
|
69
|
-
key: "profile",
|
|
70
|
-
label: "Profile"
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
key: "url",
|
|
74
|
-
label: "Metabase URL"
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
key: "authenticated",
|
|
78
|
-
label: "Status",
|
|
79
|
-
format: (value) => value === true ? "credentials verified" : "saved without verification"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
key: "email",
|
|
83
|
-
label: "Logged in as"
|
|
84
|
-
}
|
|
85
|
-
]
|
|
86
|
-
};
|
|
87
|
-
var login_default = defineMetabaseCommand({
|
|
88
|
-
meta: {
|
|
89
|
-
name: "login",
|
|
90
|
-
description: "Set Metabase credentials for a profile"
|
|
91
|
-
},
|
|
92
|
-
args: {
|
|
93
|
-
...outputFlags,
|
|
94
|
-
...profileFlag,
|
|
95
|
-
...connectionFlags,
|
|
96
|
-
"skip-verify": {
|
|
97
|
-
type: "boolean",
|
|
98
|
-
default: false,
|
|
99
|
-
description: "Save without contacting the server"
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
outputSchema: LoginResult,
|
|
103
|
-
examples: [
|
|
104
|
-
"mb auth login --url https://metabase.example.com < key.txt",
|
|
105
|
-
"echo $METABASE_API_KEY | mb auth login --url https://metabase.example.com",
|
|
106
|
-
"mb auth login --profile staging --url https://staging.example.com"
|
|
107
|
-
],
|
|
108
|
-
async run({ args, ctx }) {
|
|
109
|
-
const profileName = await resolveLoginProfile(args.profile);
|
|
110
|
-
const env = readEnvCredentials();
|
|
111
|
-
if (args.apiKey) warn("warning: --api-key is visible in shell history and process listings — pipe the key on stdin or set METABASE_API_KEY instead");
|
|
112
|
-
const url = await resolveUrl(args.url, env.url);
|
|
113
|
-
const apiKey = await resolveApiKey(args.apiKey, env.apiKey);
|
|
114
|
-
let email = null;
|
|
115
|
-
let authenticated = false;
|
|
116
|
-
if (!args["skip-verify"]) {
|
|
117
|
-
const result = await verifyCredentials(url, apiKey);
|
|
118
|
-
if (!result.ok) {
|
|
119
|
-
await recordRejection(profileName, {
|
|
120
|
-
reason: result.message,
|
|
121
|
-
url
|
|
122
|
-
});
|
|
123
|
-
throw new ConfigError(`verification failed: ${result.message} — credentials were not saved for profile "${profileName}"`);
|
|
124
|
-
}
|
|
125
|
-
email = result.user.email;
|
|
126
|
-
authenticated = true;
|
|
127
|
-
}
|
|
128
|
-
const location = await writeProfile({
|
|
129
|
-
url,
|
|
130
|
-
apiKey
|
|
131
|
-
}, profileName);
|
|
132
|
-
await clearRejection(profileName);
|
|
133
|
-
if (location.backend === "file") warn(`warning: OS keychain unavailable; credentials stored as plaintext at ${location.path}`);
|
|
134
|
-
renderItem({
|
|
135
|
-
profile: profileName,
|
|
136
|
-
url,
|
|
137
|
-
authenticated,
|
|
138
|
-
email
|
|
139
|
-
}, loginView, ctx);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
async function resolveLoginProfile(flagProfile) {
|
|
143
|
-
const explicit = explicitProfileName(flagProfile);
|
|
144
|
-
if (explicit !== null) return explicit;
|
|
145
|
-
if (!process.stdin.isTTY) return DEFAULT_PROFILE;
|
|
146
|
-
return promptText({
|
|
147
|
-
message: "Profile name",
|
|
148
|
-
placeholder: DEFAULT_PROFILE,
|
|
149
|
-
initialValue: DEFAULT_PROFILE,
|
|
150
|
-
validate: (input) => input ? void 0 : "Profile name is required"
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
async function resolveUrl(flagUrl, envUrl) {
|
|
154
|
-
if (flagUrl) return normalizeUrl(flagUrl);
|
|
155
|
-
if (envUrl) return normalizeUrl(envUrl);
|
|
156
|
-
return promptForUrl();
|
|
157
|
-
}
|
|
158
|
-
async function resolveApiKey(flagKey, envKey) {
|
|
159
|
-
if (flagKey) return flagKey;
|
|
160
|
-
const piped = (await readInput({ required: false })).trim();
|
|
161
|
-
if (piped) return piped;
|
|
162
|
-
if (envKey) return envKey;
|
|
163
|
-
return promptForApiKey();
|
|
164
|
-
}
|
|
165
|
-
async function promptForUrl() {
|
|
166
|
-
if (!process.stdin.isTTY) throw new ConfigError("--url is required when stdin is not a TTY (cannot prompt interactively)");
|
|
167
|
-
const value = await promptText({
|
|
168
|
-
message: "Metabase URL",
|
|
169
|
-
placeholder: "https://metabase.example.com",
|
|
170
|
-
validate(input) {
|
|
171
|
-
if (!input) return "URL is required";
|
|
172
|
-
try {
|
|
173
|
-
normalizeUrl(input);
|
|
174
|
-
} catch (error) {
|
|
175
|
-
return errorMessage(error);
|
|
176
|
-
}
|
|
177
|
-
return void 0;
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
return normalizeUrl(value);
|
|
181
|
-
}
|
|
182
|
-
async function promptForApiKey() {
|
|
183
|
-
if (!process.stdin.isTTY) throw new ConfigError("--api-key, piped stdin, or METABASE_API_KEY required when stdin is not a TTY");
|
|
184
|
-
return promptPassword({
|
|
185
|
-
message: "API key",
|
|
186
|
-
mask: "•",
|
|
187
|
-
validate: (input) => input ? void 0 : "API key is required"
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
//#endregion
|
|
192
|
-
export { login_default as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/measure/index.ts
|
|
4
|
-
var measure_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "measure",
|
|
7
|
-
description: "Inspect Metabase measures"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-CQkDqphl.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-DAWofnzK.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-swbIXdo5.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-zp7pCBZH.mjs").then((mod) => mod.default),
|
|
14
|
-
archive: () => import("./archive-BKPO8lEO.mjs").then((mod) => mod.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { measure_default as default };
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
//#region package.json
|
|
2
|
-
var name = "@metabase/cli";
|
|
3
|
-
var version = "0.1.5";
|
|
4
|
-
var description = "Metabase CLI";
|
|
5
|
-
var license = "AGPL-3.0";
|
|
6
|
-
var repository = {
|
|
7
|
-
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/metabase/mb-cli.git"
|
|
9
|
-
};
|
|
10
|
-
var bin = { "mb": "./dist/cli.mjs" };
|
|
11
|
-
var files = [
|
|
12
|
-
"dist",
|
|
13
|
-
"skills",
|
|
14
|
-
"skill-data",
|
|
15
|
-
".claude-plugin"
|
|
16
|
-
];
|
|
17
|
-
var type = "module";
|
|
18
|
-
var publishConfig = {
|
|
19
|
-
"access": "public",
|
|
20
|
-
"registry": "https://registry.npmjs.org/"
|
|
21
|
-
};
|
|
22
|
-
var scripts = {
|
|
23
|
-
"build": "tsdown",
|
|
24
|
-
"dev": "tsdown --watch",
|
|
25
|
-
"start": "node dist/cli.mjs",
|
|
26
|
-
"test": "vitest run --project unit",
|
|
27
|
-
"test:watch": "vitest --project unit",
|
|
28
|
-
"test:e2e": "vitest run --project e2e",
|
|
29
|
-
"test:e2e:watch": "vitest --project e2e",
|
|
30
|
-
"e2e:up": "docker compose -f tests/e2e/docker-compose.yml up -d --wait",
|
|
31
|
-
"e2e:down": "docker compose -f tests/e2e/docker-compose.yml down -v",
|
|
32
|
-
"e2e:bootstrap": "bun tests/e2e/setup/bootstrap.ts",
|
|
33
|
-
"e2e:logs": "docker compose -f tests/e2e/docker-compose.yml logs -f metabase",
|
|
34
|
-
"typecheck": "tsc --noEmit",
|
|
35
|
-
"lint": "oxlint",
|
|
36
|
-
"lint:fix": "oxlint --fix",
|
|
37
|
-
"format": "oxfmt",
|
|
38
|
-
"format:check": "oxfmt --check",
|
|
39
|
-
"sync:representations": "bun run scripts/sync-representations.ts",
|
|
40
|
-
"prepublishOnly": "tsdown && publint"
|
|
41
|
-
};
|
|
42
|
-
var dependencies = {
|
|
43
|
-
"@clack/prompts": "^0.8.2",
|
|
44
|
-
"@napi-rs/keyring": "^1.3.0",
|
|
45
|
-
"ajv": "^8.17.1",
|
|
46
|
-
"ajv-formats": "^3.0.1",
|
|
47
|
-
"citty": "^0.2.2",
|
|
48
|
-
"cli-table3": "^0.6.5",
|
|
49
|
-
"semver": "^7.8.0",
|
|
50
|
-
"yaml": "^2.8.4",
|
|
51
|
-
"zod": "^4.0.0"
|
|
52
|
-
};
|
|
53
|
-
var devDependencies = {
|
|
54
|
-
"@types/js-yaml": "^4.0.9",
|
|
55
|
-
"@types/node": "^22.10.0",
|
|
56
|
-
"@types/semver": "^7.7.1",
|
|
57
|
-
"execa": "^9.5.2",
|
|
58
|
-
"fast-check": "^4.7.0",
|
|
59
|
-
"js-yaml": "^4.1.0",
|
|
60
|
-
"oxfmt": "^0.47.0",
|
|
61
|
-
"oxlint": "^1.62.0",
|
|
62
|
-
"publint": "^0.3.0",
|
|
63
|
-
"tsdown": "^0.9.0",
|
|
64
|
-
"typescript": "^5.7.2",
|
|
65
|
-
"vitest": "^2.1.8"
|
|
66
|
-
};
|
|
67
|
-
var engines = { "node": ">=20.6" };
|
|
68
|
-
var package_default = {
|
|
69
|
-
name,
|
|
70
|
-
version,
|
|
71
|
-
description,
|
|
72
|
-
license,
|
|
73
|
-
repository,
|
|
74
|
-
bin,
|
|
75
|
-
files,
|
|
76
|
-
type,
|
|
77
|
-
publishConfig,
|
|
78
|
-
scripts,
|
|
79
|
-
dependencies,
|
|
80
|
-
devDependencies,
|
|
81
|
-
engines
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
//#endregion
|
|
85
|
-
export { package_default };
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import "./package-DFUprkSZ.mjs";
|
|
2
|
-
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
-
import { renderItem } from "./render-DuoDUTVL.mjs";
|
|
4
|
-
import { ConfigError } from "./predicates-CGO17Q15.mjs";
|
|
5
|
-
import "./input-BQ-BZA8h.mjs";
|
|
6
|
-
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-CDu6fykq.mjs";
|
|
7
|
-
import { readBody } from "./body-XtR7-uCO.mjs";
|
|
8
|
-
import { bodyInputFlags } from "./body-flags-BK7J6Daz.mjs";
|
|
9
|
-
import { parseId } from "./parse-id-CysSaCbf.mjs";
|
|
10
|
-
import "./poll-p9Y7-JEQ.mjs";
|
|
11
|
-
import { parseWaitFlags, waitFlags } from "./wait-flags-CN-e9zNq.mjs";
|
|
12
|
-
import { Workspace, WorkspaceProvisionInput, workspaceView } from "./workspace-DUfqhPm5.mjs";
|
|
13
|
-
import { waitForDatabaseProvisioned } from "./wait-BFqBlg0y.mjs";
|
|
14
|
-
import { parseSchemasCsv } from "./parse-schemas-B10n01ez.mjs";
|
|
15
|
-
|
|
16
|
-
//#region src/commands/workspace/database/provision.ts
|
|
17
|
-
var provision_default = defineMetabaseCommand({
|
|
18
|
-
meta: {
|
|
19
|
-
name: "provision",
|
|
20
|
-
description: "Provision a database into a workspace"
|
|
21
|
-
},
|
|
22
|
-
args: {
|
|
23
|
-
...outputFlags,
|
|
24
|
-
...profileFlag,
|
|
25
|
-
...connectionFlags,
|
|
26
|
-
...bodyInputFlags,
|
|
27
|
-
...waitFlags,
|
|
28
|
-
"database-id": {
|
|
29
|
-
type: "string",
|
|
30
|
-
description: "Database id (alternative to --body / --file)"
|
|
31
|
-
},
|
|
32
|
-
schemas: {
|
|
33
|
-
type: "string",
|
|
34
|
-
description: "Comma-separated input schemas (alternative to --body / --file)"
|
|
35
|
-
},
|
|
36
|
-
id: {
|
|
37
|
-
type: "positional",
|
|
38
|
-
description: "Workspace id",
|
|
39
|
-
required: true
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
outputSchema: Workspace,
|
|
43
|
-
examples: [
|
|
44
|
-
"mb workspace database provision 1 --database-id 5 --schemas analytics,github",
|
|
45
|
-
"mb workspace database provision 1 --database-id 5 --schemas analytics --wait",
|
|
46
|
-
"mb workspace database provision 1 --file provision.json"
|
|
47
|
-
],
|
|
48
|
-
async run({ args, ctx, getClient }) {
|
|
49
|
-
const workspaceId = parseId(args.id);
|
|
50
|
-
const databaseIdFlag = args["database-id"];
|
|
51
|
-
const schemasFlag = args.schemas;
|
|
52
|
-
const wait = parseWaitFlags(args);
|
|
53
|
-
let body;
|
|
54
|
-
if (databaseIdFlag !== void 0 && databaseIdFlag !== "") {
|
|
55
|
-
const databaseId = parseId(databaseIdFlag, "--database-id");
|
|
56
|
-
if (schemasFlag === void 0 || schemasFlag === "") throw new ConfigError("--schemas is required when using --database-id");
|
|
57
|
-
const input_schemas = parseSchemasCsv(schemasFlag);
|
|
58
|
-
body = WorkspaceProvisionInput.parse({
|
|
59
|
-
database_id: databaseId,
|
|
60
|
-
input_schemas
|
|
61
|
-
});
|
|
62
|
-
} else body = await readBody({
|
|
63
|
-
flag: args.body,
|
|
64
|
-
file: args.file
|
|
65
|
-
}, WorkspaceProvisionInput);
|
|
66
|
-
const client = await getClient();
|
|
67
|
-
const initial = await client.requestParsed(Workspace, `/api/ee/workspace-manager/${workspaceId}/database`, {
|
|
68
|
-
method: "POST",
|
|
69
|
-
body
|
|
70
|
-
});
|
|
71
|
-
const final = wait.enabled ? await waitForDatabaseProvisioned(client, workspaceId, body.database_id, wait.schedule) : initial;
|
|
72
|
-
renderItem(final, workspaceView, ctx);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
//#endregion
|
|
77
|
-
export { provision_default as default };
|
package/dist/ps-Bk6unzaX.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import "./package-DFUprkSZ.mjs";
|
|
2
|
-
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
-
import "./render-DuoDUTVL.mjs";
|
|
4
|
-
import "./predicates-CGO17Q15.mjs";
|
|
5
|
-
import "./runtime-CDu6fykq.mjs";
|
|
6
|
-
import "./poll-p9Y7-JEQ.mjs";
|
|
7
|
-
import "./process-zJeVJZTM.mjs";
|
|
8
|
-
import "./docker-D5FTIoD0.mjs";
|
|
9
|
-
import { LocalWorkspace, LocalWorkspaceCompact, LocalWorkspaceListEnvelope, LocalWorkspaceState, localWorkspaceView, ps_default } from "./ps-BxQdpkr5.mjs";
|
|
10
|
-
|
|
11
|
-
export { ps_default as default };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import "./package-DFUprkSZ.mjs";
|
|
2
|
-
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
-
import { renderItem } from "./render-DuoDUTVL.mjs";
|
|
4
|
-
import "./predicates-CGO17Q15.mjs";
|
|
5
|
-
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-CDu6fykq.mjs";
|
|
6
|
-
import { parseId } from "./parse-id-CysSaCbf.mjs";
|
|
7
|
-
import "./poll-task-BQe0NvJZ.mjs";
|
|
8
|
-
import "./poll-p9Y7-JEQ.mjs";
|
|
9
|
-
import { SyncSettingsUpdateResult, setCollectionRemoteSynced, syncSettingsUpdateView } from "./add-collection-C_iovi9i.mjs";
|
|
10
|
-
|
|
11
|
-
//#region src/commands/git-sync/remove-collection.ts
|
|
12
|
-
var remove_collection_default = defineMetabaseCommand({
|
|
13
|
-
meta: {
|
|
14
|
-
name: "remove-collection",
|
|
15
|
-
description: "Unmark a collection as git-synced; cascades to descendants by location prefix"
|
|
16
|
-
},
|
|
17
|
-
args: {
|
|
18
|
-
...outputFlags,
|
|
19
|
-
...profileFlag,
|
|
20
|
-
...connectionFlags,
|
|
21
|
-
id: {
|
|
22
|
-
type: "positional",
|
|
23
|
-
description: "Collection id (positive integer)",
|
|
24
|
-
required: true
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
outputSchema: SyncSettingsUpdateResult,
|
|
28
|
-
examples: ["mb git-sync remove-collection 12", "mb git-sync remove-collection 12 --json --profile prod"],
|
|
29
|
-
async run({ args, ctx, getClient }) {
|
|
30
|
-
const collectionId = parseId(args.id, "id");
|
|
31
|
-
const client = await getClient();
|
|
32
|
-
const result = await setCollectionRemoteSynced(client, collectionId, false);
|
|
33
|
-
renderItem(result, syncSettingsUpdateView, ctx);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
//#endregion
|
|
38
|
-
export { remove_collection_default as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/segment/index.ts
|
|
4
|
-
var segment_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "segment",
|
|
7
|
-
description: "Inspect Metabase segments"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-Bkd7Nbds.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-BnBRKHr7.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-Le3Bqn7b.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-DuA8-cCq.mjs").then((mod) => mod.default),
|
|
14
|
-
archive: () => import("./archive-DdaP94H3.mjs").then((mod) => mod.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { segment_default as default };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/setting/index.ts
|
|
4
|
-
var setting_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "setting",
|
|
7
|
-
description: "Inspect and update Metabase settings",
|
|
8
|
-
alias: "settings"
|
|
9
|
-
},
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-yxVAE1S7.mjs").then((m) => m.default),
|
|
12
|
-
get: () => import("./get-C6SR3A9t.mjs").then((m) => m.default),
|
|
13
|
-
set: () => import("./set-CwVWeAsi.mjs").then((m) => m.default)
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
//#endregion
|
|
18
|
-
export { setting_default as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/snippet/index.ts
|
|
4
|
-
var snippet_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "snippet",
|
|
7
|
-
description: "Inspect Metabase native query snippets"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-vF4EneaE.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-R7OaVL_t.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-DZxUeqdf.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-qnFY5IuC.mjs").then((mod) => mod.default),
|
|
14
|
-
archive: () => import("./archive-WaEW85NB.mjs").then((mod) => mod.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { snippet_default as default };
|
package/dist/status-1oUnw803.mjs
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import "./package-DFUprkSZ.mjs";
|
|
2
|
-
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
-
import { renderItem } from "./render-DuoDUTVL.mjs";
|
|
4
|
-
import "./predicates-CGO17Q15.mjs";
|
|
5
|
-
import { account, credentials, defineMetabaseCommand, originOnly, outputFlags, profileFlag, resolveProfileName } from "./runtime-CDu6fykq.mjs";
|
|
6
|
-
import { z } from "zod";
|
|
7
|
-
|
|
8
|
-
//#region src/commands/auth/status.ts
|
|
9
|
-
const AuthStatus = z.object({
|
|
10
|
-
profile: z.string(),
|
|
11
|
-
present: z.boolean(),
|
|
12
|
-
url: z.string().nullable()
|
|
13
|
-
});
|
|
14
|
-
const authStatusView = {
|
|
15
|
-
compactPick: AuthStatus,
|
|
16
|
-
tableColumns: [
|
|
17
|
-
{
|
|
18
|
-
key: "profile",
|
|
19
|
-
label: "Profile"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
key: "present",
|
|
23
|
-
label: "Authenticated"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
key: "url",
|
|
27
|
-
label: "URL"
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
};
|
|
31
|
-
var status_default = defineMetabaseCommand({
|
|
32
|
-
meta: {
|
|
33
|
-
name: "status",
|
|
34
|
-
description: "Show authentication status for a profile"
|
|
35
|
-
},
|
|
36
|
-
args: {
|
|
37
|
-
...outputFlags,
|
|
38
|
-
...profileFlag
|
|
39
|
-
},
|
|
40
|
-
outputSchema: AuthStatus,
|
|
41
|
-
examples: ["mb auth status --json", "mb auth status --profile staging"],
|
|
42
|
-
async run({ args, ctx }) {
|
|
43
|
-
const profileName = resolveProfileName(args.profile);
|
|
44
|
-
const [url, apiKey] = await Promise.all([credentials.read(account.profileUrl(profileName)), credentials.read(account.profileApiKey(profileName))]);
|
|
45
|
-
const present = url !== null && apiKey !== null;
|
|
46
|
-
const payload = {
|
|
47
|
-
profile: profileName,
|
|
48
|
-
present,
|
|
49
|
-
url: url === null ? null : originOnly(url)
|
|
50
|
-
};
|
|
51
|
-
renderItem(payload, authStatusView, ctx);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
//#endregion
|
|
56
|
-
export { status_default as default };
|
package/dist/status-J9HIDcA5.mjs
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import "./package-DFUprkSZ.mjs";
|
|
2
|
-
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
-
import { renderItem } from "./render-DuoDUTVL.mjs";
|
|
4
|
-
import "./predicates-CGO17Q15.mjs";
|
|
5
|
-
import { account, credentials, defineMetabaseCommand, outputFlags } from "./runtime-CDu6fykq.mjs";
|
|
6
|
-
import { z } from "zod";
|
|
7
|
-
|
|
8
|
-
//#region src/commands/license/status.ts
|
|
9
|
-
const LicenseStatus = z.object({ present: z.boolean() });
|
|
10
|
-
const licenseStatusView = {
|
|
11
|
-
compactPick: LicenseStatus,
|
|
12
|
-
tableColumns: [{
|
|
13
|
-
key: "present",
|
|
14
|
-
label: "Present"
|
|
15
|
-
}]
|
|
16
|
-
};
|
|
17
|
-
var status_default = defineMetabaseCommand({
|
|
18
|
-
meta: {
|
|
19
|
-
name: "status",
|
|
20
|
-
description: "Show whether a license token is stored (does not reveal value)"
|
|
21
|
-
},
|
|
22
|
-
args: { ...outputFlags },
|
|
23
|
-
outputSchema: LicenseStatus,
|
|
24
|
-
examples: ["mb license status", "mb license status --json"],
|
|
25
|
-
async run({ ctx }) {
|
|
26
|
-
const present = await credentials.has(account.license);
|
|
27
|
-
renderItem({ present }, licenseStatusView, ctx);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
//#endregion
|
|
32
|
-
export { status_default as default };
|
package/dist/table-BwX3Ib5f.mjs
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/table/index.ts
|
|
4
|
-
var table_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "table",
|
|
7
|
-
description: "Inspect Metabase tables"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-DJcGwJ4W.mjs").then((m) => m.default),
|
|
11
|
-
get: () => import("./get-CACaBFLt.mjs").then((m) => m.default),
|
|
12
|
-
metadata: () => import("./metadata-29_qlqbz.mjs").then((m) => m.default),
|
|
13
|
-
fields: () => import("./fields-dH16G5UV.mjs").then((m) => m.default),
|
|
14
|
-
update: () => import("./update-B0bjPqKC.mjs").then((m) => m.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { table_default as default };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/transform/index.ts
|
|
4
|
-
var transform_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "transform",
|
|
7
|
-
description: "Manage Metabase transforms"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-ViT2KWhv.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-B7i_nYJB.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-V-q2rU0T.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-DzgXF082.mjs").then((mod) => mod.default),
|
|
14
|
-
delete: () => import("./delete-VTAS9EUt.mjs").then((mod) => mod.default),
|
|
15
|
-
"delete-table": () => import("./delete-table-DzUneMKe.mjs").then((mod) => mod.default),
|
|
16
|
-
run: () => import("./run-Cl-9RtC4.mjs").then((mod) => mod.default),
|
|
17
|
-
cancel: () => import("./cancel-BrUVO_ax.mjs").then((mod) => mod.default),
|
|
18
|
-
"get-run": () => import("./get-run-CwFuR4Uw.mjs").then((mod) => mod.default),
|
|
19
|
-
runs: () => import("./runs-BH6s1Zao.mjs").then((mod) => mod.default)
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
//#endregion
|
|
24
|
-
export { transform_default as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/transform-job/index.ts
|
|
4
|
-
var transform_job_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "transform-job",
|
|
7
|
-
description: "Manage Metabase transform jobs"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-J277Qtki.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-B08K82JV.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-Dq25vsMu.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-BgcroYkF.mjs").then((mod) => mod.default),
|
|
14
|
-
delete: () => import("./delete-CUx6RT9e.mjs").then((mod) => mod.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { transform_job_default as default };
|
package/dist/values-BXN6tx1i.mjs
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import "./package-DFUprkSZ.mjs";
|
|
2
|
-
import "./command-augment-D9pI9Vbh.mjs";
|
|
3
|
-
import { renderItem } from "./render-DuoDUTVL.mjs";
|
|
4
|
-
import "./predicates-CGO17Q15.mjs";
|
|
5
|
-
import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-CDu6fykq.mjs";
|
|
6
|
-
import { parseId } from "./parse-id-CysSaCbf.mjs";
|
|
7
|
-
import { FieldValues, fieldValuesView } from "./field-B3gvaqpK.mjs";
|
|
8
|
-
|
|
9
|
-
//#region src/commands/field/values.ts
|
|
10
|
-
var values_default = defineMetabaseCommand({
|
|
11
|
-
meta: {
|
|
12
|
-
name: "values",
|
|
13
|
-
description: "Fetch the cached distinct values for a field (FieldValues list)"
|
|
14
|
-
},
|
|
15
|
-
args: {
|
|
16
|
-
...outputFlags,
|
|
17
|
-
...profileFlag,
|
|
18
|
-
...connectionFlags,
|
|
19
|
-
id: {
|
|
20
|
-
type: "positional",
|
|
21
|
-
description: "Field id",
|
|
22
|
-
required: true
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
outputSchema: FieldValues,
|
|
26
|
-
examples: ["mb field values 100", "mb field values 100 --json"],
|
|
27
|
-
async run({ args, ctx, getClient }) {
|
|
28
|
-
const id = parseId(args.id);
|
|
29
|
-
const client = await getClient();
|
|
30
|
-
const values = await client.requestParsed(FieldValues, `/api/field/${id}/values`);
|
|
31
|
-
renderItem(values, fieldValuesView, ctx);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
//#endregion
|
|
36
|
-
export { values_default as default };
|