Local Flosum was designed to improve the overall Developer experience.
Local Flosum recognizes the components that are changing in each developer sandbox. Based on the history of those changes, Flosum can greatly improve the algorithms used to detect code changes.
- Enables earlier and more precise code conflict detection
- Improves and automates code merges
- Gives Developers more control over their integration processes
- Allows developers to easily sync sandboxes with the Flosum Repository
- Pull changes from Repository to developer sandbox
- Push changes to from developer sandbox to master branch without leaving the sandbox
Local Flosum is a small Flosum app that installs directly into your developer sandbox. From there, it facilitates communication between sandbox and Repository. With Local Flosum, developers get access to the latest repository code without having to refresh their sandboxes.
While a proper sandbox strategy can help avoid coding conflicts, because Local Flosum creates tighter integration between sandbox and repository, it helps detect conflicts earlier in the development cycle.
There are two ways to install Local Flosum:
- To enable it for just a few developer sandboxes, download Local Flosum directly into each sandbox
- To install to multiple sandboxes at once, you can download Local Flosum to your company's production org, then from the production org you can push Local Flosum to any developer sandboxes.
Do not install Local Flosum:
- In your Flosum Repository org where main Flosum is installed
- In QA, Test or similar sandboxes
Only use Local Flosum in developer sandboxes where you intend to push changes to the Repository.
To receive the most recent AppExchange link, please reach out to your Flosum representative.
(Get it now -> install in sandbox -> enter sandbox credentials -> click ‘log in to sandbox’)
Enabling Remote Org Access
Local Flosum leverages the built-in OAuth security mechanisms of Salesforce for org access. Local Flosum uses a Salesforce Connected App to provide OAuth single-sign on security when connecting to your main Flosum org.
This means that Flosum doesn’t store, and can’t retrieve, any passwords. This is something to keep in mind when changing your org usernames and passwords.
Once installed, Flosum has done most of the work of creating your Connected App. To finalize:
- Click on your Local Flosum Settings tab to see the OAuth Settings
- Then follow the instructions for Creating a Connected App.
On the Settings page you should now see a new section titled Register Flosum Org:
Each Local Flosum sandbox will only need to be registered once and then can be disconnected and reconnected multiple times without needing to re-authorize. For instructions on how to register your Local Flosum orgs to main Flosum please see Connecting Your Local Flosum Orgs to Main Flosum.
After completing those steps you are ready to begin using Local Flosum.
Using Local Flosum in your Developer Sandbox
This section assumes that local Flosum is installed in the developer sandbox. To access Local Flosum features, choose Local Flosum from your developer sandbox drop-down apps menu. Your app tabs should look like this:
Local Flosum Tabs
- Local Workspace - this is where you select and push changes to a Branch in main Flosum
- Remote Repository - here you can sync your sandbox with the Flosum Repository
- Sync History - here you can review all your Upload and Download activity
- Settings - this is where you view, create, and register Branches
There are three other settings affecting the behavior of Local Flosum:
- Select a Repository
- Register a Branch
- Download Profiles and Permission Sets
Select a Repository
Once you have established the connection between your Local Flosum Org and your Main Flosum Org, you can select the repository you would like to use. If you only have 1 Repository in your main Flosum Org (recommended), choose the 'Default' option in the picklist.
You can now retrieve changes from the repository or a branch within that repository. You can also push changes directly to a branch within that repository.
Register a Branch
Local Flosum enables developers to automatically create (register) branches on the Main Flosum Org – from the developer sandbox. This is done through the Register a Branch setting. The Branch can be an existing branch, or a new branch. Multiple branches can be registered at any point in time. At least one branch must be registered before any transfer between orgs. Branches are often named for User Stories to capture the work done to meet a specific customer requirement.
To register a new branch:
- Select New Branch
- Enter the name of the branch in the Branch Name text field
- Click Save
To register an existing branch:
- Select the branch from the Branch selection list
- Click Save
Once you have registered a Branch it will appear on the main Flosum ‘Branches’ page. As you add components, they will appear there as well. When you’re done creating the branch, it will immediately be available in the main Flosum org!
- Download Profiles and Permission Sets
Check this box to include deployment of profiles and permission set settings for components that are included in this deployment.
Synchronizing Sandboxes with the main Flosum Repository
Flosum recommends synchronizing developer sandboxes with the Flosum Repository before beginning any new development work. Also, at various times throughout development you may want to sync your local workspace with the Flosum Repository. To facilitate this, Local Flosum provides an easy way to access and download changes from the Flosum Repository (or another remote org to which you have connected) to our local org.
- Go to the Remote Repository tab. Using the calendar, choose a start date that will capture a date range appropriate to your development requirements:
- Click on Download Changes from Remote Repository to preview any changes that were made to the Repository code base over the requested time period. Flosum will compare your local workspace with the Flosum Repository and provide a list of differences that were made within that time period. These are the component changes you can choose to have applied to your local sandbox:
- Click on Update Local Org with These Changes to see the effect of applying these changes to your local workspace. You’ll be taken to a Conflict Resolution page showing whether, in comparison to your local sandbox, these changed components are:
New Components (causing no conflicts)
Components which exist in the Remote Repository, but not in the local developer sandbox
Unchanged Components (causing no conflicts)
Components that are identical in both Remote Repository and local sandbox
Changed components (with potential to cause conflicts)
Components which exist in both the local sandbox and the Remote Repository that have been modified at one or both the places will produce a conflict. This conflict can sometimes be autoresolved by Flosum. But in the case below, the conflict can be resolved manually by clicking 'Conflict':
4. Once the conflicts are resolved the Update Local Org with these Changes button will become active. Click on that to update your local org. Upon completion, you will have a Sync History record.
Frequently downloading changes from the Repository to sandbox helps detect conflicts early.
For more information on conflict resolution, please see Resolving Code Conflicts with Local Flosum.
Each completed event in Local Flosum is captured in your Sync History.
There are three types of Sync events:
A download event is created when you use the Download Changes from Remote Repository feature. Clicking on the Sync Name will take you to a Sync Details page where you can see the components that were in the download, when they were created/changed, and by whom. You can drill down into the event logs and get many other details on the event.
An Update event is created when you use the Update Local Org with These Changes feature. As with the Download event, you can drill down into the event details by clicking on the event name. There you can see which components were updated in your local org from the Remote Repository, their change details, who changed them, and more.
An Upload sync event is created when you push your local development org changes to a Branch in the Flosum Repository using the Push to Remote Branch feature (see Uploading Changes to the Repository for details on that feature). Clicking on the Sync Name will take you to the Sync Detail page for that event, showing which components were pushed, when, and other details.
New Feature Development
As mentioned earlier, you can create a Flosum Branch from Local Flosum. Whenever starting new development, a branch can be used as a protected area for developers to work on new features without disturbing the main code line. Branches are frequently used for developing user stories. This flexibility helps provide an environment that supports creative, agile development.
At any point in time during development a developer can choose to create a new Branch from the Settings page. Please refer to the Settings section for detail on creating a Branch.
Uploading Changes to the Repository
Local Workspace tab
After the development of a particular feature is complete, the developer can push the changes to the Remote Repository, using the Local Workspaces tab features:
Branch and Branch Name
Here, the developer can select the branch that will be used for conveying the changes to the Flosum Repository. You can use an existing Branch (all branches existing in the main Flosum org will be available in the drop-down menu) or create a new Branch, giving it an informative name unique to your Flosum environment. If you choose to create a new Branch, it will be immediately created in your main Flosum Repository and you will see it by going to the Branches tab of the main Flosum org.
Retrieve changes in the last ... days
With this option you can tell Local Flosum to pull changes to your local environment back to a specified number of days in the past. All changes from that date to the present will be available, subject to the additional criteria you specify in the other fields available here.
Retrieve standard components
Selecting this checkbox will tell Local Flosum to retrieve standard as well as custom components.
Retrieve Profile and Permission settings only for modified components
This checkbox enables you to defer retrieval of Profile and Permission sets for components that were not modified. This helps reduce overall retrieval and deployment times.
Flosum provides the opportunity to select which components to be retrieved using a variety of criteria:
- Component Type (type of the component)
- Component Name (component label/internal API name)
- Changed by (the person who last changed the version being included)
- Created by (the person who created the version being included, and the creation date)
When entering these criteria, Local Flosum presents a picklist with possible values for the field depending on which criteria you have chosen. These criteria will help narrow down the components that should be pushed to the remote repository.
It is also possible to add filter login here to narrow down the components retrieved so that you only are pushing exactly what is needed, no more and no less.
Retrieve Changes from Local Org
Once the criteria are set, select the Retrieve Changes from Local Org button. This will retrieve all the changes in your local workspace matching these criteria.
Push to Remote Branch
If you are satisfied with the selected components, use the Push to Remote Branch button to push these changes to the Branch you have specified. The changes will be pushed to the main Flosum org. You can check by going to your main Flosum org and seeing that the branch you specified has been created and that the components you had retrieved.
This shows how simple and flexible development can be using Local Flosum!