sf-plugin-permission-sets 0.0.0-dev.74 → 0.0.0-dev.75

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.
Files changed (2) hide show
  1. package/README.md +23 -33
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -23,10 +23,10 @@ Stop clicking through Setup to grant access. Commit a YAML file, open a PR, let
23
23
  - [Validations](#validations)
24
24
  - [Commands](#commands)
25
25
  - [GitHub Actions](#github-actions)
26
- - [Inspiration & equivalents](#inspiration--equivalents)
27
26
  - [Versioning](#versioning)
28
27
  - [Architecture](#architecture)
29
28
  - [Development](#development)
29
+ - [License](#license)
30
30
 
31
31
  ---
32
32
 
@@ -237,8 +237,8 @@ Every run checks the files first. `check` runs the file checks with no org, and
237
237
  | `sf ps check` | Static analysis of the files alone: schema, duplicates, conflicts, identifier shape. No org, no auth. |
238
238
  | `sf ps validate` | Everything `check` does, plus resolving every user/permission set against the org. |
239
239
  | `sf ps plan` | Compute and display the change set: a read-only preview of what `apply` would do. |
240
- | `sf ps apply` | Reconcile the org. Honors `--mode`, prompts before deletes, enforces guardrails. |
241
240
  | `sf ps export` | Generate YAML from the current org state to bootstrap adoption. |
241
+ | `sf ps apply` | Reconcile the org. Honors `--mode`, prompts before deletes, enforces guardrails. |
242
242
 
243
243
  ### `sf ps check`
244
244
 
@@ -331,27 +331,6 @@ Unchanged: 4 assignments (--show-unchanged to list).
331
331
  Next: sf ps apply -o prod -f "permissions/*.yml" --mode sync
332
332
  ```
333
333
 
334
- ### `sf ps apply`
335
-
336
- ```
337
- USAGE
338
- $ sf ps apply -o <org> -f <glob>... [--mode <value>]
339
- [--max-deletes <n>] [--dry-run] [--show-unchanged] [--no-prompt] [--json]
340
-
341
- FLAGS
342
- -o, --target-org=<org> (required)
343
- -f, --file=<glob>... (required) YAML file(s) to read. Repeatable, globs expanded by the plugin.
344
- --mode=<value> additive | destructive | sync [default: additive]
345
- --max-deletes=<n> Abort if a run would remove more than n assignments. [default: 50]
346
- --dry-run Resolve and diff, print what would happen, change nothing.
347
- --show-unchanged List assignments that already match, instead of only counting them.
348
- --no-prompt Skip the deletion confirmation prompt (for CI).
349
- ```
350
-
351
- `apply` recomputes from the files every run: it re-reads the YAML, re-resolves every reference to an org id, and re-diffs against live state, then acts per `--mode`. Run `plan` shortly before `apply` so the preview you review reflects what `apply` will do (an edited file, a renamed permission set, or another admin's change between the two shifts the outcome).
352
-
353
- Deletions always prompt for confirmation unless `--no-prompt` is set, and are hard-capped by `--max-deletes` so a bad merge can't unassign your whole org. DML is executed with the sObject Collections API and reports partial successes/failures per record.
354
-
355
334
  ### `sf ps export`
356
335
 
357
336
  Read-only. Snapshots the org's current assignments as YAML you can commit and then feed back into the other commands. Writes to a file with `--output-file`, or to stdout when that flag is omitted.
@@ -391,6 +370,27 @@ sf ps export -o prod --output-file team.yml \
391
370
 
392
371
  A requested `--user` that has no matching assignments (a typo, or a user who genuinely holds nothing in scope) is reported as a warning and the export continues with whoever matched, so a mistyped username never masquerades as a clean empty file.
393
372
 
373
+ ### `sf ps apply`
374
+
375
+ ```
376
+ USAGE
377
+ $ sf ps apply -o <org> -f <glob>... [--mode <value>]
378
+ [--max-deletes <n>] [--dry-run] [--show-unchanged] [--no-prompt] [--json]
379
+
380
+ FLAGS
381
+ -o, --target-org=<org> (required)
382
+ -f, --file=<glob>... (required) YAML file(s) to read. Repeatable, globs expanded by the plugin.
383
+ --mode=<value> additive | destructive | sync [default: additive]
384
+ --max-deletes=<n> Abort if a run would remove more than n assignments. [default: 50]
385
+ --dry-run Resolve and diff, print what would happen, change nothing.
386
+ --show-unchanged List assignments that already match, instead of only counting them.
387
+ --no-prompt Skip the deletion confirmation prompt (for CI).
388
+ ```
389
+
390
+ `apply` recomputes from the files every run: it re-reads the YAML, re-resolves every reference to an org id, and re-diffs against live state, then acts per `--mode`. Run `plan` shortly before `apply` so the preview you review reflects what `apply` will do (an edited file, a renamed permission set, or another admin's change between the two shifts the outcome).
391
+
392
+ Deletions always prompt for confirmation unless `--no-prompt` is set, and are hard-capped by `--max-deletes` so a bad merge can't unassign your whole org. DML is executed with the sObject Collections API and reports partial successes/failures per record.
393
+
394
394
  ## GitHub Actions
395
395
 
396
396
  Three small workflows that build on each other: check pull requests with no org at all, validate the same files against the real org, then apply on merge.
@@ -496,15 +496,6 @@ Workflows 2 and 3 share one secret. Get the auth URL once with `sf org display -
496
496
 
497
497
  Want the diff on the PR before merging? Add a `sf ps plan --file "permissions/*.yml" --target-org prod` step to workflow 2, right after the login step, so reviewers see the change set that `apply` will carry out on merge.
498
498
 
499
- ## Inspiration & equivalents
500
-
501
- This plugin's command surface borrows ideas from tools you already know:
502
-
503
- - [Terraform](https://developer.hashicorp.com/terraform/docs)
504
- - [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/)
505
- - [AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/)
506
- - [Salesforce CLI](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference.htm)
507
-
508
499
  ## Versioning
509
500
 
510
501
  Releases follow [semantic versioning](https://semver.org). Snapshots are automatic, real releases are a manual decision.
@@ -585,7 +576,6 @@ cp .env.example .env
585
576
  | --- | --- | --- |
586
577
  | `PS_TARGET_ORG` | yes | Username or alias of an already-authenticated org. The `plan`, `apply`, and `export` specs run against it. |
587
578
 
588
-
589
579
  ## License
590
580
 
591
581
  BSD-3-Clause © Isaac Ferreira
package/package.json CHANGED
@@ -126,5 +126,5 @@
126
126
  "exports": "./lib/index.js",
127
127
  "type": "module",
128
128
  "author": "Isaac Ferreira",
129
- "version": "0.0.0-dev.74"
129
+ "version": "0.0.0-dev.75"
130
130
  }