REST API
  • 23 Dec 2022
  • 4 Minutes to read
  • Dark
    Light

REST API

  • Dark
    Light

Article summary

Euclid Studio REST API

Euclid Studio flows can be called via the REST API. To do so, we need to execute an HTTP request against

http://<server>:<port>/EuclidStudio/api/v1

where <server> and <port> are the address to the Euclid Studio server. E.g.,

http://localhost:8080/EuclidStudio/api/v1

The REST API can be used to get the status of and execute jobs, or navigate flows.

Note: for a Euclid Studio version prior to 4.2.0, see here for information about the REST API.

Jobs Status and Execution

GET /jobs/{jobId}

Get the status of a Job

Only a single job status can be retrieved with this method

Parameters

NameInputTypeRequiredDescription
jobIdpathstringtrueJob Id provided in the execution request
filterquerystringfalseA value of executionStatus will limit the response to just that field's value

Responses

StatusMeaningDescriptionSchema
200OKSuccessJobStatus
400Bad RequestBad Request or Server errorNone

Example responses

200 Response

Response Body (click to expand)
{
  "id": "54d9d784-e574-4160-9f44-6fb95317fecb",
  "jobType": "RUNPROFILE",
  "flowName": "Sleep6Split",
  "runProfileName": "default",
  "jobName": "Sleep6Split_default",
  "startTime": 1621440119691,
  "endTime": 1621440135054,
  "executionStatus": "COMPLETED",
  "log": "05/19/2021 12:01:59,698 [pool-8-thread-2] INFO user.${ctx:USER} job.RunProfileJobImpl - \r\n+---------------------------------------------------------+\r\n|                  Job Execution Details                  |\r\n+----------------+----------------------------------------+\r\n|      NAME      |                 VALUE                  |\r\n+----------------+----------------------------------------+\r\n|  Job Name      |  Sleep6Split_default                   |\r\n+----------------+----------------------------------------+\r\n|  Execution Id  |  54d9d784-e574-4160-9f44-6fb95317fecb  |\r\n+----------------+----------------------------------------+\r\n\r\n05/19/2021 12:01:59,706 [pool-8-thread-2] INFO user.${ctx:USER} service.DefaultFlowExecutionServiceImpl - \r\n+------------------------------------------------------+\r\n|                  Execution Details                   |\r\n+-------------+----------------------------------------+\r\n|    NAME     |                 VALUE                  |\r\n+-------------+----------------------------------------+\r\n|  Flow Id    |  f21bf040-c22b-454e-8561-2115e90aaa55  |\r\n+-------------+----------------------------------------+\r\n|  Flow Name  |  C:/Temp/Sleep6Split.flx               |\r\n+-------------+----------------------------------------+\r\n|  Type       |  RUNPROFILE                            |\r\n+-------------+----------------------------------------+\r\n|  RUNITEM    |  default                               |\r\n+-------------+----------------------------------------+\r\n\r\n05/19/2021 12:02:04,832 [pool-11-thread-1] PERFORMANCE user.${ctx:USER} node.DatabaseCommandOutputNode - node_6896891:Command Line:Command Line | Elapsed Time (s): 5.122\r\n05/19/2021 12:02:09,946 [pool-11-thread-1] PERFORMANCE user.${ctx:USER} node.DatabaseCommandOutputNode - node_7446635:Command Line:Command Line | Elapsed Time (s): 5.11\r\n05/19/2021 12:02:15,045 [pool-11-thread-1] PERFORMANCE user.${ctx:USER} node.DatabaseCommandOutputNode - node_2714217:Command Line:Command Line | Elapsed Time (s): 5.098\r\n05/19/2021 12:02:15,050 [pool-8-thread-2] INFO user.${ctx:USER} service.DefaultFlowExecutionServiceImpl - \r\n+----------------------------------------------+\r\n|              Execution Results               |\r\n+----------+-------------+---------------------+\r\n|   NAME   |   STATUS    |       RUNTIME       |\r\n+----------+-------------+---------------------+\r\n|  Step 1  |  COMPLETED  |  5.123 seconds      |\r\n+----------+-------------+---------------------+\r\n|  Step 2  |  COMPLETED  |  5.110 seconds      |\r\n+----------+-------------+---------------------+\r\n|  Step 3  |  COMPLETED  |  5.098 seconds      |\r\n+----------+-------------+---------------------+\r\n|  Total   |  COMPLETED  |  15.335 seconds     |\r\n+----------+-------------+---------------------+\r\n\r\n05/19/2021 12:02:15,053 [pool-8-thread-2] INFO user.${ctx:USER} job.RunProfileJobImpl - Job completed successfully.\r\n",
  "executionPerformanceReport": null,
  "error": null,
  "currentStepId": "Step 3",
  "currentStepDescription": "Step 3 (1)",
  "currentStepStartTime": 1621440135045,
  "currentStepStatus": "COMPLETED",
  "runProfile": "Sleep6Split_default",
  "runtimeFormatted": "15.363 seconds",
  "startTimeFormatted": "2021-05-19 12:01:59.691",
  "endTimeFormatted": "2021-05-19 12:02:15.054",
  "currentStepElapsedTime": "N/A"
}

GET /jobs

Get the status for multiple Jobs (max of 100)

You can choose to filter the list of Job Statuses using the filter query parameter


Parameters

NameInTypeRequiredDescription
filterquerystringfalseA value of active will filter by running Jobs and a value of history will filter by completed Jobs. Excluding this parameter returns the first 100 Jobs running and completed.

Responses

StatusMeaningDescriptionSchema
200OKSuccessInline
400Bad RequestBad Request or Server errorNone

Example responses

200 Response

Response Body (click to expand)
[
  {
    "id": "54d9d784-e574-4160-9f44-6fb95317fecb",
    "jobType": "RUNPROFILE",
    "flowName": "Sleep6Split",
    "runProfileName": "default",
    "jobName": "Sleep6Split_default",
    "startTime": 1621440119691,
    "endTime": null,
    "executionStatus": "RUNNING",
    "log": null,
    "executionPerformanceReport": null,
    "error": null,
    "currentStepId": "Step 3",
    "currentStepDescription": "Step 3 (0 of 1 completed)",
    "currentStepStartTime": 1621440129947,
    "currentStepStatus": "RUNNING",
    "runProfile": "Sleep6Split_default",
    "runtimeFormatted": "",
    "startTimeFormatted": "2021-05-19 12:01:59.691",
    "endTimeFormatted": "",
    "currentStepElapsedTime": "0:00:04"
  },
  {
    "id": "2956fdae-73f8-45ec-a999-bf3514020472",
    "jobType": "RUNPROFILE",
    "flowName": "Demo",
    "runProfileName": "default",
    "jobName": "Demo_default",
    "startTime": 1621440116248,
    "endTime": 1621440126291,
    "executionStatus": "COMPLETED",
    "log": "05/19/2021 12:01:56,485 [pool-8-thread-1] INFO user.${ctx:USER} job.RunProfileJobImpl - \r\n+---------------------------------------------------------+\r\n|                  Job Execution Details                  |\r\n+----------------+----------------------------------------+\r\n|      NAME      |                 VALUE                  |\r\n+----------------+----------------------------------------+\r\n|  Job Name      |  Demo_default                          |\r\n+----------------+----------------------------------------+\r\n|  Execution Id  |  2956fdae-73f8-45ec-a999-bf3514020472  |\r\n+----------------+----------------------------------------+\r\n\r\n05/19/2021 12:01:56,527 [pool-8-thread-1] INFO user.${ctx:USER} service.DefaultFlowExecutionServiceImpl - \r\n+------------------------------------------------------+\r\n|                  Execution Details                   |\r\n+-------------+----------------------------------------+\r\n|    NAME     |                 VALUE                  |\r\n+-------------+----------------------------------------+\r\n|  Flow Id    |  2932ca30-8871-48b1-8e9b-90b744020b68  |\r\n+-------------+----------------------------------------+\r\n|  Flow Name  |  C:/Temp/Demo.flx                      |\r\n+-------------+----------------------------------------+\r\n|  Type       |  RUNPROFILE                            |\r\n+-------------+----------------------------------------+\r\n|  RUNITEM    |  default                               |\r\n+-------------+----------------------------------------+\r\n\r\n+--------------------------------------------------------------+\r\n|                  Parameter Set: demo_params                  |\r\n+--------------+----------+------------------------------------+\r\n|     NAME     |   TYPE   |               VALUE                |\r\n+--------------+----------+------------------------------------+\r\n|  SOURCEFILE  |  STRING  |  \"C:\\Temp\\retail_unit_demand.csv\"  |\r\n+--------------+----------+------------------------------------+\r\n|  TABLENAME   |  STRING  |  \"DEMO_TABLE\"                      |\r\n+--------------+----------+------------------------------------+\r\n\r\n\r\n\r\n05/19/2021 12:01:56,580 [pool-9-thread-1] PERFORMANCE user.${ctx:USER} node.FlatFileSourceNode - node_8759684:Flat File:Flat File | Elapsed Time (s): 0.045 | Rows: 118 | Rows/sec: 2622.222222222222\r\n05/19/2021 12:01:57,792 [pool-9-thread-1] PERFORMANCE user.${ctx:USER} node.ForecastModelNode - node_3996940:Forecast:Forecast | Elapsed Time (s): 1.257 | Rows: 118 | Rows/sec: 93.87430389817025\r\n05/19/2021 12:01:59,150 [pool-9-thread-1] PERFORMANCE user.${ctx:USER} node.DatabaseExportNode - node_7954912:Database:Database | Elapsed Time (s): 2.616 | Rows: 0 | Rows/sec: 0.0\r\n05/19/2021 12:02:06,270 [pool-9-thread-1] PERFORMANCE user.${ctx:USER} node.DatabaseCommandOutputNode - node_9063046:Command Line:Command Line | Elapsed Time (s): 7.116\r\n05/19/2021 12:02:06,278 [pool-8-thread-1] INFO user.${ctx:USER} service.DefaultFlowExecutionServiceImpl - \r\n+----------------------------------------------+\r\n|              Execution Results               |\r\n+----------+-------------+---------------------+\r\n|   NAME   |   STATUS    |       RUNTIME       |\r\n+----------+-------------+---------------------+\r\n|  Step 1  |  COMPLETED  |  N/A                |\r\n+----------+-------------+---------------------+\r\n|  Step 2  |  COMPLETED  |  2.618 seconds      |\r\n+----------+-------------+---------------------+\r\n|  Step 3  |  COMPLETED  |  7.116 seconds      |\r\n+----------+-------------+---------------------+\r\n|  Total   |  COMPLETED  |  9.738 seconds      |\r\n+----------+-------------+---------------------+\r\n\r\n05/19/2021 12:02:06,290 [pool-8-thread-1] INFO user.${ctx:USER} job.RunProfileJobImpl - Job completed successfully.\r\n",
    "executionPerformanceReport": null,
    "error": null,
    "currentStepId": "Step 3",
    "currentStepDescription": "Step 3 (1)",
    "currentStepStartTime": 1621440126270,
    "currentStepStatus": "COMPLETED",
    "runProfile": "Demo_default",
    "runtimeFormatted": "10.043 seconds",
    "startTimeFormatted": "2021-05-19 12:01:56.248",
    "endTimeFormatted": "2021-05-19 12:02:06.291",
    "currentStepElapsedTime": "N/A"
  }
]

POST /jobs

Submit a Job execution request

All details on the request are passed in the request body


Parameters

NameInTypeRequiredDescription
bodybodyJobRequestfalsenone

Body parameter

Note: string, integer, and float are the only supported parameter types via the API

{
    "flowFileName": "C:/Temp/Demo.flx",
    "runProfileName": "default",
    "notificationEnabled": false,
    "parameters":[
			{
				"name":"TABLENAME",
				"type":"string",
				"value": "DEMO_TABLE"
			}
		]
}

Responses

StatusMeaningDescriptionSchema
200OKsuccessful operationJobExecutionResponse
202AcceptedAcceptedJobExecutionResponse
400Bad RequestBad Request or Server errorNone

Example responses

200 Response

{
  "jobId": "2956fdae-73f8-45ec-a999-bf3514020472"
}

Properties

PropertyValue
jobTypeBRANCH
jobTypeRUNPROFILE
executionStatusQUEUED
executionStatusRUNNING
executionStatusCANCELLED
executionStatusERROR
executionStatusCOMPLETED
currentStepStatusRUNNING
currentStepStatusCOMPLETED

Flow Navigation

GET /flows

Navigate to a specific Flow

This api should only be used for navigation in your browser


Parameters

NameInTypeRequiredDescription
flowFileNamequerystringtrueFully qualified path to the Flow File
runProfilequerystringtrueName of the Run Profile to execute
nodeIdquerystringfalseFull Node Id of the Node to open on navigation

Example Parameter Strings

Navigate to a Flow and Run Profile
http://localhost:9696/EuclidStudio/api/v1/flows?flowFileName=c:/Flows/example.flx&runProfile=default

Navigate to a specific node
http://localhost:9696/EuclidStudio/api/v1/flows?flowFileName=c:/Flows/example.flx&runProfile=default&nodeId=node_9259502


Responses

StatusMeaningDescriptionSchema
defaultDefaultsuccessful operationNone

Was this article helpful?

What's Next