@canner-ca/cli 0.4.0 → 0.4.1
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 +1 -1
- package/package.json +1 -1
- package/src/cli.mjs +19 -5
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@ canner deploy --follow
|
|
|
68
68
|
| `canner token list` | List your `cnr_` API tokens. |
|
|
69
69
|
| `canner token create <name>` | Mint a new token. The secret is printed once — copy it immediately. |
|
|
70
70
|
| `canner token revoke <id\|name>` | Revoke a token. |
|
|
71
|
-
| `canner env [list] [--slug X]` | List a project's environment variables. |
|
|
71
|
+
| `canner env [list] [--reveal] [--slug X]` | List a project's environment variables. Values marked sensitive are redacted (`••••••`, or `null` in `--json`) unless `--reveal` is passed. |
|
|
72
72
|
| `canner env set KEY=VALUE [--env production\|preview] [--sensitive] [--slug X]` | Add an environment variable. |
|
|
73
73
|
| `canner env rm <KEY\|id> [--env ...] [--slug X]` | Delete an environment variable. |
|
|
74
74
|
| `canner domains [list] [--slug X]` | List a project's custom domains. |
|
package/package.json
CHANGED
package/src/cli.mjs
CHANGED
|
@@ -678,7 +678,8 @@ async function resolveTokenId(creds, ref) {
|
|
|
678
678
|
}
|
|
679
679
|
|
|
680
680
|
// ---------------------------------------------------------------------------
|
|
681
|
-
// canner env [--slug X]
|
|
681
|
+
// canner env [--reveal] [--slug X] — list env vars
|
|
682
|
+
// (sensitive values redacted by default, in text AND --json; --reveal opts out)
|
|
682
683
|
// canner env set KEY=VALUE [--env production|preview] [--sensitive] [--slug X]
|
|
683
684
|
// canner env rm <KEY|id> [--env ...] [--slug X] — delete an env var
|
|
684
685
|
// ---------------------------------------------------------------------------
|
|
@@ -692,11 +693,21 @@ async function cmdEnv(args) {
|
|
|
692
693
|
if (sub === 'list') {
|
|
693
694
|
const body = await apiJSON(creds, 'GET', base);
|
|
694
695
|
const rows = body?.env_vars ?? [];
|
|
695
|
-
|
|
696
|
+
// Sensitive values are redacted by default in BOTH output modes — the API
|
|
697
|
+
// returns them decrypted (the owner can read their own secrets back), but
|
|
698
|
+
// a plain `env list` (human or --json) is a read-only config check, not a
|
|
699
|
+
// secret-reveal action. --reveal is the explicit opt-in for scripts that
|
|
700
|
+
// actually need the value (e.g. syncing it elsewhere).
|
|
701
|
+
const reveal = args.reveal === true;
|
|
702
|
+
if (JSON_MODE) {
|
|
703
|
+
return emitJSON(
|
|
704
|
+
reveal ? rows : rows.map((v) => (v.is_sensitive ? { ...v, value: null } : v))
|
|
705
|
+
);
|
|
706
|
+
}
|
|
696
707
|
if (rows.length === 0) { muted('no environment variables.'); return; }
|
|
697
708
|
info(`${pad(bold('KEY'), 28)}${pad(bold('ENV'), 14)}${pad(bold('SENSITIVE'), 12)}${bold('VALUE')}`);
|
|
698
709
|
for (const v of rows) {
|
|
699
|
-
const val = v.is_sensitive ? dim('••••••') : (v.value ?? '').split('\n')[0].slice(0, 48);
|
|
710
|
+
const val = v.is_sensitive && !reveal ? dim('••••••') : (v.value ?? '').split('\n')[0].slice(0, 48);
|
|
700
711
|
info(`${pad(v.key, 28)}${pad(dim(v.environment ?? 'all'), 14)}${pad(v.is_sensitive ? yellow('yes') : dim('no'), 12)}${dim(val)}`);
|
|
701
712
|
}
|
|
702
713
|
return;
|
|
@@ -1157,10 +1168,12 @@ ${bold('Deploys:')}
|
|
|
1157
1168
|
${bold('Resources:')}
|
|
1158
1169
|
${bold('token')} list | create <name> | revoke <id|name>
|
|
1159
1170
|
Manage the cnr_ API tokens that authenticate this CLI.
|
|
1160
|
-
${bold('env')} [list] [--slug X]
|
|
1171
|
+
${bold('env')} [list] [--reveal] [--slug X]
|
|
1161
1172
|
${bold('env')} set KEY=VALUE [--env production|preview] [--sensitive] [--slug X]
|
|
1162
1173
|
${bold('env')} rm <KEY|id> [--env ...] [--slug X]
|
|
1163
|
-
Manage a project's environment variables.
|
|
1174
|
+
Manage a project's environment variables. Sensitive
|
|
1175
|
+
values are redacted as •••••• (or null in --json) on
|
|
1176
|
+
list; pass --reveal to see them in cleartext.
|
|
1164
1177
|
${bold('domains')} [list] [--slug X]
|
|
1165
1178
|
${bold('domains')} add <hostname> [--slug X]
|
|
1166
1179
|
${bold('domains')} verify <hostname|id> [--slug X]
|
|
@@ -1184,6 +1197,7 @@ ${bold('Examples:')}
|
|
|
1184
1197
|
canner open --dashboard ${dim('# open dashboard project page')}
|
|
1185
1198
|
canner token create ci ${dim('# mint a token named "ci"')}
|
|
1186
1199
|
canner env set API_KEY=secret --sensitive ${dim('# add a hidden env var')}
|
|
1200
|
+
canner env list --reveal ${dim('# show sensitive values in cleartext')}
|
|
1187
1201
|
canner domains add www.example.com ${dim('# attach a custom domain')}
|
|
1188
1202
|
canner projects --json | jq '.[].slug' ${dim('# machine-readable output')}
|
|
1189
1203
|
|