Metadata Backup
Backup is a very importan t aspect of software lifecyle that allows you to recover from loses or understand/troubleshoot issues. Most of the engineering teams always treats source repository as a source of truth, while aspiring, it is not possible to adhere to that in Salesforce process because of changes that team does in UI not related to code like access changes or custom label changes etc.,
Metasync Backup is feature rich solution for continuous backup of your one or more Salesforce orgs (sandbox or production) with ability to group commits by User and time of change and high-frequency backup (upto few minutes) for critical Metadata Types (typically code changes in sandbox environments).
Noteworthy Features
- Ability to sync from Salesforce org to any git branch
- Tracks metadata changes from earlier backup to current state and sync only incremental changes
- While committing changes to Git, groups commits by User so you will always know user/time of change
- Schedule the Metadata Backups
Screens and Layouts
Jobs List Page
To view list of Jobs, click on the Jobs
main menu item.
Job Page
To view Job details, click on the Job name link in the Jobs List page
Details Tab
This tab shows the Job field details
History Tab
This tab shows the Job execution history
Run Page
To view Job Run details, click on the Run Id link in the Job History page
Details Tab
This tab shows the Run field details
Components Tab
This tab shows all the components that were backuped during this backup run and their different type.
Warnings Tab
Some times there may be errors or warnings during the backup process. This could be due to an issue with component or backup process. All such warnings are listed in this tab.
Managing Jobs
List Jobs
To view list of Jobs, click on the Jobs
main menu item. System will show list of Jobs available to you. You can do
following things in the List page
- Add new Job by clicking the
+
icon - Edit a Job by clicking on
Pencil
Icon - Delete Jobs by selecting one or more Jobs and clicking on
Trash Can
icon - Filter list to show the Jobs of your interest
- Search with in Grid by entering search keyword
- Navigate to Job details by clicking on Job link
Creating Job
You need to create Sfdc Connection, Git Connection, Sfdc Org and Git Repo before you could add a Metadata Backup Job
- Click on
Jobs
Metasync Menu - Click on
+
icon in the Data Grid to create new Job - Select
Metadata Backup
as Job type - Select
Sfdc Org
andGit Repo
as applicable and enter theBranch Name
- Enter any applicable Inclusions/Exclusions in one or more
Backup Items
- Click Save to create Job. System would create a Job and takes you to newly created Job.
Editing Job
- Click on
Pencil
Icon next to a Job or Click on theMore Actions
menu from Job page and clickEdit
- Edit the details and click Save
Executing Job
To execute the Job, got the Job page and click on the Play (>
) icon next to Job name. System will prompt you to
confirm the execution and upon confirmation it will submit the Job for execution.
View Run Details
Job History Tab shows the list of Runs for this Job and their status. Click on the Run Id link on the Run you would like to see the details of. That should show you Run Page. This page shows all details related to that Run.
If the Run backed up any components, those components would be listed in the Run Components page
and View Changes
would point to the Git backup commit.
Scheduling Job
When you create the Job, Schedule frequency is set to Manual
so it will run when you execute manually. If you would
like to schedule, Edit the Job and set the Scheduling > Frequency
as anything other than Manual
. System will execute
the Job as per the defined interval.
Reference
Job Fields
Field | Type | Default | Description |
---|---|---|---|
Name | Text (100) | Name of the Job | |
Type | Picklist | Type of the Job. Once created, Type cannot be changed. To create different type of Job, deleted and re-create the Job. | |
Status | Picklist | Active | Status of the Job. If you set it as Inactive , Job will not be executed. |
Scheduling | |||
Frequency | Picklist | Manual | Frequency at this which this job must be executed. Defaults to Manual in which case, Job runs only when somebody executes it manually. |
Cron Pattern | String | (Shown when Frequency=Cron ) Specifies the Cron pattern by this this Job must be run. To section Scheduling for more info. | |
Schedulig TimeZone | Time zone that be used to determine time of day during scheduling. | ||
Start At | Date Time | Absolute time when Job execution should begin | |
Stop At | Date Time | Absolute time when Job execution should stop | |
Properties | |||
Sfdc Org | Reference | Sfdc Org which to be backed up | |
Git Repo | Reference | Git Repo to backup the metadata to | |
Branch | Text (100) | Git branch to backup the Metadata to | |
Backup Items | List | See Backup Items for more info |
Job Options Fields
Job options can be specified by clicking on Options
button in the Job Dialog. Following fields details the fields
in that dialog.
Field | Type | Default | Description |
---|---|---|---|
Metadata Backup | |||
Group Commits By | Picklist | User | When backup job creates commits, it can group the commits by user who made those changes. If this is None , then Metasync creates single commits for all changes backed up |
Read Threads | Number | Number of threads to use read the metadata list or metadata content | |
Full Backup Days | Number | 30 | See Full Backup Days for more info |
Execution | |||
Log Level | Picklist | Info | Controls the amount of information logged during job execution |
Notifications | See Notifications for more info |
Backup Items
Backup Item allows you to filter subset of Metadata Types (and Metadata Components) that needs to be backup. It also allows to specify differing backup frequency such that you can have some metadata types backed up less frequently than Job frequency interval. Backup items is optional and if nothing is specified, then it will backup all components each time it runs
Backup Item Fields
Field | Type | Default | Description |
---|---|---|---|
Include Metadata | Metadata Pattern | Comma or new line separated list of Metadata Pattern items | |
Exclude Metadata | Metadata Pattern | ||
Frequency Mins | Number | Interval in number of minutes when this Backup Item needs to be backed up |
- Metadata Pattern item is specified in format
MetadataType
/MetadataComponent
. For ex.,ApexClass/*
orApexClass/AccountHandler
MetadataComponent
supports wildcards- If
MetadataComponent
part is not specified, then it is matches all components of that type. For ex.,ApexClass
- If
Frequenty Mins
is blank, then it is considered each time when Job runs - For a metadata component to be considered matched, then it must be included in the
Include Metadata
and not excluded in `Exclude Metadata
Examples
-
This configuration backups all component types each time it runs except Profile. And Profiles are backed up once a day.
Include Metadata Exclude Metadata Frequency Mins Profile 1440 * Profile -
This configuration backups Code each time Job runs, Profiles every day and then rest of the metadata every 8 hours
Include Metadata Exclude Metadata Frequency Mins Code Profile 1440 * Code,Profile 480
Full Backup Days
Metasync when it runs for the first time, it fetches Metadata from the Org. In subsequent Runs, it fetches the content for components which are added/modified/deleted and backups those changes. Full Backup Days indicates how often, Metasync must perform full backup instead of incremental. Defaults to 30 days.