You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »


We will make a SQL provisioner in Grouper v2.5.

Configuration

Common config attributes for SQL are below.

ConfigExampleDescriptionNotes
class

edu.internet2.middleware.grouper.app.sqlProvisioning.SqlMembershipProvisioner

Class extends the base provisioner classThis class informs configuration decisions. Required. Read-only.
hasSubjectLink

true

false

If the subject API is needed to resolve attribute on subjectrequired, drives requirements of other configurations. defaults to false.
hasTargetUserLink

true

false

If subjects need to be resolved in the target before provisioning

defaults to false. required.
hasTargetGroupLink

true

false

If groups need to be resolved in the target before provisioningdefaults to false. required.
subjectSourcesToProvisionpennpersonsubject sources to provisionrequired. defaults to all except g:gsa, grouperExternal, g:isa, localEntities. comma separated list. checkboxes. 
userTableNameuserstable to query to lookup usersrequired if hasTargetUserLink
userSearchAttributeNameemployee_idcolumn to filter onrequired if hasTargetUserLink
userSearchAttributeValueFormat

${subject.id}
${targetEntity.attributes['uid']}

value for the user search attribute namerequired if hasTargetUserLink
membershipTableNamemembershipstable where memberships go

required

membershipUserColumnuser_idcolumn in memberships table for userrequired
membershipUserValueFormat${targetEntity.attributes['uid']}value for the membership user valuerequired
membershipGroupColumngroup_idcolumn in memberships table for grouprequired
membershipGroupValueFormat${targetGroup.attributes['id']}value for the membership group valuerequired
syncMemberToId2AttributeValueFormat${targetEntity.attributes['user_id']}main identifier of the user on the target sideshow = false
syncMemberToId3AttributeValueFormat${targetEntity.attributes['uid']}identifier of the user as referred to by the membershipshow = false
syncMemberFromId2AttributeValueFormat${targetEntity.attributes['netId']}

target attribute value that helps look up user

show = false
syncMemberFromId3AttributeValueFormat${subject.attributes['mySqlId']}

subject attribute value that helps look up user

show = false
syncGroupToId2AttributeValueFormat${targetGroup.attributes['group_id']}main identifier of the group on the target sideshow = false
syncGroupToId3AttributeValueFormat${targetEntity.attributes['gid']}identifier of the group as referred to by the membershipshow = false
syncGroupFromId2AttributeValueFormat${targetEntity.attributes['groupName']}target attribute value that helps look up groupshow = false
userSearchAttributesuser_id, name, emailcolumns to search when getting usersoptional. show if hasTargetUserLink.
groupSearchAttributesgroup_id, group_namecolumns to search when getting groupsoptional, show if hasTargetGroupLink
membershipSearchAttributesgroup_id, user_id, membership_idcolumns to search when getting membershipsoptional
createMissingUserstrue or false
defaults false, optional. show if hasTargetUserLink
createMissingGroupstrue or false
defaults to true. show if hasTargetGroupLink
groupSearchAttributeNamegid_numbercolumn name to filter on

show if hasTargetGroupLink 

required

groupSearchAttributeValueFormat${syncGroup.groupIdIndex}value to filter group on

show if hasTargetGroupLink 

required

groupSearchAttributescn,gidNumber,samAccountName,objectclassattributes to get if searching for groups

optional

show if hasTargetGroupLink 

deleteGroupsInTargetIfInTargetAndNotGroupertrue or falseif groups in full sync should be deleted if in group all query and not in grouper
or for attributes delete other attribute not provisioned by grouper
default to false
deleteGroupsInTargetIfDeletedInGroupertrue or falseif groups that were created in grouper were deleted should it be deleted in sql?
or for attributes, delete attribute value if deleted in grouper
default to true
deleteMembershipsInTargetIfInTargetAndNotGrouper
if memberships in full sync should be deleted if in membership all query and not in grouper
or for attributes delete other attribute not provisioned by grouper
default to false
groupIdOfUsersToProvision
overall group of users to provision.  uuid.  If not specified, then provision users with any membershipsoptional
deleteUsersInTargetIfInTargetAndNotGrouper
if user in target and not in grouper then delete in targetdefault to false
deleteUsersInTargetIfIDeletedInGrouper
if user in target and removed from grouper then delete in targetdefault to false
membershipFields

members

read,admin

update,admin

admin

if provisioning normal memberships or privilegesdefault to "members" for normal memberships
dbExternalSystemConfigIdwarehouselinks to DB external system in grouper-loader.propertiesrequired
userSearchQueryselect * from users where ...if this is more complicated than just a simple select, put the query hereoptional
groupSearchQueryselect * from groups where ...if this is more complicated than just a simple select, put the query hereoptional
membershipSearchQueryselect * from memberships where ...if this is more complicated than just a simple select, put the query hereoptional
groupCreationNumberOfAttributesinteger between 1 and 10
required. show if createMissingGroups
groupCreationTemplate_attr_[0-9]group_idthe 0th attribute namerequired if createMissingGroups
groupCreationLdifTemplate_val_[0-9]${syncMember.memberToId2}the 0th attribute valuerequired if createMissingGroups
userCreationNumberOfAttributesinteger between 1 and 10
required if createMissingUsers
userCreationTemplate_attr_[0-9]user_idthe 0th attribute namerequired if createMissingUsers
userCreationTemplate_val_[0-9]${syncGroup.groupToId2}the 0th attribute valuerequired if createMissingUsers
membershipCreationNumberOfAttributesinteger between 1 and 10
required
membershipCreationTemplate_attr_[0-9]membership_idthe 0th attribute namerequired
membershipCreationTemplate_val_[0-9]${syncMembership.membershipToId2}he 0th attribute valuerequired


Caching

Sync objects can cache information in SQL.  Synced from full sync (if doesnt exist or if errors), incremental (if doesnt exist or if errors), and the nightly (scheduled) subject resolution daemon (full refresh)

ObjectFieldCached data
gcGrouperSyncGroupgroupToId2group primary key
gcGrouperSyncGroupgroupToId3whatever column value the membership attribute refers to
gcGrouperSyncGroupgroupFromId2sql group object column value that looks up group
gcGrouperSyncMembermemberToId2user primary key
gcGrouperSyncMembermemberToId3whatever attribute value the membership column refers to users as
gcGrouperSyncMembermemberFromId2sql person object column value that looks up user
gcGrouperSyncMembermemberFromId3subject attribute value that helps look up user
  • No labels