@salesforce/afv-skills 1.8.0 → 1.9.0

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 (488) hide show
  1. package/package.json +1 -1
  2. package/skills/activating-datacloud/CREDITS.md +5 -0
  3. package/skills/activating-datacloud/README.md +39 -0
  4. package/skills/activating-datacloud/SKILL.md +118 -0
  5. package/skills/analyzing-omnistudio-dependencies/CREDITS.md +5 -0
  6. package/skills/analyzing-omnistudio-dependencies/SKILL.md +477 -0
  7. package/skills/analyzing-omnistudio-dependencies/references/dependency-patterns.md +508 -0
  8. package/skills/analyzing-omnistudio-dependencies/references/namespace-guide.md +300 -0
  9. package/skills/building-omnistudio-callable-apex/CREDITS.md +9 -0
  10. package/skills/building-omnistudio-callable-apex/README.md +80 -0
  11. package/skills/building-omnistudio-callable-apex/SKILL.md +276 -0
  12. package/skills/building-omnistudio-callable-apex/assets/pattern_callable_openinterface.cls +40 -0
  13. package/skills/building-omnistudio-callable-apex/assets/pattern_callable_vanilla.cls +32 -0
  14. package/skills/building-omnistudio-callable-apex/assets/pattern_migration.cls +54 -0
  15. package/skills/building-omnistudio-callable-apex/assets/pattern_openinterface.cls +45 -0
  16. package/skills/building-omnistudio-callable-apex/assets/pattern_test_class.cls +65 -0
  17. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/IndustriesCallableException.cls +7 -0
  18. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallable.cls +115 -0
  19. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallableTest.cls +189 -0
  20. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/TRANSCRIPT.md +115 -0
  21. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/IndustriesCallableException.cls +7 -0
  22. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallable.cls +74 -0
  23. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallableTest.cls +146 -0
  24. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomRemoteClass.cls +16 -0
  25. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +120 -0
  26. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/IndustriesCallableException.cls +7 -0
  27. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallable.cls +73 -0
  28. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallableTest.cls +128 -0
  29. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomVlocityOpenInterface2.cls +23 -0
  30. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +75 -0
  31. package/skills/building-omnistudio-datamapper/CREDITS.md +5 -0
  32. package/skills/building-omnistudio-datamapper/SKILL.md +270 -0
  33. package/skills/building-omnistudio-datamapper/assets/completion-summary-template.md +28 -0
  34. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-extract.json +6 -0
  35. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-item.json +12 -0
  36. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-load.json +6 -0
  37. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-transform.json +6 -0
  38. package/skills/building-omnistudio-datamapper/references/best-practices.md +277 -0
  39. package/skills/building-omnistudio-datamapper/references/naming-conventions.md +145 -0
  40. package/skills/building-omnistudio-flexcard/CREDITS.md +5 -0
  41. package/skills/building-omnistudio-flexcard/SKILL.md +325 -0
  42. package/skills/building-omnistudio-flexcard/assets/omni-ui-card.json +10 -0
  43. package/skills/building-omnistudio-flexcard/references/best-practices.md +291 -0
  44. package/skills/building-omnistudio-flexcard/references/data-binding-guide.md +311 -0
  45. package/skills/building-omnistudio-flexcard/references/scoring-rubric.md +66 -0
  46. package/skills/building-omnistudio-flexcard/scripts/flexcard-commands.sh +24 -0
  47. package/skills/building-omnistudio-integration-procedure/CREDITS.md +5 -0
  48. package/skills/building-omnistudio-integration-procedure/SKILL.md +275 -0
  49. package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-dr-extract.json +10 -0
  50. package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-set-values.json +10 -0
  51. package/skills/building-omnistudio-integration-procedure/assets/omni-process-ip.json +12 -0
  52. package/skills/building-omnistudio-integration-procedure/assets/scoring-report-format.txt +14 -0
  53. package/skills/building-omnistudio-integration-procedure/references/best-practices.md +388 -0
  54. package/skills/building-omnistudio-integration-procedure/references/element-types.md +588 -0
  55. package/skills/building-omnistudio-integration-procedure/scripts/cli-commands.sh +18 -0
  56. package/skills/building-omnistudio-omniscript/CREDITS.md +5 -0
  57. package/skills/building-omnistudio-omniscript/SKILL.md +367 -0
  58. package/skills/building-omnistudio-omniscript/assets/omni-process-element-step.json +10 -0
  59. package/skills/building-omnistudio-omniscript/assets/omni-process-element-text-block.json +11 -0
  60. package/skills/building-omnistudio-omniscript/assets/omni-process-omniscript.json +12 -0
  61. package/skills/building-omnistudio-omniscript/references/best-practices.md +480 -0
  62. package/skills/building-omnistudio-omniscript/references/element-types.md +1172 -0
  63. package/skills/building-omnistudio-omniscript/scripts/check-duplicate-omniscript.sh +13 -0
  64. package/skills/building-omnistudio-omniscript/scripts/cli-reference.sh +21 -0
  65. package/skills/building-omnistudio-omniscript/scripts/deploy-omniscript.sh +29 -0
  66. package/skills/building-sf-integrations/CREDITS.md +5 -0
  67. package/skills/building-sf-integrations/README.md +95 -0
  68. package/skills/building-sf-integrations/SKILL.md +192 -0
  69. package/skills/building-sf-integrations/assets/callouts/callout-retry-handler.cls +167 -0
  70. package/skills/building-sf-integrations/assets/callouts/http-response-handler.cls +257 -0
  71. package/skills/building-sf-integrations/assets/callouts/rest-queueable-callout.cls +262 -0
  72. package/skills/building-sf-integrations/assets/callouts/rest-sync-callout.cls +211 -0
  73. package/skills/building-sf-integrations/assets/cdc/cdc-handler.cls +246 -0
  74. package/skills/building-sf-integrations/assets/cdc/cdc-subscriber-trigger.trigger +139 -0
  75. package/skills/building-sf-integrations/assets/endpoint-security/example.cspTrustedSite-meta.xml +58 -0
  76. package/skills/building-sf-integrations/assets/endpoint-security/example.remoteSite-meta.xml +39 -0
  77. package/skills/building-sf-integrations/assets/external-credentials/jwt-external-credential.externalCredential-meta.xml +90 -0
  78. package/skills/building-sf-integrations/assets/external-credentials/oauth-external-credential.externalCredential-meta.xml +87 -0
  79. package/skills/building-sf-integrations/assets/external-services/external-service-operations.md +221 -0
  80. package/skills/building-sf-integrations/assets/external-services/openapi-registration.externalServiceRegistration-meta.xml +193 -0
  81. package/skills/building-sf-integrations/assets/named-credentials/certificate-auth.namedCredential-meta.xml +62 -0
  82. package/skills/building-sf-integrations/assets/named-credentials/custom-auth.namedCredential-meta.xml +71 -0
  83. package/skills/building-sf-integrations/assets/named-credentials/oauth-client-credentials.namedCredential-meta.xml +51 -0
  84. package/skills/building-sf-integrations/assets/named-credentials/oauth-jwt-bearer.namedCredential-meta.xml +67 -0
  85. package/skills/building-sf-integrations/assets/platform-events/event-publisher.cls +191 -0
  86. package/skills/building-sf-integrations/assets/platform-events/event-subscriber-action.cls +295 -0
  87. package/skills/building-sf-integrations/assets/platform-events/event-subscriber-trigger.trigger +108 -0
  88. package/skills/building-sf-integrations/assets/platform-events/platform-event-definition.object-meta.xml +124 -0
  89. package/skills/building-sf-integrations/assets/soap/soap-callout-service.cls +186 -0
  90. package/skills/building-sf-integrations/assets/soap/wsdl2apex-guide.md +213 -0
  91. package/skills/building-sf-integrations/hooks/scripts/suggest_credential_setup.py +271 -0
  92. package/skills/building-sf-integrations/hooks/scripts/validate_integration.py +363 -0
  93. package/skills/building-sf-integrations/references/callout-patterns.md +719 -0
  94. package/skills/building-sf-integrations/references/cdc-guide.md +288 -0
  95. package/skills/building-sf-integrations/references/cli-reference.md +94 -0
  96. package/skills/building-sf-integrations/references/event-driven-architecture-guide.md +266 -0
  97. package/skills/building-sf-integrations/references/event-patterns.md +838 -0
  98. package/skills/building-sf-integrations/references/external-services-guide.md +303 -0
  99. package/skills/building-sf-integrations/references/messaging-api-v2.md +609 -0
  100. package/skills/building-sf-integrations/references/named-credentials-automation.md +201 -0
  101. package/skills/building-sf-integrations/references/named-credentials-guide.md +173 -0
  102. package/skills/building-sf-integrations/references/platform-events-guide.md +288 -0
  103. package/skills/building-sf-integrations/references/rest-callout-patterns.md +288 -0
  104. package/skills/building-sf-integrations/references/scoring-rubric.md +59 -0
  105. package/skills/building-sf-integrations/references/security-best-practices.md +248 -0
  106. package/skills/building-sf-integrations/scripts/README.md +100 -0
  107. package/skills/building-sf-integrations/scripts/configure-named-credential.sh +236 -0
  108. package/skills/building-sf-integrations/scripts/set-api-credential.sh +146 -0
  109. package/skills/building-sf-integrations/scripts/templates/setup-credentials-with-csp.sh +158 -0
  110. package/skills/configuring-connected-apps/CREDITS.md +3 -0
  111. package/skills/configuring-connected-apps/README.md +99 -0
  112. package/skills/configuring-connected-apps/SKILL.md +224 -0
  113. package/skills/configuring-connected-apps/assets/connected-app-basic.xml +29 -0
  114. package/skills/configuring-connected-apps/assets/connected-app-canvas.xml +62 -0
  115. package/skills/configuring-connected-apps/assets/connected-app-jwt.xml +49 -0
  116. package/skills/configuring-connected-apps/assets/connected-app-oauth.xml +65 -0
  117. package/skills/configuring-connected-apps/assets/eca-global-oauth.xml +36 -0
  118. package/skills/configuring-connected-apps/assets/eca-oauth-settings.xml +36 -0
  119. package/skills/configuring-connected-apps/assets/eca-policies.xml +36 -0
  120. package/skills/configuring-connected-apps/assets/external-client-app.xml +35 -0
  121. package/skills/configuring-connected-apps/references/example-usage.md +256 -0
  122. package/skills/configuring-connected-apps/references/migration-guide.md +328 -0
  123. package/skills/configuring-connected-apps/references/oauth-flows-reference.md +660 -0
  124. package/skills/configuring-connected-apps/references/security-checklist.md +209 -0
  125. package/skills/configuring-connected-apps/references/testing-validation-guide.md +275 -0
  126. package/skills/connecting-datacloud/CREDITS.md +5 -0
  127. package/skills/connecting-datacloud/README.md +59 -0
  128. package/skills/connecting-datacloud/SKILL.md +155 -0
  129. package/skills/connecting-datacloud/examples/connections/heroku-postgres.json +15 -0
  130. package/skills/connecting-datacloud/examples/connections/ingest-api-connection.json +5 -0
  131. package/skills/connecting-datacloud/examples/connections/ingest-api-schema.json +31 -0
  132. package/skills/connecting-datacloud/examples/connections/redshift.json +16 -0
  133. package/skills/connecting-datacloud/examples/connections/sharepoint-unstructured.json +20 -0
  134. package/skills/connecting-datacloud/examples/connections/snowflake-connection.json +42 -0
  135. package/skills/debugging-apex-logs/CREDITS.md +22 -0
  136. package/skills/debugging-apex-logs/README.md +74 -0
  137. package/skills/debugging-apex-logs/SKILL.md +172 -0
  138. package/skills/debugging-apex-logs/assets/benchmarking-template.cls +327 -0
  139. package/skills/debugging-apex-logs/assets/cpu-heap-optimization.cls +307 -0
  140. package/skills/debugging-apex-logs/assets/dml-in-loop-fix.cls +219 -0
  141. package/skills/debugging-apex-logs/assets/null-pointer-fix.cls +252 -0
  142. package/skills/debugging-apex-logs/assets/soql-in-loop-fix.cls +157 -0
  143. package/skills/debugging-apex-logs/references/analysis-playbook.md +53 -0
  144. package/skills/debugging-apex-logs/references/benchmarking-guide.md +287 -0
  145. package/skills/debugging-apex-logs/references/cli-commands.md +368 -0
  146. package/skills/debugging-apex-logs/references/common-issues.md +68 -0
  147. package/skills/debugging-apex-logs/references/debug-log-reference.md +328 -0
  148. package/skills/debugging-apex-logs/references/log-analysis-tools.md +248 -0
  149. package/skills/debugging-apex-logs/references/scoring-rubric.md +21 -0
  150. package/skills/deploying-metadata/CREDITS.md +25 -0
  151. package/skills/deploying-metadata/README.md +104 -0
  152. package/skills/deploying-metadata/SKILL.md +214 -0
  153. package/skills/deploying-metadata/assets/destructiveChanges.xml +143 -0
  154. package/skills/deploying-metadata/assets/package.xml +121 -0
  155. package/skills/deploying-metadata/references/agent-deployment-guide.md +628 -0
  156. package/skills/deploying-metadata/references/deploy.sh +73 -0
  157. package/skills/deploying-metadata/references/deployment-report-template.md +89 -0
  158. package/skills/deploying-metadata/references/deployment-workflows.md +395 -0
  159. package/skills/deploying-metadata/references/orchestration.md +183 -0
  160. package/skills/deploying-metadata/references/trigger-deployment-safety.md +376 -0
  161. package/skills/deploying-omnistudio-datapacks/CREDITS.md +5 -0
  162. package/skills/deploying-omnistudio-datapacks/README.md +88 -0
  163. package/skills/deploying-omnistudio-datapacks/SKILL.md +174 -0
  164. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/TRANSCRIPT.md +124 -0
  165. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +11 -0
  166. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/TRANSCRIPT.md +142 -0
  167. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/deploy-business-internet-plus-bundle.yaml +10 -0
  168. package/skills/deploying-omnistudio-datapacks/references/job-file-template.md +42 -0
  169. package/skills/deploying-omnistudio-datapacks/references/troubleshooting-matrix.md +24 -0
  170. package/skills/developing-agentforce/assets/metadata/http-callout-flow.flow-meta.xml +1 -1
  171. package/skills/developing-agentforce/references/actions-reference.md +8 -8
  172. package/skills/fetching-salesforce-docs/README.md +66 -0
  173. package/skills/fetching-salesforce-docs/SKILL.md +209 -0
  174. package/skills/fetching-salesforce-docs/requirements.txt +2 -0
  175. package/skills/fetching-salesforce-docs/scripts/extract_help_salesforce.py +497 -0
  176. package/skills/fetching-salesforce-docs/scripts/extract_salesforce_doc.py +357 -0
  177. package/skills/fetching-salesforce-docs/scripts/runtime_bootstrap.py +58 -0
  178. package/skills/generating-apex/CREDITS.md +1 -26
  179. package/skills/generating-apex-test/CREDITS.md +2 -27
  180. package/skills/generating-lwc-components/CREDITS.md +5 -0
  181. package/skills/generating-lwc-components/README.md +126 -0
  182. package/skills/generating-lwc-components/SKILL.md +191 -0
  183. package/skills/generating-lwc-components/assets/apex-controller/LwcController.cls +327 -0
  184. package/skills/generating-lwc-components/assets/basic-component/basicComponent.css +72 -0
  185. package/skills/generating-lwc-components/assets/basic-component/basicComponent.html +111 -0
  186. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js +163 -0
  187. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js-meta.xml +137 -0
  188. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.html +111 -0
  189. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.js +367 -0
  190. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.css +63 -0
  191. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.html +154 -0
  192. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js +348 -0
  193. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js-meta.xml +87 -0
  194. package/skills/generating-lwc-components/assets/form-component/formComponent.html +165 -0
  195. package/skills/generating-lwc-components/assets/form-component/formComponent.js +275 -0
  196. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.html +100 -0
  197. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.js +336 -0
  198. package/skills/generating-lwc-components/assets/jest-test/componentName.test.js.example +371 -0
  199. package/skills/generating-lwc-components/assets/message-channel/RecordSelected.messageChannel-meta.xml +71 -0
  200. package/skills/generating-lwc-components/assets/message-channel/lmsPublisher.js +103 -0
  201. package/skills/generating-lwc-components/assets/message-channel/lmsSubscriber.js +181 -0
  202. package/skills/generating-lwc-components/assets/modal-component/modalComponent.html +85 -0
  203. package/skills/generating-lwc-components/assets/modal-component/modalComponent.js +199 -0
  204. package/skills/generating-lwc-components/assets/record-picker/recordPicker.html +55 -0
  205. package/skills/generating-lwc-components/assets/record-picker/recordPicker.js +199 -0
  206. package/skills/generating-lwc-components/assets/state-store/store.js +282 -0
  207. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.css +65 -0
  208. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.html +95 -0
  209. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.js-meta.xml +75 -0
  210. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.test.ts.example +301 -0
  211. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.ts +295 -0
  212. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.html +71 -0
  213. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.js +316 -0
  214. package/skills/generating-lwc-components/hooks/scripts/lwc-lsp-validate.py +295 -0
  215. package/skills/generating-lwc-components/hooks/scripts/post-tool-validate.py +347 -0
  216. package/skills/generating-lwc-components/hooks/scripts/slds_data/deprecated_patterns.json +74 -0
  217. package/skills/generating-lwc-components/hooks/scripts/slds_data/styling_hooks.json +111 -0
  218. package/skills/generating-lwc-components/hooks/scripts/slds_data/valid_slds_classes.json +127 -0
  219. package/skills/generating-lwc-components/hooks/scripts/slds_linter_wrapper.py +294 -0
  220. package/skills/generating-lwc-components/hooks/scripts/slds_rules/__init__.py +22 -0
  221. package/skills/generating-lwc-components/hooks/scripts/template_validator.py +332 -0
  222. package/skills/generating-lwc-components/hooks/scripts/validate_slds.py +595 -0
  223. package/skills/generating-lwc-components/references/accessibility-guide.md +843 -0
  224. package/skills/generating-lwc-components/references/advanced-features.md +108 -0
  225. package/skills/generating-lwc-components/references/async-notification-patterns.md +661 -0
  226. package/skills/generating-lwc-components/references/cli-commands.md +545 -0
  227. package/skills/generating-lwc-components/references/component-patterns.md +1476 -0
  228. package/skills/generating-lwc-components/references/flow-integration-guide.md +675 -0
  229. package/skills/generating-lwc-components/references/jest-testing.md +1011 -0
  230. package/skills/generating-lwc-components/references/lms-guide.md +860 -0
  231. package/skills/generating-lwc-components/references/lwc-best-practices.md +1310 -0
  232. package/skills/generating-lwc-components/references/performance-guide.md +861 -0
  233. package/skills/generating-lwc-components/references/scoring-and-testing.md +116 -0
  234. package/skills/generating-lwc-components/references/slds-blueprints.json +14389 -0
  235. package/skills/generating-lwc-components/references/slds-design-guide.md +166 -0
  236. package/skills/generating-lwc-components/references/state-management.md +642 -0
  237. package/skills/generating-lwc-components/references/template-anti-patterns.md +948 -0
  238. package/skills/generating-lwc-components/references/triangle-pattern.md +365 -0
  239. package/skills/generating-lwc-components/scripts/local-dev-preview.sh +34 -0
  240. package/skills/generating-mermaid-diagrams/CREDITS.md +46 -0
  241. package/skills/generating-mermaid-diagrams/README.md +114 -0
  242. package/skills/generating-mermaid-diagrams/SKILL.md +218 -0
  243. package/skills/generating-mermaid-diagrams/assets/agentforce/agent-flow.md +313 -0
  244. package/skills/generating-mermaid-diagrams/assets/architecture/system-landscape.md +351 -0
  245. package/skills/generating-mermaid-diagrams/assets/datamodel/b2b-commerce-erd.md +317 -0
  246. package/skills/generating-mermaid-diagrams/assets/datamodel/campaigns-erd.md +195 -0
  247. package/skills/generating-mermaid-diagrams/assets/datamodel/consent-erd.md +262 -0
  248. package/skills/generating-mermaid-diagrams/assets/datamodel/files-erd.md +266 -0
  249. package/skills/generating-mermaid-diagrams/assets/datamodel/forecasting-erd.md +261 -0
  250. package/skills/generating-mermaid-diagrams/assets/datamodel/fsl-erd.md +332 -0
  251. package/skills/generating-mermaid-diagrams/assets/datamodel/party-model-erd.md +237 -0
  252. package/skills/generating-mermaid-diagrams/assets/datamodel/quote-order-erd.md +277 -0
  253. package/skills/generating-mermaid-diagrams/assets/datamodel/revenue-cloud-erd.md +343 -0
  254. package/skills/generating-mermaid-diagrams/assets/datamodel/sales-cloud-erd.md +192 -0
  255. package/skills/generating-mermaid-diagrams/assets/datamodel/salesforce-erd.md +209 -0
  256. package/skills/generating-mermaid-diagrams/assets/datamodel/scheduler-erd.md +276 -0
  257. package/skills/generating-mermaid-diagrams/assets/datamodel/service-cloud-erd.md +217 -0
  258. package/skills/generating-mermaid-diagrams/assets/datamodel/territory-management-erd.md +241 -0
  259. package/skills/generating-mermaid-diagrams/assets/integration/api-sequence.md +387 -0
  260. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code-pkce.md +197 -0
  261. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code.md +152 -0
  262. package/skills/generating-mermaid-diagrams/assets/oauth/client-credentials.md +233 -0
  263. package/skills/generating-mermaid-diagrams/assets/oauth/device-authorization.md +295 -0
  264. package/skills/generating-mermaid-diagrams/assets/oauth/jwt-bearer.md +256 -0
  265. package/skills/generating-mermaid-diagrams/assets/oauth/refresh-token.md +281 -0
  266. package/skills/generating-mermaid-diagrams/assets/oauth/user-agent-social-sign-on.md +281 -0
  267. package/skills/generating-mermaid-diagrams/assets/role-hierarchy/user-hierarchy.md +322 -0
  268. package/skills/generating-mermaid-diagrams/references/color-palette.md +464 -0
  269. package/skills/generating-mermaid-diagrams/references/diagram-conventions.md +313 -0
  270. package/skills/generating-mermaid-diagrams/references/erd-conventions.md +320 -0
  271. package/skills/generating-mermaid-diagrams/references/mermaid-reference.md +434 -0
  272. package/skills/generating-mermaid-diagrams/references/mermaid-styling.md +81 -0
  273. package/skills/generating-mermaid-diagrams/references/preview-guide.md +49 -0
  274. package/skills/generating-mermaid-diagrams/references/usage-examples.md +340 -0
  275. package/skills/generating-mermaid-diagrams/scripts/README.md +160 -0
  276. package/skills/generating-mermaid-diagrams/scripts/mermaid_preview.py +654 -0
  277. package/skills/generating-mermaid-diagrams/scripts/query-org-metadata.py +293 -0
  278. package/skills/generating-visual-diagrams/CREDITS.md +80 -0
  279. package/skills/generating-visual-diagrams/README.md +83 -0
  280. package/skills/generating-visual-diagrams/SKILL.md +208 -0
  281. package/skills/generating-visual-diagrams/assets/architecture/integration-flow.md +55 -0
  282. package/skills/generating-visual-diagrams/assets/erd/core-objects.md +131 -0
  283. package/skills/generating-visual-diagrams/assets/erd/custom-objects.md +60 -0
  284. package/skills/generating-visual-diagrams/assets/lwc/dashboard-card.md +45 -0
  285. package/skills/generating-visual-diagrams/assets/lwc/data-table.md +57 -0
  286. package/skills/generating-visual-diagrams/assets/lwc/record-form.md +60 -0
  287. package/skills/generating-visual-diagrams/assets/review/apex-review.md +57 -0
  288. package/skills/generating-visual-diagrams/assets/review/lwc-review.md +48 -0
  289. package/skills/generating-visual-diagrams/references/architect-aesthetic-guide.md +257 -0
  290. package/skills/generating-visual-diagrams/references/examples-index.md +35 -0
  291. package/skills/generating-visual-diagrams/references/gemini-cli-setup.md +65 -0
  292. package/skills/generating-visual-diagrams/references/interview-questions.md +529 -0
  293. package/skills/generating-visual-diagrams/references/iteration-workflow.md +173 -0
  294. package/skills/generating-visual-diagrams/scripts/check-prerequisites.sh +101 -0
  295. package/skills/generating-visual-diagrams/scripts/generate_image.py +243 -0
  296. package/skills/handling-sf-data/CREDITS.md +5 -0
  297. package/skills/handling-sf-data/README.md +112 -0
  298. package/skills/handling-sf-data/SKILL.md +235 -0
  299. package/skills/handling-sf-data/assets/bulk/bulk-insert-10000.apex +293 -0
  300. package/skills/handling-sf-data/assets/bulk/bulk-insert-200.apex +208 -0
  301. package/skills/handling-sf-data/assets/bulk/bulk-insert-500.apex +219 -0
  302. package/skills/handling-sf-data/assets/bulk/bulk-upsert-external-id.apex +324 -0
  303. package/skills/handling-sf-data/assets/cleanup/delete-by-created-date.apex +319 -0
  304. package/skills/handling-sf-data/assets/cleanup/delete-by-name.apex +240 -0
  305. package/skills/handling-sf-data/assets/cleanup/delete-test-data.apex +311 -0
  306. package/skills/handling-sf-data/assets/cleanup/rollback-transaction.apex +266 -0
  307. package/skills/handling-sf-data/assets/csv/account-import.csv +11 -0
  308. package/skills/handling-sf-data/assets/csv/contact-import.csv +11 -0
  309. package/skills/handling-sf-data/assets/csv/custom-object-import.csv +11 -0
  310. package/skills/handling-sf-data/assets/csv/opportunity-import.csv +11 -0
  311. package/skills/handling-sf-data/assets/factories/account-factory.apex +165 -0
  312. package/skills/handling-sf-data/assets/factories/case-factory.apex +237 -0
  313. package/skills/handling-sf-data/assets/factories/contact-factory.apex +168 -0
  314. package/skills/handling-sf-data/assets/factories/custom-object-factory.apex +260 -0
  315. package/skills/handling-sf-data/assets/factories/event-factory.apex +275 -0
  316. package/skills/handling-sf-data/assets/factories/hierarchy-factory.apex +372 -0
  317. package/skills/handling-sf-data/assets/factories/lead-factory.apex +190 -0
  318. package/skills/handling-sf-data/assets/factories/opportunity-factory.apex +206 -0
  319. package/skills/handling-sf-data/assets/factories/task-factory.apex +246 -0
  320. package/skills/handling-sf-data/assets/factories/user-factory.apex +278 -0
  321. package/skills/handling-sf-data/assets/json/account-contact-tree.json +130 -0
  322. package/skills/handling-sf-data/assets/json/account-opportunity-tree.json +110 -0
  323. package/skills/handling-sf-data/assets/json/full-hierarchy-tree.json +188 -0
  324. package/skills/handling-sf-data/assets/soql/aggregate.soql +226 -0
  325. package/skills/handling-sf-data/assets/soql/child-to-parent.soql +162 -0
  326. package/skills/handling-sf-data/assets/soql/parent-to-child.soql +153 -0
  327. package/skills/handling-sf-data/assets/soql/polymorphic.soql +198 -0
  328. package/skills/handling-sf-data/assets/soql/subquery.soql +287 -0
  329. package/skills/handling-sf-data/references/anonymous-apex-guide.md +98 -0
  330. package/skills/handling-sf-data/references/bulk-operations-guide.md +94 -0
  331. package/skills/handling-sf-data/references/bulk-testing-example.md +194 -0
  332. package/skills/handling-sf-data/references/cleanup-rollback-example.md +322 -0
  333. package/skills/handling-sf-data/references/cleanup-rollback-guide.md +84 -0
  334. package/skills/handling-sf-data/references/crud-workflow-example.md +183 -0
  335. package/skills/handling-sf-data/references/governor-limits-reference.md +74 -0
  336. package/skills/handling-sf-data/references/orchestration.md +174 -0
  337. package/skills/handling-sf-data/references/relationship-query-examples.md +249 -0
  338. package/skills/handling-sf-data/references/sf-cli-data-commands.md +158 -0
  339. package/skills/handling-sf-data/references/soql-relationship-guide.md +84 -0
  340. package/skills/handling-sf-data/references/test-data-best-practices.md +104 -0
  341. package/skills/handling-sf-data/references/test-data-factory-usage.md +290 -0
  342. package/skills/handling-sf-data/references/test-data-patterns.md +98 -0
  343. package/skills/handling-sf-data/scripts/soql_validator.py +292 -0
  344. package/skills/handling-sf-data/scripts/validate_data_operation.py +379 -0
  345. package/skills/harmonizing-datacloud/CREDITS.md +3 -0
  346. package/skills/harmonizing-datacloud/README.md +31 -0
  347. package/skills/harmonizing-datacloud/SKILL.md +117 -0
  348. package/skills/modeling-omnistudio-epc-catalog/CREDITS.md +14 -0
  349. package/skills/modeling-omnistudio-epc-catalog/README.md +89 -0
  350. package/skills/modeling-omnistudio-epc-catalog/SKILL.md +395 -0
  351. package/skills/modeling-omnistudio-epc-catalog/assets/attribute-assignment-template.json +402 -0
  352. package/skills/modeling-omnistudio-epc-catalog/assets/compiled-attribute-overrides-template.json +43 -0
  353. package/skills/modeling-omnistudio-epc-catalog/assets/completion-block-template.txt +8 -0
  354. package/skills/modeling-omnistudio-epc-catalog/assets/decomposition-relationships-template.json +233 -0
  355. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json +514 -0
  356. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json +21 -0
  357. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json +649 -0
  358. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json +200 -0
  359. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json +138 -0
  360. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json +54 -0
  361. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json +266 -0
  362. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json +23 -0
  363. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json +54 -0
  364. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json +35 -0
  365. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json +34 -0
  366. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json +21 -0
  367. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json +410 -0
  368. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json +535 -0
  369. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json +35 -0
  370. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json +138 -0
  371. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json +28 -0
  372. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json +23 -0
  373. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json +220 -0
  374. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json +35 -0
  375. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json +414 -0
  376. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json +382 -0
  377. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json +565 -0
  378. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json +35 -0
  379. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json +104 -0
  380. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json +28 -0
  381. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json +13 -0
  382. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json +106 -0
  383. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json +35 -0
  384. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json +72 -0
  385. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json +142 -0
  386. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DataPack.json +377 -0
  387. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json +35 -0
  388. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json +36 -0
  389. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json +8 -0
  390. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json +54 -0
  391. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json +35 -0
  392. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json +34 -0
  393. package/skills/modeling-omnistudio-epc-catalog/assets/object-field-attributes-template.json +138 -0
  394. package/skills/modeling-omnistudio-epc-catalog/assets/orchestration-scenarios-template.json +54 -0
  395. package/skills/modeling-omnistudio-epc-catalog/assets/override-definitions-template.json +134 -0
  396. package/skills/modeling-omnistudio-epc-catalog/assets/parent-keys-template.json +29 -0
  397. package/skills/modeling-omnistudio-epc-catalog/assets/price-list-entries-template.json +158 -0
  398. package/skills/modeling-omnistudio-epc-catalog/assets/pricebook-entries-template.json +35 -0
  399. package/skills/modeling-omnistudio-epc-catalog/assets/product-child-item-template.json +338 -0
  400. package/skills/modeling-omnistudio-epc-catalog/assets/product2-offer-template.json +527 -0
  401. package/skills/modeling-omnistudio-epc-catalog/examples/.gitkeep +1 -0
  402. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json +95 -0
  403. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json +1 -0
  404. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json +214 -0
  405. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json +28 -0
  406. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json +98 -0
  407. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json +22 -0
  408. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json +1 -0
  409. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json +13 -0
  410. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json +35 -0
  411. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json +28 -0
  412. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json +110 -0
  413. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/TRANSCRIPT.md +58 -0
  414. package/skills/modeling-omnistudio-epc-catalog/references/epc-field-guide.md +90 -0
  415. package/skills/modeling-omnistudio-epc-catalog/references/naming-conventions.md +80 -0
  416. package/skills/modeling-omnistudio-epc-catalog/references/scoring-model.md +57 -0
  417. package/skills/modeling-omnistudio-epc-catalog/scripts/cli-validation-commands.sh +19 -0
  418. package/skills/modeling-omnistudio-epc-catalog/scripts/sample-invocations.sh +18 -0
  419. package/skills/orchestrating-datacloud/CREDITS.md +15 -0
  420. package/skills/orchestrating-datacloud/README.md +129 -0
  421. package/skills/orchestrating-datacloud/SKILL.md +236 -0
  422. package/skills/orchestrating-datacloud/UPSTREAM.md +45 -0
  423. package/skills/orchestrating-datacloud/assets/definitions/activation-target.template.json +5 -0
  424. package/skills/orchestrating-datacloud/assets/definitions/activation.template.json +7 -0
  425. package/skills/orchestrating-datacloud/assets/definitions/calculated-insight.template.json +7 -0
  426. package/skills/orchestrating-datacloud/assets/definitions/data-action-target.template.json +5 -0
  427. package/skills/orchestrating-datacloud/assets/definitions/data-action.template.json +5 -0
  428. package/skills/orchestrating-datacloud/assets/definitions/data-graph.template.json +21 -0
  429. package/skills/orchestrating-datacloud/assets/definitions/data-stream.template.json +55 -0
  430. package/skills/orchestrating-datacloud/assets/definitions/dmo.template.json +17 -0
  431. package/skills/orchestrating-datacloud/assets/definitions/identity-resolution.template.json +30 -0
  432. package/skills/orchestrating-datacloud/assets/definitions/mapping.template.json +14 -0
  433. package/skills/orchestrating-datacloud/assets/definitions/relationship.template.json +12 -0
  434. package/skills/orchestrating-datacloud/assets/definitions/search-index.template.json +9 -0
  435. package/skills/orchestrating-datacloud/assets/definitions/segment.template.json +16 -0
  436. package/skills/orchestrating-datacloud/references/feature-readiness.md +157 -0
  437. package/skills/orchestrating-datacloud/references/plugin-setup.md +140 -0
  438. package/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh +53 -0
  439. package/skills/orchestrating-datacloud/scripts/diagnose-org.mjs +511 -0
  440. package/skills/orchestrating-datacloud/scripts/generate-manifest.mjs +68 -0
  441. package/skills/orchestrating-datacloud/scripts/verify-plugin.sh +58 -0
  442. package/skills/preparing-datacloud/CREDITS.md +7 -0
  443. package/skills/preparing-datacloud/README.md +51 -0
  444. package/skills/preparing-datacloud/SKILL.md +191 -0
  445. package/skills/preparing-datacloud/examples/ingestion-api/.env.example +8 -0
  446. package/skills/preparing-datacloud/examples/ingestion-api/README.md +48 -0
  447. package/skills/preparing-datacloud/examples/ingestion-api/send-data.py +144 -0
  448. package/skills/querying-soql/CREDITS.md +21 -0
  449. package/skills/querying-soql/README.md +41 -0
  450. package/skills/querying-soql/SKILL.md +143 -0
  451. package/skills/querying-soql/assets/aggregate-queries.soql +242 -0
  452. package/skills/querying-soql/assets/basic-queries.soql +188 -0
  453. package/skills/querying-soql/assets/bulkified-query-pattern.cls +280 -0
  454. package/skills/querying-soql/assets/optimization-patterns.soql +259 -0
  455. package/skills/querying-soql/assets/relationship-queries.soql +203 -0
  456. package/skills/querying-soql/assets/selector-class.cls +219 -0
  457. package/skills/querying-soql/references/anti-patterns.md +348 -0
  458. package/skills/querying-soql/references/cli-commands.md +358 -0
  459. package/skills/querying-soql/references/field-coverage-rules.md +514 -0
  460. package/skills/querying-soql/references/query-optimization.md +142 -0
  461. package/skills/querying-soql/references/selector-patterns.md +479 -0
  462. package/skills/querying-soql/references/soql-reference.md +227 -0
  463. package/skills/querying-soql/references/soql-syntax-reference.md +208 -0
  464. package/skills/querying-soql/scripts/post-tool-validate.py +322 -0
  465. package/skills/retrieving-datacloud/CREDITS.md +7 -0
  466. package/skills/retrieving-datacloud/README.md +44 -0
  467. package/skills/retrieving-datacloud/SKILL.md +120 -0
  468. package/skills/retrieving-datacloud/examples/search-indexes/hybrid-structured.json +44 -0
  469. package/skills/retrieving-datacloud/examples/search-indexes/vector-knowledge.json +43 -0
  470. package/skills/running-apex-tests/CREDITS.md +22 -0
  471. package/skills/running-apex-tests/README.md +94 -0
  472. package/skills/running-apex-tests/SKILL.md +158 -0
  473. package/skills/running-apex-tests/assets/basic-test.cls +169 -0
  474. package/skills/running-apex-tests/assets/bulk-test.cls +255 -0
  475. package/skills/running-apex-tests/assets/dml-mock.cls +339 -0
  476. package/skills/running-apex-tests/assets/mock-callout-test.cls +353 -0
  477. package/skills/running-apex-tests/assets/stub-provider-example.cls +364 -0
  478. package/skills/running-apex-tests/assets/test-data-factory.cls +328 -0
  479. package/skills/running-apex-tests/hooks/scripts/parse-test-results.py +364 -0
  480. package/skills/running-apex-tests/references/cli-commands.md +289 -0
  481. package/skills/running-apex-tests/references/mocking-patterns.md +500 -0
  482. package/skills/running-apex-tests/references/performance-optimization.md +283 -0
  483. package/skills/running-apex-tests/references/test-fix-loop.md +49 -0
  484. package/skills/running-apex-tests/references/test-patterns.md +154 -0
  485. package/skills/running-apex-tests/references/testing-best-practices.md +509 -0
  486. package/skills/segmenting-datacloud/CREDITS.md +3 -0
  487. package/skills/segmenting-datacloud/README.md +36 -0
  488. package/skills/segmenting-datacloud/SKILL.md +115 -0
@@ -0,0 +1,281 @@
1
+ # User-Agent with Social Sign-On Flow Template
2
+
3
+ OAuth 2.0 User-Agent flow combined with Social Sign-On (OIDC), where Salesforce acts as both the Authorization Provider (for the client) and the Relying Party (to the external OIDC Provider like Facebook, Google, etc.).
4
+
5
+ ## When to Use
6
+ - Mobile apps or SPAs requiring social login (Google, Facebook, etc.)
7
+ - When Salesforce is an intermediary between your app and social identity providers
8
+ - User-Agent flow (implicit-like) with external OIDC authentication
9
+ - Silent re-authentication scenarios (OP session cookies)
10
+
11
+ ## Mermaid Template
12
+
13
+ ```mermaid
14
+ %%{init: {'theme': 'base', 'themeVariables': {
15
+ 'actorBkg': '#ddd6fe',
16
+ 'actorTextColor': '#1f2937',
17
+ 'actorBorder': '#6d28d9',
18
+ 'signalColor': '#334155',
19
+ 'signalTextColor': '#1f2937',
20
+ 'noteBkgColor': '#f8fafc',
21
+ 'noteTextColor': '#1f2937',
22
+ 'noteBorderColor': '#334155'
23
+ }}}%%
24
+ sequenceDiagram
25
+ autonumber
26
+
27
+ box rgba(165,243,252,0.3) CLIENT
28
+ participant C as 📱 Client<br/>(Mobile App)
29
+ end
30
+
31
+ box rgba(221,214,254,0.3) SALESFORCE
32
+ participant SF as ☁️ Salesforce<br/>(Auth Provider /<br/>Relying Party)
33
+ end
34
+
35
+ box rgba(254,215,170,0.3) OIDC PROVIDER
36
+ participant OP as 🔐 OIDC Provider<br/>(Google/Facebook)
37
+ end
38
+
39
+ Note over C,OP: User-Agent Flow with Social Sign-On (OIDC)
40
+
41
+ %% Phase 1: Initial Access Token Request
42
+ C->>SF: 📤 Access Token Request
43
+ Note over C,SF: GET /services/oauth2/authorize<br/>client_id, response_type=token<br/>redirect_uri, state, scope
44
+
45
+ SF->>SF: ⚙️ Check for RP session
46
+
47
+ %% Phase 2: Redirect to OIDC Provider
48
+ SF->>C: 📥 HTTP Redirect to OP
49
+ Note over SF,C: Redirect to OIDC authorize endpoint
50
+
51
+ C->>OP: 📤 Auth Code Request
52
+ Note over C,OP: GET /authorize<br/>response_type=code<br/>redirect_uri=/services/authglobalcallback<br/>scope, state
53
+
54
+ %% Phase 3: Authentication at OP
55
+ OP->>OP: ⚙️ Check for OP session
56
+ OP->>C: 📥 Display Login Page
57
+ C->>OP: 🔐 User authenticates
58
+
59
+ OP->>OP: ⚙️ Validate credentials
60
+ OP->>C: 📥 Display Consent Screen (first time only)
61
+ C->>OP: 🔐 User grants consent
62
+
63
+ OP->>OP: ⚙️ Generate authorization code
64
+
65
+ %% Phase 4: Return to Salesforce
66
+ OP->>C: 📥 HTTP Redirect to Salesforce
67
+ Note over OP,C: Redirect to /services/authglobalcallback<br/>?code=OP_AUTH_CODE&state=...
68
+
69
+ C->>SF: 📤 Deliver OP Auth Code
70
+ Note over C,SF: GET /services/authglobalcallback<br/>code=OP_AUTH_CODE, state
71
+
72
+ %% Phase 5: Salesforce exchanges code with OP
73
+ SF->>OP: 📤 Access Token Request
74
+ Note over SF,OP: POST to OP Token Endpoint<br/>client_id, client_secret<br/>code, redirect_uri, state
75
+
76
+ OP->>OP: ⚙️ Validate client & code
77
+
78
+ OP-->>SF: 📥 Access Token Response
79
+ Note over OP,SF: id_token (JWT)<br/>access_token<br/>refresh_token
80
+
81
+ SF->>SF: 🔐 Verify ID token signature
82
+
83
+ %% Phase 6: Optional UserInfo
84
+ rect rgba(248,250,252,0.5)
85
+ Note over SF,OP: Optional: UserInfo Endpoint
86
+ SF->>OP: 📤 Request User Information
87
+ Note over SF,OP: POST /userinfo<br/>Authorization: Bearer ACCESS_TOKEN
88
+ OP-->>SF: 📥 User Info Response
89
+ Note over OP,SF: User claims (email, name, etc.)
90
+ SF->>SF: 🔐 Validate sub matches ID token
91
+ end
92
+
93
+ %% Phase 7: Salesforce User Provisioning
94
+ SF->>SF: ⚙️ Invoke registration handler<br/>to create/update user
95
+
96
+ %% Phase 8: User Authorization for Salesforce
97
+ SF->>C: 📥 Display Salesforce Consent
98
+ Note over SF,C: "App requests:<br/>• API Access<br/>• Refresh Token"
99
+ C->>SF: 🔐 User grants Salesforce consent
100
+
101
+ %% Phase 9: Return tokens to Client
102
+ SF->>C: 📥 Redirect to Client Callback
103
+ Note over SF,C: Redirect URI with:<br/>access_token (Salesforce)<br/>refresh_token<br/>instance_url
104
+
105
+ C->>C: ⚙️ Store Salesforce tokens
106
+
107
+ %% Phase 10: API Usage
108
+ C->>SF: 📤 Use Salesforce APIs
109
+ Note over C,SF: Authorization: Bearer SF_ACCESS_TOKEN
110
+
111
+ SF-->>C: ✅ API Response
112
+
113
+ Note over C,SF: ⚠️ OP session cookie enables<br/>silent re-auth (~15 min)
114
+ ```
115
+
116
+ ## ASCII Fallback Template
117
+
118
+ ```
119
+ ┌────────────────┐ ┌────────────────────┐ ┌─────────────────────┐
120
+ │ Client │ │ Salesforce │ │ OIDC Provider │
121
+ │ (Mobile App) │ │ (Auth/RP Server) │ │ (Google/Facebook) │
122
+ └───────┬────────┘ └─────────┬──────────┘ └──────────┬──────────┘
123
+ │ │ │
124
+ │ 1. Access Token Req │ │
125
+ │ (response_type= │ │
126
+ │ token) │ │
127
+ │───────────────────────>│ │
128
+ │ │ │
129
+ │ 2. Redirect to OP │ │
130
+ │<───────────────────────│ │
131
+ │ │ │
132
+ │ 3. Auth Code Request (response_type=code) │
133
+ │────────────────────────────────────────────────────>│
134
+ │ │ │
135
+ │ 4. Login Page │
136
+ │<────────────────────────────────────────────────────│
137
+ │ │ │
138
+ │ 5. Enter Credentials (authenticate) │
139
+ │────────────────────────────────────────────────────>│
140
+ │ │ │
141
+ │ 6. Consent Screen (first time) │
142
+ │<────────────────────────────────────────────────────│
143
+ │ │ │
144
+ │ 7. Grant Consent │
145
+ │────────────────────────────────────────────────────>│
146
+ │ │ │
147
+ │ 8. Redirect with ?code=OP_AUTH_CODE │
148
+ │<────────────────────────────────────────────────────│
149
+ │ │ │
150
+ │ 9. Deliver OP Code │ │
151
+ │───────────────────────>│ │
152
+ │ │ │
153
+ │ │ 10. POST Token Request │
154
+ │ │ (code, secret) │
155
+ │ │──────────────────────────>│
156
+ │ │ │
157
+ │ │ 11. ID Token + Access │
158
+ │ │ Token Response │
159
+ │ │<──────────────────────────│
160
+ │ │ │
161
+ │ │ [Optional: UserInfo] │
162
+ │ │ 12. GET /userinfo │
163
+ │ │──────────────────────────>│
164
+ │ │ │
165
+ │ │ 13. User Claims │
166
+ │ │<──────────────────────────│
167
+ │ │ │
168
+ │ │ 14. Registration Handler │
169
+ │ │ (create/update user) │
170
+ │ ├─────────────┐ │
171
+ │ │ │ │
172
+ │ │<────────────┘ │
173
+ │ │ │
174
+ │ 15. SF Consent Screen │ │
175
+ │<───────────────────────│ │
176
+ │ │ │
177
+ │ 16. Grant SF Consent │ │
178
+ │───────────────────────>│ │
179
+ │ │ │
180
+ │ 17. Redirect with │ │
181
+ │ SF Access Token │ │
182
+ │ + Refresh Token │ │
183
+ │<───────────────────────│ │
184
+ │ │ │
185
+ │ 18. Call SF APIs │ │
186
+ │───────────────────────>│ │
187
+ │ │ │
188
+ │ 19. API Response ✅ │ │
189
+ │<───────────────────────│ │
190
+ ```
191
+
192
+ ## Key Concepts
193
+
194
+ ### Dual Role of Salesforce
195
+
196
+ | Role | Context | Responsibility |
197
+ |------|---------|----------------|
198
+ | **Authorization Provider** | OAuth flow with Client | Issues access tokens to your app |
199
+ | **Relying Party (RP)** | OIDC flow with Social Provider | Consumes ID tokens from Google/Facebook |
200
+
201
+ ### Authentication Endpoints
202
+
203
+ | System | Endpoint | Purpose |
204
+ |--------|----------|---------|
205
+ | Salesforce Auth | `/services/oauth2/authorize` | Start User-Agent flow |
206
+ | Salesforce Callback | `/services/authglobalcallback` | Receive OP auth code |
207
+ | Salesforce Token | `/services/oauth2/token` | (Not used in User-Agent) |
208
+ | OP Authorization | Provider-specific | `/authorize` endpoint |
209
+ | OP Token | Provider-specific | Exchange code for tokens |
210
+ | OP UserInfo | Provider-specific | Get user profile claims |
211
+
212
+ ## Security Considerations
213
+
214
+ 1. **OP Session Cookies** - Enable silent re-authentication (~15 min intervals)
215
+ 2. **ID Token Validation** - Salesforce verifies JWT signature from OP
216
+ 3. **Sub Claim Matching** - UserInfo `sub` must match ID token `sub`
217
+ 4. **State Parameter** - CSRF protection between all parties
218
+ 5. **Registration Handler** - Custom Apex to map OP user to Salesforce User
219
+
220
+ ## Salesforce Configuration
221
+
222
+ ### Auth. Provider Setup
223
+
224
+ ```
225
+ Setup → Auth. Providers → New
226
+ ├── Provider Type: OpenID Connect (or specific: Google, Facebook)
227
+ ├── Consumer Key: [From OP Developer Console]
228
+ ├── Consumer Secret: [From OP Developer Console]
229
+ ├── Authorize Endpoint: https://provider.com/authorize
230
+ ├── Token Endpoint: https://provider.com/token
231
+ ├── User Info Endpoint: https://provider.com/userinfo (optional)
232
+ └── Registration Handler: [Your Apex Class]
233
+ ```
234
+
235
+ ### Registration Handler Example
236
+
237
+ ```apex
238
+ public class SocialLoginHandler implements Auth.RegistrationHandler {
239
+ public User createUser(Id portalId, Auth.UserData data) {
240
+ // Map social identity to Salesforce User
241
+ User u = new User();
242
+ u.Username = data.email + '.social';
243
+ u.Email = data.email;
244
+ u.FirstName = data.firstName;
245
+ u.LastName = data.lastName;
246
+ // ... additional mapping
247
+ return u;
248
+ }
249
+
250
+ public void updateUser(Id userId, Id portalId, Auth.UserData data) {
251
+ // Update existing user on subsequent logins
252
+ User u = [SELECT Id FROM User WHERE Id = :userId];
253
+ u.Email = data.email;
254
+ update u;
255
+ }
256
+ }
257
+ ```
258
+
259
+ ## Token Types
260
+
261
+ | Token | Issued By | Purpose |
262
+ |-------|-----------|---------|
263
+ | OP Auth Code | OIDC Provider | Short-lived, exchanged by SF |
264
+ | OP ID Token | OIDC Provider | JWT with user identity claims |
265
+ | OP Access Token | OIDC Provider | Used by SF to call OP UserInfo |
266
+ | SF Access Token | Salesforce | Used by Client to call SF APIs |
267
+ | SF Refresh Token | Salesforce | Long-lived, refresh SF access |
268
+
269
+ ## Customization Points
270
+
271
+ Replace these placeholders:
272
+ - `CLIENT_ID` → Your Connected App's Consumer Key
273
+ - `CALLBACK_URL` → Your registered callback URL
274
+ - `OP_CLIENT_ID` → Consumer Key from Social Provider
275
+ - `OP_CLIENT_SECRET` → Consumer Secret from Social Provider
276
+
277
+ ## Reference
278
+
279
+ - [Salesforce Identity: User-Agent with Social Sign-On](https://cloudsundial.com/salesforce-identity/user-agent-with-social-sign-on)
280
+ - [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html)
281
+ - [Salesforce Auth. Providers Documentation](https://help.salesforce.com/s/articleView?id=sf.sso_provider_openidconnect.htm)
@@ -0,0 +1,322 @@
1
+ # Role Hierarchy Diagram Template
2
+
3
+ Flowchart template for visualizing Salesforce role hierarchies and permission structures.
4
+
5
+ ## When to Use
6
+ - Documenting org security model
7
+ - Planning role hierarchy changes
8
+ - Explaining data access patterns
9
+ - Security review presentations
10
+
11
+ ## Mermaid Template - Sales Role Hierarchy
12
+
13
+ ```mermaid
14
+ %%{init: {"flowchart": {"nodeSpacing": 80, "rankSpacing": 70}} }%%
15
+ flowchart TB
16
+ subgraph legend["📋 LEGEND"]
17
+ direction LR
18
+ L1[Role]
19
+ L2([Profile])
20
+ L3{{Permission Set}}
21
+ end
22
+
23
+ CEO[CEO]
24
+
25
+ subgraph sales["SALES ORGANIZATION"]
26
+ direction TB
27
+ VP_SALES[VP of Sales]
28
+
29
+ subgraph regions["REGIONAL DIRECTORS"]
30
+ direction LR
31
+ DIR_WEST[Director - West]
32
+ DIR_EAST[Director - East]
33
+ DIR_CENTRAL[Director - Central]
34
+ end
35
+
36
+ subgraph managers["SALES MANAGERS"]
37
+ direction LR
38
+ MGR_W1[Manager - SF]
39
+ MGR_W2[Manager - LA]
40
+ MGR_E1[Manager - NYC]
41
+ MGR_E2[Manager - Boston]
42
+ MGR_C1[Manager - Chicago]
43
+ MGR_C2[Manager - Dallas]
44
+ end
45
+
46
+ subgraph reps["SALES REPRESENTATIVES"]
47
+ direction LR
48
+ REP_W[West Reps<br/>12 users]
49
+ REP_E[East Reps<br/>15 users]
50
+ REP_C[Central Reps<br/>10 users]
51
+ end
52
+ end
53
+
54
+ subgraph service["SERVICE ORGANIZATION"]
55
+ direction TB
56
+ VP_SVC[VP of Service]
57
+
58
+ SVC_MGR[Service Manager]
59
+
60
+ subgraph agents["SERVICE AGENTS"]
61
+ direction LR
62
+ AGENT_T1[Tier 1 Support<br/>20 users]
63
+ AGENT_T2[Tier 2 Support<br/>8 users]
64
+ end
65
+ end
66
+
67
+ %% Hierarchy connections
68
+ CEO --> VP_SALES
69
+ CEO --> VP_SVC
70
+
71
+ VP_SALES --> DIR_WEST
72
+ VP_SALES --> DIR_EAST
73
+ VP_SALES --> DIR_CENTRAL
74
+
75
+ DIR_WEST --> MGR_W1
76
+ DIR_WEST --> MGR_W2
77
+ DIR_EAST --> MGR_E1
78
+ DIR_EAST --> MGR_E2
79
+ DIR_CENTRAL --> MGR_C1
80
+ DIR_CENTRAL --> MGR_C2
81
+
82
+ MGR_W1 --> REP_W
83
+ MGR_W2 --> REP_W
84
+ MGR_E1 --> REP_E
85
+ MGR_E2 --> REP_E
86
+ MGR_C1 --> REP_C
87
+ MGR_C2 --> REP_C
88
+
89
+ VP_SVC --> SVC_MGR
90
+ SVC_MGR --> AGENT_T1
91
+ SVC_MGR --> AGENT_T2
92
+
93
+ %% Node Styling - Pastel palette (Tailwind 200-level)
94
+ style CEO fill:#fbcfe8,stroke:#be185d,color:#1f2937
95
+ style VP_SALES fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
96
+ style VP_SVC fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
97
+ style DIR_WEST fill:#c7d2fe,stroke:#4338ca,color:#1f2937
98
+ style DIR_EAST fill:#c7d2fe,stroke:#4338ca,color:#1f2937
99
+ style DIR_CENTRAL fill:#c7d2fe,stroke:#4338ca,color:#1f2937
100
+ style MGR_W1 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
101
+ style MGR_W2 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
102
+ style MGR_E1 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
103
+ style MGR_E2 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
104
+ style MGR_C1 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
105
+ style MGR_C2 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
106
+ style SVC_MGR fill:#a5f3fc,stroke:#0e7490,color:#1f2937
107
+ style REP_W fill:#a7f3d0,stroke:#047857,color:#1f2937
108
+ style REP_E fill:#a7f3d0,stroke:#047857,color:#1f2937
109
+ style REP_C fill:#a7f3d0,stroke:#047857,color:#1f2937
110
+ style AGENT_T1 fill:#a7f3d0,stroke:#047857,color:#1f2937
111
+ style AGENT_T2 fill:#a7f3d0,stroke:#047857,color:#1f2937
112
+ style L1 fill:#e2e8f0,stroke:#334155,color:#1f2937
113
+ style L2 fill:#e2e8f0,stroke:#334155,color:#1f2937
114
+ style L3 fill:#e2e8f0,stroke:#334155,color:#1f2937
115
+
116
+ %% Subgraph Styling - 50-level fills with dashed borders
117
+ style legend fill:#f8fafc,stroke:#334155,stroke-dasharray:5
118
+ style sales fill:#f5f3ff,stroke:#6d28d9,stroke-dasharray:5
119
+ style regions fill:#eef2ff,stroke:#4338ca,stroke-dasharray:5
120
+ style managers fill:#ecfeff,stroke:#0e7490,stroke-dasharray:5
121
+ style reps fill:#ecfdf5,stroke:#047857,stroke-dasharray:5
122
+ style service fill:#f5f3ff,stroke:#6d28d9,stroke-dasharray:5
123
+ style agents fill:#ecfdf5,stroke:#047857,stroke-dasharray:5
124
+ ```
125
+
126
+ ## Mermaid Template - Profile & Permission Set Structure
127
+
128
+ ```mermaid
129
+ %%{init: {"flowchart": {"nodeSpacing": 80, "rankSpacing": 70}} }%%
130
+ flowchart TB
131
+ subgraph profiles["📋 PROFILES - BASE ACCESS"]
132
+ direction LR
133
+ P_ADMIN([System Admin])
134
+ P_SALES([Sales User])
135
+ P_SVC([Service User])
136
+ P_MKTG([Marketing User])
137
+ P_PARTNER([Partner Community])
138
+ end
139
+
140
+ subgraph psets["🔐 PERMISSION SETS - ADDITIVE"]
141
+ direction TB
142
+
143
+ subgraph functional["FUNCTIONAL PERMISSIONS"]
144
+ PS_API{{API Access}}
145
+ PS_REPORTS{{Advanced Reports}}
146
+ PS_FLOW{{Flow Admin}}
147
+ end
148
+
149
+ subgraph feature["FEATURE PERMISSIONS"]
150
+ PS_CPQ{{CPQ User}}
151
+ PS_EINSTEIN{{Einstein Analytics}}
152
+ PS_INBOX{{Sales Engagement}}
153
+ end
154
+
155
+ subgraph object["OBJECT PERMISSIONS"]
156
+ PS_INVOICE{{Invoice Manager}}
157
+ PS_CONTRACT{{Contract Editor}}
158
+ PS_PRODUCT{{Product Admin}}
159
+ end
160
+ end
161
+
162
+ subgraph groups["👥 PERMISSION SET GROUPS"]
163
+ direction LR
164
+ PSG_SALES_FULL{{Sales Full Access}}
165
+ PSG_SVC_FULL{{Service Full Access}}
166
+ end
167
+
168
+ %% Profile assignments
169
+ P_SALES --> PSG_SALES_FULL
170
+ P_SVC --> PSG_SVC_FULL
171
+
172
+ %% Group composition
173
+ PS_API --> PSG_SALES_FULL
174
+ PS_CPQ --> PSG_SALES_FULL
175
+ PS_EINSTEIN --> PSG_SALES_FULL
176
+ PS_INBOX --> PSG_SALES_FULL
177
+
178
+ PS_API --> PSG_SVC_FULL
179
+ PS_REPORTS --> PSG_SVC_FULL
180
+
181
+ %% Node Styling - Profiles (violet-200)
182
+ style P_ADMIN fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
183
+ style P_SALES fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
184
+ style P_SVC fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
185
+ style P_MKTG fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
186
+ style P_PARTNER fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
187
+
188
+ %% Node Styling - Permission Sets (emerald-200)
189
+ style PS_API fill:#a7f3d0,stroke:#047857,color:#1f2937
190
+ style PS_REPORTS fill:#a7f3d0,stroke:#047857,color:#1f2937
191
+ style PS_FLOW fill:#a7f3d0,stroke:#047857,color:#1f2937
192
+ style PS_CPQ fill:#a7f3d0,stroke:#047857,color:#1f2937
193
+ style PS_EINSTEIN fill:#a7f3d0,stroke:#047857,color:#1f2937
194
+ style PS_INBOX fill:#a7f3d0,stroke:#047857,color:#1f2937
195
+ style PS_INVOICE fill:#a7f3d0,stroke:#047857,color:#1f2937
196
+ style PS_CONTRACT fill:#a7f3d0,stroke:#047857,color:#1f2937
197
+ style PS_PRODUCT fill:#a7f3d0,stroke:#047857,color:#1f2937
198
+
199
+ %% Node Styling - Groups (orange-200)
200
+ style PSG_SALES_FULL fill:#fed7aa,stroke:#c2410c,color:#1f2937
201
+ style PSG_SVC_FULL fill:#fed7aa,stroke:#c2410c,color:#1f2937
202
+
203
+ %% Subgraph Styling - 50-level fills with dashed borders
204
+ style profiles fill:#f5f3ff,stroke:#6d28d9,stroke-dasharray:5
205
+ style psets fill:#ecfdf5,stroke:#047857,stroke-dasharray:5
206
+ style functional fill:#ecfdf5,stroke:#047857,stroke-dasharray:5
207
+ style feature fill:#ecfdf5,stroke:#047857,stroke-dasharray:5
208
+ style object fill:#ecfdf5,stroke:#047857,stroke-dasharray:5
209
+ style groups fill:#fff7ed,stroke:#c2410c,stroke-dasharray:5
210
+ ```
211
+
212
+ ## ASCII Fallback Template
213
+
214
+ ```
215
+ ┌─────────────────────────────────────────────────────────────────────────────┐
216
+ │ ROLE HIERARCHY │
217
+ └─────────────────────────────────────────────────────────────────────────────┘
218
+
219
+ ┌─────────┐
220
+ │ CEO │
221
+ └────┬────┘
222
+
223
+ ┌───────────────────┴───────────────────┐
224
+ │ │
225
+ ┌──────▼──────┐ ┌──────▼──────┐
226
+ │ VP of Sales │ │ VP of Svc │
227
+ └──────┬──────┘ └──────┬──────┘
228
+ │ │
229
+ ┌──────────────┼──────────────┐ ┌────────▼────────┐
230
+ │ │ │ │ Service Manager │
231
+ ▼ ▼ ▼ └────────┬────────┘
232
+ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
233
+ │Director │ │Director │ │Director │ ┌──────────┼──────────┐
234
+ │ West │ │ East │ │ Central │ ▼ ▼ │
235
+ └────┬────┘ └────┬────┘ └────┬────┘ ┌─────────┐ ┌─────────┐ │
236
+ │ │ │ │ Tier 1 │ │ Tier 2 │ │
237
+ ▼ ▼ ▼ │ Support │ │ Support │ │
238
+ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ (20) │ │ (8) │ │
239
+ │Manager │ │Manager │ │Manager │ └─────────┘ └─────────┘ │
240
+ │SF | LA │ │NYC|BOS │ │CHI|DAL │ │
241
+ └────┬────┘ └────┬────┘ └────┬────┘ │
242
+ │ │ │ │
243
+ ▼ ▼ ▼ │
244
+ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
245
+ │ West │ │ East │ │ Central │ │
246
+ │ Reps │ │ Reps │ │ Reps │ │
247
+ │ (12) │ │ (15) │ │ (10) │ │
248
+ └─────────┘ └─────────┘ └─────────┘ │
249
+
250
+ ┌─────────────────────────────────────────────────────────────────────────────┐
251
+ │ DATA ACCESS FLOW │
252
+ │ ───────────────── │
253
+ │ • Roles ABOVE can see records owned by roles BELOW │
254
+ │ • CEO sees ALL sales and service data │
255
+ │ • VP Sales sees all sales data, NOT service data │
256
+ │ • Managers see only their team's records │
257
+ │ • Reps see only their own records │
258
+ └─────────────────────────────────────────────────────────────────────────────┘
259
+ ```
260
+
261
+ ## Security Components
262
+
263
+ | Component | Purpose | Shape |
264
+ |-----------|---------|-------|
265
+ | Role | Data visibility hierarchy | Rectangle |
266
+ | Profile | Base object/field access | Rounded |
267
+ | Permission Set | Additive permissions | Hexagon |
268
+ | Permission Set Group | Bundle of perm sets | Hexagon (orange) |
269
+
270
+ ## Data Access Patterns
271
+
272
+ ### OWD (Organization-Wide Defaults)
273
+
274
+ | Setting | Meaning |
275
+ |---------|---------|
276
+ | Private | Owner + hierarchy above |
277
+ | Public Read Only | All can view |
278
+ | Public Read/Write | All can edit |
279
+ | Controlled by Parent | Inherits from master |
280
+
281
+ ### Sharing Rules
282
+
283
+ ```mermaid
284
+ %%{init: {"flowchart": {"nodeSpacing": 80, "rankSpacing": 70}} }%%
285
+ flowchart LR
286
+ OWD[OWD: Private]
287
+ SHARE[Sharing Rule]
288
+ APEX[Apex Sharing]
289
+
290
+ OWD --> SHARE --> APEX
291
+
292
+ subgraph access["ACCESS EXPANSION"]
293
+ ROLE[Role-based]
294
+ CRITERIA[Criteria-based]
295
+ MANUAL[Manual]
296
+ end
297
+
298
+ SHARE --> access
299
+
300
+ style OWD fill:#fde68a,stroke:#b45309,color:#1f2937
301
+ style SHARE fill:#a5f3fc,stroke:#0e7490,color:#1f2937
302
+ style APEX fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
303
+ style ROLE fill:#c7d2fe,stroke:#4338ca,color:#1f2937
304
+ style CRITERIA fill:#c7d2fe,stroke:#4338ca,color:#1f2937
305
+ style MANUAL fill:#c7d2fe,stroke:#4338ca,color:#1f2937
306
+ style access fill:#eef2ff,stroke:#4338ca,stroke-dasharray:5
307
+ ```
308
+
309
+ ## Best Practices
310
+
311
+ 1. **Minimize role levels** - 3-5 levels max
312
+ 2. **Use Permission Set Groups** - Easier to manage
313
+ 3. **Document exceptions** - Note any sharing rules
314
+ 4. **Show user counts** - Understand scale
315
+ 5. **Include profiles** - Show base access
316
+
317
+ ## Customization Points
318
+
319
+ - Replace example roles with actual org structure
320
+ - Add specific user counts
321
+ - Include custom permission sets
322
+ - Show sharing rule exceptions