Workflows for granting role memberships
/workflow-engine/api/v1/workflows
Get workflow objects.
limit
int
Number of items to return
offset
int
Offset where to start fetching the items
Successful response, returns an array of workflows, returns an empty array if no workflows defined
{
"count": 123,
"items": [
{
"id": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"requester": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"display_name": "string",
"deleted": true
},
"requested_role": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
},
"request_justification": "string",
"grant_types": [
"PERMANENT"
],
"grant_start": "2017-01-01T15:05:05Z",
"grant_end": "2017-01-01T15:05:05Z",
"floating_length": 24,
"max_active_requests": 1,
"max_floating_duration": 48,
"max_time_restricted_duration": 15,
"target_user": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"display_name": "string",
"deleted": true
},
"target_roles": [
{
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
}
],
"action": "GRANT",
"created": "2017-01-01T15:05:05Z",
"updated": "2017-01-01T15:05:05Z",
"updated_by": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"author": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"name": "An example workflow",
"status": "WAITING",
"comment": "A comment",
"can_bypass_revoke_workflow": true,
"steps": [
{
"name": "string",
"match": "ALL",
"approvers": [
{
"role": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
}
}
]
}
]
}
]
}
/workflow-engine/api/v1/workflows
Create a new workflow. ID, author, created, and updated fields are automatically populated by the server.
id
string
The UUID of the returned object, unique to a workflow template.
requester
object
The ID & display name of the user making the request.
id
string
display_name
string
deleted
boolean
It indicates whether a user is present in the system or not.
requested_role
object
The ID and display name of the requested role. Display name stored for posterity.
id
string
The ID of the requested role.
name
string
deleted
boolean
It indicates whether a role is present in the system or not. Create/Update workflow/request operations doesn't need to pass any value to this attribute. This field is not read during the Write operations.
request_justification
string
Justification for the request.
grant_types
array
List of role granting types. Is the role granted permanently, or is the grant time restricted, or a floating window. The floating window starts upon initial connection at which time the Role Store converts the floating window to explicit time-restricted window.
grant_start
string
Date & time after which the role is granted to the user. Can be overriden in decision phase.
grant_end
string
Date & time after which the role is removed from the user. Can be overriden in decision phase.
floating_length
int
Time in hours how long the grant should last after initial connection. Can be overriden in decision phase.
max_active_requests
int
required
Maximum number of concurrent open requests a user can have per target role. Set to -1 to allow an unlimited number of open requests. Assumed 1 if not specified.
max_floating_duration
int
Time in hours how long the grant should not exceed after initial connection.
max_time_restricted_duration
int
Maximum time in days where duration between start-date and end-date of role request must not exceeded this duration.
target_user
object
The ID of the user the request is made for.
id
string
display_name
string
deleted
boolean
It indicates whether a user is present in the system or not.
target_roles
array
required
A list of roles this workflow targets.
id
string
name
string
deleted
boolean
It indicates whether a role is present in the system or not. Create/Update workflow/request operations doesn't need to pass any value to this attribute. This field is not read during the Write operations.
action
string
required
Does the workflow GRANT or REMOVE the user from the role. Workflow engine needs to check that the requested action matches allowed actions defined in the template.
created
string
When the object was created.
updated
string
When the object was updated.
updated_by
string
ID of the user who updated the object.
author
string
ID of the user who originally authored the object.
name
string
required
Name of the workflow.
status
string
Computed status for the instance of the workflow - based on step statuses.
comment
string
A comment describing the object.
can_bypass_revoke_workflow
boolean
A flag used to determine if approvers can bypass the revoke workflow to revoke a role.
steps
array
required
Array of steps.
name
string
required
Workflow-step name
match
string
required
All approvers must approve or any approver can approve
approvers
array
required
Who are the approvers in this step
{
"id": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"requester": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"display_name": "string",
"deleted": true
},
"requested_role": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
},
"request_justification": "string",
"grant_types": [
"PERMANENT"
],
"grant_start": "2017-01-01T15:05:05Z",
"grant_end": "2017-01-01T15:05:05Z",
"floating_length": 24,
"max_active_requests": 1,
"max_floating_duration": 48,
"max_time_restricted_duration": 15,
"target_user": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"display_name": "string",
"deleted": true
},
"target_roles": [
{
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
}
],
"action": "GRANT",
"created": "2017-01-01T15:05:05Z",
"updated": "2017-01-01T15:05:05Z",
"updated_by": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"author": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"name": "An example workflow",
"status": "WAITING",
"comment": "A comment",
"can_bypass_revoke_workflow": true,
"steps": [
{
"name": "string",
"match": "ALL",
"approvers": [
{
"role": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
}
}
]
}
]
}
Workflow Successfully created
{
"id": "5bf77342-221c-11ee-be56-0242ac120002"
}
/workflow-engine/api/v1/workflows/{workflow_id}
Get workflow
object by ID.
workflow_id
string
required
Workflow ID
Successful response, returns a workflow if found
{
"id": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"requester": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"display_name": "string",
"deleted": true
},
"requested_role": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
},
"request_justification": "string",
"grant_types": [
"PERMANENT"
],
"grant_start": "2017-01-01T15:05:05Z",
"grant_end": "2017-01-01T15:05:05Z",
"floating_length": 24,
"max_active_requests": 1,
"max_floating_duration": 48,
"max_time_restricted_duration": 15,
"target_user": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"display_name": "string",
"deleted": true
},
"target_roles": [
{
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
}
],
"action": "GRANT",
"created": "2017-01-01T15:05:05Z",
"updated": "2017-01-01T15:05:05Z",
"updated_by": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"author": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"name": "An example workflow",
"status": "WAITING",
"comment": "A comment",
"can_bypass_revoke_workflow": true,
"steps": [
{
"name": "string",
"match": "ALL",
"approvers": [
{
"role": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
}
}
]
}
]
}
/workflow-engine/api/v1/workflows/{workflow_id}
Update a workflow.
id
string
The UUID of the returned object, unique to a workflow template.
requester
object
The ID & display name of the user making the request.
id
string
display_name
string
deleted
boolean
It indicates whether a user is present in the system or not.
requested_role
object
The ID and display name of the requested role. Display name stored for posterity.
id
string
The ID of the requested role.
name
string
deleted
boolean
It indicates whether a role is present in the system or not. Create/Update workflow/request operations doesn't need to pass any value to this attribute. This field is not read during the Write operations.
request_justification
string
Justification for the request.
grant_types
array
List of role granting types. Is the role granted permanently, or is the grant time restricted, or a floating window. The floating window starts upon initial connection at which time the Role Store converts the floating window to explicit time-restricted window.
grant_start
string
Date & time after which the role is granted to the user. Can be overriden in decision phase.
grant_end
string
Date & time after which the role is removed from the user. Can be overriden in decision phase.
floating_length
int
Time in hours how long the grant should last after initial connection. Can be overriden in decision phase.
max_active_requests
int
required
Maximum number of concurrent open requests a user can have per target role. Set to -1 to allow an unlimited number of open requests. Assumed 1 if not specified.
max_floating_duration
int
Time in hours how long the grant should not exceed after initial connection.
max_time_restricted_duration
int
Maximum time in days where duration between start-date and end-date of role request must not exceeded this duration.
target_user
object
The ID of the user the request is made for.
id
string
display_name
string
deleted
boolean
It indicates whether a user is present in the system or not.
target_roles
array
required
A list of roles this workflow targets.
id
string
name
string
deleted
boolean
It indicates whether a role is present in the system or not. Create/Update workflow/request operations doesn't need to pass any value to this attribute. This field is not read during the Write operations.
action
string
required
Does the workflow GRANT or REMOVE the user from the role. Workflow engine needs to check that the requested action matches allowed actions defined in the template.
created
string
When the object was created.
updated
string
When the object was updated.
updated_by
string
ID of the user who updated the object.
author
string
ID of the user who originally authored the object.
name
string
required
Name of the workflow.
status
string
Computed status for the instance of the workflow - based on step statuses.
comment
string
A comment describing the object.
can_bypass_revoke_workflow
boolean
A flag used to determine if approvers can bypass the revoke workflow to revoke a role.
steps
array
required
Array of steps.
name
string
required
Workflow-step name
match
string
required
All approvers must approve or any approver can approve
approvers
array
required
Who are the approvers in this step
{
"id": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"requester": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"display_name": "string",
"deleted": true
},
"requested_role": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
},
"request_justification": "string",
"grant_types": [
"PERMANENT"
],
"grant_start": "2017-01-01T15:05:05Z",
"grant_end": "2017-01-01T15:05:05Z",
"floating_length": 24,
"max_active_requests": 1,
"max_floating_duration": 48,
"max_time_restricted_duration": 15,
"target_user": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"display_name": "string",
"deleted": true
},
"target_roles": [
{
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
}
],
"action": "GRANT",
"created": "2017-01-01T15:05:05Z",
"updated": "2017-01-01T15:05:05Z",
"updated_by": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"author": "eef4aefc-d64e-4c2c-aba4-4914c86ce059",
"name": "An example workflow",
"status": "WAITING",
"comment": "A comment",
"can_bypass_revoke_workflow": true,
"steps": [
{
"name": "string",
"match": "ALL",
"approvers": [
{
"role": {
"id": "5bf77342-221c-11ee-be56-0242ac120002",
"name": "string",
"deleted": true
}
}
]
}
]
}
Workflow successfully updated
Empty response
/workflow-engine/api/v1/workflows/{workflow_id}
Deletes workflow by ID.
workflow_id
string
required
Workflow ID
Workflow Successfully deleted
Empty response
Was this page helpful?