@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.
- package/package.json +1 -1
- package/skills/activating-datacloud/CREDITS.md +5 -0
- package/skills/activating-datacloud/README.md +39 -0
- package/skills/activating-datacloud/SKILL.md +118 -0
- package/skills/analyzing-omnistudio-dependencies/CREDITS.md +5 -0
- package/skills/analyzing-omnistudio-dependencies/SKILL.md +477 -0
- package/skills/analyzing-omnistudio-dependencies/references/dependency-patterns.md +508 -0
- package/skills/analyzing-omnistudio-dependencies/references/namespace-guide.md +300 -0
- package/skills/building-omnistudio-callable-apex/CREDITS.md +9 -0
- package/skills/building-omnistudio-callable-apex/README.md +80 -0
- package/skills/building-omnistudio-callable-apex/SKILL.md +276 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_callable_openinterface.cls +40 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_callable_vanilla.cls +32 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_migration.cls +54 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_openinterface.cls +45 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_test_class.cls +65 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallable.cls +115 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallableTest.cls +189 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/TRANSCRIPT.md +115 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallable.cls +74 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallableTest.cls +146 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomRemoteClass.cls +16 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +120 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallable.cls +73 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallableTest.cls +128 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomVlocityOpenInterface2.cls +23 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +75 -0
- package/skills/building-omnistudio-datamapper/CREDITS.md +5 -0
- package/skills/building-omnistudio-datamapper/SKILL.md +270 -0
- package/skills/building-omnistudio-datamapper/assets/completion-summary-template.md +28 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-extract.json +6 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-item.json +12 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-load.json +6 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-transform.json +6 -0
- package/skills/building-omnistudio-datamapper/references/best-practices.md +277 -0
- package/skills/building-omnistudio-datamapper/references/naming-conventions.md +145 -0
- package/skills/building-omnistudio-flexcard/CREDITS.md +5 -0
- package/skills/building-omnistudio-flexcard/SKILL.md +325 -0
- package/skills/building-omnistudio-flexcard/assets/omni-ui-card.json +10 -0
- package/skills/building-omnistudio-flexcard/references/best-practices.md +291 -0
- package/skills/building-omnistudio-flexcard/references/data-binding-guide.md +311 -0
- package/skills/building-omnistudio-flexcard/references/scoring-rubric.md +66 -0
- package/skills/building-omnistudio-flexcard/scripts/flexcard-commands.sh +24 -0
- package/skills/building-omnistudio-integration-procedure/CREDITS.md +5 -0
- package/skills/building-omnistudio-integration-procedure/SKILL.md +275 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-dr-extract.json +10 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-set-values.json +10 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-ip.json +12 -0
- package/skills/building-omnistudio-integration-procedure/assets/scoring-report-format.txt +14 -0
- package/skills/building-omnistudio-integration-procedure/references/best-practices.md +388 -0
- package/skills/building-omnistudio-integration-procedure/references/element-types.md +588 -0
- package/skills/building-omnistudio-integration-procedure/scripts/cli-commands.sh +18 -0
- package/skills/building-omnistudio-omniscript/CREDITS.md +5 -0
- package/skills/building-omnistudio-omniscript/SKILL.md +367 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-element-step.json +10 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-element-text-block.json +11 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-omniscript.json +12 -0
- package/skills/building-omnistudio-omniscript/references/best-practices.md +480 -0
- package/skills/building-omnistudio-omniscript/references/element-types.md +1172 -0
- package/skills/building-omnistudio-omniscript/scripts/check-duplicate-omniscript.sh +13 -0
- package/skills/building-omnistudio-omniscript/scripts/cli-reference.sh +21 -0
- package/skills/building-omnistudio-omniscript/scripts/deploy-omniscript.sh +29 -0
- package/skills/building-sf-integrations/CREDITS.md +5 -0
- package/skills/building-sf-integrations/README.md +95 -0
- package/skills/building-sf-integrations/SKILL.md +192 -0
- package/skills/building-sf-integrations/assets/callouts/callout-retry-handler.cls +167 -0
- package/skills/building-sf-integrations/assets/callouts/http-response-handler.cls +257 -0
- package/skills/building-sf-integrations/assets/callouts/rest-queueable-callout.cls +262 -0
- package/skills/building-sf-integrations/assets/callouts/rest-sync-callout.cls +211 -0
- package/skills/building-sf-integrations/assets/cdc/cdc-handler.cls +246 -0
- package/skills/building-sf-integrations/assets/cdc/cdc-subscriber-trigger.trigger +139 -0
- package/skills/building-sf-integrations/assets/endpoint-security/example.cspTrustedSite-meta.xml +58 -0
- package/skills/building-sf-integrations/assets/endpoint-security/example.remoteSite-meta.xml +39 -0
- package/skills/building-sf-integrations/assets/external-credentials/jwt-external-credential.externalCredential-meta.xml +90 -0
- package/skills/building-sf-integrations/assets/external-credentials/oauth-external-credential.externalCredential-meta.xml +87 -0
- package/skills/building-sf-integrations/assets/external-services/external-service-operations.md +221 -0
- package/skills/building-sf-integrations/assets/external-services/openapi-registration.externalServiceRegistration-meta.xml +193 -0
- package/skills/building-sf-integrations/assets/named-credentials/certificate-auth.namedCredential-meta.xml +62 -0
- package/skills/building-sf-integrations/assets/named-credentials/custom-auth.namedCredential-meta.xml +71 -0
- package/skills/building-sf-integrations/assets/named-credentials/oauth-client-credentials.namedCredential-meta.xml +51 -0
- package/skills/building-sf-integrations/assets/named-credentials/oauth-jwt-bearer.namedCredential-meta.xml +67 -0
- package/skills/building-sf-integrations/assets/platform-events/event-publisher.cls +191 -0
- package/skills/building-sf-integrations/assets/platform-events/event-subscriber-action.cls +295 -0
- package/skills/building-sf-integrations/assets/platform-events/event-subscriber-trigger.trigger +108 -0
- package/skills/building-sf-integrations/assets/platform-events/platform-event-definition.object-meta.xml +124 -0
- package/skills/building-sf-integrations/assets/soap/soap-callout-service.cls +186 -0
- package/skills/building-sf-integrations/assets/soap/wsdl2apex-guide.md +213 -0
- package/skills/building-sf-integrations/hooks/scripts/suggest_credential_setup.py +271 -0
- package/skills/building-sf-integrations/hooks/scripts/validate_integration.py +363 -0
- package/skills/building-sf-integrations/references/callout-patterns.md +719 -0
- package/skills/building-sf-integrations/references/cdc-guide.md +288 -0
- package/skills/building-sf-integrations/references/cli-reference.md +94 -0
- package/skills/building-sf-integrations/references/event-driven-architecture-guide.md +266 -0
- package/skills/building-sf-integrations/references/event-patterns.md +838 -0
- package/skills/building-sf-integrations/references/external-services-guide.md +303 -0
- package/skills/building-sf-integrations/references/messaging-api-v2.md +609 -0
- package/skills/building-sf-integrations/references/named-credentials-automation.md +201 -0
- package/skills/building-sf-integrations/references/named-credentials-guide.md +173 -0
- package/skills/building-sf-integrations/references/platform-events-guide.md +288 -0
- package/skills/building-sf-integrations/references/rest-callout-patterns.md +288 -0
- package/skills/building-sf-integrations/references/scoring-rubric.md +59 -0
- package/skills/building-sf-integrations/references/security-best-practices.md +248 -0
- package/skills/building-sf-integrations/scripts/README.md +100 -0
- package/skills/building-sf-integrations/scripts/configure-named-credential.sh +236 -0
- package/skills/building-sf-integrations/scripts/set-api-credential.sh +146 -0
- package/skills/building-sf-integrations/scripts/templates/setup-credentials-with-csp.sh +158 -0
- package/skills/configuring-connected-apps/CREDITS.md +3 -0
- package/skills/configuring-connected-apps/README.md +99 -0
- package/skills/configuring-connected-apps/SKILL.md +224 -0
- package/skills/configuring-connected-apps/assets/connected-app-basic.xml +29 -0
- package/skills/configuring-connected-apps/assets/connected-app-canvas.xml +62 -0
- package/skills/configuring-connected-apps/assets/connected-app-jwt.xml +49 -0
- package/skills/configuring-connected-apps/assets/connected-app-oauth.xml +65 -0
- package/skills/configuring-connected-apps/assets/eca-global-oauth.xml +36 -0
- package/skills/configuring-connected-apps/assets/eca-oauth-settings.xml +36 -0
- package/skills/configuring-connected-apps/assets/eca-policies.xml +36 -0
- package/skills/configuring-connected-apps/assets/external-client-app.xml +35 -0
- package/skills/configuring-connected-apps/references/example-usage.md +256 -0
- package/skills/configuring-connected-apps/references/migration-guide.md +328 -0
- package/skills/configuring-connected-apps/references/oauth-flows-reference.md +660 -0
- package/skills/configuring-connected-apps/references/security-checklist.md +209 -0
- package/skills/configuring-connected-apps/references/testing-validation-guide.md +275 -0
- package/skills/connecting-datacloud/CREDITS.md +5 -0
- package/skills/connecting-datacloud/README.md +59 -0
- package/skills/connecting-datacloud/SKILL.md +155 -0
- package/skills/connecting-datacloud/examples/connections/heroku-postgres.json +15 -0
- package/skills/connecting-datacloud/examples/connections/ingest-api-connection.json +5 -0
- package/skills/connecting-datacloud/examples/connections/ingest-api-schema.json +31 -0
- package/skills/connecting-datacloud/examples/connections/redshift.json +16 -0
- package/skills/connecting-datacloud/examples/connections/sharepoint-unstructured.json +20 -0
- package/skills/connecting-datacloud/examples/connections/snowflake-connection.json +42 -0
- package/skills/debugging-apex-logs/CREDITS.md +22 -0
- package/skills/debugging-apex-logs/README.md +74 -0
- package/skills/debugging-apex-logs/SKILL.md +172 -0
- package/skills/debugging-apex-logs/assets/benchmarking-template.cls +327 -0
- package/skills/debugging-apex-logs/assets/cpu-heap-optimization.cls +307 -0
- package/skills/debugging-apex-logs/assets/dml-in-loop-fix.cls +219 -0
- package/skills/debugging-apex-logs/assets/null-pointer-fix.cls +252 -0
- package/skills/debugging-apex-logs/assets/soql-in-loop-fix.cls +157 -0
- package/skills/debugging-apex-logs/references/analysis-playbook.md +53 -0
- package/skills/debugging-apex-logs/references/benchmarking-guide.md +287 -0
- package/skills/debugging-apex-logs/references/cli-commands.md +368 -0
- package/skills/debugging-apex-logs/references/common-issues.md +68 -0
- package/skills/debugging-apex-logs/references/debug-log-reference.md +328 -0
- package/skills/debugging-apex-logs/references/log-analysis-tools.md +248 -0
- package/skills/debugging-apex-logs/references/scoring-rubric.md +21 -0
- package/skills/deploying-metadata/CREDITS.md +25 -0
- package/skills/deploying-metadata/README.md +104 -0
- package/skills/deploying-metadata/SKILL.md +214 -0
- package/skills/deploying-metadata/assets/destructiveChanges.xml +143 -0
- package/skills/deploying-metadata/assets/package.xml +121 -0
- package/skills/deploying-metadata/references/agent-deployment-guide.md +628 -0
- package/skills/deploying-metadata/references/deploy.sh +73 -0
- package/skills/deploying-metadata/references/deployment-report-template.md +89 -0
- package/skills/deploying-metadata/references/deployment-workflows.md +395 -0
- package/skills/deploying-metadata/references/orchestration.md +183 -0
- package/skills/deploying-metadata/references/trigger-deployment-safety.md +376 -0
- package/skills/deploying-omnistudio-datapacks/CREDITS.md +5 -0
- package/skills/deploying-omnistudio-datapacks/README.md +88 -0
- package/skills/deploying-omnistudio-datapacks/SKILL.md +174 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/TRANSCRIPT.md +124 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +11 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/TRANSCRIPT.md +142 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/deploy-business-internet-plus-bundle.yaml +10 -0
- package/skills/deploying-omnistudio-datapacks/references/job-file-template.md +42 -0
- package/skills/deploying-omnistudio-datapacks/references/troubleshooting-matrix.md +24 -0
- package/skills/developing-agentforce/assets/metadata/http-callout-flow.flow-meta.xml +1 -1
- package/skills/developing-agentforce/references/actions-reference.md +8 -8
- package/skills/fetching-salesforce-docs/README.md +66 -0
- package/skills/fetching-salesforce-docs/SKILL.md +209 -0
- package/skills/fetching-salesforce-docs/requirements.txt +2 -0
- package/skills/fetching-salesforce-docs/scripts/extract_help_salesforce.py +497 -0
- package/skills/fetching-salesforce-docs/scripts/extract_salesforce_doc.py +357 -0
- package/skills/fetching-salesforce-docs/scripts/runtime_bootstrap.py +58 -0
- package/skills/generating-apex/CREDITS.md +1 -26
- package/skills/generating-apex-test/CREDITS.md +2 -27
- package/skills/generating-lwc-components/CREDITS.md +5 -0
- package/skills/generating-lwc-components/README.md +126 -0
- package/skills/generating-lwc-components/SKILL.md +191 -0
- package/skills/generating-lwc-components/assets/apex-controller/LwcController.cls +327 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.css +72 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.html +111 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.js +163 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.js-meta.xml +137 -0
- package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.html +111 -0
- package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.js +367 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.css +63 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.html +154 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js +348 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js-meta.xml +87 -0
- package/skills/generating-lwc-components/assets/form-component/formComponent.html +165 -0
- package/skills/generating-lwc-components/assets/form-component/formComponent.js +275 -0
- package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.html +100 -0
- package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.js +336 -0
- package/skills/generating-lwc-components/assets/jest-test/componentName.test.js.example +371 -0
- package/skills/generating-lwc-components/assets/message-channel/RecordSelected.messageChannel-meta.xml +71 -0
- package/skills/generating-lwc-components/assets/message-channel/lmsPublisher.js +103 -0
- package/skills/generating-lwc-components/assets/message-channel/lmsSubscriber.js +181 -0
- package/skills/generating-lwc-components/assets/modal-component/modalComponent.html +85 -0
- package/skills/generating-lwc-components/assets/modal-component/modalComponent.js +199 -0
- package/skills/generating-lwc-components/assets/record-picker/recordPicker.html +55 -0
- package/skills/generating-lwc-components/assets/record-picker/recordPicker.js +199 -0
- package/skills/generating-lwc-components/assets/state-store/store.js +282 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.css +65 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.html +95 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.js-meta.xml +75 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.test.ts.example +301 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.ts +295 -0
- package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.html +71 -0
- package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.js +316 -0
- package/skills/generating-lwc-components/hooks/scripts/lwc-lsp-validate.py +295 -0
- package/skills/generating-lwc-components/hooks/scripts/post-tool-validate.py +347 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/deprecated_patterns.json +74 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/styling_hooks.json +111 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/valid_slds_classes.json +127 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_linter_wrapper.py +294 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_rules/__init__.py +22 -0
- package/skills/generating-lwc-components/hooks/scripts/template_validator.py +332 -0
- package/skills/generating-lwc-components/hooks/scripts/validate_slds.py +595 -0
- package/skills/generating-lwc-components/references/accessibility-guide.md +843 -0
- package/skills/generating-lwc-components/references/advanced-features.md +108 -0
- package/skills/generating-lwc-components/references/async-notification-patterns.md +661 -0
- package/skills/generating-lwc-components/references/cli-commands.md +545 -0
- package/skills/generating-lwc-components/references/component-patterns.md +1476 -0
- package/skills/generating-lwc-components/references/flow-integration-guide.md +675 -0
- package/skills/generating-lwc-components/references/jest-testing.md +1011 -0
- package/skills/generating-lwc-components/references/lms-guide.md +860 -0
- package/skills/generating-lwc-components/references/lwc-best-practices.md +1310 -0
- package/skills/generating-lwc-components/references/performance-guide.md +861 -0
- package/skills/generating-lwc-components/references/scoring-and-testing.md +116 -0
- package/skills/generating-lwc-components/references/slds-blueprints.json +14389 -0
- package/skills/generating-lwc-components/references/slds-design-guide.md +166 -0
- package/skills/generating-lwc-components/references/state-management.md +642 -0
- package/skills/generating-lwc-components/references/template-anti-patterns.md +948 -0
- package/skills/generating-lwc-components/references/triangle-pattern.md +365 -0
- package/skills/generating-lwc-components/scripts/local-dev-preview.sh +34 -0
- package/skills/generating-mermaid-diagrams/CREDITS.md +46 -0
- package/skills/generating-mermaid-diagrams/README.md +114 -0
- package/skills/generating-mermaid-diagrams/SKILL.md +218 -0
- package/skills/generating-mermaid-diagrams/assets/agentforce/agent-flow.md +313 -0
- package/skills/generating-mermaid-diagrams/assets/architecture/system-landscape.md +351 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/b2b-commerce-erd.md +317 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/campaigns-erd.md +195 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/consent-erd.md +262 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/files-erd.md +266 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/forecasting-erd.md +261 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/fsl-erd.md +332 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/party-model-erd.md +237 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/quote-order-erd.md +277 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/revenue-cloud-erd.md +343 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/sales-cloud-erd.md +192 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/salesforce-erd.md +209 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/scheduler-erd.md +276 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/service-cloud-erd.md +217 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/territory-management-erd.md +241 -0
- package/skills/generating-mermaid-diagrams/assets/integration/api-sequence.md +387 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code-pkce.md +197 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code.md +152 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/client-credentials.md +233 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/device-authorization.md +295 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/jwt-bearer.md +256 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/refresh-token.md +281 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/user-agent-social-sign-on.md +281 -0
- package/skills/generating-mermaid-diagrams/assets/role-hierarchy/user-hierarchy.md +322 -0
- package/skills/generating-mermaid-diagrams/references/color-palette.md +464 -0
- package/skills/generating-mermaid-diagrams/references/diagram-conventions.md +313 -0
- package/skills/generating-mermaid-diagrams/references/erd-conventions.md +320 -0
- package/skills/generating-mermaid-diagrams/references/mermaid-reference.md +434 -0
- package/skills/generating-mermaid-diagrams/references/mermaid-styling.md +81 -0
- package/skills/generating-mermaid-diagrams/references/preview-guide.md +49 -0
- package/skills/generating-mermaid-diagrams/references/usage-examples.md +340 -0
- package/skills/generating-mermaid-diagrams/scripts/README.md +160 -0
- package/skills/generating-mermaid-diagrams/scripts/mermaid_preview.py +654 -0
- package/skills/generating-mermaid-diagrams/scripts/query-org-metadata.py +293 -0
- package/skills/generating-visual-diagrams/CREDITS.md +80 -0
- package/skills/generating-visual-diagrams/README.md +83 -0
- package/skills/generating-visual-diagrams/SKILL.md +208 -0
- package/skills/generating-visual-diagrams/assets/architecture/integration-flow.md +55 -0
- package/skills/generating-visual-diagrams/assets/erd/core-objects.md +131 -0
- package/skills/generating-visual-diagrams/assets/erd/custom-objects.md +60 -0
- package/skills/generating-visual-diagrams/assets/lwc/dashboard-card.md +45 -0
- package/skills/generating-visual-diagrams/assets/lwc/data-table.md +57 -0
- package/skills/generating-visual-diagrams/assets/lwc/record-form.md +60 -0
- package/skills/generating-visual-diagrams/assets/review/apex-review.md +57 -0
- package/skills/generating-visual-diagrams/assets/review/lwc-review.md +48 -0
- package/skills/generating-visual-diagrams/references/architect-aesthetic-guide.md +257 -0
- package/skills/generating-visual-diagrams/references/examples-index.md +35 -0
- package/skills/generating-visual-diagrams/references/gemini-cli-setup.md +65 -0
- package/skills/generating-visual-diagrams/references/interview-questions.md +529 -0
- package/skills/generating-visual-diagrams/references/iteration-workflow.md +173 -0
- package/skills/generating-visual-diagrams/scripts/check-prerequisites.sh +101 -0
- package/skills/generating-visual-diagrams/scripts/generate_image.py +243 -0
- package/skills/handling-sf-data/CREDITS.md +5 -0
- package/skills/handling-sf-data/README.md +112 -0
- package/skills/handling-sf-data/SKILL.md +235 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-10000.apex +293 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-200.apex +208 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-500.apex +219 -0
- package/skills/handling-sf-data/assets/bulk/bulk-upsert-external-id.apex +324 -0
- package/skills/handling-sf-data/assets/cleanup/delete-by-created-date.apex +319 -0
- package/skills/handling-sf-data/assets/cleanup/delete-by-name.apex +240 -0
- package/skills/handling-sf-data/assets/cleanup/delete-test-data.apex +311 -0
- package/skills/handling-sf-data/assets/cleanup/rollback-transaction.apex +266 -0
- package/skills/handling-sf-data/assets/csv/account-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/contact-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/custom-object-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/opportunity-import.csv +11 -0
- package/skills/handling-sf-data/assets/factories/account-factory.apex +165 -0
- package/skills/handling-sf-data/assets/factories/case-factory.apex +237 -0
- package/skills/handling-sf-data/assets/factories/contact-factory.apex +168 -0
- package/skills/handling-sf-data/assets/factories/custom-object-factory.apex +260 -0
- package/skills/handling-sf-data/assets/factories/event-factory.apex +275 -0
- package/skills/handling-sf-data/assets/factories/hierarchy-factory.apex +372 -0
- package/skills/handling-sf-data/assets/factories/lead-factory.apex +190 -0
- package/skills/handling-sf-data/assets/factories/opportunity-factory.apex +206 -0
- package/skills/handling-sf-data/assets/factories/task-factory.apex +246 -0
- package/skills/handling-sf-data/assets/factories/user-factory.apex +278 -0
- package/skills/handling-sf-data/assets/json/account-contact-tree.json +130 -0
- package/skills/handling-sf-data/assets/json/account-opportunity-tree.json +110 -0
- package/skills/handling-sf-data/assets/json/full-hierarchy-tree.json +188 -0
- package/skills/handling-sf-data/assets/soql/aggregate.soql +226 -0
- package/skills/handling-sf-data/assets/soql/child-to-parent.soql +162 -0
- package/skills/handling-sf-data/assets/soql/parent-to-child.soql +153 -0
- package/skills/handling-sf-data/assets/soql/polymorphic.soql +198 -0
- package/skills/handling-sf-data/assets/soql/subquery.soql +287 -0
- package/skills/handling-sf-data/references/anonymous-apex-guide.md +98 -0
- package/skills/handling-sf-data/references/bulk-operations-guide.md +94 -0
- package/skills/handling-sf-data/references/bulk-testing-example.md +194 -0
- package/skills/handling-sf-data/references/cleanup-rollback-example.md +322 -0
- package/skills/handling-sf-data/references/cleanup-rollback-guide.md +84 -0
- package/skills/handling-sf-data/references/crud-workflow-example.md +183 -0
- package/skills/handling-sf-data/references/governor-limits-reference.md +74 -0
- package/skills/handling-sf-data/references/orchestration.md +174 -0
- package/skills/handling-sf-data/references/relationship-query-examples.md +249 -0
- package/skills/handling-sf-data/references/sf-cli-data-commands.md +158 -0
- package/skills/handling-sf-data/references/soql-relationship-guide.md +84 -0
- package/skills/handling-sf-data/references/test-data-best-practices.md +104 -0
- package/skills/handling-sf-data/references/test-data-factory-usage.md +290 -0
- package/skills/handling-sf-data/references/test-data-patterns.md +98 -0
- package/skills/handling-sf-data/scripts/soql_validator.py +292 -0
- package/skills/handling-sf-data/scripts/validate_data_operation.py +379 -0
- package/skills/harmonizing-datacloud/CREDITS.md +3 -0
- package/skills/harmonizing-datacloud/README.md +31 -0
- package/skills/harmonizing-datacloud/SKILL.md +117 -0
- package/skills/modeling-omnistudio-epc-catalog/CREDITS.md +14 -0
- package/skills/modeling-omnistudio-epc-catalog/README.md +89 -0
- package/skills/modeling-omnistudio-epc-catalog/SKILL.md +395 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/attribute-assignment-template.json +402 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/compiled-attribute-overrides-template.json +43 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/completion-block-template.txt +8 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/decomposition-relationships-template.json +233 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json +514 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json +21 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json +649 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json +200 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json +266 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json +23 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json +34 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json +21 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json +410 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json +535 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json +23 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json +220 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json +414 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json +382 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json +565 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json +104 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json +13 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json +106 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json +72 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json +142 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DataPack.json +377 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json +36 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json +8 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json +34 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/object-field-attributes-template.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/orchestration-scenarios-template.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/override-definitions-template.json +134 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/parent-keys-template.json +29 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/price-list-entries-template.json +158 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/pricebook-entries-template.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/product-child-item-template.json +338 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/product2-offer-template.json +527 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/.gitkeep +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json +95 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json +214 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json +98 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json +22 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json +13 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json +110 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/TRANSCRIPT.md +58 -0
- package/skills/modeling-omnistudio-epc-catalog/references/epc-field-guide.md +90 -0
- package/skills/modeling-omnistudio-epc-catalog/references/naming-conventions.md +80 -0
- package/skills/modeling-omnistudio-epc-catalog/references/scoring-model.md +57 -0
- package/skills/modeling-omnistudio-epc-catalog/scripts/cli-validation-commands.sh +19 -0
- package/skills/modeling-omnistudio-epc-catalog/scripts/sample-invocations.sh +18 -0
- package/skills/orchestrating-datacloud/CREDITS.md +15 -0
- package/skills/orchestrating-datacloud/README.md +129 -0
- package/skills/orchestrating-datacloud/SKILL.md +236 -0
- package/skills/orchestrating-datacloud/UPSTREAM.md +45 -0
- package/skills/orchestrating-datacloud/assets/definitions/activation-target.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/activation.template.json +7 -0
- package/skills/orchestrating-datacloud/assets/definitions/calculated-insight.template.json +7 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-action-target.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-action.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-graph.template.json +21 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-stream.template.json +55 -0
- package/skills/orchestrating-datacloud/assets/definitions/dmo.template.json +17 -0
- package/skills/orchestrating-datacloud/assets/definitions/identity-resolution.template.json +30 -0
- package/skills/orchestrating-datacloud/assets/definitions/mapping.template.json +14 -0
- package/skills/orchestrating-datacloud/assets/definitions/relationship.template.json +12 -0
- package/skills/orchestrating-datacloud/assets/definitions/search-index.template.json +9 -0
- package/skills/orchestrating-datacloud/assets/definitions/segment.template.json +16 -0
- package/skills/orchestrating-datacloud/references/feature-readiness.md +157 -0
- package/skills/orchestrating-datacloud/references/plugin-setup.md +140 -0
- package/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh +53 -0
- package/skills/orchestrating-datacloud/scripts/diagnose-org.mjs +511 -0
- package/skills/orchestrating-datacloud/scripts/generate-manifest.mjs +68 -0
- package/skills/orchestrating-datacloud/scripts/verify-plugin.sh +58 -0
- package/skills/preparing-datacloud/CREDITS.md +7 -0
- package/skills/preparing-datacloud/README.md +51 -0
- package/skills/preparing-datacloud/SKILL.md +191 -0
- package/skills/preparing-datacloud/examples/ingestion-api/.env.example +8 -0
- package/skills/preparing-datacloud/examples/ingestion-api/README.md +48 -0
- package/skills/preparing-datacloud/examples/ingestion-api/send-data.py +144 -0
- package/skills/querying-soql/CREDITS.md +21 -0
- package/skills/querying-soql/README.md +41 -0
- package/skills/querying-soql/SKILL.md +143 -0
- package/skills/querying-soql/assets/aggregate-queries.soql +242 -0
- package/skills/querying-soql/assets/basic-queries.soql +188 -0
- package/skills/querying-soql/assets/bulkified-query-pattern.cls +280 -0
- package/skills/querying-soql/assets/optimization-patterns.soql +259 -0
- package/skills/querying-soql/assets/relationship-queries.soql +203 -0
- package/skills/querying-soql/assets/selector-class.cls +219 -0
- package/skills/querying-soql/references/anti-patterns.md +348 -0
- package/skills/querying-soql/references/cli-commands.md +358 -0
- package/skills/querying-soql/references/field-coverage-rules.md +514 -0
- package/skills/querying-soql/references/query-optimization.md +142 -0
- package/skills/querying-soql/references/selector-patterns.md +479 -0
- package/skills/querying-soql/references/soql-reference.md +227 -0
- package/skills/querying-soql/references/soql-syntax-reference.md +208 -0
- package/skills/querying-soql/scripts/post-tool-validate.py +322 -0
- package/skills/retrieving-datacloud/CREDITS.md +7 -0
- package/skills/retrieving-datacloud/README.md +44 -0
- package/skills/retrieving-datacloud/SKILL.md +120 -0
- package/skills/retrieving-datacloud/examples/search-indexes/hybrid-structured.json +44 -0
- package/skills/retrieving-datacloud/examples/search-indexes/vector-knowledge.json +43 -0
- package/skills/running-apex-tests/CREDITS.md +22 -0
- package/skills/running-apex-tests/README.md +94 -0
- package/skills/running-apex-tests/SKILL.md +158 -0
- package/skills/running-apex-tests/assets/basic-test.cls +169 -0
- package/skills/running-apex-tests/assets/bulk-test.cls +255 -0
- package/skills/running-apex-tests/assets/dml-mock.cls +339 -0
- package/skills/running-apex-tests/assets/mock-callout-test.cls +353 -0
- package/skills/running-apex-tests/assets/stub-provider-example.cls +364 -0
- package/skills/running-apex-tests/assets/test-data-factory.cls +328 -0
- package/skills/running-apex-tests/hooks/scripts/parse-test-results.py +364 -0
- package/skills/running-apex-tests/references/cli-commands.md +289 -0
- package/skills/running-apex-tests/references/mocking-patterns.md +500 -0
- package/skills/running-apex-tests/references/performance-optimization.md +283 -0
- package/skills/running-apex-tests/references/test-fix-loop.md +49 -0
- package/skills/running-apex-tests/references/test-patterns.md +154 -0
- package/skills/running-apex-tests/references/testing-best-practices.md +509 -0
- package/skills/segmenting-datacloud/CREDITS.md +3 -0
- package/skills/segmenting-datacloud/README.md +36 -0
- 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
|