Module

sync

A module related synchronizing xMatters data

View Source sync.js, line 32

Methods

# async inner DataToxMatters(sourceData, env, syncOptions) → {Object}

Synchronizes a set of data into an instance of xMatters according to the sync options.
Parameters:
Name Type Description
sourceData module:common.xMattersData The data to synchronize into xMatters.
env module:environments.xMattersEnvironment The xmtoolbox representation of an xMatters instance.
syncOptions SyncOptions The sync options that control the synchronization.

View Source sync.js, line 452

destinationData An object representing the destination including data and sync results.
Object

# inner DefaultExtractOptions() → {ExtractOptions}

Returns the default extract options.

View Source sync.js, line 69

ExtractOptions

# inner DefaultSyncOptions() → {SyncOptions}

Get default sync options object.

View Source sync.js, line 211

Default sync options object.
SyncOptions

# async inner ExtractData(env, extractOptions) → {module:common.xMattersData}

Extracts data from an xMatters environment according to the options.
Parameters:
Name Type Description
env module:environments.xMattersEnvironment The xmtoolbox representation of an xMatters instance
extractOptions module:sync.ExtractOptions
syncOptions. SyncOptions This function only uses query type (e.g. peopleQuery) and singular object (e.g. person, group, etc.) syncOptions

View Source sync.js, line 682

xMatters Data Object

# async inner GetSyncData(env, syncOptions, isDestination) → {module:common.xMattersData}

Returns the data required from an xMatters instance for a sync.
Parameters:
Name Type Description
env module:environments.xMattersEnvironment The xmtoolbox representation of an xMatters instance
syncOptions SyncOptions The sync options that control the synchronization.
isDestination boolean

View Source sync.js, line 670

xMatters Data Object

# async inner UserUploadToImport(json, env) → {Object}

Helper function to convert the user upload file in JSON format to data object needed to perform a sync with xMatters.
Parameters:
Name Type Description
json * the User Upload file converted to a JSON array.
env *

View Source sync.js, line 309

Object

# async inner xMattersToxMatters(sourceEnv, destinationEnv, syncOptions) → {Object}

Synchronizes two xMatters instances according to the sync options.
Parameters:
Name Type Description
sourceEnv module:environments.xMattersEnvironment The xmtoolbox representation of the source xMatters instance.
destinationEnv module:environments.xMattersEnvironment The xmtoolbox representation of the destination xMatters instance.
syncOptions SyncOptions The sync options that control the synchronization.

View Source sync.js, line 408

destinationData An object representing the destination including data and sync results.
Object

Type Definitions

Object

# ExtractOptions

Properties:
Name Type Attributes Default Description
audits boolean <optional>
false Whether or not to get audits from xMatters.
deviceNames boolean <optional>
false Whether or not to get deviceNames from xMatters.
devices boolean <optional>
false Whether or not to get devices from xMatters.
deviceTypes boolean <optional>
false Whether or not to get deviceTypes from xMatters.
dynamicTeams boolean <optional>
false Whether or not to get dynamicTeams from xMatters.
events boolean <optional>
false Whether or not to get events from xMatters.
forms boolean <optional>
false Whether or not to get forms from xMatters.
groupMembers boolean <optional>
false Whether or not to get groupMembers from xMatters.
groups boolean <optional>
false Whether or not to get groups from xMatters.
integrations boolean <optional>
false Whether or not to get integrations from xMatters.
people boolean <optional>
false Whether or not to get people from xMatters.
planConstants boolean <optional>
false Whether or not to get planConstants from xMatters.
planEndpoints boolean <optional>
false Whether or not to get planEndpoints from xMatters.
planProperties boolean <optional>
false Whether or not to get planProperties from xMatters.
plans boolean <optional>
false Whether or not to get plans from xMatters.
roles boolean <optional>
false Whether or not to get roles from xMatters.
scenarios boolean <optional>
false Whether or not to get scenarios from xMatters.
sharedLibraries boolean <optional>
false Whether or not to get sharedLibraries from xMatters.
shifts boolean <optional>
false Whether or not to get shifts from xMatters.
sites boolean <optional>
false Whether or not to get sites from xMatters.
subscriptionForms boolean <optional>
false Whether or not to get subscriptionForms from xMatters.
subscriptions boolean <optional>
false Whether or not to get subscriptions from xMatters.
temporaryAbsences boolean <optional>
false Whether or not to get temporaryAbsences from xMatters.

View Source sync.js, line 38

Object

# SyncOptions

Properties:
Name Type Attributes Default Description
forms boolean <optional>
false, not yet supported Whether or not to synchronize forms
formsFilter function <optional>
Array.filter(callback) function to apply to the forms arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the form objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
formsQuery Object <optional>
{ embed: 'recipients' }, //possible to include ',scenarios' but simpler to extract scenarios separately Object representation of the query parameters supported by the Get many API request for forms
auditsQuery Object <optional>
{} Object representation of the query parameters supported by the Get many API request for audits
defaultSupervisorId string <optional>
The default id of person in the destination that can be used to replace any unavailable supervisors when updating or creating groups.
delayRemoval boolean <optional>
true Whether or not to delay the removal of the dependent objects when mirror mode is enabled. If set to false the objects will be removed immediately.
deviceNamesQuery Object <optional>
{} Object representation of the query parameters supported by the Get many API request for deviceNames
devices boolean <optional>
false Whether or not to synchronize devices
devicesFilter function <optional>
Array.filter(callback) function to apply to the devices arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the device objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
devicesQuery Object <optional>
{ embed: 'timeframes' } Object representation of the query parameters supported by the Get many API request for importJobs
dynamicTeams boolean <optional>
false Whether or not to synchronize dynamicTeams
dynamicTeamsFilter function <optional>
Array.filter(callback) function to apply to the dynamicTeams arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the dynamicTeam objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
dynamicTeamsQuery Object <optional>
{ embed: 'supervisors,observers' } Object representation of the query parameters supported by the Get many API request for dynamicTeams
eventsQuery Object <optional>
{ embed: 'annotations,properties,responseOptions,suppressions,targetedRecipients' } Object representation of the query parameters supported by the Get many API request for events
groupMembers boolean <optional>
false Whether or not to synchronize groupMembers
groupMembersFilter function <optional>
Array.filter(callback) function to apply to the groupMembers arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the groupMember objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
groupMembersQuery Object <optional>
{ embed: 'shifts' } Object representation of the query parameters supported by the Get many API request for groupMembers
groups boolean <optional>
false Whether or not to synchronize groups
groupsFilter function <optional>
Array.filter(callback) function to apply to the groups arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the group objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
groupsQuery Object <optional>
{ embed: 'observers,supervisors' } Object representation of the query parameters supported by the Get many API request for groups
importJobsQuery Object <optional>
{} Object representation of the query parameters supported by the Get many API request for importJobs
integrations boolean <optional>
false Whether or not to synchronize integrations
integrationsFilter function <optional>
Array.filter(callback) function to apply to the integrations arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the integration objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
integrationsQuery Object <optional>
{ embed: 'logs' } Object representation of the query parameters supported by the Get many API request for integrations
mirror boolean <optional>
false Whether or not to perform the sync in mirror mode. Mirror mode will remove all data from the destination that is not included in the source data after filters and queries are applied. This setting will be adopted by individual object sync options in all cases where configurable mirror mode applies. If a mixed mirror mode is desired, set the individual sync options for each object where the mirror value is different than this one.
onCallQuery Object <optional>
{ embed: 'members.owner,shift', membersPerShift: 100 } Object representation of the query parameters supported by the Get many API request for onCall
people boolean <optional>
false Whether or not to synchronize people
peopleFilter function <optional>
Array.filter(callback) function to apply to the people arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the peopl objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
peopleQuery Object <optional>
{ embed: 'roles' }, //',supervisors' and ',devices' possible. simpler to extract devices separately Object representation of the query parameters supported by the Get many API request for people
planConstants boolean <optional>
false Whether or not to synchronize planConstants
planConstantsFilter function <optional>
Array.filter(callback) function to apply to the planConstants arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the planConstant objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
planEndpoints boolean <optional>
false Whether or not to synchronize planEndpoints
planEndpointsFilter function <optional>
Array.filter(callback) function to apply to the planEndpoints arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the planEndpoint objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
planProperties boolean <optional>
false Whether or not to synchronize planProperties
planPropertiesFilter function <optional>
Array.filter(callback) function to apply to the planProperties arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the planPropertie objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
plans boolean <optional>
false Whether or not to synchronize plans
plansFilter function <optional>
Array.filter(callback) function to apply to the plans arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the plan objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
plansQuery Object <optional>
{ embed: 'creator,constants,endpoints,forms,propertyDefinitions,integrations' } Object representation of the query parameters supported by the Get many API request for plans
rolesFilter function <optional>
Array.filter(callback) function to apply to the roles arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the role objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
rolesQuery Object <optional>
Object representation of the query parameters supported by the Get many API request for roles
scenarios boolean <optional>
false Whether or not to synchronize scenarios
scenariosFilter function <optional>
Array.filter(callback) function to apply to the scenarios arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the scenario objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
scenariosQuery Object <optional>
{ embed: 'properties.translations' } Object representation of the query parameters supported by the Get many API request for scenarios
sharedLibraries boolean <optional>
false Whether or not to synchronize sharedLibraries
sharedLibrariesFilter function <optional>
Array.filter(callback) function to apply to the sharedLibraries arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the sharedLibrarie objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
sharedLibrariesQuery Object <optional>
{} Object representation of the query parameters supported by the Get many API request for sharedLibraries
shifts boolean <optional>
false Whether or not to synchronize shifts
shiftsFilter function <optional>
Array.filter(callback) function to apply to the shifts arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the shift objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
shiftsQuery Object <optional>
{ embed: 'members,rotation' } Object representation of the query parameters supported by the Get many API request for shifts
sites boolean <optional>
false Whether or not to synchronize sites
sitesFilter function <optional>
Array.filter(callback) function to apply to the sites arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the site objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
sitesQuery Object <optional>
{} Object representation of the query parameters supported by the Get many API request for sites
subscriptionforms boolean <optional>
false Whether or not to synchronize subscription forms
subscriptionFormsFilter function <optional>
Array.filter(callback) function to apply to the subscription forms arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the subscription form objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
subscriptionFormsQuery Object <optional>
{ embed: 'deviceNames,propertyDefinitions,roles' } Object representation of the query parameters supported by the Get many API request for subscriptionForms
subscriptions boolean <optional>
false Whether or not to synchronize subscriptions
subscriptionsFilter function <optional>
Array.filter(callback) function to apply to the subscriptions arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the subscription objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
subscriptionsQuery Object <optional>
{} Object representation of the query parameters supported by the Get many API request for subscriptions
temporaryAbsences boolean <optional>
false Whether or not to synchronize temporaryAbsences
temporaryAbsencesFilter function <optional>
Array.filter(callback) function to apply to the temporaryAbsences arrays from the source and destination after data is extracted.

Example: o => o.foo === 'bar'' //filters out all but the temporaryAbsence objects where the foo property is equal to 'bar'.

Refer to the javascript Array.filter() documentation for more information.
temporaryAbsencesQuery Object <optional>
{} Object representation of the query parameters supported by the Get many API request for temporaryAbsences
timeframes boolean <optional>
false Whether or not to synchronize timeframes
sitesTransform function <optional>
Transforms each of the sites objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
peopleTransform function <optional>
Transforms each of the people objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
devicesTransform function <optional>
Transforms each of the devices objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
groupsTransform function <optional>
Transforms each of the groups objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
shiftsTransform function <optional>
Transforms each of the shifts objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
groupMembersTransform function <optional>
Transforms each of the groupMembers objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
dynamicTeamsTransform function <optional>
Transforms each of the dynamicTeams objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
temporaryAbsencesTransform function <optional>
Transforms each of the temporaryAbsences objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
plansTransform function <optional>
Transforms each of the plans objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
planConstantsTransform function <optional>
Transforms each of the planConstants objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
planEndpointsTransform function <optional>
Transforms each of the planEndpoints objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
planPropertiesTransform function <optional>
Transforms each of the planProperties objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
sharedLibrariesTransform function <optional>
Transforms each of the sharedLibraries objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
integrationsTransform function <optional>
Transforms each of the integrations objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
scenariosTransform function <optional>
Transforms each of the scenarios objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
subscriptionsTransform function <optional>
Transforms each of the subscriptions objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
subscriptionFormsTransform function <optional>
Transforms each of the subscription forms objects. Return the object after transform. Transformation is performed on the raw source object before filtered, converted for export, or synchronized. You have full access to the source data and destination data to perform operations such as mapping.

Example: (o, sourceData, destinationData) => {o.foo = 'bar'; return o;}
sitesOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval }) Individual sync options for sites. By default fields property is set to sites.fields(), mirror uses the global options value.
peopleOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval, fields: peopleFields }) Individual sync options for people. By default fields property is set to people.fields(), mirror uses the global options value.
devicesOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for devices. By default fields property is set to devices.fields(), mirror uses the global options value.
groupMembersOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for groupMembers. By default fields property is set to groupMembers.fields(), mirror uses the global options value.
groupsOptions module:common.SyncOptions <optional>
{fields, mirror, delayRemoval, defaultSupervisorId, deleteShiftsOnCreate: true}) Individual sync options for groups. By default fields property is set to groups.fields(), mirror uses the global options value.
shiftsOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for shifts. By default fields property is set to shifts.fields(), mirror uses the global options value.
dynamicTeamsOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval,defaultSupervisorId}) Individual sync options for dynamicTeams. By default fields property is set to dynamicTeams.fields(), mirror uses the global options value.
temporaryAbsencesOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for temporaryAbsences. By default fields property is set to temporaryAbsences.fields(), mirror uses the global options value.
integrationsOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for integrations. By default fields property is set to integrations.fields(), mirror uses the global options value.
plansOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for plans. By default fields property is set to plans.fields(), mirror uses the global options value.
planConstantsOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for planConstants. By default fields property is set to planConstants.fields(), mirror uses the global options value.
planEndpointsOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for planEndpoints. By default fields property is set to planEndpoints.fields(), mirror uses the global options value.
planPropertiesOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for planProperties. By default fields property is set to planProperties.fields(), mirror uses the global options value.
sharedLibrariesOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for sharedLibraries. By default fields property is set to sharedLibraries.fields(), mirror uses the global options value.
scenariosOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for scenarios. By default fields property is set to scenarios.fields(), mirror uses the global options value.
subscriptionsOptions module:common.SyncOptions <optional>
{ fields, mirror, delayRemoval: false }) Individual sync options for subscriptions. By default fields property is set to subscriptions.fields(), mirror uses the global options value.
device * <optional>
Supplying an identifier such as a device TargetName (format: "person_targetName|device_name") or a device object changes the method used to extract a device by limiting to a specific device. This may be used to synchronize a single device or limit the sites extracted device for a person. An alternate API method is used (devices.get) and appropiate devicesQuery is applied to that api which may not support the same functionality as the standard endpoints(devices.getMany) used for extracting records from xMatters in the sync.
group * <optional>
Supplying an identifier such as a targetName or a group object changes the method used to extract a group, group members, and shifts by limiting to a specific group. This may be used to synchronize a single group, shift, or group members. Also apllies to extracting onCall in the ExtractData function. Alternate API methods is used (groups.get) and groupsQuery is applied to that api which may not support the same functionality as the standard endpoints(groups.getMany) used for extracting records from xMatters in the sync.
person * <optional>
Supplying an identifier such as a targetName or a person object changes the method used to extract a person and devices by limiting to a specific person. This may be used to synchronize a single person, their devices. Alternate API methods are used (people.get and people.getDevices) and appropiate syncOption queries are applied to those apis which may not support the same functionality as the standard endpoints(people.getMany and devices.getMany) used for extracting records from xMatters in the sync.
plan * <optional>
Supplying an identifier such as a plan name or a plan object changes the method used to extract a plan, forms, scenarios, integrations, plan constants, plan endpoints, plan properties, and shared libraries by limiting to a specific plan. This may be used to synchronize a single plan or aforementioned plan sub component(s). An alternate API method is used (plans.get) and plansQuery is applied to that api which may not support the same functionality as the standard endpoints(plans.getMany) used for extracting records from xMatters in the sync.
site * <optional>
Supplying an identifier such as a name or a site object changes the method used to extract a site by limiting to a specific site. This may be used to synchronize a single site or limit the sites extracted for a person or group sync. An alternate API method is used (sites.get) and appropiate sitesQuery is applied to that api which may not support the same functionality as the standard endpoints(sites.getMany) used for extracting records from xMatters in the sync.
dataExtracted function <optional>
A function that is called after data is acquired from source and destination but before any manipulation. You have full access to the destination data, destination environment, source data, and source environment(undefined when using DataToxMatters) to perform operations such as backup.

Example: (destinationData, destinationEnv, sourceData, sourceEnv) => { fs.writeFileSync(`./data/${destinationEnv.subdomain}.backup.json`, JSON.stringify(destinationData))}
continueOnError boolean <optional>
false Whether or not to continue sync when an error is encountered writing data into xMatters. Changing this option to true could result in greater number of errors since it continue to sync and downstream objects that referenced objects that failed to sync will also fail. Also, setting this to true will not result in a failure sync status when api errors are encountered.

View Source sync.js, line 97