wawesome 0.14.1 → 0.14.2

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 CHANGED
@@ -329,10 +329,14 @@ npx wawesome credentials mint ci -c deploy,domains:attach -a prod
329
329
  | `-a, --app` | Restrict to these Apps, by slug. Repeatable. Default: every App in the workspace |
330
330
  | `--expires` | Days, or `never`. Default: 90 |
331
331
 
332
+ `deploy` reaches the reads of what it writes, so a credential minted with it carries `read` as well:
333
+ it lists the workspace, the Apps in it, the Functions in an App and their versions. The command
334
+ prints the words the credential ended up with.
335
+
332
336
  An App named in a restriction does not have to exist yet. A pipeline whose first deploy creates the
333
- App it was minted for is the ordinary case. A restriction bounds what a credential can disturb, not
334
- what it can read. A Function deployed into one App still reads the whole workspace's environment at
335
- runtime.
337
+ App it was minted for is the ordinary case. A restriction bounds what a credential reads as well as
338
+ what it disturbs, and `deploy` is the hole in it: a Function deployed into an App the credential does
339
+ reach still reads the whole workspace's environment at runtime.
336
340
 
337
341
  ### List them
338
342
 
@@ -468,7 +472,7 @@ concluding the platform cannot do it.
468
472
  |:---------------------------|:------------------------------------------------------------------------|:--------------|
469
473
  | `list_templates` | The template catalogue, with what each one is for | nothing |
470
474
  | `get_template` | One template's files, environment contract and outbound providers | nothing |
471
- | `list_apps` | The Apps in the workspace, with the slug each is addressed by | `deploy` |
475
+ | `list_apps` | The Apps the credential reaches, with the slug each is addressed by | `read` |
472
476
  | `list_functions` | The Functions in one App, and what their live version carries | `read` |
473
477
  | `list_versions` | A Function's Versions, and which one is live | `read` |
474
478
  | `get_usage` | The Tenant's usage and headroom | `read` |
@@ -501,18 +505,14 @@ is all the platform permits, and an agent taking it would end yours.
501
505
  A credential carries the words its job needs and stops there. They are the same words
502
506
  [Deploy credentials](#mint-one) mints with.
503
507
 
504
- **Read and investigate, without the ability to ship.** The agent reads Functions, Versions,
505
- Invocations and log bodies, diagnoses a failure, checks usage, and browses templates. Every tool that
506
- ships code or runs it refuses:
508
+ **Read and investigate, without the ability to ship.** The agent enumerates your Apps, reads
509
+ Functions, Versions, Invocations and log bodies, diagnoses a failure, checks usage, and browses
510
+ templates. Every tool that ships code or runs it refuses:
507
511
 
508
512
  ```bash
509
513
  npx wawesome credentials mint investigator -c read,logs:read -a prod
510
514
  ```
511
515
 
512
- One thing to know before you hand it over: `list_apps` sits behind `deploy`, the same word the HTTP
513
- route behind it asks for, so an investigation credential cannot enumerate your Apps. Name the App in
514
- the task and every other read works.
515
-
516
516
  **Read, investigate and run.** The same, plus `invoke_function`, so the agent can exercise a Function
517
517
  and read what it did. It still cannot deploy, roll back, or set a variable:
518
518
 
@@ -532,9 +532,10 @@ closed to every credential, whatever it carries.
532
532
 
533
533
  Keep `-a` on all three. A credential restricted to one App is refused on every tool that names
534
534
  another, which is what stops an agent working on one client's project from touching another's.
535
- `get_invocation` and `read_invocation_logs` take an Invocation id rather than an App, and neither is
536
- held to the restriction yet, so an agent already holding an id can read that Invocation's telemetry
537
- and log body whichever App it belongs to.
535
+ `get_invocation` and `read_invocation_logs` take an Invocation id rather than an App, and an id
536
+ belonging to an App the credential cannot reach is answered as an id naming nothing. `list_apps`
537
+ answers a set rather than one App, so it is narrowed instead of refused: the credential is listed the
538
+ Apps it reaches and told nothing about the rest.
538
539
 
539
540
  ### When a tool refuses
540
541
 
package/dist/index.mjs CHANGED
@@ -883,7 +883,7 @@ async function buildJs(entryInput, options) {
883
883
  * that has to name this version — `--version`, the dependency a scaffolded
884
884
  * project pins — reads it here, so a release bumps one file.
885
885
  */
886
- const CLI_VERSION = "0.14.1";
886
+ const CLI_VERSION = "0.14.2";
887
887
  //#endregion
888
888
  //#region src/prompt.ts
889
889
  /**
@@ -5527,8 +5527,8 @@ cli.command("credentials [action] [target]", "Mint, list, regenerate, revoke and
5527
5527
  wawesome credentials regenerate ci --expires never --yes
5528
5528
  wawesome credentials revoke ci-pipeline
5529
5529
  wawesome credentials revoke wawe_ab3k9x --yes
5530
- wawesome credentials delete ci-pipeline`).option("-c, --capability <capability>", "Capability to grant: deploy, read, logs:read, invoke, domains:attach (repeatable or comma-separated, default: deploy)").option("-a, --app <app>", "Restrict the credential to this App (repeatable or comma-separated, default: every App)").option("--expires <days|never>", "Days until the credential expires, or 'never' (default: 90)").option("-y, --yes", "Skip the confirmation a regenerate, revoke or delete asks for").option("-v, --verbose", "Enable verbose debug output").action((action, target, options) => credentialsCommand(action, target, options));
5531
- cli.command("credentials mint <name>", "Mint a deploy credential, printing its secret exactly once").option("-c, --capability <capability>", "Capability to grant: deploy, read, logs:read, invoke, domains:attach (repeatable or comma-separated)").option("-a, --app <app>", "Restrict the credential to this App (repeatable or comma-separated)").option("--expires <days|never>", "Days until the credential expires, or 'never' (default: 90)").option("-v, --verbose", "Enable verbose debug output").action((name, options) => mintCredentialCommand(name, options));
5530
+ wawesome credentials delete ci-pipeline`).option("-c, --capability <capability>", "Capability to grant: deploy, read, logs:read, invoke, domains:attach (repeatable or comma-separated, default: deploy, which carries read)").option("-a, --app <app>", "Restrict the credential to this App (repeatable or comma-separated, default: every App)").option("--expires <days|never>", "Days until the credential expires, or 'never' (default: 90)").option("-y, --yes", "Skip the confirmation a regenerate, revoke or delete asks for").option("-v, --verbose", "Enable verbose debug output").action((action, target, options) => credentialsCommand(action, target, options));
5531
+ cli.command("credentials mint <name>", "Mint a deploy credential, printing its secret exactly once").option("-c, --capability <capability>", "Capability to grant: deploy, read, logs:read, invoke, domains:attach (repeatable or comma-separated; deploy carries read)").option("-a, --app <app>", "Restrict the credential to this App (repeatable or comma-separated)").option("--expires <days|never>", "Days until the credential expires, or 'never' (default: 90)").option("-v, --verbose", "Enable verbose debug output").action((name, options) => mintCredentialCommand(name, options));
5532
5532
  cli.command("credentials list", "List deploy credentials, never their secrets").alias("credentials ls").option("-v, --verbose", "Enable verbose debug output").action((options) => listCredentialsCommand(options));
5533
5533
  cli.command("credentials regenerate <name-or-prefix>", "Replace a deploy credential's secret, keeping its name, capabilities and Apps").option("--expires <days|never>", "Days until the regenerated credential expires, or 'never' (default: 90)").option("-y, --yes", "Regenerate without being asked to confirm").option("-v, --verbose", "Enable verbose debug output").action((target, options) => regenerateCredentialCommand(target, options));
5534
5534
  cli.command("credentials revoke <name-or-prefix>", "Revoke a deploy credential, immediately and for good").option("-y, --yes", "Revoke without being asked to confirm").option("-v, --verbose", "Enable verbose debug output").action((target, options) => revokeCredentialCommand(target, options));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wawesome",
3
- "version": "0.14.1",
3
+ "version": "0.14.2",
4
4
  "description": "CLI tool for building and deploying serverless functions on wawesome.io platform",
5
5
  "type": "module",
6
6
  "bin": {