@metabase/cli 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +19 -0
- package/README.md +147 -101
- package/dist/{add-collection-CffaBB-Y.mjs → add-collection-BU8r3r2M.mjs} +9 -4
- package/dist/add-collection-C0w6ACQF.mjs +11 -0
- package/dist/{archive-uJrslh9r.mjs → archive-BNinrUak.mjs} +9 -8
- package/dist/{archive-GdGm7l2e.mjs → archive-C1enZgKV.mjs} +8 -7
- package/dist/archive-CDA0KxL8.mjs +40 -0
- package/dist/{archive-BAcEXbT9.mjs → archive-CRhiBpPJ.mjs} +9 -8
- package/dist/{archive-B_B3MQp0.mjs → archive-DMPS8Kih.mjs} +9 -8
- package/dist/archive-lWgqiFAt.mjs +40 -0
- package/dist/auth-CzXb_zB2.mjs +19 -0
- package/dist/{body-D6dHGjMT.mjs → body-DjdFxjpg.mjs} +4 -4
- package/dist/{branches-Bpe40fEd.mjs → branches-B1WRfG7-.mjs} +11 -7
- package/dist/{cancel-BWTY6oYI.mjs → cancel-Dl_Ho056.mjs} +7 -6
- package/dist/{cancel-task--BfiAXfS.mjs → cancel-task-CdigdCaO.mjs} +11 -7
- package/dist/capabilities-7e9MgquN.mjs +29 -0
- package/dist/card-DP4rfoOi.mjs +21 -0
- package/dist/{card-CQxvHeyP.mjs → card-DlCAaAPq.mjs} +1 -1
- package/dist/{cards-CVlFJxYh.mjs → cards-BGiJS675.mjs} +8 -7
- package/dist/cli.mjs +267 -44
- package/dist/collection-tY18ezvn.mjs +21 -0
- package/dist/{predicates-CGO17Q15.mjs → command-augment-BH9qgQ5u.mjs} +66 -14
- package/dist/create-BNiva__H.mjs +52 -0
- package/dist/{create-izE3EKCt.mjs → create-BTcpaop_.mjs} +9 -8
- package/dist/{create-BykvNpSA.mjs → create-BYlIju0b.mjs} +14 -12
- package/dist/{create-Bu-YhIDL.mjs → create-Be_0Vier.mjs} +10 -9
- package/dist/{create-DYoc9IXW.mjs → create-CHF313Qg.mjs} +13 -9
- package/dist/{create-Cz3_Wxdt.mjs → create-CwGtmwqm.mjs} +14 -12
- package/dist/{create-DP8RrLDi.mjs → create-CzzrbL0u.mjs} +10 -9
- package/dist/{create-BzElku2l.mjs → create-DGth_uOp.mjs} +14 -12
- package/dist/{create-branch-B49UQyCK.mjs → create-branch-DKZkoQ64.mjs} +11 -7
- package/dist/{create-DQVdMT2Y.mjs → create-dhxPxfF3.mjs} +16 -14
- package/dist/{credentials-xKSoP6eh.mjs → credentials-dzeq7ckm.mjs} +12 -10
- package/dist/{current-task-DweHmjlk.mjs → current-task-CCRzm0_7.mjs} +11 -7
- package/dist/dashboard-ChM_Tu0l.mjs +22 -0
- package/dist/{dashboard-CnMD04PQ.mjs → dashboard-FY5UzJ_Z.mjs} +2 -1
- package/dist/{database-BNlvldUL.mjs → database-CIXwHKjK.mjs} +3 -3
- package/dist/{database-vvig8k4x.mjs → database-lH-B3G1I.mjs} +1 -1
- package/dist/db-DrQn_i3W.mjs +22 -0
- package/dist/{remove-B3ZEqBF7.mjs → delete-CM3jnAeQ.mjs} +21 -20
- package/dist/{delete-DojHmKeM.mjs → delete-Dimc-2y8.mjs} +9 -8
- package/dist/{delete-DIz9Tgz5.mjs → delete-ZjnV35OJ.mjs} +9 -8
- package/dist/{delete-runtime-BkAdygbs.mjs → delete-runtime-B6RQo_pw.mjs} +5 -3
- package/dist/{delete-table-DjN8E3sd.mjs → delete-table-agZJpivt.mjs} +9 -8
- package/dist/{deprovision-_HDcBApz.mjs → deprovision-CwxcIT3k.mjs} +16 -12
- package/dist/{dirty-Co8V0SZ3.mjs → dirty-D4d0yHqj.mjs} +11 -7
- package/dist/{docker-D9sC_37H.mjs → docker-Oq80q3tu.mjs} +4 -4
- package/dist/{translate-CG_Ka0dO.mjs → eid-BXzaQh0o.mjs} +37 -22
- package/dist/error-C9S6PN3-.mjs +190 -0
- package/dist/{export-CVMFxoo1.mjs → export-DTygoXBP.mjs} +17 -16
- package/dist/field-Z6Pcxf4n.mjs +19 -0
- package/dist/{fields-Coha7vKv.mjs → fields-CoQi99gv.mjs} +9 -8
- package/dist/{get-DXv2FkA7.mjs → get-Bzys7vgp.mjs} +8 -7
- package/dist/{get-bNtA7vWe.mjs → get-C2p383Qc.mjs} +8 -7
- package/dist/{get-Br6WayZv.mjs → get-C3HdQ91a.mjs} +8 -7
- package/dist/{get-BOtKerj8.mjs → get-CP3Z3NiH.mjs} +9 -8
- package/dist/{get-BSKoL8ek.mjs → get-C_w1kvN3.mjs} +9 -8
- package/dist/{get-Be6EFh94.mjs → get-CzuzeKSe.mjs} +10 -9
- package/dist/{get-BVTz9B_H.mjs → get-D3SbEQSE.mjs} +10 -9
- package/dist/get-DFxZXaKz.mjs +79 -0
- package/dist/{get-DZrV7v9d.mjs → get-DQTZG_NP.mjs} +8 -7
- package/dist/{get-CJwzbVjc.mjs → get-DSWFjy7O.mjs} +8 -7
- package/dist/{get-BxzCKVC6.mjs → get-Ddr0XLh7.mjs} +8 -7
- package/dist/{get-AOvWo48B.mjs → get-Hc93A0Yz.mjs} +8 -7
- package/dist/{get-C_6K7MSW.mjs → get-lb7q3JYs.mjs} +7 -6
- package/dist/get-run-B7sKdaDU.mjs +38 -0
- package/dist/git-sync-CiGAad76.mjs +28 -0
- package/dist/{has-remote-changes-D6xgsuUr.mjs → has-remote-changes-BY10-nnE.mjs} +11 -7
- package/dist/{import-Dv0ORSNw.mjs → import-CiMz4Wz-.mjs} +17 -16
- package/dist/{input-BQ-BZA8h.mjs → input-cMSEqISy.mjs} +7 -4
- package/dist/{is-dirty-WNi8a6O9.mjs → is-dirty-BZOaryxT.mjs} +9 -4
- package/dist/is-dirty-Ume4oV0j.mjs +10 -0
- package/dist/{items-CTcAMknV.mjs → items-BWfvkY-J.mjs} +9 -8
- package/dist/key-C2XG394c.mjs +17 -0
- package/dist/license-Dxarh-gG.mjs +17 -0
- package/dist/{list-FXuSCYpa.mjs → list--OYdUTtu.mjs} +7 -6
- package/dist/{list-8oVMvlLV.mjs → list-2j7GsXsl.mjs} +7 -6
- package/dist/{list-xQmtQPSl.mjs → list-BI4zr8LW.mjs} +10 -8
- package/dist/{list-DhWG5jiW.mjs → list-Brgh-Z2v.mjs} +8 -6
- package/dist/{list-DSs0Q78i.mjs → list-C3hfovHv.mjs} +7 -6
- package/dist/{list-DvUjMQze.mjs → list-CL7eCOQE.mjs} +7 -6
- package/dist/list-Clz5igWg.mjs +44 -0
- package/dist/list-D4sFiqX8.mjs +173 -0
- package/dist/{list-BxdXvGTK.mjs → list-DXH7TlkU.mjs} +9 -7
- package/dist/{list-CocYwmnI.mjs → list-DZ8fNUoQ.mjs} +9 -8
- package/dist/{list-DjhZU-FY.mjs → list-SOG0whQ-.mjs} +7 -6
- package/dist/{list-DI7K3K6k.mjs → list-d58BprgJ.mjs} +7 -6
- package/dist/{list-NiwCL_1X.mjs → list-sD5N3fGk.mjs} +9 -8
- package/dist/{list-CbJeP0Z6.mjs → list-zSO0DMw-.mjs} +10 -6
- package/dist/{login-SXsSH0I1.mjs → login-Bm2AnCez.mjs} +65 -80
- package/dist/{logout-bgOXjxbN.mjs → logout-BlyRJODO.mjs} +8 -7
- package/dist/{logs-BnwVbFuD.mjs → logs-CywPikkL.mjs} +9 -8
- package/dist/{manifest-CGM7XNLC.mjs → manifest-BBR46KFM.mjs} +15 -15
- package/dist/measure-C44EK_xt.mjs +20 -0
- package/dist/{measure-BEQfnLdN.mjs → measure-ClESGxIb.mjs} +2 -2
- package/dist/{metadata-Bu2HOmuX.mjs → metadata-B8ZSF9LA.mjs} +10 -9
- package/dist/{metadata-B0WZT3Yb.mjs → metadata-DqiI2q9q.mjs} +9 -8
- package/dist/parse-enum-CrEWOhuY.mjs +11 -0
- package/dist/{parse-id-B3B-0hUA.mjs → parse-id-lk_K-CEF.mjs} +1 -1
- package/dist/{parse-ref-D1yeDOn8.mjs → parse-ref-BiETXmvm.mjs} +1 -1
- package/dist/{parse-schemas-DgtVLikM.mjs → parse-schemas-BqUdWUwq.mjs} +2 -2
- package/dist/path-AEtZ3mBq.mjs +58 -0
- package/dist/{poll-BCnrcUVf.mjs → poll-DHKDpCiq.mjs} +2 -2
- package/dist/{poll-task-0b1V6G-8.mjs → poll-task-Cooi0lQV.mjs} +3 -20
- package/dist/{preflight-5ACaYnDp.mjs → preflight-aXV5LyDs.mjs} +4 -4
- package/dist/{process-FjsqDwKo.mjs → process-C7V8LJ-j.mjs} +1 -1
- package/dist/{prompt-DgDNy_Pc.mjs → prompt-CFKoys7k.mjs} +3 -1
- package/dist/{provision-29Zt62Ft.mjs → provision-UWcNDoDe.mjs} +29 -24
- package/dist/{ps-BMFiRCi4.mjs → ps-CJU0EbrC.mjs} +5 -3
- package/dist/ps-DEroLgbI.mjs +11 -0
- package/dist/{query-DxA353Hy.mjs → query-AaKzYnTY.mjs} +9 -8
- package/dist/{query-aba8MEe_.mjs → query-BlsVNZpD.mjs} +15 -13
- package/dist/{remove-BfgU_CQi.mjs → remove-BFWun0e8.mjs} +9 -8
- package/dist/{remove-collection-Brv72xUe.mjs → remove-collection-CoCmrrQs.mjs} +13 -9
- package/dist/{render-DuoDUTVL.mjs → render-CfznwleY.mjs} +15 -17
- package/dist/render-OQn3iRsI.mjs +32 -0
- package/dist/{rescan-values-DIAdjoq7.mjs → rescan-values-C0FDsjT7.mjs} +10 -9
- package/dist/{run-CgXRo0hD.mjs → run-B4Wn43zm.mjs} +10 -9
- package/dist/{runs-DtLRw6xg.mjs → runs-Bbaszr18.mjs} +9 -8
- package/dist/{runtime-Br8L4NPm.mjs → runtime-Dmv5VtUK.mjs} +657 -428
- package/dist/{schema-tables-DiKMY6lx.mjs → schema-tables-CaWinbuK.mjs} +9 -8
- package/dist/{schemas-Bvr8cOzo.mjs → schemas-DUgGpAyB.mjs} +7 -6
- package/dist/{search-BT_TCcTd.mjs → search-BLrBXLUk.mjs} +12 -16
- package/dist/segment-B3Uwwcsm.mjs +20 -0
- package/dist/{set-DtG0KH6P.mjs → set-B8cUbRLD.mjs} +13 -12
- package/dist/{set-CAIkXlPy.mjs → set-DfGsta5O.mjs} +11 -10
- package/dist/{setting-BDOi5fk_.mjs → setting-D2p2MA7f.mjs} +3 -3
- package/dist/{setup-LjTvvlJy.mjs → setup-C9ikBRw_.mjs} +9 -8
- package/dist/skills-CUHIcQS6.mjs +18 -0
- package/dist/skills-CiN1OQ8W.mjs +191 -0
- package/dist/snippet-B7D0uWlz.mjs +20 -0
- package/dist/{start-CXKt0Q7A.mjs → start-3PX3ahjT.mjs} +68 -36
- package/dist/{stash-dRw1UEwg.mjs → stash-EIDcSvpF.mjs} +17 -16
- package/dist/{status-C2niMfrQ.mjs → status-95ElRAu9.mjs} +12 -8
- package/dist/status-B0_MiZEf.mjs +100 -0
- package/dist/status-CEplmC44.mjs +34 -0
- package/dist/{stop-BdedYfwU.mjs → stop-CQ0XGrN8.mjs} +11 -10
- package/dist/{summary-BPDA4K99.mjs → summary-C12LiEuJ.mjs} +8 -7
- package/dist/{sync-schema-D95LLRpf.mjs → sync-schema-Ba8M3DiX.mjs} +10 -9
- package/dist/{table-B-PYcgGb.mjs → table-C7a5V6Zn.mjs} +1 -1
- package/dist/table-e6h8SLVX.mjs +20 -0
- package/dist/transform-BMYh1lsC.mjs +25 -0
- package/dist/transform-job-Cm7z5TfH.mjs +20 -0
- package/dist/{transform-job-Csr86muI.mjs → transform-job-DeTDPMxt.mjs} +1 -1
- package/dist/{tree-DazZT7dR.mjs → tree-Des2ZG9d.mjs} +6 -5
- package/dist/{update-DE6kjV-f.mjs → update-Bx54nWEI.mjs} +17 -15
- package/dist/{update-bW-i6gjZ.mjs → update-CyIZdbIQ.mjs} +11 -10
- package/dist/{update-djgvzO3K.mjs → update-DBi5U8zb.mjs} +16 -14
- package/dist/{update-CJSDB6S8.mjs → update-DHZubok3.mjs} +18 -14
- package/dist/{update-BBfvArCx.mjs → update-DSgceARZ.mjs} +11 -10
- package/dist/{update-DSWZSfpw.mjs → update-DzAN4SPj.mjs} +15 -13
- package/dist/{update-WyRKlQPh.mjs → update-F6DmZncY.mjs} +11 -10
- package/dist/{update-DTIWJxob.mjs → update-_QfgNa53.mjs} +12 -11
- package/dist/{update-dashcard-BhD5x__K.mjs → update-dashcard-wpSjv4M7.mjs} +11 -10
- package/dist/{update-9kVyE3BJ.mjs → update-mYVnoYNV.mjs} +15 -13
- package/dist/{update-659eQR1L.mjs → update-njHe3j-s.mjs} +15 -13
- package/dist/{upgrade-D58rvXHM.mjs → upgrade-iAuvhX-W.mjs} +9 -8
- package/dist/{url-DKkSu2D8.mjs → url-DWaT6WIZ.mjs} +11 -10
- package/dist/{uuid-BF20B59s.mjs → uuid-CMKnS8-z.mjs} +8 -6
- package/dist/{validate-CB0bu50i.mjs → validate-dPEOnOf8.mjs} +2 -1
- package/dist/{validate-query-CavIA0Q2.mjs → validate-query-Cw6WE5Y8.mjs} +3 -3
- package/dist/{values-DyjmpcbT.mjs → values-BfSTAbzc.mjs} +8 -7
- package/dist/verify-D5YtTqqp.mjs +79 -0
- package/dist/{wait-CeUPCgdc.mjs → wait-8yV9_WIo.mjs} +2 -2
- package/dist/{wait-DhkTaV6E.mjs → wait-Bv3Tsnv4.mjs} +12 -8
- package/dist/{wait-flags-BR-yqe7y.mjs → wait-flags-Dzq9BGQY.mjs} +20 -9
- package/dist/workspace-CKLZrR7l.mjs +26 -0
- package/dist/{workspace-credentials-Cctumbru.mjs → workspace-credentials-BXpABsNZ.mjs} +2 -41
- package/dist/yaml-YTQiYJ9s.mjs +43 -0
- package/package.json +6 -2
- package/skill-data/core/SKILL.md +177 -0
- package/skill-data/git-sync/SKILL.md +196 -0
- package/skill-data/mbql/SKILL.md +156 -0
- package/skill-data/mbql/references/operators.md +253 -0
- package/skill-data/transform/SKILL.md +197 -0
- package/skill-data/viz/SKILL.md +137 -0
- package/skill-data/viz/references/settings.md +312 -0
- package/skill-data/workspace/SKILL.md +390 -0
- package/skills/metabase-cli/SKILL.md +21 -0
- package/dist/add-collection-CPL1njYZ.mjs +0 -11
- package/dist/api-key-9p1UPnXn.mjs +0 -13
- package/dist/auth-N4w5xtwW.mjs +0 -19
- package/dist/card-4rZRb5bc.mjs +0 -20
- package/dist/collection-Cp_B02I4.mjs +0 -19
- package/dist/command-augment-D9pI9Vbh.mjs +0 -11
- package/dist/create-doyv3SxU.mjs +0 -50
- package/dist/create-ov-De5dO.mjs +0 -125
- package/dist/dashboard-BYBiA-IG.mjs +0 -20
- package/dist/db-CObVU22j.mjs +0 -22
- package/dist/eid-Cr5r-t9B.mjs +0 -13
- package/dist/field-CbljasCH.mjs +0 -18
- package/dist/flag-pair-Fmcdkrfx.mjs +0 -17
- package/dist/get-run-CSrXHDGS.mjs +0 -36
- package/dist/git-sync-BGkS8o5b.mjs +0 -28
- package/dist/is-dirty-BOZ4xz92.mjs +0 -10
- package/dist/key-CCJdVWKc.mjs +0 -12
- package/dist/license-DLLTpFvP.mjs +0 -17
- package/dist/list-BNzdnE1c.mjs +0 -55
- package/dist/measure-B54VtKym.mjs +0 -19
- package/dist/package-D-aVYFKM.mjs +0 -80
- package/dist/ps-C5FOLwL2.mjs +0 -11
- package/dist/segment-C2ui5dSd.mjs +0 -19
- package/dist/snippet-BcgVYsoR.mjs +0 -19
- package/dist/status-BEONmJWv.mjs +0 -32
- package/dist/status-BWep0PFe.mjs +0 -56
- package/dist/table-lCNGbvej.mjs +0 -19
- package/dist/transform-BGAm1s4f.mjs +0 -24
- package/dist/transform-job-cNTJ30pm.mjs +0 -19
- package/dist/workspace-DtcBldk0.mjs +0 -24
- /package/dist/{body-flags-BK7J6Daz.mjs → body-flags-D7q87Btw.mjs} +0 -0
- /package/dist/{field-B3gvaqpK.mjs → field-yomXlkvl.mjs} +0 -0
- /package/dist/{paginate-CTSfuYiF.mjs → paginate-Dfm9eO9A.mjs} +0 -0
- /package/dist/{revision-message-flag-oyq2xrDU.mjs → revision-message-flag-WmsIzUOM.mjs} +0 -0
- /package/dist/{segment-BMrUBz94.mjs → segment-Be2v4ilr.mjs} +0 -0
- /package/dist/{setting-CTaAeMci.mjs → setting-oL97SNeO.mjs} +0 -0
- /package/dist/{snippet-Dw0Sjzkr.mjs → snippet-COggaWxx.mjs} +0 -0
- /package/dist/{transform-IEX4Mx3X.mjs → transform-GTW3G-01.mjs} +0 -0
- /package/dist/{workspace-C5q4nbpY.mjs → workspace-BBXJczJK.mjs} +0 -0
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import "./
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { parseId } from "./parse-id-
|
|
7
|
-
import { pollUntil } from "./poll-
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
1
|
+
import { ConfigError, errorMessage } from "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
+
import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
|
|
3
|
+
import { createClient, defineMetabaseCommand, localUrl, parseInteger, parseOptionalInteger, resolveLicenseToken } from "./runtime-Dmv5VtUK.mjs";
|
|
4
|
+
import { warn } from "./capabilities-7e9MgquN.mjs";
|
|
5
|
+
import { renderItem } from "./render-CfznwleY.mjs";
|
|
6
|
+
import { parseId } from "./parse-id-lk_K-CEF.mjs";
|
|
7
|
+
import { pollUntil } from "./poll-DHKDpCiq.mjs";
|
|
8
|
+
import "./yaml-YTQiYJ9s.mjs";
|
|
9
|
+
import { runProcess } from "./process-C7V8LJ-j.mjs";
|
|
10
|
+
import { Workspace } from "./workspace-BBXJczJK.mjs";
|
|
11
|
+
import { CONTAINER_REPO_DIR, checkDockerReady, containerLifecycleStatus, containerNameFor, pullImage, removeContainer, runWorkspaceContainer, scrubContainerConfig, waitForConfigConsumed } from "./docker-Oq80q3tu.mjs";
|
|
12
|
+
import { REPO_SYNC_MODES, RepoSyncMode, buildCredentialsJson, generateWorkspaceCredentials, injectCredentialsIntoConfig, injectRepoSettingsIntoConfig } from "./workspace-credentials-BXpABsNZ.mjs";
|
|
12
13
|
import { z } from "zod";
|
|
13
|
-
import { stat } from "node:fs/promises";
|
|
14
14
|
import { resolve } from "node:path";
|
|
15
|
+
import { stat } from "node:fs/promises";
|
|
15
16
|
import { createServer } from "node:net";
|
|
16
17
|
|
|
17
18
|
//#region src/core/http/probe.ts
|
|
@@ -52,7 +53,10 @@ async function findFreePort(start) {
|
|
|
52
53
|
|
|
53
54
|
//#endregion
|
|
54
55
|
//#region src/commands/workspace/start.ts
|
|
55
|
-
const
|
|
56
|
+
const ENTERPRISE_IMAGE = "metabase/metabase-enterprise";
|
|
57
|
+
const ENTERPRISE_HEAD_IMAGE = "metabase/metabase-enterprise-head";
|
|
58
|
+
const LATEST_TAG = "latest";
|
|
59
|
+
const WORKSPACES_MIN_VERSION = 62;
|
|
56
60
|
const DEFAULT_HOST_PORT = 3e3;
|
|
57
61
|
const DEFAULT_READY_TIMEOUT_MS = 24e4;
|
|
58
62
|
const HEALTH_INTERVAL_MS = 2e3;
|
|
@@ -121,6 +125,10 @@ var start_default = defineMetabaseCommand({
|
|
|
121
125
|
name: "start",
|
|
122
126
|
description: "Start a local Docker container that serves as the workspace's dev instance"
|
|
123
127
|
},
|
|
128
|
+
capabilities: {
|
|
129
|
+
minVersion: WORKSPACES_MIN_VERSION,
|
|
130
|
+
tokenFeature: "workspaces"
|
|
131
|
+
},
|
|
124
132
|
args: {
|
|
125
133
|
...outputFlags,
|
|
126
134
|
...profileFlag,
|
|
@@ -136,8 +144,7 @@ var start_default = defineMetabaseCommand({
|
|
|
136
144
|
},
|
|
137
145
|
image: {
|
|
138
146
|
type: "string",
|
|
139
|
-
description: `Docker image to run
|
|
140
|
-
default: DEFAULT_IMAGE
|
|
147
|
+
description: `Docker image to run. Default: ${ENTERPRISE_IMAGE}:${LATEST_TAG} once Metabase v${WORKSPACES_MIN_VERSION} is released, otherwise ${ENTERPRISE_HEAD_IMAGE}:${LATEST_TAG}.`
|
|
141
148
|
},
|
|
142
149
|
wait: {
|
|
143
150
|
type: "boolean",
|
|
@@ -183,12 +190,12 @@ var start_default = defineMetabaseCommand({
|
|
|
183
190
|
"mb workspace start 1",
|
|
184
191
|
"mb workspace start 1 --wait",
|
|
185
192
|
"mb workspace start 1 --port 3100",
|
|
186
|
-
"mb workspace start 1 --image metabase/metabase-
|
|
193
|
+
"mb workspace start 1 --image metabase/metabase-enterprise:latest --no-pull",
|
|
187
194
|
"mb workspace start 1 --force",
|
|
188
195
|
"mb workspace start 1 --repo /path/to/sync-repo --wait",
|
|
189
196
|
"mb workspace start 1 --repo /path/to/sync-repo --repo-branch dev --repo-mode read-only"
|
|
190
197
|
],
|
|
191
|
-
async run({ args, ctx, getClient, getResolvedConfig }) {
|
|
198
|
+
async run({ args, ctx, getClient, getResolvedConfig, getServerInfo }) {
|
|
192
199
|
const workspaceId = parseId(args.id);
|
|
193
200
|
const containerName = containerNameFor(workspaceId);
|
|
194
201
|
const requestedPort = parseOptionalInteger(args.port, {
|
|
@@ -202,9 +209,11 @@ var start_default = defineMetabaseCommand({
|
|
|
202
209
|
const client = await getClient();
|
|
203
210
|
const resolved = await getResolvedConfig();
|
|
204
211
|
const licenseToken = await resolveLicenseToken({});
|
|
212
|
+
const serverInfo = await getServerInfo();
|
|
213
|
+
const image = args.image ?? resolveDefaultImage(serverInfo?.version ?? null);
|
|
205
214
|
await checkDockerReady();
|
|
206
215
|
await ensureNoExistingContainer(workspaceId, containerName, args.force);
|
|
207
|
-
const pullPromise = args.pull ? pullImage(
|
|
216
|
+
const pullPromise = args.pull ? pullImage(image) : Promise.resolve();
|
|
208
217
|
const workspace = await client.requestParsed(Workspace, `/api/ee/workspace-manager/${workspaceId}`);
|
|
209
218
|
assertAllDatabasesProvisioned(workspace);
|
|
210
219
|
const hostPort = await resolveHostPort(requestedPort);
|
|
@@ -217,44 +226,45 @@ var start_default = defineMetabaseCommand({
|
|
|
217
226
|
mode: args["repo-mode"]
|
|
218
227
|
})
|
|
219
228
|
]);
|
|
220
|
-
const
|
|
221
|
-
const configWithCredentials = injectCredentialsIntoConfig(parentConfigYaml, credentials);
|
|
222
|
-
const configYaml = repoOptions !== null ? injectRepoSettingsIntoConfig(configWithCredentials, repoOptions.repo) : configWithCredentials;
|
|
223
|
-
const credentialsJson = buildCredentialsJson(credentials);
|
|
229
|
+
const bundle = assembleBootBundle(parentConfigYaml, workspaceId, repoOptions);
|
|
224
230
|
await pullPromise;
|
|
225
231
|
await runWorkspaceContainer({
|
|
226
232
|
workspaceId,
|
|
227
233
|
workspaceName: workspace.name,
|
|
228
234
|
profile: resolved.profile,
|
|
229
235
|
parentUrl: resolved.url,
|
|
230
|
-
image
|
|
236
|
+
image,
|
|
231
237
|
hostPort,
|
|
232
|
-
configYaml,
|
|
233
|
-
credentialsJson,
|
|
238
|
+
configYaml: bundle.configYaml,
|
|
239
|
+
credentialsJson: bundle.credentialsJson,
|
|
234
240
|
licenseToken,
|
|
235
241
|
bindMounts: repoOptions === null ? [] : [repoOptions.bindMount]
|
|
236
242
|
});
|
|
237
|
-
await
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
if (metadataJson !== null) await importMetadataIntoChild(hostPort, credentials, metadataJson, readyTimeoutMs);
|
|
243
|
+
const state = await finalizeContainer({
|
|
244
|
+
workspaceId,
|
|
245
|
+
hostPort,
|
|
246
|
+
credentials: bundle.credentials,
|
|
247
|
+
metadataJson,
|
|
248
|
+
wait: args.wait,
|
|
249
|
+
timeoutMs: readyTimeoutMs
|
|
250
|
+
});
|
|
246
251
|
const result = {
|
|
247
252
|
workspace_id: workspaceId,
|
|
248
253
|
workspace_name: workspace.name,
|
|
249
254
|
container_name: containerName,
|
|
250
|
-
state
|
|
255
|
+
state,
|
|
251
256
|
host_port: hostPort,
|
|
252
257
|
url: localUrl(hostPort),
|
|
253
|
-
image
|
|
258
|
+
image
|
|
254
259
|
};
|
|
255
260
|
renderItem(result, startResultView, ctx);
|
|
256
261
|
}
|
|
257
262
|
});
|
|
263
|
+
function resolveDefaultImage(version) {
|
|
264
|
+
const isReleased = version !== null && version.major >= WORKSPACES_MIN_VERSION;
|
|
265
|
+
const repo = isReleased ? ENTERPRISE_IMAGE : ENTERPRISE_HEAD_IMAGE;
|
|
266
|
+
return `${repo}:${LATEST_TAG}`;
|
|
267
|
+
}
|
|
258
268
|
function assertAllDatabasesProvisioned(workspace) {
|
|
259
269
|
const databases = workspace.databases ?? [];
|
|
260
270
|
if (databases.length === 0) throw new ConfigError(`workspace ${workspace.id} has no databases — provision at least one before starting`);
|
|
@@ -300,6 +310,28 @@ async function fetchMetadataJson(client, workspaceId) {
|
|
|
300
310
|
});
|
|
301
311
|
return new Uint8Array(await response.arrayBuffer());
|
|
302
312
|
}
|
|
313
|
+
function assembleBootBundle(parentConfigYaml, workspaceId, repoOptions) {
|
|
314
|
+
const credentials = generateWorkspaceCredentials(workspaceId);
|
|
315
|
+
const withCredentials = injectCredentialsIntoConfig(parentConfigYaml, credentials);
|
|
316
|
+
const configYaml = repoOptions !== null ? injectRepoSettingsIntoConfig(withCredentials, repoOptions.repo) : withCredentials;
|
|
317
|
+
return {
|
|
318
|
+
configYaml,
|
|
319
|
+
credentialsJson: buildCredentialsJson(credentials),
|
|
320
|
+
credentials
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
async function finalizeContainer(input) {
|
|
324
|
+
await waitForConfigConsumed(input.workspaceId, input.timeoutMs);
|
|
325
|
+
try {
|
|
326
|
+
await scrubContainerConfig(input.workspaceId);
|
|
327
|
+
} catch (error) {
|
|
328
|
+
warn(`could not scrub in-container config.yml: ${errorMessage(error)}`);
|
|
329
|
+
}
|
|
330
|
+
const reachedHealth = input.wait || input.metadataJson !== null;
|
|
331
|
+
if (reachedHealth) await waitForHealth(input.hostPort, input.timeoutMs);
|
|
332
|
+
if (input.metadataJson !== null) await importMetadataIntoChild(input.hostPort, input.credentials, input.metadataJson, input.timeoutMs);
|
|
333
|
+
return reachedHealth ? "running" : "starting";
|
|
334
|
+
}
|
|
303
335
|
async function waitForHealth(hostPort, timeoutMs) {
|
|
304
336
|
const url = `${localUrl(hostPort)}/api/health`;
|
|
305
337
|
await pollUntil(() => probeHealth(url, HEALTH_PROBE_TIMEOUT_MS), (probe) => probe.ready, {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import "./
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import { REMOTE_SYNC_PATHS, SyncTask,
|
|
8
|
-
import "./poll-
|
|
1
|
+
import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
+
import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
|
|
3
|
+
import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
|
|
4
|
+
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
+
import { renderItem } from "./render-CfznwleY.mjs";
|
|
6
|
+
import "./parse-id-lk_K-CEF.mjs";
|
|
7
|
+
import { REMOTE_SYNC_PATHS, SyncTask, pollSyncTask, throwIfFailedTask } from "./poll-task-Cooi0lQV.mjs";
|
|
8
|
+
import "./poll-DHKDpCiq.mjs";
|
|
9
|
+
import { gitSyncWaitFlags, parseWaitFlags } from "./wait-flags-Dzq9BGQY.mjs";
|
|
9
10
|
import { z } from "zod";
|
|
10
11
|
|
|
11
12
|
//#region src/commands/git-sync/stash.ts
|
|
@@ -43,6 +44,10 @@ var stash_default = defineMetabaseCommand({
|
|
|
43
44
|
name: "stash",
|
|
44
45
|
description: "Export current Metabase state to a new branch on the git remote"
|
|
45
46
|
},
|
|
47
|
+
capabilities: {
|
|
48
|
+
minVersion: 60,
|
|
49
|
+
tokenFeature: "remote_sync"
|
|
50
|
+
},
|
|
46
51
|
args: {
|
|
47
52
|
...outputFlags,
|
|
48
53
|
...profileFlag,
|
|
@@ -59,7 +64,7 @@ var stash_default = defineMetabaseCommand({
|
|
|
59
64
|
alias: "m",
|
|
60
65
|
default: DEFAULT_STASH_MESSAGE
|
|
61
66
|
},
|
|
62
|
-
...
|
|
67
|
+
...gitSyncWaitFlags
|
|
63
68
|
},
|
|
64
69
|
outputSchema: SyncStashResult,
|
|
65
70
|
examples: ["mb git-sync stash --new-branch wip", "mb git-sync stash --new-branch wip -m \"work in progress\" --json"],
|
|
@@ -68,8 +73,7 @@ var stash_default = defineMetabaseCommand({
|
|
|
68
73
|
if (newBranch === "") throw new ConfigError("invalid new-branch: must not be blank");
|
|
69
74
|
const message = args.message.trim();
|
|
70
75
|
if (message === "") throw new ConfigError("invalid message: must not be blank");
|
|
71
|
-
const
|
|
72
|
-
const intervalMs = parseId(args.interval, "interval");
|
|
76
|
+
const wait = parseWaitFlags(args);
|
|
73
77
|
const body = {
|
|
74
78
|
new_branch: newBranch,
|
|
75
79
|
message
|
|
@@ -79,7 +83,7 @@ var stash_default = defineMetabaseCommand({
|
|
|
79
83
|
method: "POST",
|
|
80
84
|
body
|
|
81
85
|
});
|
|
82
|
-
if (!
|
|
86
|
+
if (!wait.enabled) {
|
|
83
87
|
const result$1 = {
|
|
84
88
|
status: kickoff.status,
|
|
85
89
|
message: kickoff.message,
|
|
@@ -88,10 +92,7 @@ var stash_default = defineMetabaseCommand({
|
|
|
88
92
|
renderItem(result$1, syncStashView, ctx);
|
|
89
93
|
return;
|
|
90
94
|
}
|
|
91
|
-
const final = await pollSyncTask(client,
|
|
92
|
-
timeoutMs,
|
|
93
|
-
intervalMs
|
|
94
|
-
});
|
|
95
|
+
const final = await pollSyncTask(client, wait.schedule);
|
|
95
96
|
const result = {
|
|
96
97
|
status: kickoff.status,
|
|
97
98
|
message: kickoff.message,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import "./
|
|
3
|
-
import {
|
|
4
|
-
import "./
|
|
5
|
-
import {
|
|
6
|
-
import { REMOTE_SYNC_PATHS, SyncTask, fetchCurrentTask, fetchOptionalParsed } from "./poll-task-
|
|
7
|
-
import "./poll-
|
|
8
|
-
import { IsDirtyResult } from "./is-dirty-
|
|
1
|
+
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
+
import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
|
|
3
|
+
import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
|
|
4
|
+
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
+
import { renderItem } from "./render-CfznwleY.mjs";
|
|
6
|
+
import { REMOTE_SYNC_PATHS, SyncTask, fetchCurrentTask, fetchOptionalParsed } from "./poll-task-Cooi0lQV.mjs";
|
|
7
|
+
import "./poll-DHKDpCiq.mjs";
|
|
8
|
+
import { IsDirtyResult } from "./is-dirty-BZOaryxT.mjs";
|
|
9
9
|
import { z } from "zod";
|
|
10
10
|
|
|
11
11
|
//#region src/commands/git-sync/status.ts
|
|
@@ -37,6 +37,10 @@ var status_default = defineMetabaseCommand({
|
|
|
37
37
|
name: "status",
|
|
38
38
|
description: "Show current git-sync state (branch, dirty, current task)"
|
|
39
39
|
},
|
|
40
|
+
capabilities: {
|
|
41
|
+
minVersion: 60,
|
|
42
|
+
tokenFeature: "remote_sync"
|
|
43
|
+
},
|
|
40
44
|
args: {
|
|
41
45
|
...outputFlags,
|
|
42
46
|
...profileFlag,
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
+
import { outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
|
|
3
|
+
import { ParsedVersionSchema, ProbedUser, ProfileLastFailure, TokenFeatures, defineMetabaseCommand, originOnly, readProfileRecord, resolveProfileName } from "./runtime-Dmv5VtUK.mjs";
|
|
4
|
+
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
+
import { renderItem } from "./render-CfznwleY.mjs";
|
|
6
|
+
import { renderTimestamp, renderUserName, renderUserRole, renderVersionTag } from "./render-OQn3iRsI.mjs";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
|
|
9
|
+
//#region src/commands/auth/status.ts
|
|
10
|
+
const AuthStatus = z.object({
|
|
11
|
+
profile: z.string(),
|
|
12
|
+
present: z.boolean(),
|
|
13
|
+
url: z.string().nullable(),
|
|
14
|
+
user: ProbedUser.nullable(),
|
|
15
|
+
version: ParsedVersionSchema.nullable(),
|
|
16
|
+
tokenFeatures: TokenFeatures.nullable(),
|
|
17
|
+
lastProbedAt: z.iso.datetime().nullable(),
|
|
18
|
+
lastFailure: ProfileLastFailure.nullable()
|
|
19
|
+
});
|
|
20
|
+
const authStatusView = {
|
|
21
|
+
compactPick: AuthStatus,
|
|
22
|
+
tableColumns: [
|
|
23
|
+
{
|
|
24
|
+
key: "profile",
|
|
25
|
+
label: "Profile"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
key: "present",
|
|
29
|
+
label: "Authenticated"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
key: "url",
|
|
33
|
+
label: "URL"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
key: "user",
|
|
37
|
+
label: "Logged in as",
|
|
38
|
+
format: (value) => renderUserName(value)
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
key: "user",
|
|
42
|
+
label: "Role",
|
|
43
|
+
format: (value) => renderUserRole(value)
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
key: "version",
|
|
47
|
+
label: "Version",
|
|
48
|
+
format: (value) => renderVersionTag(value)
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
key: "lastProbedAt",
|
|
52
|
+
label: "Last probed",
|
|
53
|
+
format: (value) => renderTimestamp(value)
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
};
|
|
57
|
+
var status_default = defineMetabaseCommand({
|
|
58
|
+
meta: {
|
|
59
|
+
name: "status",
|
|
60
|
+
description: "Show authentication status for a profile"
|
|
61
|
+
},
|
|
62
|
+
capabilities: null,
|
|
63
|
+
args: {
|
|
64
|
+
...outputFlags,
|
|
65
|
+
...profileFlag
|
|
66
|
+
},
|
|
67
|
+
outputSchema: AuthStatus,
|
|
68
|
+
examples: ["mb auth status --json", "mb auth status --profile staging"],
|
|
69
|
+
async run({ args, ctx }) {
|
|
70
|
+
const profileName = resolveProfileName(args.profile);
|
|
71
|
+
const record = await readProfileRecord(profileName);
|
|
72
|
+
if (record === null) {
|
|
73
|
+
renderItem({
|
|
74
|
+
profile: profileName,
|
|
75
|
+
present: false,
|
|
76
|
+
url: null,
|
|
77
|
+
user: null,
|
|
78
|
+
version: null,
|
|
79
|
+
tokenFeatures: null,
|
|
80
|
+
lastProbedAt: null,
|
|
81
|
+
lastFailure: null
|
|
82
|
+
}, authStatusView, ctx);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const probe = record.lastProbe;
|
|
86
|
+
renderItem({
|
|
87
|
+
profile: profileName,
|
|
88
|
+
present: true,
|
|
89
|
+
url: originOnly(record.url),
|
|
90
|
+
user: probe?.user ?? null,
|
|
91
|
+
version: probe?.version ?? null,
|
|
92
|
+
tokenFeatures: probe?.tokenFeatures ?? null,
|
|
93
|
+
lastProbedAt: probe?.at ?? null,
|
|
94
|
+
lastFailure: record.lastFailure
|
|
95
|
+
}, authStatusView, ctx);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
//#endregion
|
|
100
|
+
export { status_default as default };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
+
import { outputFlags } from "./error-C9S6PN3-.mjs";
|
|
3
|
+
import { defineMetabaseCommand, readLicense } from "./runtime-Dmv5VtUK.mjs";
|
|
4
|
+
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
+
import { renderScalar } from "./render-CfznwleY.mjs";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
|
|
8
|
+
//#region src/commands/workspace/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
|
+
capabilities: null,
|
|
23
|
+
args: { ...outputFlags },
|
|
24
|
+
outputSchema: LicenseStatus,
|
|
25
|
+
examples: ["mb workspace license status", "mb workspace license status --json"],
|
|
26
|
+
async run({ ctx }) {
|
|
27
|
+
const present = await readLicense() !== null;
|
|
28
|
+
const summary = present ? "A license token is stored." : "No license token stored.";
|
|
29
|
+
renderScalar({ present }, licenseStatusView, summary, ctx);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { status_default as default };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import "./
|
|
3
|
-
import {
|
|
4
|
-
import "./
|
|
5
|
-
import {
|
|
6
|
-
import { parseId } from "./parse-id-
|
|
7
|
-
import "./poll-
|
|
8
|
-
import "./process-
|
|
9
|
-
import { checkDockerReady, containerLifecycleStatus, containerNameFor, stopContainer } from "./docker-
|
|
10
|
-
import { LocalWorkspaceState } from "./ps-
|
|
1
|
+
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
+
import { outputFlags } from "./error-C9S6PN3-.mjs";
|
|
3
|
+
import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
|
|
4
|
+
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
+
import { renderItem } from "./render-CfznwleY.mjs";
|
|
6
|
+
import { parseId } from "./parse-id-lk_K-CEF.mjs";
|
|
7
|
+
import "./poll-DHKDpCiq.mjs";
|
|
8
|
+
import "./process-C7V8LJ-j.mjs";
|
|
9
|
+
import { checkDockerReady, containerLifecycleStatus, containerNameFor, stopContainer } from "./docker-Oq80q3tu.mjs";
|
|
10
|
+
import { LocalWorkspaceState } from "./ps-CJU0EbrC.mjs";
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
|
|
13
13
|
//#region src/commands/workspace/stop.ts
|
|
@@ -47,6 +47,7 @@ var stop_default = defineMetabaseCommand({
|
|
|
47
47
|
name: "stop",
|
|
48
48
|
description: "Stop the local Docker container for a workspace (does not remove it)"
|
|
49
49
|
},
|
|
50
|
+
capabilities: null,
|
|
50
51
|
args: {
|
|
51
52
|
...outputFlags,
|
|
52
53
|
id: {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import "./
|
|
3
|
-
import {
|
|
4
|
-
import "./
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
+
import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
|
|
3
|
+
import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
|
|
4
|
+
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
+
import { renderItem } from "./render-CfznwleY.mjs";
|
|
6
|
+
import { FieldSummary, FieldSummaryRaw, fieldSummaryView } from "./field-yomXlkvl.mjs";
|
|
7
|
+
import { parseId } from "./parse-id-lk_K-CEF.mjs";
|
|
8
8
|
|
|
9
9
|
//#region src/commands/field/summary.ts
|
|
10
10
|
var summary_default = defineMetabaseCommand({
|
|
@@ -12,6 +12,7 @@ var summary_default = defineMetabaseCommand({
|
|
|
12
12
|
name: "summary",
|
|
13
13
|
description: "Get the row count and distinct count for a field"
|
|
14
14
|
},
|
|
15
|
+
capabilities: { minVersion: 58 },
|
|
15
16
|
args: {
|
|
16
17
|
...outputFlags,
|
|
17
18
|
...profileFlag,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import "./
|
|
3
|
-
import {
|
|
4
|
-
import "./
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import "./
|
|
8
|
-
import "./table-
|
|
9
|
-
import { DatabaseSyncResult, databaseSyncResultView } from "./database-
|
|
1
|
+
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
+
import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
|
|
3
|
+
import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
|
|
4
|
+
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
+
import { renderItem } from "./render-CfznwleY.mjs";
|
|
6
|
+
import "./field-yomXlkvl.mjs";
|
|
7
|
+
import { parseId } from "./parse-id-lk_K-CEF.mjs";
|
|
8
|
+
import "./table-C7a5V6Zn.mjs";
|
|
9
|
+
import { DatabaseSyncResult, databaseSyncResultView } from "./database-lH-B3G1I.mjs";
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
|
|
12
12
|
//#region src/commands/db/sync-schema.ts
|
|
@@ -16,6 +16,7 @@ var sync_schema_default = defineMetabaseCommand({
|
|
|
16
16
|
name: "sync-schema",
|
|
17
17
|
description: "Trigger a manual schema sync for a database"
|
|
18
18
|
},
|
|
19
|
+
capabilities: { minVersion: 58 },
|
|
19
20
|
args: {
|
|
20
21
|
...outputFlags,
|
|
21
22
|
...profileFlag,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineCommand } from "citty";
|
|
2
|
+
|
|
3
|
+
//#region src/commands/table/index.ts
|
|
4
|
+
var table_default = defineCommand({
|
|
5
|
+
meta: {
|
|
6
|
+
name: "table",
|
|
7
|
+
alias: "tables",
|
|
8
|
+
description: "Manage Metabase tables"
|
|
9
|
+
},
|
|
10
|
+
subCommands: {
|
|
11
|
+
list: () => import("./list-sD5N3fGk.mjs").then((m) => m.default),
|
|
12
|
+
get: () => import("./get-C_w1kvN3.mjs").then((m) => m.default),
|
|
13
|
+
metadata: () => import("./metadata-DqiI2q9q.mjs").then((m) => m.default),
|
|
14
|
+
fields: () => import("./fields-CoQi99gv.mjs").then((m) => m.default),
|
|
15
|
+
update: () => import("./update-_QfgNa53.mjs").then((m) => m.default)
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { table_default as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { defineCommand } from "citty";
|
|
2
|
+
|
|
3
|
+
//#region src/commands/transform/index.ts
|
|
4
|
+
var transform_default = defineCommand({
|
|
5
|
+
meta: {
|
|
6
|
+
name: "transform",
|
|
7
|
+
alias: "transforms",
|
|
8
|
+
description: "Manage Metabase transforms"
|
|
9
|
+
},
|
|
10
|
+
subCommands: {
|
|
11
|
+
list: () => import("./list-C3hfovHv.mjs").then((mod) => mod.default),
|
|
12
|
+
get: () => import("./get-C2p383Qc.mjs").then((mod) => mod.default),
|
|
13
|
+
create: () => import("./create-BYlIju0b.mjs").then((mod) => mod.default),
|
|
14
|
+
update: () => import("./update-mYVnoYNV.mjs").then((mod) => mod.default),
|
|
15
|
+
delete: () => import("./delete-ZjnV35OJ.mjs").then((mod) => mod.default),
|
|
16
|
+
"delete-table": () => import("./delete-table-agZJpivt.mjs").then((mod) => mod.default),
|
|
17
|
+
run: () => import("./run-B4Wn43zm.mjs").then((mod) => mod.default),
|
|
18
|
+
cancel: () => import("./cancel-Dl_Ho056.mjs").then((mod) => mod.default),
|
|
19
|
+
"get-run": () => import("./get-run-B7sKdaDU.mjs").then((mod) => mod.default),
|
|
20
|
+
runs: () => import("./runs-Bbaszr18.mjs").then((mod) => mod.default)
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
export { transform_default as default };
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
alias: "transform-jobs",
|
|
8
|
+
description: "Manage Metabase transform jobs"
|
|
9
|
+
},
|
|
10
|
+
subCommands: {
|
|
11
|
+
list: () => import("./list-d58BprgJ.mjs").then((mod) => mod.default),
|
|
12
|
+
get: () => import("./get-Hc93A0Yz.mjs").then((mod) => mod.default),
|
|
13
|
+
create: () => import("./create-CzzrbL0u.mjs").then((mod) => mod.default),
|
|
14
|
+
update: () => import("./update-DSgceARZ.mjs").then((mod) => mod.default),
|
|
15
|
+
delete: () => import("./delete-Dimc-2y8.mjs").then((mod) => mod.default)
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { transform_job_default as default };
|
|
@@ -27,7 +27,7 @@ const TransformJob = z.object({
|
|
|
27
27
|
description: z.string().nullable(),
|
|
28
28
|
schedule: z.string(),
|
|
29
29
|
ui_display_type: JobUiDisplayType,
|
|
30
|
-
active: z.boolean(),
|
|
30
|
+
active: z.boolean().optional(),
|
|
31
31
|
entity_id: z.string().nullable(),
|
|
32
32
|
created_at: z.string(),
|
|
33
33
|
updated_at: z.string(),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import "./
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
1
|
+
import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
+
import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
|
|
3
|
+
import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
|
|
4
|
+
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
+
import { writeJson } from "./render-CfznwleY.mjs";
|
|
6
6
|
import { CollectionTreeNode } from "./collection-B3sPXRLs.mjs";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
|
|
@@ -13,6 +13,7 @@ var tree_default = defineMetabaseCommand({
|
|
|
13
13
|
name: "tree",
|
|
14
14
|
description: "Fetch the collection hierarchy as a nested tree (JSON only)"
|
|
15
15
|
},
|
|
16
|
+
capabilities: { minVersion: 58 },
|
|
16
17
|
args: {
|
|
17
18
|
...outputFlags,
|
|
18
19
|
...profileFlag,
|