sf-plugin-permission-sets 0.0.0-dev.46 → 0.0.0-dev.47

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 +5 -3
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -53,7 +53,7 @@ Or pin a version:
53
53
  sf plugins install sf-plugin-permission-sets@x.y.z
54
54
  ```
55
55
 
56
- Requires Salesforce CLI (`sf`) and Node.js 18+.
56
+ Requires Salesforce CLI (`sf`) and Node.js 20+.
57
57
 
58
58
  ## Quick start
59
59
 
@@ -79,7 +79,7 @@ sf ps apply --file "./permissions/*.yml" --target-org prod --mode sync
79
79
 
80
80
  ## Permission files
81
81
 
82
- You point every command at one or more YAML files with `--file` (alias `-f`).
82
+ `check`, `validate`, `plan`, and `apply` read one or more YAML files with `--file` (alias `-f`). (`export` writes YAML rather than reading it, so there `-f` is the output file.)
83
83
 
84
84
  Multiple files are merged into one model, so splitting by team is encouraged. The files contain **only declarative data**: knobs like sync mode and exclusions are CLI flags (see [Commands](#commands)), so there's no separate config format to learn yet. Each top-level key is unique within a file, and `check` flags duplicates.
85
85
 
@@ -450,9 +450,11 @@ The plugin is layered so every command reuses the same core. Commands stay thin,
450
450
  | `load` | Expand globs, run parse then validate then normalize per file, and merge by union. |
451
451
  | `resolve` | Pure rules that turn declared references and the org's answers into findings, plus id lookups for assigning. No SOQL: the adapter owns that. |
452
452
  | `diff` | The desired model vs. the org's current state, producing adds, removes, and unchanged. |
453
+ | `mode` | Scope a diff to what a reconcile mode acts on, plus the drift it leaves alone. |
453
454
  | `report` | Format a diff as a plan. |
455
+ | `plan-file` | Serialize and parse a saved plan: the frozen change set `apply --plan` runs. |
454
456
 
455
- Commands are slices of one pipeline. `check` runs the **load** stage only, with no org. `validate` adds **resolve**: it looks the declared references up through the `OrgClient` port (the adapter builds the SOQL) and evaluates the org's answers with resolve's pure rules. `export` runs in the opposite direction: it **fetch**es the org's current assignments through the port and **serialize**s them straight back to YAML, skipping load entirely. `apply` is the full pipeline: load, resolve to ids, **fetch** current state, **diff**, then insert and delete through the Collections API per the mode (guarded by `--max-deletes` and a confirmation). `plan` is that same pipeline stopping before the DML: load, resolve to ids, **fetch** current state, **diff**, and report, the same preview `apply --dry-run` produces.
457
+ Commands are slices of one pipeline. `check` runs the **load** stage only, with no org. `validate` adds **resolve**: it looks the declared references up through the `OrgClient` port (the adapter builds the SOQL) and evaluates the org's answers with resolve's pure rules. `export` runs in the opposite direction: it **fetch**es the org's current assignments through the port and **serialize**s them straight back to YAML, skipping load entirely. `apply` is the full pipeline: load, resolve to ids, **fetch** current state, **diff**, then insert and delete through the Collections API per the mode (guarded by `--max-deletes` and a confirmation). `plan` is that same pipeline stopping before the DML: load, resolve to ids, **fetch** current state, **diff**, and report, the same preview `apply --dry-run` produces. `plan --out` freezes that resolved change set to a file, and `apply --plan` runs it verbatim, skipping load, resolve, and diff.
456
458
 
457
459
  ## License
458
460
 
package/package.json CHANGED
@@ -122,5 +122,5 @@
122
122
  "exports": "./lib/index.js",
123
123
  "type": "module",
124
124
  "author": "Isaac Ferreira",
125
- "version": "0.0.0-dev.46"
125
+ "version": "0.0.0-dev.47"
126
126
  }