Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Grouper data - Groups in Grouper
  • Target data - Users / Groups / Memberships in the target that is being provisioned to
  • Full sync - The daily (configurable) sync that takes all or most data from Grouper and the Target and compares and makes it right
  • Group sync - In an incremental sync, instead of dealing with individual memberships, take all the memberships of a group (generally in a recalc) and fix the whole group
  • Incremental sync - The process that runs every minute to take Grouper change log events and messages and process them
  • Sync table - Cache data from target and keep state
  • Event - CLC and messaging has events for adding/removing data or checking state
  • Recalc - If recalc, then check state on Grouper and Target side and treat message as stateless and make the target correct and update sync tables
  • Send a message - If the provisioner needs to start over (e.g. action occurred, and error was thrown), then send a message to itself (incremental provisioner that runs a minute later), to check something again


Full sync or IncrementalEventGroup or Entity in sync tableMembership in sync tableMembership typeSupported behavior by targetErrorExpected
behavior
outcome regarding recalcStatus
Full syncN/ARetrieve all groups and entities regardless of sync table valuesRetrieve all memberships regardless of sync table values
CRUD supportedN/AEverything is a recalc. Done
Full syncN/ARetrieve all groups but not all entities ( configuration to not retrieve all entities in full sync) if the entity is in the sync tableRetrieve all memberships regardless of sync table values
CRUD supportedFalseUse the sync entity. groups and memberships are recalcs and entities are not.To be done
Full syncN/ARetrieve all groups and entitiesRetrieve all memberships regardless of sync table values
CRUD supportedTrue for a membership changeRecalc the error group, error entity, and error memberships.
Full syncN/ARetrieve all groups but not all entities ( configuration to not retrieve all entities in full sync) if the entity is not in the sync tableRetrieve all memberships regardless of sync table values
CRUD supportedN/ARecalc missing entitiesTo be done
Full syncN/ARetrieve all groups and entities regardless of sync table valuesRetrieve all memberships regardless of sync table values
Doesn't select from targetN/AThrow an exception if no object types select. If an object type does select from the target, sync only the object types that can select. e.g. group is selected, entity and membership are not. Only sync group with target and ignore entity and membership during full sync run.To be done
Incremental syncMembership add/removeGroup and entity are in the sync tableA membership add corresponds to a missing sync table entry, or a remove corresponds to an existing sync table entry
N/AFalseNothing is a recalc
Incremental syncMembership add/removeGroup and entity are in the sync tableA membership add corresponds to an existing sync table entry, or a remove corresponds to a missing sync table entry
Does select from targetFalseConvert to a recalc membership
Incremental syncMembership add/removeGroup and entity are in the sync tableA membership add corresponds to an existing sync table entry, or a remove corresponds to a missing sync table entry
Doesn't select from targetFalseDon't convert to a recalc membership
Incremental syncMembership add/removeGroup and entity are in the sync tableA membership add corresponds to a missing sync table entry, or a remove corresponds to an existing sync table entry
Does select from targetTrueSend a message to recalc the group only and recalc the entity only (if there are groups and entities in the target), update the sync table with an error message
Incremental syncMembership add/removeGroup and entity are in the sync tableA membership add corresponds to a missing sync table entry, or a remove corresponds to an existing sync table entry
Doesn't select from targetTrue

Put the error in the sync row (every error whether it sends a message or not, should still update the sync table). 

A subsequent incremental provisioner will retry the actions.


Incremental syncMembership add/removeGroup is not in the sync table N/A
Does select from targetFalse

Group recalc with memberships (

if

group attribute membership type or membership object type) - e.g. ldap has attributes on a group that represent memberships

Group recalc only (if entity attribute membership type ) - only sync group like name, description, etc. No memberships are synced with the target.


Incremental syncMembership add/removeGroup is not in the sync table N/A
Doesn't select from targetFalse

Proceed with the membership add or remove. Can't recalc because can't select from the target. The sync group row will be added to the table.


Incremental syncMembership add/removeGroup is not in the sync tableN/A

TruePut the error in the sync group row (every error whether it sends a message or not, should still update the sync table)
Incremental syncMembership add/removeEntity is not in the sync tableN/A

False

Entity recalc with memberships (if entity attribute type )

Entity recalc only (if group attribute type )


Incremental syncMembership add/removeEntity is not in the sync tableN/A

TruePut the error in the sync member row (every error whether it sends a message or not, should still update the sync table)
Incremental syncGroup add/removeN/AN/Agroup attribute membership type  or membership objectsDoes select groups and memberships for a group from targetFalse

Group recalc with memberships (if group attribute

type )Group recalc only (if entity attribute type

membership type  or membership objects)

Each entity in the group should not be recalc if in the sync table. This is applicable only for group attribute membership type  or membership objects


Incremental syncGroup add/removeN/AN/Aentity attribute membership type Does select groups from targetFalse

Group recalc only (if entity attribute type )


Incremental syncGroup add/removeN/AN/Agroup attribute membership type  or membership objectsIf either group or group memberships or both can't be selected from the target, the logic of this row is applied. False

Proceed with the group add or remove without Recalc.


Incremental syncGroup add/removeN/AN/Aentity attribute membership type Doesn't select groups from the targetFalseProceed with the group add or remove without Recalc.
Incremental syncGroup add/removeN/AN/A
N/ATrue

Put the error in the sync group row

(every error whether it sends a message or not, should still update the sync table)


Incremental syncEntity add/removeN/AN/Aentity attribute membership type  or membership objectsDoes select entities and memberships for an entity from the targetFalse

Entity recalc with memberships (if entity attribute

type )Entity recalc only (if group attribute type

membership type  or membership objects)

Each group

in

associated with the entity should not be

a

recalc if in the sync table. This is applicable only for entity attribute membership type  or membership objects


Incremental syncEntity add/removeN/AN/Agroup attribute membership typeDoes select entities from the targetFalse

Entity recalc only


Incremental syncEntity add/removeN/AN/Aentity attribute membership type  or membership objectsIf either entity or entity memberships or both can't be selected from the target, the logic of this row is applied. False

Proceed with the entity add or remove without Recalc.


Incremental syncEntity add/removeN/AN/Agroup attribute membership type Doesn't select entities from the targetFalseProceed with the entity add or remove without Recalc.
Incremental syncEntity add/removeN/AN/A
N/ATrue

Put the error in the sync

member row (every error whether it sends a message or not, should still update the sync table)

entity row



  • "Not in sync table" means either missing from sync table or in_target = F or null
  • Never do a group with memberships recalc if provisioning type is entity attributes
  • Never do an entity with memberships recalc if provisioning type is group attributes
  • Never do the recalc if the object is not provisioned in the target (might need to do add to behavior)
  • The capabilities of the dao can restrict the outcomes, e.g. if you can't select you can't recalc

...