This document discusses Salesforce DX, which is a development tool that allows developers to develop, test, and deploy Salesforce applications locally. It introduces key concepts like the Salesforce CLI, scratch orgs, unlocked packages, and continuous integration.
The Salesforce CLI is the main tool for Salesforce DX that allows developers to create scratch orgs and manage the local source code. A scratch org is a temporary development environment, while a Developer Hub org is used to manage scratch orgs. Projects are defined in a sfdx-project.json file.
Unlocked packages allow encapsulating and versioning metadata changes. They promote modular development and support dependencies. Continuous integration automates the deployment pipeline by running Salesforce
4. ACCENTURE SALESFORCE TEAM
IN BUDAPEST
Bucharest
Bratislava
3 locations:
Bratislava, Bucharest, Budapest
Languages Supported:
English and German (primary)
Romanian, Slovak, Czech, Hungarian, French, Italian
Industries:
Communications, Automotive, Banking, Capital Markets,
Insurance, Health, Public Service, Consumer Goods, Retail & Travel
Services, Industrial, Life Sciences, Chemicals, Natural Resources,
Energy and Utilities
People:
More than 1 500 employees (cca 70 people in Salesforce delivery
team)
Clients served:
140+ clients from 27 countries with specific focus on E.U. countries
Budapest
5. Enabling Salesforce as a trusted
technology provider for holding
enterprise authentication credentials.
THE GOOD,
THE BAD AND THE
SALESFORCE IDENTITY
PROVIDER
6. MULTI – ORG
USE CASES
• Multi country implementation
• Decoupling identity provider
from service provider
• Using multiple orgs to separate
business units
• Utilizing Salesforce Identity
features on green field
implementation (without having
existing auth.provider)
7. • Supports SAML, OpenID and just-in-time user provisioning
• Easy two-step authentication set-up
• myDomain to enable Salesforce identity across orgs and solutions
• Launchpad supporting user-journey: user can find all the services
authorized for him/her
• Branded login, password and user information pages, customized login URL
• External Identity License for the identity service users
• Customer user can be promoted to delegated admin to manage other users
in the same customer / partner
SALESFORCE IAM
FEATURES
Salesforce platform provides identity and access
management, which can be used to provision,
authenticate, and authorize users to access Salesforce
and external services
10. • Always use permission sets to grant access to
connected apps
• Don’t go for single authentication provider during
testing to avoid locking out yourself ☺
• Consider 2FA during planning
• Just in time provisioning can only be used with
Federation ID
• In case of JIT configuration you might need to do
some apex coding for mapping users, contacts,
accounts, profiles and roles.
• Evaluate the right license to optimize costs (Identity
vs. External Identity license)
• Without Community you will not be able to
customize login pages
SALESFORCE IDENTITY
GOTCHAS
14. SALESFORCE DX
What is
• A local directory structure in source format.
What for
• Developing, testing and deploying
14
15. CLI (COMMAND LINE INTERFACE)
It makes available to create environments for development, testing, synchronizing sources etc. on local
machine
Extension is available for VS Code
• This is the most supported tool for developers at the moment
Command reference
• https://developer.salesforce.com/docs/atlas.en-
us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference.htm
15
16. SCRATCH ORGS, DEVELOPER HUB
A scratch org is a dedicated, configurable, and short-term Salesforce environment that you can quickly
spin up when starting a new project, a new feature branch, or a feature test.
A Developer Hub (Dev Hub) is the main Salesforce org that you and your team use to create and
manage your scratch orgs.
For using this approach, Dev Hub should be enabled in the org.
16
18. UNLOCKED PACKAGES
• Follows best practices regarding the software development life cycle. It’s compatible with the new
features of Salesforce DX: projects, source-driven development commands, and scratch orgs were built
specifically with packaging in mind.
• Encapsulates all the changes you are tracking between life cycle stages in a versioned artifact.
• Makes it easier for you to accommodate new feature requests. Simply add, update, and remove
components in your package.
• Provides an improved audit history, so you can more easily track and understand the changes made to
your production org.
• Organizes source. It’s much easier to know which components belong to which applications and
features.
• Promotes iterative and modular development.
• Supports interdependencies among unlocked packages. A single unlocked package can depend on
multiple unlocked packages and classic packages.
• Supports continuous integration and continuous delivery because the packaging CLI commands enable
each step in the deployment pipeline to be fully automated.
18
19. UNLOCKED PACKAGES
It is a container which holds the metadata of an org.
It helps to add, edit and remove metadata
Easy to create (Demo)
Validations during creation
• ERROR running force:package:version:create: MeetupTrigger: Variable
does not exist: MeetupTriggerHanlder
Limits (Package2VersionCreates in the limit list)
Dependencies
Version controlling
19
20. DEMO
Create a project
Login to DevHub
Create Scratch org
Create some cool stuff
Pull to project
Create Unlocked Package
• Modify versionName and versionNumber in file sfdx-project.json
• Create first version of the package
Optionally install first in a scratch org for testing purposes
Deploy it to a DevHub org
20
21. CONTINOUS INTEGRATION - AFTERWORDS
Example with
• BitBucket (this can be any VCS)
• Using CI org
The pipeline runs the SFDX commands upon a trigger
• PR
• Validation
• Merge
• Deployment
21
Pull request created Create scratch orgCI started
BitBucket Pipeline CI org
Install package
Run testsTest result
Merge code
Show error
Fail
Success
CI continue
Install package on
QA
Create package