Job Manager APIs - NEW 🚀

These APIs provide the outcome of the on-demand operation and identify the newly created Job. They submit the Job and return its JobId. These on-demand APIs are synchronous.

By specifying an external idempotency identifier (extIPID) for each on-demand request, Data One can determine if a request has already been processed and reject duplicate execution.

The extIPID is a unique key provided by the user to identify the on-demand operation based on the application domain. extIPID is used to compute the internal idempotency identifier (IPID) used by Data One to identify and avoid duplicate submit operations. In case of no response to the original on-demand request, the on-demand operation can be retried by providing the same extIPID. This avoids creating a duplicate job if the previous operation was successful. In this case, the JobId is returned.

When the Submit REST receives an on-demand request containing the extIPID, the following request parameters are used to generate the IPID of the internal Job submit operation, so that the Job Manager can detect duplicate operations:
IPID = hash(User, Contract, Action, extIPID)

The extIPID length is limited to 64 characters.

Submit

  • Endpoint: /job-manager/jobs
  • Method: POST
  • Context: /ghibli-rest/v2
  • Description: this API submits a new job to Data One.
  • Parameters: request body parameter
  • Parameter content type: application/JSON
ParameterValueDescriptionParameter TypeData Type
body(required)
Parameter
content type:
application/JSON
the payloadbodyModel: Example Value
{ “contractName”: “string”, “actionName”: “string”, “actionVariables”: {}, “extIPID”: “string” }

Response: The API will return the newly submitted job (response code 201), or the existing one if collision is detected (response code 409).

 {
 "id": "",
 "status": "",
 "statusMessage": "",
 "createdAt": "",
 "updatedAt": "",
 "submittedBy": "",
 "queue": "",
 "actor": "",
 "contract": "",
 "contractType": "",
 "contractAction": "",
 "contractActionTrigger": "",
 "contractActionWorkflowInstance": {
       "id": "",
       "workflowTemplateId": "",
       "workflowTemplateName": "",
       "workflowTemplateRevision": "",
       "workflowTemplateDescription": ""
  },
  "dfic": {
    "dfiid": "",
    "lcid": "",
    "userAttrs": {
        "key1": "",
        "key2": ""
     }
   },
   "extIPID": ""
 }
  • Permissions:
    • Resource: WORKFLOW
    • Default Allowed Roles: Administrators

Job List

  • Endpoint: /job-manager/jobs
  • Method: GET
  • Context: /ghibli-rest/v2
  • Description: this API retrieves job details in Data One. The search is executed with an
    exact matching for all fields.
  • Parameters:
ParameterValueDescriptionParameter TypeData Type
maxItems100Maximum number of values that
the server should return (must be
less than or equal to 1000)
queryinteger
sortSort field (+ = ASC, - = DESC, e.g. '+id', '+status', '-contract', '+createdAt': id, status, queue, contract,
workflowTemplateId, workflowTemplateName, workflowTemplateRevision, submittedBy, createdAt, updatedAt.
querystring
idJob idquerylong
statusThe job status: SUBMITTED, SUSPENDED, RUNNING, ERROR, ABORTED, COMPLETEDquerystring
queueJob queuequerystring
contractContract namequery string
workflowTemplateIdId of the workflow templatequerylong
workflowTemplateNameName of the workflow templatequerystring
workflowTemplateRevisionRevision number of the workflow templatequerylong
createdAtFromCreation time lower-bound in ISO8601 format (e.g. 2024-03-26T13:30:30+01:00)querystring
createdAtToCreation time upper-bound in ISO8601 format (e.g. 2024-03-26T13:30:30+01:00)querystring
updatedAtFromUpdate time lower-bound in ISO8601 format (e.g. 2024-03-26T13:30:30+01:00)querystring
updatedAtToUpdate time upper-bound in ISO8601 format (e.g. 2024-03-26T13:30:30+01:00)querystring
extIPIDExternal idempotency identifierquerystring
submittedByJob submitterquerystring
dfiidDataflow instance Idquerystring
lcidLog Correlation Idquerystring
actorActorquerystring
contractActionAction defined in the contractquerystring
contractTypeType of contractquerystring
contractActionTriggerTrigger defined in the contractquerystring
  • Defaults:
    • "maxItems": 100
      o "maxItems" cannot exceed limit of 1000 items
    • "sort": id DESC
  • Response:
    The response is a list of JSON objects, each representing a job in the system.
    Moreover, the "next" element contains the link (absolute, from context path) of the next
    page. If the next page is not available, it is not present.
{  
 "jobs": [  
   {  
     "id": "",  
     "status": "",  
     "statusMessage": "",  
     "createdAt": "",  
     "updatedAt": "",  
     "submittedBy": "",  
     "queue": "",  
     "actor": "",  
     "contract": "",  
     "contractType": "",  
     "contractAction": "",  
     "contractActionTrigger": "",  
     "contractActionWorkflowInstance": {  
       "id": "",  
       "workflowTemplateId": "",  
       "workflowTemplateName": "",  
       "workflowTemplateRevision": "",  
       "workflowTemplateDescription": ""  
     },  
     "dfic": {  
       "dfiid": "",  
       "lcid": "",  
       "userAttrs": {  
           "key1": "",  
           "key2": ""  
 		  }  
	   },  
 	   "extIPID": ""  
   }  
  ],  
  "next": ""  
}
  • Permissions:
    • Resource: SPENGCEMANJOBS
    • Default Allowed Roles: Users, Administrators