Versions Compared

Key

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

...

  • Grouper admins (or members of etc:workflowEditors group) can configure a workflow on a group
    • Specify which groups need to approve the request
    • Configure the workflow and form fields with JSON
    • Configure the form itself with HTML
  • Workflow daemon will run to send out notifications
  • Screens to view and manage the requests
  • Automatic provisioning into group(s)
  • A copy of the form being submitted will be stored at every state of the form to AWS S3 or the file system.  That includes the history of the form and who approved it when

  • There is not a lightweight open source workflow library to add to grouper core, so we will create our own
    • The first part of this task is to confirm this statement
  • Note: the workflow should be able to be kicked off by the daemon when the status is "initiate".  So that workflow can be kicked off by web service.  Daemon should check every 5 minutes.  If this is the UI it should be immediate, send the email, and go to the next state.   

Configuration

The configuration will follow the same attribute structure as other Grouper modules like reporting

...

Name

Definition

Value

workflowInstanceMarker

workflowInstanceDef<none>
workflowInstanceStateworkflowInstanceValueDefAny of the states, plus "exception" if there is a problem
workflowInstanceLastUpdatedMillisSince1970workflowInstanceValueDefnumber of millis since 1970 when this instance was last updated

workflowInstanceConfigMarkerAssignmentId

workflowInstanceValueDefAttribute assign ID of the marker attribute of the config (same owner as this attribute, but there could be many workflows configured on one owner)
workflowInstanceInitiatedMillisSince1970workflowInstanceValueDefmillis since 1970 that this workflow was submitted
workflowInstanceUuidworkflowInstanceValueDefuuid assigned to this workflow instance
workflowInstanceFilenameworkflowInstanceValueDeffilename of workflow directory that holds the workflow files
workflowInstanceFilePointerworkflowInstanceValueDefdepending on storage type, this is a pointer to the workflow in storage, e.g. the S3 address. note the S3 address is .csv suffix, but change to __metadata.json for instance metadata
workflowInstanceEncryptionKeyworkflowInstanceValueDefrandomly generated 16 char alphanumeric encryption key (never allow display or edit of this)

workflowLastEmailedDate

workflowInstanceValueDefyyyy/mm/dd date that this was last emailed so multiple emails dont go out on same day
workflowLastEmailedStateworkflowInstanceValueDefthe state of the workflow instance when it was last emailed
workflowLogworkflowInstanceValueDefhas brief info about who did what when on this instance
workflowErrorworkflowInstanceValueDeferror message including stack of why this instance is in "exception" state

Changes to group drop down

...

"Join" a group could kick off a workflow too

Notifications

Emails should be sent out to approvers when they need to approve forms.  Emails should be sent out when the state changes, or daily (in a digest per user)

Hooks on workflow

Workflow should have hooks at various place so it can be customized

View electronic forms screen

...

  1. My forms - see forms the current user submitted
  2. Forms waiting for my approval - see forms that need approvals
  3. Form search - for form admins, can search for forms, see status, search by submitter, able to approve forms for approvers

To Do later

  • Enable kicking off workflows from other events (e.g. folder create, group create, membership add , membership remove , attribute values add/change/remove, etc…)