sf-plugin-permission-sets 0.0.0-dev.19 → 0.0.0-dev.20

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
@@ -18,8 +18,8 @@ Stop clicking through Setup to grant access. Commit a YAML file, open a PR, let
18
18
  - [Quick start](#quick-start)
19
19
  - [Permission files](#permission-files)
20
20
  - [Organizing files](#organizing-files)
21
- - [Validations](#validations)
22
21
  - [Modes](#modes)
22
+ - [Validations](#validations)
23
23
  - [Commands](#commands)
24
24
  - [Inspiration & equivalents](#inspiration--equivalents)
25
25
  - [Versioning](#versioning)
@@ -159,18 +159,6 @@ sf ps apply -o qa --file "permissions/qa/*.yml"
159
159
 
160
160
  The two compose: a directory per environment, each split into functional files.
161
161
 
162
- ## Validations
163
-
164
- Every run checks the files first. `check` runs the offline checks with no org, and `validate` adds the org-side checks. When files merge, most overlaps are unions rather than errors.
165
-
166
- | Situation | Checked by | Severity | Result |
167
- | --- | --- | :---: | --- |
168
- | Same username key appears twice in one file | `check` (offline) | ❌ error | Rejected, the intent is ambiguous |
169
- | Same target listed twice for a user | `check` (offline) | ⚠️ warning | Deduped |
170
- | A user with no scopes, or an empty list | `check` (offline) | ⚠️ warning | Ignored as a no-op |
171
- | Same user in two files with different targets | `check` (offline) | ✅ ok | Merged into one model, the point of slicing |
172
- | Declared user, permission set, group, or license missing or not unique | `validate` (online) | ❌ error | Run fails before any change |
173
-
174
162
  ## Modes
175
163
 
176
164
  A run performs two atomic operations: **add** missing assignments and **remove** undeclared ones. The mode selects which it actually executes. Set it with `--mode` (default `additive`):
@@ -183,6 +171,18 @@ A run performs two atomic operations: **add** missing assignments and **remove**
183
171
 
184
172
  `plan` always shows the *full* picture (both adds **and** would-be removes) regardless of mode, so you can preview the impact before running it. Whatever the chosen mode won't act on is surfaced as **drift**. Gate CI on it with `--fail-on-drift`.
185
173
 
174
+ ## Validations
175
+
176
+ Every run checks the files first. `check` runs the offline checks with no org, and `validate` adds the org-side checks. When files merge, most overlaps are unions rather than errors.
177
+
178
+ | Situation | Checked by | Severity | Result |
179
+ | --- | --- | :---: | --- |
180
+ | Same username key appears twice in one file | `check` (offline) | ❌ error | Rejected, the intent is ambiguous |
181
+ | Same target listed twice for a user | `check` (offline) | ⚠️ warning | Deduped |
182
+ | A user with no scopes, or an empty list | `check` (offline) | ⚠️ warning | Ignored as a no-op |
183
+ | Same user in two files with different targets | `check` (offline) | ✅ ok | Merged into one model, the point of slicing |
184
+ | Declared user, permission set, group, or license missing or not unique | `validate` (online) | ❌ error | Run fails before any change |
185
+
186
186
  ## Commands
187
187
 
188
188
  | Command | Purpose |
@@ -182,5 +182,5 @@
182
182
  ]
183
183
  }
184
184
  },
185
- "version": "0.0.0-dev.19"
185
+ "version": "0.0.0-dev.20"
186
186
  }
package/package.json CHANGED
@@ -133,5 +133,5 @@
133
133
  "exports": "./lib/index.js",
134
134
  "type": "module",
135
135
  "author": "Isaac Ferreira",
136
- "version": "0.0.0-dev.19"
136
+ "version": "0.0.0-dev.20"
137
137
  }