@quonfig/cli 0.0.20 → 0.0.22

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.
@@ -69,7 +69,7 @@
69
69
  "required": true
70
70
  }
71
71
  },
72
- "description": "Create a new feature flag, config value, or other item.\n\nUse --type to specify the kind of item:\n boolean-flag On/off feature flag (sendToClientSdk defaults to true; best for gradual rollouts)\n string A string configuration value\n int An integer configuration value\n double A floating-point configuration value\n string-list A comma-separated list of strings\n json An arbitrary JSON blob\n boolean A plain boolean (not a feature flag)\n log_level A dynamic log level (value must be one of TRACE/DEBUG/INFO/WARN/ERROR/FATAL)\n\nThis sets the global default value. Override per-environment with:\n qfg set-default my.flag --environment production --value true\n\nFor a percentage rollout (gradual rollout / A/B test / canary deploy), use:\n qfg set-rollout my.flag --environment production --true-percent 20\n\nOr edit the JSON config file directly for complex targeting rules:\n qfg config-schema # full operator reference + examples\n qfg pull --dir ./config # clone workspace, then edit JSON and git push\n\nLog levels:\n qfg create log-level.my-app --type log_level --value WARN\n # Log-level keys must start with \"log-level.\".\n # For per-logger targeting, create ONE log-level config per service and add\n # rules on the \"quonfig-sdk-logging.key\" context property (e.g.\n # PROP_STARTS_WITH_ONE_OF MyPackage.) rather than one config per logger.",
72
+ "description": "Create a new feature flag, config value, or other item.\n\nUse --type to specify the kind of item:\n boolean-flag On/off feature flag (sendToClientSdk defaults to true; best for gradual rollouts)\n string A string configuration value\n int An integer configuration value\n double A floating-point configuration value\n string-list A comma-separated list of strings\n json An arbitrary JSON blob\n boolean A plain boolean (not a feature flag)\n duration An ISO 8601 duration string, e.g. PT30S, PT5M, PT1H30M (SDK returns milliseconds)\n log_level A dynamic log level (value must be one of TRACE/DEBUG/INFO/WARN/ERROR/FATAL)\n\nThis sets the global default value. Override per-environment with:\n qfg set-default my.flag --environment production --value true\n\nFor a percentage rollout (gradual rollout / A/B test / canary deploy), use:\n qfg set-rollout my.flag --environment production --true-percent 20\n\nOr edit the JSON config file directly for complex targeting rules:\n qfg config-schema # full operator reference + examples\n qfg pull --dir ./config # clone workspace, then edit JSON and git push\n\nLog levels:\n qfg create log-level.my-app --type log_level --value WARN\n # Log-level keys must start with \"log-level.\".\n # For per-logger targeting, create ONE log-level config per service and add\n # rules on the \"quonfig-sdk-logging.key\" context property (e.g.\n # PROP_STARTS_WITH_ONE_OF MyPackage.) rather than one config per logger.",
73
73
  "examples": [
74
74
  "<%= config.bin %> <%= command.id %> my.new.flag --type boolean-flag",
75
75
  "<%= config.bin %> <%= command.id %> my.new.flag --type boolean-flag --value=true",
@@ -77,6 +77,7 @@
77
77
  "<%= config.bin %> <%= command.id %> my.new.string --type string --value=\"hello world\" --secret",
78
78
  "<%= config.bin %> <%= command.id %> my.new.string --type string --env-var=MY_ENV_VAR_NAME",
79
79
  "<%= config.bin %> <%= command.id %> my.new.string --type json --value=\"{\\\"key\\\": \\\"value\\\"}\"",
80
+ "<%= config.bin %> <%= command.id %> my.timeout --type duration --value PT90S",
80
81
  "<%= config.bin %> <%= command.id %> log-level.my-app --type log_level --value WARN",
81
82
  "# After creating a flag, set a 20% rollout in production:",
82
83
  "<%= config.bin %> set-rollout my.new.flag --environment production --true-percent 20"
@@ -158,6 +159,7 @@
158
159
  "int",
159
160
  "string-list",
160
161
  "json",
162
+ "duration",
161
163
  "log_level"
162
164
  ],
163
165
  "type": "option"
@@ -200,6 +202,93 @@
200
202
  "create.js"
201
203
  ]
202
204
  },
205
+ "delete": {
206
+ "aliases": [],
207
+ "args": {
208
+ "name": {
209
+ "description": "flag/config/log-level key to delete",
210
+ "name": "name",
211
+ "required": true
212
+ }
213
+ },
214
+ "description": "Delete a flag, config, or log-level from the workspace.\n\nDESTRUCTIVE — removes the underlying JSON file from the workspace git repo\nand commits with the actor's identity. The commit history preserves the\nprior content; this is a hard-delete on the file but a soft-delete on\nhistory.\n\nConfirmation is required:\n --yes skip the prompt (for scripts and CI)\n interactive (default) you'll be asked to type the key name back\n\nExamples\n qfg delete my.flag --yes\n qfg delete my.flag # interactive: type the key back to confirm\n qfg delete my.config --yes",
215
+ "examples": [
216
+ "<%= config.bin %> <%= command.id %> my.flag --yes",
217
+ "<%= config.bin %> <%= command.id %> my.config --yes"
218
+ ],
219
+ "flags": {
220
+ "json": {
221
+ "description": "Format output as json.",
222
+ "helpGroup": "GLOBAL",
223
+ "name": "json",
224
+ "allowNo": false,
225
+ "type": "boolean"
226
+ },
227
+ "interactive": {
228
+ "description": "Force interactive mode",
229
+ "helpGroup": "GLOBAL",
230
+ "name": "interactive",
231
+ "allowNo": true,
232
+ "type": "boolean"
233
+ },
234
+ "no-color": {
235
+ "description": "Do not colorize output",
236
+ "env": "NO_COLOR",
237
+ "helpGroup": "GLOBAL",
238
+ "name": "no-color",
239
+ "allowNo": false,
240
+ "type": "boolean"
241
+ },
242
+ "verbose": {
243
+ "description": "Verbose output",
244
+ "helpGroup": "GLOBAL",
245
+ "name": "verbose",
246
+ "allowNo": false,
247
+ "type": "boolean"
248
+ },
249
+ "workspace": {
250
+ "char": "w",
251
+ "description": "Workspace slug to use (overrides QUONFIG_WORKSPACE env var and saved default)",
252
+ "helpGroup": "GLOBAL",
253
+ "name": "workspace",
254
+ "required": false,
255
+ "hasDynamicHelp": false,
256
+ "multiple": false,
257
+ "type": "option"
258
+ },
259
+ "profile": {
260
+ "char": "p",
261
+ "description": "Deprecated: use --workspace instead",
262
+ "helpGroup": "GLOBAL",
263
+ "hidden": true,
264
+ "name": "profile",
265
+ "required": false,
266
+ "hasDynamicHelp": false,
267
+ "multiple": false,
268
+ "type": "option"
269
+ },
270
+ "yes": {
271
+ "description": "skip confirmation prompt",
272
+ "name": "yes",
273
+ "allowNo": false,
274
+ "type": "boolean"
275
+ }
276
+ },
277
+ "hasDynamicHelp": false,
278
+ "hiddenAliases": [],
279
+ "id": "delete",
280
+ "pluginAlias": "@quonfig/cli",
281
+ "pluginName": "@quonfig/cli",
282
+ "pluginType": "core",
283
+ "strict": true,
284
+ "enableJsonFlag": true,
285
+ "isESM": true,
286
+ "relativePath": [
287
+ "dist",
288
+ "commands",
289
+ "delete.js"
290
+ ]
291
+ },
203
292
  "generate-new-hex-key": {
204
293
  "aliases": [],
205
294
  "args": {},
@@ -295,7 +384,7 @@
295
384
  "type": "boolean"
296
385
  },
297
386
  "dir": {
298
- "description": "Path to local QUONFIG_DIR (defaults to QUONFIG_DIR env var)",
387
+ "description": "Path to local QUONFIG_DIR (defaults to QUONFIG_DIR env var). When omitted, fetches the workspace from the server using your active credentials.",
299
388
  "env": "QUONFIG_DIR",
300
389
  "name": "dir",
301
390
  "hasDynamicHelp": false,
@@ -317,6 +406,14 @@
317
406
  "hasDynamicHelp": false,
318
407
  "multiple": false,
319
408
  "type": "option"
409
+ },
410
+ "workspace": {
411
+ "char": "w",
412
+ "description": "Workspace slug or UUID for the remote-fetch path (defaults to QUONFIG_WORKSPACE env var or active profile). Only used when --dir is omitted.",
413
+ "name": "workspace",
414
+ "hasDynamicHelp": false,
415
+ "multiple": false,
416
+ "type": "option"
320
417
  }
321
418
  },
322
419
  "hasDynamicHelp": false,
@@ -1190,16 +1287,21 @@
1190
1287
  "aliases": [],
1191
1288
  "args": {
1192
1289
  "name": {
1193
- "description": "config/feature-flag/etc. name",
1290
+ "description": "flag/config key to override",
1194
1291
  "name": "name"
1292
+ },
1293
+ "value": {
1294
+ "description": "new value (type inferred: bool/int/double/json/string)",
1295
+ "name": "value"
1195
1296
  }
1196
1297
  },
1197
- "description": "Override the value of an item for your user/SDK key combo.\n\nTo target users other than yourself, or to express rules like \"user.email == X → value Y\",\nyou cannot use override — see:\n qfg config-schema # operator reference + worked multi-rule example\n qfg pull # clone the workspace so you can edit JSON directly",
1298
+ "description": "Override a flag value for your dev user.\n\nWrites a top-priority rule keyed on the dev-only quonfig-user.email property,\nso the override only fires for SDK clients that set quonfig-user.email in\ntheir context. Production SDKs typically don't set this property, which makes\noverrides effectively inert in production.\n\nExamples\n qfg override # list flags where you have an override\n qfg override my.flag true # set bool override\n qfg override my.flag 42 # set int override\n qfg override my.flag '{\"a\":1}' # set json override\n qfg override my.flag --remove # remove your override on my.flag\n qfg override --clear # remove ALL of your overrides in this env",
1198
1299
  "examples": [
1199
- "<%= config.bin %> <%= command.id %> # will prompt for name and value",
1200
- "<%= config.bin %> <%= command.id %> my.flag.name --value=true",
1201
- "<%= config.bin %> <%= command.id %> my.flag.name --remove",
1202
- "<%= config.bin %> <%= command.id %> my.double.config --value=3.14159"
1300
+ "<%= config.bin %> <%= command.id %>",
1301
+ "<%= config.bin %> <%= command.id %> my.flag true",
1302
+ "<%= config.bin %> <%= command.id %> my.flag --remove",
1303
+ "<%= config.bin %> <%= command.id %> --clear",
1304
+ "<%= config.bin %> <%= command.id %> my.flag true --env=staging"
1203
1305
  ],
1204
1306
  "flags": {
1205
1307
  "json": {
@@ -1252,25 +1354,24 @@
1252
1354
  "multiple": false,
1253
1355
  "type": "option"
1254
1356
  },
1255
- "environment": {
1256
- "description": "environment to override in",
1257
- "name": "environment",
1357
+ "clear": {
1358
+ "description": "remove ALL of your overrides in this env",
1359
+ "name": "clear",
1360
+ "allowNo": false,
1361
+ "type": "boolean"
1362
+ },
1363
+ "env": {
1364
+ "description": "environment to operate in (default: $QUONFIG_ENVIRONMENT)",
1365
+ "name": "env",
1258
1366
  "hasDynamicHelp": false,
1259
1367
  "multiple": false,
1260
1368
  "type": "option"
1261
1369
  },
1262
1370
  "remove": {
1263
- "description": "remove your override (if present)",
1371
+ "description": "remove your override on this key",
1264
1372
  "name": "remove",
1265
1373
  "allowNo": false,
1266
1374
  "type": "boolean"
1267
- },
1268
- "value": {
1269
- "description": "value to use for your override",
1270
- "name": "value",
1271
- "hasDynamicHelp": false,
1272
- "multiple": false,
1273
- "type": "option"
1274
1375
  }
1275
1376
  },
1276
1377
  "hasDynamicHelp": false,
@@ -2882,5 +2983,5 @@
2882
2983
  ]
2883
2984
  }
2884
2985
  },
2885
- "version": "0.0.20"
2986
+ "version": "0.0.22"
2886
2987
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "packageManager": "yarn@4.11.0+sha512.4e54aeace9141df2f0177c266b05ec50dc044638157dae128c471ba65994ac802122d7ab35bcd9e81641228b7dcf24867d28e750e0bcae8a05277d600008ad54",
3
3
  "name": "@quonfig/cli",
4
- "version": "0.0.20",
4
+ "version": "0.0.22",
5
5
  "bugs": {
6
6
  "url": "https://github.com/quonfig/cli/issues"
7
7
  },