This page is mostly for developers but might be useful in understanding how the provisioning framework works and troubleshooting

Categories of data

Each of these categories of data has "attributes" associated with them, which probably are not the attribute framework

GroupHolds group data
EntityHolds subject/entity/person data
MembershipTuple that connects group and entity and perhaps some metadata

Representations of data

Each type of data is represented in different forms

GrouperData that comes out of Grouper (if it still exists there, or if it is virtual data for a delete)
Grouper syncSync data is stored in a shadow table for each type of data to cache things from the target, provisioning state, and data that might get deleted from Grouper
Grouper targetGrouper data that is translated to the target format so it can be compared to the target data and provisioned
TargetData from the target
Target nativeObject in a format that is not related to the provisioning framework
WrapperBean that represents one record of a data category that has reference to the other various representations of the data

Indexes of data

There are indexes for each category of data of the in memory beans

GroupingIndexPoints to
GrouperGroup uuidGroup wrapper
Member uuidEntity wrapper
Tuple of group and member uuidMembership wrapper
SyncgrouperSyncGroupIdGroup wrapper
grouperSyncMemberIdEntity wrapper
Tuple of grouperSyncGroupId and grouperSyncMemberIdMembership wrapper
MatchingTarget matching group idGroup wrapper
Target matching entity idEntity wrapper
Target matching membership idMembership wrapper

Data beans

These beans are used to archive data state or to be used for provisioning business.  If the bean is not authoritative, then it is only for logging and shouldnt be relied on as a source for the data for future provisioning purposes (other than just adding to the index)

In other words, if you want to look at all the target objects in the provisioner at a certain point in time, do not look at GrouperProvisioningDataTarget, instead look at all wrappers in GrouperProvisioningData and look at the target references inside.

BeanAuthoritative sourceDescription
GrouperProvisioningDataYesHolds the full unique sets of group wrappers, entity wrappers, and membership wrappers
GrouperProvisioningDataIndexYesIndexes the GrouperProvisioningData for grouper, sync, and target matching id's
GrouperProvisioningDataChangesNoArchives the changes being sent from the provisioner to the target
GrouperProvisioningDataGrouperNoArchives the data retrieved from Grouper about the provisioning job
GrouperProvisioningDataGrouperTargetNoArchives translations of Grouper beans into the target format
GrouperProvisioningDataIncrementalInputNoVehicle for external processes to identify which records need to be incrementally processed and which actions
GrouperProvisioningDataSyncNoArchives the the sync data retrieved from Grouper
GrouperProvisioningDataTargetNoArchives the data retrieved from the target
  • No labels