PingDirectory

Retaining destination-only fields

To synchronize changes to the source fields while preserving the value of the verified field of the ubidEmailJSON attribute at the destination, configure the JSON Attribute as follows:

$ bin/dsconfig create-json-attribute \
  --pipe-name "A to B" \
  --class-name Users \
  --attribute-name ubidEmailJSON \
  --set id-field:value \
  --set exclude-field:verified

The verified field is excluded and value is chosen to correlate destination values with source values. For example, given that the source and destination value fields match, if the source initially contained:

ubidEmailJSON: {"value" : "jsmith@example.com",
                "type" : "home"}

and the destination contained:

ubidEmailJSON: {"value" : "jsmith@example.com",
                "type" : "home",
                "verified" : true},

if the source changed to:

ubidEmailJSON: {"value" : "jsmith@example.com",
                "type" : "other"}

then the destination would change to:

ubidEmailJSON: {"value" : "jsmith@example.com",
                "type" : "other",
                "verified" : true}

However, if the source changed to:

ubidEmailJSON: {"value" : "john.smith@example.com",
                "type" : "home"}

then the destination would be updated to:

ubidEmailJSON: {"value" : "john.smith@example.com",
                "type" : "home"}

The verified field has been dropped because this logically represents a new JSON object rather than an update of an existing one.