/
Salesforce Architecture for Managed Packages

Salesforce Architecture for Managed Packages

The unit of Salesforce distribution is the Package, which is installed into a Salesforce environment as a single entity.

Essentially, Salesforce uses a plug-in model for its Packages.

The user interface is surfaced in one or more Tabs, which are contained in one or more Apps.

  • When the user selects an App, through the standard user interface, the corresponding Tabs align at the top of the screen.
  • The Tabs can contain Visualforce or Lightning pages, which are similar in design to Active Server Pages.

The Tabs can also present views into a Salesforce object, which is essentially a database table.

  • A  package can include custom objects, and a variety of other Salesforce components.

Salesforce subscribers can also create all the same components for their own use, as well as make certain changes to the components provided by a package.

Access to Salesforce components is determined by a user profile, which can be supplemented by permission sets.

Each Salesforce environment includes one or more System Administrator users.

  • The Admins also have a profile which determines what components are visible through the user interface.
  • However, admins can also access the Setup menu, where they can see all of the components in their org, and assign permissions to themselves and other users.

The package is maintained in its own Salesforce development environment.

  • Developers add components to the package manifest maintained in the packaging org.
  • New versions of the package are uploaded from this environment to the Salesforce cloud.
  • Once a version is uploaded, it can be installed into other environments by referencing a unique identifier.
    • When a package includes Apex components, there must be 75% unit test coverage across all of the Apex components.

Certified packages can be listed in the Salesforce AppExchange, where potential subscribers can contact the publisher or self-install trial versions of a package.

  • For free packages, subscribers can usually self-install the production version, without interacting with the publisher.

The installs of each version of a managed package can be tracked by a License Management App (LMA).

  • The LMA is installed in the package publisher's own Salesforce instance ("business org").
  • The LMA itself is also a managed package.



Related content

Open Guide to SF Solution Packaging (1GP)
Open Guide to SF Solution Packaging (1GP)
More like this
Open Guide to Salesforce Home
Open Guide to Salesforce Home
More like this
DRAFT -- Open Guide to SF Solution Packaging (P1)
DRAFT -- Open Guide to SF Solution Packaging (P1)
More like this
New Components
New Components
More like this
Proxy Base
More like this
Individual Contributor License Agreement
Individual Contributor License Agreement
More like this

DreamOps Content and Source Code is licensed under the Apache License 2.0 (https://opensource.org/licenses/Apache-2.0).
Linked content and images are the property of the respective copyright holders.