Versions Compared

Key

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

...

Name

Definition

Required?

Value

workflowConfigMarker

workflowConfigDef
<none>
workflowConfigTypeworkflowConfigValueDefrequiredif grouper is the only implementation in grouper.properties, auto populate with "grouper", otherwise list other implementations
workflowConfigApprovalsworkflowConfigValueDefrequired

This is a JSON config of the workflow approvals.  must have "initiate" and "complete"

Code Block
{
  states: [
    {
      stateName: "initiate",
      
      // optional, if no group specified, then whoever has OPTIN
      allowedGroupId: "abc123def456"     
    },
    
    {
      stateName: "supervisor",
      approverSubjectId: "${initiatorSubject.attribute['supervisorSubjectId']}",
      approverSubjectSourceId: "mypeople"
    },
    
    {
      stateName: "dataOwner",
      //who can approve
      approverGroupId: "sdgf76gdf87",  
      //who is notified, if blank, then use approverGroupId
      approverNotifyGroupId: "dfkjh234kjb"
    },
    
    {
      stateName: "complete",
      //if blank use the selected groups from form or just the group
      //the workflow is assigned to
      actionAssignToGroupactions: [
           {
              actionName: "assignToGroup",
              actionArg0: "sgk234kh234" 
            }
        ]
    }
  ]
}


workflowConfigName

workflowConfigValueDefrequiredName of workflow. No two workflows in the same owner should have the same name
workflowConfigIdworkflowConfigValueDefrequiredCamel-case alphanumeric id of workflow.  No two workflows in all of Grouper can have the same ID
workflowConfigDescriptionworkflowConfigValueDefrequiredTextarea which describes the information in the workflow. Must be less than 4k

workflowConfigParams

workflowConfigValueDefrequired

Note: max 10 params, checkbox is true/false

Code Block
{
  params: [
    { 
      paramName: "agreeToTerms",
      type: "checkbox",
      editableInStates: "initiate",
      required: "true"
    },
    {
      paramName: "notes",
      type: "textarea",
      editableInStates: "initiate"
    },
    {
      paramName: "notesForApprovers",
      type: "textarea",
      editableInStates: "supervisor, dataOwner"
    },
    {
      paramName: "reason",
      type: "textfield",
      editableInStates: "initiate"
    }
  ]
}


workflowConfigFormworkflowConfigValueDefoptional

Note: Grouper with javascript will enable or disable these form fields, or fill in values, as needed.  The form field names need to match the names in the params.  The id must match with "Id" appended to the end.  If a name or id doesnt exist in the HTML there will be an error

Code Block
Fill out this form to be added to this group.<br /><br />
Several approvals will take place which usually take less than 2 business days<br /><br />
State the reason you would like this access: <input type="text" name="reason" id="reasonId" /><br /><br >
<input type="checkbox" name="agreeToTerms" id="agreeToTermsId" /> I agree this this institutions' <a href="https://whatever.whatever/whatever">terms and conditions</a><br /><br />
Notes: <textarea rows="4" cols="50" name="notes" id="notesId"></textarea><br /><br />
Notes for approvers: <textarea rows="4" cols="50" name="notesForApprovers" id="notesForApproversId"></textarea><br /><br />



workflowConfigViewersGroupIdworkflowConfigValueDefoptionalGroupId of people who can view this workflow and instances of this workflow. Grouper admins can view any workflow (blank means admin only).  Anyone in an approver group can view the workflow.

workflowConfigSendEmail

workflowConfigValueDefrequired (default to true, no blank option available)true/false if email should be sent

workflowConfigEnabled

workflowConfigValueDefdefault to true (required, no blank option)Could by "true", "false", or "noNewSubmissions", i.e. let current forms go through
workflowPriorityworkflowConfigPriorityworkflowConfigValueDefintegerno two workflows on the same group can have the same priority.  If two workflows are available for the same subject, then pick the one with the highest priority, if the "join group" button is pressed

...

Name

Definition

Value

workflowInstanceMarker

workflowInstanceDef<none>
workflowInstanceStateworkflowInstanceValueDefAny of the states, plus "exception" if there is a problem, workflows must have "initiate", and "complete", plus "rejected" if someone rejects it.
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)

workflowLastEmailedDateworkflowInstanceLastEmailedDate

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


Code Block
{paramName: "agreeToTerms", paramValue: "true", lastUpdatedMillis: 12324345432434234, editedByMemberId: abc123}


workflowInstanceParamValue1workflowInstanceValueDef


Code Block
{paramName: "notes", paramValue: "Im traveling abroad and need access to such and such", lastUpdatedMillis: 12324345432434234, editedByMemberId: abc123}


workflowInstanceParamValue2workflowInstanceValueDef


Code Block
{paramName: "notesForApprovers", paramValue: "He will be collaborating with such and such which is why he needs access", lastUpdatedMillis: 12324345432434234, editedByMemberId: abc123}


workflowInstanceParamValue3workflowInstanceValueDef


Code Block
{paramName: "reason", paramValue: "Need access to whatever system", lastUpdatedMillis: 12324345432434234, editedByMemberId: abc123}


workflowInstanceParamValue4workflowInstanceValueDef
workflowInstanceParamValue5workflowInstanceValueDef
workflowInstanceParamValue6workflowInstanceValueDef
workflowInstanceParamValue7workflowInstanceValueDef
workflowInstanceParamValue8workflowInstanceValueDef
workflowInstanceParamValue9workflowInstanceValueDef

Changes to group drop down

...