Synchronization of identities and permissions information

When update packets are imported at a given replica, the identities and permissions information that is preserved is dependent on the properties of that replica.

When an update packet is imported at a permissions-preserving replica, identities information is ignored. When an update packet is imported at a nonpreserving replica, identities and permissions information is ignored. At both kinds of replicas, the information remains in the oplog entries so that it can be transmitted to replicas that preserve identities and permissions or permissions only. For example:
  1. A new element is created at replica A, which preserves identities and permissions.
  2. Replica A sends an update packet to replica B, which is nonpreserving.
  3. The new element is created at replica B. Its owner is the VOB owner of replica B and its group is the VOB’s primary group.
  4. Replica B sends an update packet to replica C, which preserves identities and permissions.
  5. The new element is created at replica C. Its owner is the original creator and its group is the original creator’s group.

Elements created at a nonpreserving or permissions-preserving replica always get the importing VOB’s owner and group when they are imported, regardless of whether the importing replica preserves identities.

Whenever a replica exports sync packets, it includes any identities/permission oplogs from any replicas, regardless of their preserve mode. It is the receiving replica whose mode determines whether identity/permission information is applied locally or not.