@credibledata/cred-cli 0.0.100 → 0.0.103
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-DEV.md +2 -2
- package/README.md +1 -1
- package/coverage/coverage-summary.json +40 -0
- package/coverage/tmp/coverage-2152-1789496974457-0.json +1 -0
- package/coverage/tmp/coverage-2153-1789496954404-0.json +1 -0
- package/dist/client/api.js +6151 -2254
- package/dist/client/api.js.map +1 -1
- package/dist/client/base.js +1 -1
- package/dist/client/common.js +1 -1
- package/dist/client/configuration.js +1 -1
- package/dist/client/index.js +1 -1
- package/dist/clientconfiguration.js +114 -26
- package/dist/clientconfiguration.js.map +1 -1
- package/dist/clientconfiguration.spec.js +159 -37
- package/dist/clientconfiguration.spec.js.map +1 -1
- package/dist/commands/add.js +36 -5
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/connection/createconnections.js +4 -4
- package/dist/commands/connection/createconnections.js.map +1 -1
- package/dist/commands/connection/createconnections.spec.js +11 -1
- package/dist/commands/connection/createconnections.spec.js.map +1 -1
- package/dist/commands/connection/deleteconnection.js +4 -4
- package/dist/commands/connection/deleteconnection.js.map +1 -1
- package/dist/commands/connection/deleteconnection.spec.js +1 -1
- package/dist/commands/connection/deleteconnection.spec.js.map +1 -1
- package/dist/commands/connection/listconnections.js +4 -4
- package/dist/commands/connection/listconnections.js.map +1 -1
- package/dist/commands/connection/listconnections.spec.js +1 -1
- package/dist/commands/connection/listconnections.spec.js.map +1 -1
- package/dist/commands/{project/createproject.js → environment/createenvironment.js} +17 -14
- package/dist/commands/environment/createenvironment.js.map +1 -0
- package/dist/commands/{project/createproject.spec.js → environment/createenvironment.spec.js} +46 -46
- package/dist/commands/environment/createenvironment.spec.js.map +1 -0
- package/dist/commands/{project/deleteproject.js → environment/deleteenvironment.js} +9 -9
- package/dist/commands/environment/deleteenvironment.js.map +1 -0
- package/dist/commands/{project/deleteproject.spec.js → environment/deleteenvironment.spec.js} +29 -29
- package/dist/commands/environment/deleteenvironment.spec.js.map +1 -0
- package/dist/commands/{project/getproject.js → environment/getenvironment.js} +8 -8
- package/dist/commands/environment/getenvironment.js.map +1 -0
- package/dist/commands/{project/getproject.spec.js → environment/getenvironment.spec.js} +32 -33
- package/dist/commands/environment/getenvironment.spec.js.map +1 -0
- package/dist/commands/{project/listprojects.js → environment/listenvironments.js} +10 -10
- package/dist/commands/environment/listenvironments.js.map +1 -0
- package/dist/commands/{project/listprojects.spec.js → environment/listenvironments.spec.js} +35 -35
- package/dist/commands/environment/listenvironments.spec.js.map +1 -0
- package/dist/commands/{project/setproject.js → environment/setenvironment.js} +6 -5
- package/dist/commands/environment/setenvironment.js.map +1 -0
- package/dist/commands/{project/setproject.spec.js → environment/setenvironment.spec.js} +9 -9
- package/dist/commands/environment/setenvironment.spec.js.map +1 -0
- package/dist/commands/environment/updateenvironment.js +130 -0
- package/dist/commands/environment/updateenvironment.js.map +1 -0
- package/dist/commands/environment/updateenvironment.spec.js +213 -0
- package/dist/commands/environment/updateenvironment.spec.js.map +1 -0
- package/dist/commands/get.js +66 -5
- package/dist/commands/get.js.map +1 -1
- package/dist/commands/legacy.js +9 -0
- package/dist/commands/legacy.js.map +1 -0
- package/dist/commands/list.js +95 -4
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/materialization/cancelrun.js +62 -0
- package/dist/commands/materialization/cancelrun.js.map +1 -0
- package/dist/commands/materialization/getindex.js +52 -0
- package/dist/commands/materialization/getindex.js.map +1 -0
- package/dist/commands/materialization/getmaterialization.js +54 -0
- package/dist/commands/materialization/getmaterialization.js.map +1 -0
- package/dist/commands/materialization/getpreaggregate.js +55 -0
- package/dist/commands/materialization/getpreaggregate.js.map +1 -0
- package/dist/commands/materialization/getrun.js +54 -0
- package/dist/commands/materialization/getrun.js.map +1 -0
- package/dist/commands/materialization/listindexes.js +58 -0
- package/dist/commands/materialization/listindexes.js.map +1 -0
- package/dist/commands/materialization/listmaterializations.js +52 -0
- package/dist/commands/materialization/listmaterializations.js.map +1 -0
- package/dist/commands/materialization/listpreaggregates.js +61 -0
- package/dist/commands/materialization/listpreaggregates.js.map +1 -0
- package/dist/commands/materialization/listruns.js +60 -0
- package/dist/commands/materialization/listruns.js.map +1 -0
- package/dist/commands/materialization/rerun.js +111 -0
- package/dist/commands/materialization/rerun.js.map +1 -0
- package/dist/commands/misc/login.js +16 -2
- package/dist/commands/misc/login.js.map +1 -1
- package/dist/commands/misc/login.spec.js +133 -5
- package/dist/commands/misc/login.spec.js.map +1 -1
- package/dist/commands/package/deletepackage.js +4 -4
- package/dist/commands/package/deletepackage.js.map +1 -1
- package/dist/commands/package/deletepackage.spec.js +1 -1
- package/dist/commands/package/deletepackage.spec.js.map +1 -1
- package/dist/commands/package/listpackages.js +11 -4
- package/dist/commands/package/listpackages.js.map +1 -1
- package/dist/commands/package/listpackages.spec.js +13 -1
- package/dist/commands/package/listpackages.spec.js.map +1 -1
- package/dist/commands/package/publish.js +36 -13
- package/dist/commands/package/publish.js.map +1 -1
- package/dist/commands/package/publish.spec.js +27 -1
- package/dist/commands/package/publish.spec.js.map +1 -1
- package/dist/commands/package/updatepackage.js +4 -4
- package/dist/commands/package/updatepackage.js.map +1 -1
- package/dist/commands/package/updatepackage.spec.js +1 -1
- package/dist/commands/package/updatepackage.spec.js.map +1 -1
- package/dist/commands/permission/createpermission.js +123 -0
- package/dist/commands/permission/createpermission.js.map +1 -0
- package/dist/commands/permission/createpermission.spec.js +360 -0
- package/dist/commands/permission/createpermission.spec.js.map +1 -0
- package/dist/commands/permission/deletepermission.js +86 -0
- package/dist/commands/permission/deletepermission.js.map +1 -0
- package/dist/commands/permission/getpermission.js +85 -0
- package/dist/commands/permission/getpermission.js.map +1 -0
- package/dist/commands/permission/listpermissions.js +75 -0
- package/dist/commands/permission/listpermissions.js.map +1 -0
- package/dist/commands/permission/scope.js +140 -0
- package/dist/commands/permission/scope.js.map +1 -0
- package/dist/commands/rm.js +26 -4
- package/dist/commands/rm.js.map +1 -1
- package/dist/commands/set.js +12 -4
- package/dist/commands/set.js.map +1 -1
- package/dist/commands/update.js +29 -10
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/version/archive-unarchive-version.js +4 -5
- package/dist/commands/version/archive-unarchive-version.js.map +1 -1
- package/dist/commands/version/archive-unarchive-version.spec.js +4 -4
- package/dist/commands/version/archive-unarchive-version.spec.js.map +1 -1
- package/dist/commands/version/listversions.js +4 -4
- package/dist/commands/version/listversions.js.map +1 -1
- package/dist/commands/version/listversions.spec.js +1 -1
- package/dist/commands/version/listversions.spec.js.map +1 -1
- package/dist/common/UserGroupId.js +1 -1
- package/dist/common/UserGroupId.js.map +1 -1
- package/dist/common/UserGroupId.spec.js +2 -4
- package/dist/common/UserGroupId.spec.js.map +1 -1
- package/dist/constants.js +95 -19
- package/dist/constants.js.map +1 -1
- package/dist/constants.spec.js +90 -0
- package/dist/constants.spec.js.map +1 -0
- package/dist/index.js +128 -15
- package/dist/index.js.map +1 -1
- package/dist/logger.js +5 -1
- package/dist/logger.js.map +1 -1
- package/openapitools.json +4 -1
- package/package.json +10 -9
- package/src/client/api.ts +9363 -3093
- package/src/client/base.ts +1 -1
- package/src/client/common.ts +1 -1
- package/src/client/configuration.ts +1 -1
- package/src/client/index.ts +1 -1
- package/src/clientconfiguration.spec.ts +238 -113
- package/src/clientconfiguration.ts +131 -30
- package/src/commands/add.ts +78 -12
- package/src/commands/connection/createconnections.spec.ts +11 -1
- package/src/commands/connection/createconnections.ts +4 -4
- package/src/commands/connection/deleteconnection.spec.ts +1 -1
- package/src/commands/connection/deleteconnection.ts +4 -4
- package/src/commands/connection/listconnections.spec.ts +1 -1
- package/src/commands/connection/listconnections.ts +4 -4
- package/src/commands/{project/createproject.spec.ts → environment/createenvironment.spec.ts} +56 -54
- package/src/commands/{project/createproject.ts → environment/createenvironment.ts} +17 -14
- package/src/commands/{project/deleteproject.spec.ts → environment/deleteenvironment.spec.ts} +59 -30
- package/src/commands/{project/deleteproject.ts → environment/deleteenvironment.ts} +10 -10
- package/src/commands/environment/getenvironment.spec.ts +110 -0
- package/src/commands/{project/getproject.ts → environment/getenvironment.ts} +9 -9
- package/src/commands/{project/listprojects.spec.ts → environment/listenvironments.spec.ts} +37 -35
- package/src/commands/{project/listprojects.ts → environment/listenvironments.ts} +13 -8
- package/src/commands/{project/setproject.spec.ts → environment/setenvironment.spec.ts} +8 -8
- package/src/commands/{project/setproject.ts → environment/setenvironment.ts} +4 -4
- package/src/commands/environment/updateenvironment.spec.ts +386 -0
- package/src/commands/environment/updateenvironment.ts +168 -0
- package/src/commands/get.ts +131 -9
- package/src/commands/legacy.ts +5 -0
- package/src/commands/list.ts +204 -9
- package/src/commands/materialization/cancelrun.ts +70 -0
- package/src/commands/materialization/getindex.ts +55 -0
- package/src/commands/materialization/getmaterialization.ts +57 -0
- package/src/commands/materialization/getpreaggregate.ts +58 -0
- package/src/commands/materialization/getrun.ts +55 -0
- package/src/commands/materialization/listindexes.ts +69 -0
- package/src/commands/materialization/listmaterializations.ts +53 -0
- package/src/commands/materialization/listpreaggregates.ts +74 -0
- package/src/commands/materialization/listruns.ts +77 -0
- package/src/commands/materialization/rerun.ts +123 -0
- package/src/commands/misc/login.spec.ts +165 -7
- package/src/commands/misc/login.ts +20 -2
- package/src/commands/package/deletepackage.spec.ts +1 -1
- package/src/commands/package/deletepackage.ts +4 -4
- package/src/commands/package/listpackages.spec.ts +17 -1
- package/src/commands/package/listpackages.ts +11 -4
- package/src/commands/package/publish.spec.ts +46 -1
- package/src/commands/package/publish.ts +38 -13
- package/src/commands/package/updatepackage.spec.ts +1 -1
- package/src/commands/package/updatepackage.ts +4 -4
- package/src/commands/permission/createpermission.spec.ts +507 -0
- package/src/commands/permission/createpermission.ts +181 -0
- package/src/commands/permission/deletepermission.ts +117 -0
- package/src/commands/permission/getpermission.ts +115 -0
- package/src/commands/permission/listpermissions.ts +101 -0
- package/src/commands/permission/scope.ts +180 -0
- package/src/commands/rm.ts +54 -9
- package/src/commands/set.ts +13 -4
- package/src/commands/update.ts +66 -23
- package/src/commands/version/archive-unarchive-version.spec.ts +4 -4
- package/src/commands/version/archive-unarchive-version.ts +4 -7
- package/src/commands/version/listversions.spec.ts +1 -1
- package/src/commands/version/listversions.ts +4 -4
- package/src/common/UserGroupId.spec.ts +2 -4
- package/src/common/UserGroupId.ts +1 -1
- package/src/constants.spec.ts +111 -0
- package/src/constants.ts +131 -19
- package/src/index.ts +187 -18
- package/src/logger.ts +5 -1
- package/bun.lock +0 -1158
- package/dist/commands/project/createproject.js.map +0 -1
- package/dist/commands/project/createproject.spec.js.map +0 -1
- package/dist/commands/project/deleteproject.js.map +0 -1
- package/dist/commands/project/deleteproject.spec.js.map +0 -1
- package/dist/commands/project/getproject.js.map +0 -1
- package/dist/commands/project/getproject.spec.js.map +0 -1
- package/dist/commands/project/listprojects.js.map +0 -1
- package/dist/commands/project/listprojects.spec.js.map +0 -1
- package/dist/commands/project/setproject.js.map +0 -1
- package/dist/commands/project/setproject.spec.js.map +0 -1
- package/dist/commands/project/updateproject.js +0 -68
- package/dist/commands/project/updateproject.js.map +0 -1
- package/dist/commands/project/updateproject.spec.js +0 -129
- package/dist/commands/project/updateproject.spec.js.map +0 -1
- package/src/commands/project/getproject.spec.ts +0 -109
- package/src/commands/project/updateproject.spec.ts +0 -217
- package/src/commands/project/updateproject.ts +0 -82
package/src/index.ts
CHANGED
|
@@ -8,12 +8,12 @@ import { ClientConfiguration } from "./clientconfiguration";
|
|
|
8
8
|
import { registerAddCommands } from "./commands/add";
|
|
9
9
|
import { registerGetCommands } from "./commands/get";
|
|
10
10
|
import { registerListCommands } from "./commands/list";
|
|
11
|
-
import { login } from "./commands/misc/login";
|
|
11
|
+
import { isLoginInvocation, login } from "./commands/misc/login";
|
|
12
12
|
import { logout } from "./commands/misc/logout";
|
|
13
13
|
import { setAccessToken } from "./commands/misc/set-access-token";
|
|
14
14
|
import { listPackages } from "./commands/package/listpackages";
|
|
15
15
|
import { publish } from "./commands/package/publish";
|
|
16
|
-
import {
|
|
16
|
+
import { listEnvironments } from "./commands/environment/listenvironments";
|
|
17
17
|
import { registerRmCommands } from "./commands/rm";
|
|
18
18
|
import { registerSetCommands } from "./commands/set";
|
|
19
19
|
import { registerUpdateCommands } from "./commands/update";
|
|
@@ -21,10 +21,31 @@ import {
|
|
|
21
21
|
archiveVersion,
|
|
22
22
|
unarchiveVersion,
|
|
23
23
|
} from "./commands/version/archive-unarchive-version";
|
|
24
|
-
import {
|
|
24
|
+
import { rerun } from "./commands/materialization/rerun";
|
|
25
|
+
import { cancelRun } from "./commands/materialization/cancelrun";
|
|
26
|
+
import {
|
|
27
|
+
ASCII_TITLE,
|
|
28
|
+
Cluster,
|
|
29
|
+
CLUSTER_BY_ENVIRONMENT,
|
|
30
|
+
controlPlanesByEnv,
|
|
31
|
+
DEFAULT_ENVIRONMENT_BY_CLUSTER,
|
|
32
|
+
getCliOrgConfig,
|
|
33
|
+
} from "./constants";
|
|
25
34
|
|
|
26
35
|
const clientConfig = new ClientConfiguration();
|
|
27
36
|
|
|
37
|
+
// `cred login` is the documented recovery path for a corrupt `~/.cred`, and the
|
|
38
|
+
// one command whose job is to (re)establish config. The startup reads below —
|
|
39
|
+
// the axios baseURL and every getActiveEnvironment() call during command
|
|
40
|
+
// registration — invoke loadConfig() eagerly at module load, so a corrupt
|
|
41
|
+
// config throws here, before the login action ever runs, dead-ending the very
|
|
42
|
+
// command meant to fix it. Recover up front, but ONLY for login: every other
|
|
43
|
+
// command stays fail-loud (the thrown error still names `cred login` as the
|
|
44
|
+
// fix) so a stray read never silently resets a user's tokens.
|
|
45
|
+
if (isLoginInvocation(process.argv)) {
|
|
46
|
+
clientConfig.recoverIfCorrupt();
|
|
47
|
+
}
|
|
48
|
+
|
|
28
49
|
const getActiveEnvironment = () => {
|
|
29
50
|
return clientConfig.getEnvironment();
|
|
30
51
|
};
|
|
@@ -110,15 +131,126 @@ cli.command("unarchive")
|
|
|
110
131
|
);
|
|
111
132
|
});
|
|
112
133
|
|
|
134
|
+
cli.command("rerun")
|
|
135
|
+
.description(
|
|
136
|
+
"Trigger an on-demand run (rebuild/refresh) for a package version. Defaults to a full run (all sources, indexes and pre-aggregations); use --source/--dimension/--measure/--model-file to scope it to a single unit.",
|
|
137
|
+
)
|
|
138
|
+
.argument("<packageName>", "The name of the package to run.")
|
|
139
|
+
.argument("<versionId>", "The version to (re)build (e.g. 0.1.21).")
|
|
140
|
+
.option("--debug")
|
|
141
|
+
.option("-y, --yes", "Skip confirmation.")
|
|
142
|
+
.option("--source <sourceName>", "Scope the run to a single persist source.")
|
|
143
|
+
.option(
|
|
144
|
+
"--dimension <dimension>",
|
|
145
|
+
"Scope the run to a single indexed dimension.",
|
|
146
|
+
)
|
|
147
|
+
.option(
|
|
148
|
+
"--measure <measure>",
|
|
149
|
+
"Scope the run to a single pre-aggregated measure. Rebuilds the rollup serving it; add --source when the measure is declared at more than one grain.",
|
|
150
|
+
)
|
|
151
|
+
.option(
|
|
152
|
+
"--model-file <modelFilePath>",
|
|
153
|
+
"Disambiguate a dimension/source defined in more than one model file.",
|
|
154
|
+
)
|
|
155
|
+
.option(
|
|
156
|
+
"--include-upstream",
|
|
157
|
+
"Also force-rebuild the target's upstream persisted closure (only meaningful with --source/--dimension/--measure).",
|
|
158
|
+
false,
|
|
159
|
+
)
|
|
160
|
+
.action((packageName, versionId, options) => {
|
|
161
|
+
rerun(
|
|
162
|
+
controlPlanesByEnv[getActiveEnvironment()],
|
|
163
|
+
packageName,
|
|
164
|
+
versionId,
|
|
165
|
+
{
|
|
166
|
+
source: options.source,
|
|
167
|
+
dimension: options.dimension,
|
|
168
|
+
measure: options.measure,
|
|
169
|
+
modelFile: options.modelFile,
|
|
170
|
+
includeUpstream: options.includeUpstream,
|
|
171
|
+
},
|
|
172
|
+
options.debug,
|
|
173
|
+
options.yes,
|
|
174
|
+
);
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
cli.command("cancel-run")
|
|
178
|
+
.description("Cancel an in-flight (non-terminal) run.")
|
|
179
|
+
.argument("<packageName>", "The name of the package that owns the run.")
|
|
180
|
+
.argument("<runId>", "The id of the run to cancel.")
|
|
181
|
+
.option("--debug")
|
|
182
|
+
.option("-y, --yes", "Skip confirmation.")
|
|
183
|
+
.action((packageName, runId, options) => {
|
|
184
|
+
cancelRun(
|
|
185
|
+
controlPlanesByEnv[getActiveEnvironment()],
|
|
186
|
+
packageName,
|
|
187
|
+
runId,
|
|
188
|
+
options.debug,
|
|
189
|
+
options.yes,
|
|
190
|
+
);
|
|
191
|
+
});
|
|
192
|
+
|
|
113
193
|
cli.command("login")
|
|
114
194
|
.description("Login into Credible service.")
|
|
115
195
|
.argument("<organizationName>", "The organization to login to.")
|
|
116
|
-
.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
196
|
+
.option(
|
|
197
|
+
"-c, --cluster <cluster>",
|
|
198
|
+
"Target cluster: 'gcp' or 'aws'. Defaults to the org's default cluster (gcp for most orgs).",
|
|
199
|
+
)
|
|
200
|
+
.action((organizationName, options) => {
|
|
201
|
+
const orgConfig = getCliOrgConfig(organizationName);
|
|
202
|
+
const currentEnv = clientConfig.getEnvironment();
|
|
203
|
+
|
|
204
|
+
// Determine the target cluster. Precedence:
|
|
205
|
+
// 1. Explicit -c/--cluster flag.
|
|
206
|
+
// 2. The org's defaultCluster (from CliOrgConfig), if registered.
|
|
207
|
+
// 3. The cluster of the current activeEnvironment — i.e. don't touch
|
|
208
|
+
// anything. Unregistered orgs with no flag stay wherever the user
|
|
209
|
+
// already set themselves via ms2ad set-env.
|
|
210
|
+
let cluster: Cluster;
|
|
211
|
+
if (options.cluster !== undefined) {
|
|
212
|
+
const requested = String(options.cluster).toLowerCase();
|
|
213
|
+
if (requested !== "gcp" && requested !== "aws") {
|
|
214
|
+
console.error(
|
|
215
|
+
`Invalid --cluster value '${options.cluster}'. Must be 'gcp' or 'aws'.`,
|
|
216
|
+
);
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|
|
219
|
+
cluster = requested;
|
|
220
|
+
} else if (orgConfig) {
|
|
221
|
+
cluster = orgConfig.defaultCluster;
|
|
222
|
+
} else {
|
|
223
|
+
cluster = CLUSTER_BY_ENVIRONMENT[currentEnv];
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Unregistered orgs implicitly support only gcp; registered orgs declare
|
|
227
|
+
// their cluster list. Reject anything else.
|
|
228
|
+
const supportedClusters: Cluster[] = orgConfig?.supportedClusters ?? [
|
|
229
|
+
"gcp",
|
|
230
|
+
];
|
|
231
|
+
if (!supportedClusters.includes(cluster)) {
|
|
232
|
+
console.error(
|
|
233
|
+
`Organization '${organizationName}' is not available on the ${cluster} cluster.`,
|
|
234
|
+
);
|
|
235
|
+
process.exit(1);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Respect a previously-set activeEnvironment if it's already on the chosen
|
|
239
|
+
// cluster (e.g. `ms2ad set-env staging && cred login demo` stays on staging).
|
|
240
|
+
// Only flip envs when the current one is on a different cluster.
|
|
241
|
+
const targetEnv =
|
|
242
|
+
CLUSTER_BY_ENVIRONMENT[currentEnv] === cluster
|
|
243
|
+
? currentEnv
|
|
244
|
+
: DEFAULT_ENVIRONMENT_BY_CLUSTER[cluster];
|
|
245
|
+
if (targetEnv !== currentEnv) {
|
|
246
|
+
clientConfig.setEnvironment(targetEnv);
|
|
247
|
+
}
|
|
248
|
+
login(
|
|
249
|
+
organizationName,
|
|
250
|
+
controlPlanesByEnv[targetEnv],
|
|
251
|
+
undefined,
|
|
252
|
+
cluster,
|
|
253
|
+
);
|
|
122
254
|
});
|
|
123
255
|
|
|
124
256
|
cli.command("logout")
|
|
@@ -134,7 +266,9 @@ cli.command("set-access-token")
|
|
|
134
266
|
});
|
|
135
267
|
|
|
136
268
|
cli.command("status")
|
|
137
|
-
.description(
|
|
269
|
+
.description(
|
|
270
|
+
"Shows the cell this CLI targets, and the active organization and environment.",
|
|
271
|
+
)
|
|
138
272
|
.action(() => {
|
|
139
273
|
const config = new ClientConfiguration();
|
|
140
274
|
config.printStatus();
|
|
@@ -142,27 +276,50 @@ cli.command("status")
|
|
|
142
276
|
|
|
143
277
|
const complete = omelette("credible").tree({
|
|
144
278
|
// CRUD commands
|
|
145
|
-
get: [
|
|
279
|
+
get: [
|
|
280
|
+
"environment",
|
|
281
|
+
"project",
|
|
282
|
+
"group",
|
|
283
|
+
"permission",
|
|
284
|
+
"materialization",
|
|
285
|
+
"index",
|
|
286
|
+
"run",
|
|
287
|
+
],
|
|
146
288
|
ls: [
|
|
289
|
+
"environment",
|
|
147
290
|
"project",
|
|
148
291
|
"connection",
|
|
149
292
|
"package",
|
|
150
293
|
"version",
|
|
294
|
+
"materialization",
|
|
295
|
+
"index",
|
|
296
|
+
"run",
|
|
151
297
|
"group",
|
|
152
298
|
"group-access-token",
|
|
299
|
+
"permission",
|
|
153
300
|
],
|
|
154
|
-
update: ["project", "package"],
|
|
301
|
+
update: ["environment", "project", "package"],
|
|
155
302
|
rm: [
|
|
303
|
+
"environment",
|
|
156
304
|
"project",
|
|
157
305
|
"connection",
|
|
158
306
|
"package",
|
|
159
307
|
"group",
|
|
160
308
|
"member",
|
|
161
309
|
"group-access-token",
|
|
310
|
+
"permission",
|
|
311
|
+
],
|
|
312
|
+
add: [
|
|
313
|
+
"environment",
|
|
314
|
+
"project",
|
|
315
|
+
"connection",
|
|
316
|
+
"group",
|
|
317
|
+
"member",
|
|
318
|
+
"group-access-token",
|
|
319
|
+
"permission",
|
|
162
320
|
],
|
|
163
|
-
add: ["project", "connection", "group", "member", "group-access-token"],
|
|
164
321
|
// Misc commands
|
|
165
|
-
set: ["project"],
|
|
322
|
+
set: ["environment", "project"],
|
|
166
323
|
login: [],
|
|
167
324
|
logout: [],
|
|
168
325
|
"set-access-token": [],
|
|
@@ -170,14 +327,26 @@ const complete = omelette("credible").tree({
|
|
|
170
327
|
publish: [],
|
|
171
328
|
archive: [],
|
|
172
329
|
unarchive: [],
|
|
330
|
+
rerun: [],
|
|
331
|
+
"cancel-run": [],
|
|
173
332
|
});
|
|
174
333
|
|
|
175
334
|
complete.onAsync("$3", async ({ reply, line }) => {
|
|
176
|
-
const
|
|
177
|
-
|
|
335
|
+
const environmentRelatedCommands = [
|
|
336
|
+
"set environment",
|
|
337
|
+
"get environment",
|
|
338
|
+
"rm environment",
|
|
339
|
+
"set project",
|
|
340
|
+
"get project",
|
|
341
|
+
"rm project",
|
|
342
|
+
];
|
|
343
|
+
if (environmentRelatedCommands.some((cmd) => line.includes(cmd))) {
|
|
178
344
|
reply(
|
|
179
|
-
|
|
180
|
-
(
|
|
345
|
+
listEnvironments(
|
|
346
|
+
controlPlanesByEnv[getActiveEnvironment()],
|
|
347
|
+
false,
|
|
348
|
+
).then((result) =>
|
|
349
|
+
result.projects.map((environment) => environment.name),
|
|
181
350
|
),
|
|
182
351
|
);
|
|
183
352
|
}
|
package/src/logger.ts
CHANGED
|
@@ -25,9 +25,13 @@ export const logger = winston.createLogger({
|
|
|
25
25
|
winston.format.splat(),
|
|
26
26
|
),
|
|
27
27
|
transports: [
|
|
28
|
-
// Console transport with colored logs
|
|
28
|
+
// Console transport with colored logs. Error/warn go to stderr so they
|
|
29
|
+
// never pollute stdout — commands like `cred ls packages` print JSON to
|
|
30
|
+
// stdout, and a log line landing there makes downstream `JSON.parse`
|
|
31
|
+
// (e.g. the e2e harness) fail cryptically.
|
|
29
32
|
new winston.transports.Console({
|
|
30
33
|
format: consoleFormat,
|
|
34
|
+
stderrLevels: ["error", "warn"],
|
|
31
35
|
}),
|
|
32
36
|
|
|
33
37
|
// NOTE disabled app.log logging
|