@peernova/cuneiform-sf 1.0.2 → 1.0.4-beta.6

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 (38) hide show
  1. package/LICENSE +81 -30
  2. package/README.md +59 -95
  3. package/messages/compatibility.check.md +71 -0
  4. package/messages/cuneiform.access.md +138 -0
  5. package/messages/definition.create.md +511 -0
  6. package/messages/definition.export.md +88 -0
  7. package/messages/definition.get.md +147 -0
  8. package/messages/definition.import.md +65 -0
  9. package/messages/definition.list.md +264 -0
  10. package/messages/definition.purge.md +318 -0
  11. package/messages/definition.update.md +80 -0
  12. package/messages/mcp.serve.md +66 -0
  13. package/messages/object.describe.md +201 -0
  14. package/messages/object.list.md +443 -0
  15. package/messages/org.details.md +386 -0
  16. package/messages/org.reset.md +71 -0
  17. package/messages/profile.md +231 -0
  18. package/messages/profile.request.cancel.md +143 -0
  19. package/messages/profile.request.delete.md +139 -0
  20. package/messages/profile.request.list.md +89 -0
  21. package/messages/summary.purge.md +218 -0
  22. package/messages/summary.reprofile.md +150 -0
  23. package/messages/summary.stop.md +157 -0
  24. package/messages/user.details.md +501 -0
  25. package/oclif.lock +3021 -2224
  26. package/oclif.manifest.json +2 -116
  27. package/package.json +84 -19
  28. package/lib/commands/cuneiform/about.d.ts +0 -13
  29. package/lib/commands/cuneiform/about.js +0 -26
  30. package/lib/commands/cuneiform/about.js.map +0 -1
  31. package/lib/commands/hello/world.d.ts +0 -14
  32. package/lib/commands/hello/world.js +0 -27
  33. package/lib/commands/hello/world.js.map +0 -1
  34. package/lib/index.d.ts +0 -2
  35. package/lib/index.js +0 -2
  36. package/lib/index.js.map +0 -1
  37. package/messages/cuneiform.about.md +0 -19
  38. package/messages/hello.world.md +0 -29
@@ -0,0 +1,501 @@
1
+ # summary
2
+
3
+ Check whether the authenticated user is configured for profiling and resolve gaps — two configuration touchpoints verified and fixed in one command.
4
+
5
+ # description
6
+
7
+ Remote profiling requires two configuration touchpoints spread across two Salesforce Setup pages: a permission set assignment and a Custom Metadata Type setting on your Configuration Profile. Missing either one produces a generic access error. This command checks both in one step and tells you exactly what is missing and who can fix it.
8
+
9
+ **Three modes:**
10
+
11
+ - **Diagnostic (default)** — Answer "Am I set up to profile?" Shows Cuneiform installation status, permission set assignments, Configuration Profile enablement, and resolution guidance for any gaps. Read-only — safe to run even when permissions are incomplete.
12
+ - **Configure (`--configure`)** — Answer "Set me up so I can profile." Assigns the required permission set via REST API and enables API-Based Profiling via Metadata API deployment in a single step. Idempotent — running it when already configured produces "no changes needed." Blocked in production orgs.
13
+ - **Preview (`--configure --dry-run`)** — Answer "What would configure change?" Shows exactly what would be assigned or enabled, applied to nothing. Use this in regulated environments where changes require documented approval before execution.
14
+
15
+ **Resolution guidance routes by persona:** When gaps exist, the output distinguishes between steps you can take yourself (self-service via `--configure`) and steps that require a Salesforce administrator.
16
+
17
+ Sarah Mitchell uses this to onboard users for profiling. Marcus Thompson runs it on day one of every engagement — if access is missing, `--configure` resolves it in 15 seconds. Andre Robitaille uses `--configure` as the "hello world" of every workshop, turning NOT READY into READY as the first moment of participant success.
18
+
19
+ **When to run this command:**
20
+
21
+ - First time in a new org or after a sandbox refresh — confirm your user is configured before profiling
22
+ - After getting an access error from any Cuneiform command — diagnose the exact gap
23
+ - When onboarding workshop participants — each person runs `--configure` on their own account
24
+ - Before a client-facing profiling session — verify readiness to prevent access failures mid-demo
25
+
26
+ NATURAL LANGUAGE → FLAG MAPPING:
27
+ "am I set up to profile?" → no flags (diagnostic mode)
28
+ "set me up for profiling" → --configure
29
+ "what would configure change?" → --configure --dry-run
30
+ "undo my configuration" → --unconfigure
31
+
32
+ COMMAND SEQUENCE:
33
+ `org details` → `user details` → `definition create` → `profile`
34
+
35
+ The scope is the authenticated user's profiling readiness: permission set assignment and API-Based Profiling enablement. It typically follows `org details` (confirming Cuneiform is installed) and precedes `definition create` (building profiling definitions).
36
+
37
+ # flags.target-org.summary
38
+
39
+ The Salesforce org to check for profiling readiness. Specify the org alias or username when you have multiple authenticated orgs.
40
+
41
+ # flags.configure.summary
42
+
43
+ Resolve configuration gaps in one step. Assigns the required permission set via REST API and enables API-Based Profiling via Metadata API deployment. Idempotent — safe to run when already configured. Blocked in production orgs (Developer Edition, sandbox, scratch, and trial only).
44
+
45
+ # flags.api-version.summary
46
+
47
+ Override the Salesforce API version for readiness checks. Use this when troubleshooting version-specific behavior or testing against a specific API release.
48
+
49
+ # flags.dry-run.summary
50
+
51
+ Preview what --configure would change, applied to nothing. Shows which permission set would be assigned and which Configuration Profile settings would be enabled. Use this in regulated environments to document changes for approval before execution. Implies --configure.
52
+
53
+ # examples
54
+
55
+ - First-time readiness check — confirm your user is configured before profiling:
56
+
57
+ <%= config.bin %> <%= command.id %> --target-org myOrg
58
+
59
+ - Resolve all gaps at once — configure both touchpoints (permission set + API-Based Profiling) automatically:
60
+
61
+ <%= config.bin %> <%= command.id %> --target-org myOrg --configure
62
+
63
+ - Change management preview — document what would change before applying:
64
+
65
+ <%= config.bin %> <%= command.id %> --target-org myOrg --configure --dry-run
66
+
67
+ - Workshop onboarding — each participant configures their own account:
68
+
69
+ <%= config.bin %> <%= command.id %> --target-org workshopOrg --configure
70
+
71
+ - Troubleshooting output — attach structured JSON to a support ticket when diagnosing access errors:
72
+
73
+ <%= config.bin %> <%= command.id %> --target-org myOrg --json
74
+
75
+ - Environment cleanup — reverse a previous configure when decommissioning a sandbox:
76
+
77
+ <%= config.bin %> <%= command.id %> --target-org myOrg --unconfigure
78
+
79
+ # prerequisites.header
80
+
81
+ Prerequisites
82
+
83
+ # prerequisites.cuneiformInstalled
84
+
85
+ Cuneiform for Salesforce is installed
86
+
87
+ # prerequisites.cuneiformNotInstalled
88
+
89
+ Cuneiform for Salesforce is not installed
90
+
91
+ # prerequisites.cuneiformInstallUrl
92
+
93
+ Installation guide: https://peernova.link/cli/configure
94
+
95
+ # prerequisites.adminAccess
96
+
97
+ Administrative User (Pro Permission Set) access verified
98
+
99
+ # prerequisites.adminNoAccess
100
+
101
+ Administrative User (Pro Permission Set) not assigned
102
+
103
+ # prerequisites.adminRemediation
104
+
105
+ Contact your Salesforce administrator to grant access to Cuneiform.
106
+
107
+ # links.verificationDocsUrl
108
+
109
+ Verification documentation: https://peernova.link/cli/validate-cuneiform
110
+
111
+ # links.installationGuideUrl
112
+
113
+ https://peernova.link/cli/configure
114
+
115
+ # info.userReady
116
+
117
+ This user is ready for remote profiling via Cuneiform for Salesforce.
118
+
119
+ # info.userConfigured
120
+
121
+ This user is now ready for remote profiling via Cuneiform for Salesforce.
122
+
123
+ # info.userConfigureIncomplete
124
+
125
+ Configuration is incomplete — please review the warnings above for details.
126
+
127
+ # info.userConfigureIncompleteAction
128
+
129
+ You may need to contact your Salesforce administrator to resolve these issues.
130
+
131
+ # info.nextSteps
132
+
133
+ Next steps:
134
+
135
+ # info.nextStepsOrgDetails
136
+
137
+ sf cuneiform org details --target-org %s
138
+
139
+ # info.nextStepsOrgDetailsLabel
140
+
141
+ Explore your org configuration
142
+
143
+ # info.nextStepsObjectList
144
+
145
+ sf cuneiform object list --target-org %s --with-records
146
+
147
+ # info.nextStepsObjectListLabel
148
+
149
+ View available objects that are populated with records
150
+
151
+ # info.nextStepsObjectDescribe
152
+
153
+ sf cuneiform object describe --help
154
+
155
+ # info.nextStepsObjectDescribeLabel
156
+
157
+ View specific object details
158
+
159
+ # info.nextStepsDefinitionCreate
160
+
161
+ sf cuneiform definition create --help
162
+
163
+ # info.nextStepsDefinitionCreateLabel
164
+
165
+ Create a profiling definition
166
+
167
+ # info.nextStepsPreviewLabel
168
+
169
+ Preview what auto-configure would change
170
+
171
+ # info.nextStepsPreview
172
+
173
+ sf cuneiform user details --configure --dry-run --target-org %s
174
+
175
+ # info.nextStepsConfigureLabel
176
+
177
+ Automatically configure this user for remote profiling
178
+
179
+ # info.nextStepsConfigure
180
+
181
+ sf cuneiform user details --configure --target-org %s
182
+
183
+ # info.nextStepsContactAdmin
184
+
185
+ Contact your Salesforce administrator to assign the required Cuneiform permission sets.
186
+
187
+ # info.nextStepsRetryLabel
188
+
189
+ Retry the configuration
190
+
191
+ # info.nextStepsReconfigureLabel
192
+
193
+ Reconfigure this user for remote profiling
194
+
195
+ # info.fetchingOrgData
196
+
197
+ Fetching org data
198
+
199
+ # info.configureStart
200
+
201
+ Configuring user for remote profiling (this may take 10–30 seconds)...
202
+
203
+ # info.dryRunStart
204
+
205
+ Checking configuration status (dry-run mode)...
206
+
207
+ # info.plannedActions
208
+
209
+ Planned Actions (Dry-Run)
210
+
211
+ # info.completedActions
212
+
213
+ Configuration Actions
214
+
215
+ # info.dryRunSummary
216
+
217
+ Dry-run complete: %s would be applied.
218
+
219
+ # info.configurationComplete
220
+
221
+ Configuration complete: %s applied.
222
+
223
+ # info.alreadyConfiguredSummary
224
+
225
+ Already configured — no changes needed.
226
+
227
+ # info.alreadyUnconfiguredSummary
228
+
229
+ Already unconfigured — no changes needed.
230
+
231
+ # info.userWouldBeReady
232
+
233
+ This user would be ready for remote profiling via Cuneiform for Salesforce after applying these changes.
234
+
235
+ # guidance.cuneiformNotInstalled
236
+
237
+ Cuneiform for Salesforce is not installed in this org.
238
+
239
+ # guidance.cuneiformNotInstalledAction
240
+
241
+ Contact your Salesforce administrator to install the Cuneiform for Salesforce managed package.
242
+
243
+ # guidance.missingPermissionSet
244
+
245
+ Missing Permission Set: %s.
246
+
247
+ # guidance.missingPermissionSetAction
248
+
249
+ Navigate to Setup > Users > Permission Set Assignments to assign this permission set.
250
+
251
+ # guidance.missingPermissionSets
252
+
253
+ Missing Permission Sets:
254
+
255
+ # guidance.missingPermissionSetsAction
256
+
257
+ Navigate to Setup > Users > Permission Set Assignments to assign these permission sets.
258
+
259
+ # guidance.apiOnlyProfilingDisabled
260
+
261
+ API-Based Profiling is not enabled on the Configuration Profile.
262
+
263
+ # guidance.apiOnlyProfilingDisabledAction
264
+
265
+ Navigate to Setup > Custom Metadata Types > Cuneiform Configuration Profile to enable API-Based Profiling.
266
+
267
+ # guidance.selfRegistrationDisabled
268
+
269
+ CLI Self-Provisioning is not enabled on the Configuration Profile.
270
+
271
+ # guidance.selfRegistrationDisabledAction
272
+
273
+ Ask your Salesforce administrator to enable "Enable API Profiling Self-Registration" in the Cuneiform Configuration Profile (Custom Metadata), or request they assign the API-Based Profiling permission set to you directly.
274
+
275
+ # guidance.noConfigProfile
276
+
277
+ No active Configuration Profile found.
278
+
279
+ # guidance.noConfigProfileAction
280
+
281
+ This may indicate an access issue — contact your Salesforce administrator. See: https://peernova.link/cli/configure
282
+
283
+ # output.headerTitle
284
+
285
+ User Details
286
+
287
+ # output.userIdentity.title
288
+
289
+ User Identity
290
+
291
+ # output.userIdentity.id
292
+
293
+ ID
294
+
295
+ # output.userIdentity.username
296
+
297
+ Username
298
+
299
+ # output.userIdentity.email
300
+
301
+ Email
302
+
303
+ # output.userIdentity.profile
304
+
305
+ Profile
306
+
307
+ # output.userIdentity.role
308
+
309
+ Role
310
+
311
+ # output.userIdentity.noRole
312
+
313
+ (none)
314
+
315
+ # output.readiness.header
316
+
317
+ Cuneiform Readiness
318
+
319
+ # output.readiness.status
320
+
321
+ Status
322
+
323
+ # output.readiness.notInstalled
324
+
325
+ NOT INSTALLED
326
+
327
+ # output.readiness.detail
328
+
329
+ Detail
330
+
331
+ # output.readiness.ready
332
+
333
+ READY
334
+
335
+ # output.readiness.notReady
336
+
337
+ NOT READY
338
+
339
+ # output.readiness.permissionSets
340
+
341
+ Permission Sets:
342
+
343
+ # output.readiness.configProfile
344
+
345
+ Configuration Profile (%s):
346
+
347
+ # output.readiness.unknown
348
+
349
+ Unknown
350
+
351
+ # output.readiness.globalProfiling
352
+
353
+ API-Based Profiling Enabled
354
+
355
+ # output.readiness.selfRegistration
356
+
357
+ CLI Self-Provisioning Enabled
358
+
359
+ # output.readiness.noActiveProfile
360
+
361
+ No active configuration profile
362
+
363
+ # output.readiness.warnings
364
+
365
+ Warnings
366
+
367
+ # output.guidance.header
368
+
369
+ Resolution Guidance
370
+
371
+ # output.action.wouldAssign
372
+
373
+ Would Assign Permission Set: %s
374
+
375
+ # output.action.assign
376
+
377
+ Assigned Permission Set: %s
378
+
379
+ # output.action.alreadyAssigned
380
+
381
+ Permission Set %s Already Assigned
382
+
383
+ # output.action.alreadyEnabled
384
+
385
+ API-Based Profiling already enabled on the Configuration Profile
386
+
387
+ # output.action.wouldEnable
388
+
389
+ Would enable API-Based Profiling on the Configuration Profile
390
+
391
+ # output.action.enable
392
+
393
+ Enabled API-Based Profiling on the Configuration Profile
394
+
395
+ # output.jobIdSuffix
396
+
397
+ (Job ID: %s)
398
+
399
+ # errors.userInfoFailed
400
+
401
+ Failed to retrieve user information
402
+
403
+ # errors.readinessFailed
404
+
405
+ Failed to check user readiness
406
+
407
+ # errors.configurationFailed
408
+
409
+ User configuration failed. Check the error details and try again.
410
+
411
+ # errors.cuneiformNotInstalled
412
+
413
+ Cuneiform for Salesforce is not installed in this org. Install the Cuneiform for Salesforce package before running this command.
414
+
415
+ # flags.unconfigure.summary
416
+
417
+ Reverse a previous --configure by removing the permission set assignment and disabling API-Based Profiling on the Configuration Profile. Use this when decommissioning an environment or cleaning up access after testing.
418
+
419
+ # info.userUnconfigured
420
+
421
+ This user is no longer configured for remote profiling via Cuneiform for Salesforce.
422
+
423
+ # info.unconfigureStart
424
+
425
+ Removing remote profiling configuration (this may take 10–30 seconds)...
426
+
427
+ # info.unconfigureComplete
428
+
429
+ Configuration removed: %s applied.
430
+
431
+ # output.action.wouldUnassign
432
+
433
+ Would Unassign Permission Set: %s
434
+
435
+ # output.action.unassign
436
+
437
+ Unassigned Permission Set: %s
438
+
439
+ # output.action.alreadyUnassigned
440
+
441
+ Permission Set %s Already Unassigned
442
+
443
+ # output.action.wouldDisable
444
+
445
+ Would disable API-Based Profiling on the Configuration Profile
446
+
447
+ # output.action.disable
448
+
449
+ Disabled API-Based Profiling on the Configuration Profile
450
+
451
+ # output.action.alreadyDisabled
452
+
453
+ API-Based Profiling already disabled on the Configuration Profile
454
+
455
+ # errors.orgConnectionFailed
456
+
457
+ Could not connect to the Salesforce org "%s".
458
+
459
+ The org may be expired, deleted, or your authentication session may have ended.
460
+
461
+ What to try:
462
+
463
+ 1. Verify the org exists and is not expired:
464
+
465
+ sf org list
466
+
467
+ 2. Check the org connection details:
468
+
469
+ sf org display --target-org %s
470
+
471
+ 3. Re-authenticate if your session has ended:
472
+
473
+ sf org login web
474
+
475
+ 4. Specify a different org:
476
+
477
+ sf cuneiform user details --target-org <username>
478
+
479
+ If these steps don't resolve the issue, re-run with --json and contact your Salesforce administrator with the output.
480
+
481
+ # errors.orgApiFailed
482
+
483
+ Could not retrieve data from the Salesforce org "%s".
484
+
485
+ The connection was established, but an API error occurred — this may indicate insufficient permissions or a temporary service issue.
486
+
487
+ What to try:
488
+
489
+ 1. Verify the org is accessible:
490
+
491
+ sf org display --target-org %s
492
+
493
+ 2. Check your user permissions:
494
+
495
+ sf org open --target-org %s --path /lightning/setup/PermSets/home
496
+
497
+ 3. Retry the command in case of a transient issue.
498
+
499
+ 4. Contact your Salesforce administrator if the problem persists.
500
+
501
+ If these steps don't resolve the issue, re-run with --json and contact your Salesforce administrator with the output.