Post PSP Provisioning

Following on from the discussion on the July 3, 2013 Grouper Dev call and the July 29, 2014 and the August 27, 2014 Grouper Dev call, this page captures thoughts about the future of the PSP and directions for provisioning strategy. General consensus:

General Requirements

General requirements moving forward for message queue readers:

Message Format

This still needs to be worked out.

Deployer

Message Format Documentation

Washington

https://wiki.cac.washington.edu/display/infra/Groups+AWS+Event+Messaging
https://wiki.cac.washington.edu/display/infra/IAM+AWS+messaging

Carnegie Mellon

https://github.com/cmu-ids/Grouper-ActiveMQ-Provisioner

Grouper ESB

link to grouper ESB

What's in a message

Message Format Detail

First Implementations

Prospective first implementations for Grouper 2.3 are:

Configuration

The provisioning modules will be configured via properties files using standard grouper configuration mechanisms. Modules will be activated by either calling them from GSH for batch/reconciliation functions or either a changelog consumer or Grouper hooks for incremental provisioning.  Hooks will be investigated as a means of provisioning more quickly. The provisioners will support two kinds of configuration:

Global Configuration

Global configuration of the modules will be done by properties files specific to all instances of that module. Some of the envisioned properties set in these files include

Categorical Configuration

The idea behind categorical configuration is that rather than decorate a specific group to be provisioned to a specific target endpoint, we create an abstraction capability.  The idea is that a group could receive the provisioning decoration of standard which would signal the downstream provisioners looking for standard to provision their targets accordingly.  In this manner, a Group Admin, knowing that standard meant provision to LDAP, AD, and Google Apps, for instance, could just apply that one attribute & be done with configuring the provisioning.  Categorical implementation would likely take the form of a group attribute with some metadata explaining which targets to hit.

Group-Level Configuration

This needs to be re-thought in light of the message consumers. Do we put the attributes into the message to inform the downstream consumers about it or do we require the consumers to call-back into grouper for additional data. My gut says we should do our level best to ensure a message has all the data a consumer would need to keep speed up and callbacks down.

Group level configuration would be handled by attributes placed upon groups or folders. The following standard attributes are envisioned:

Specific provisioners may specify additional attributes they will use to determine how to provision that group's membership. Some examples are:

The Grouper UIs will also be updated to facilitate managing of these attributes.