Overview
A workflow is a sequence of data and processing blocks. It defines an order for operations.
A workflow starts with a data block, which may be followed by processing blocks. You can add one data block and up to five processing blocks to a workflow.
When you add a block to your workflow, it becomes a workflow task.
You can also create and manage workflows using the console.
Create or update a workflow
To create a workflow or update its name or description, call the /projects/{project_id}/workflows endpoint with your project ID as a path parameter.
Request
POST /projects/{project_id}/workflows HTTP/1.1
Host: api.up42.com
Content-Type: application/json
Authorization: Bearer {token}
Parameter | Overview |
---|---|
id | string The workflow ID. To create a workflow, omit this parameter or set it to null . To update a workflow, use the ID of an existing workflow. |
name | string / required The name of the workflow (up to 100 characters). |
description | string A description of the workflow. |
See request example
{
"id": "b7a3e0d9-64b3-4c88-910e-8d1e3082baf7",
"name": "A workflow for pansharpening Pléiades imagery.",
"description": "A workflow for getting pansharpened images from Pléiades with all the available bands."
}
Response
See response example
{
"data": {
"id": "fc88746e-98b0-4fa7-b750-2f96cde0f385",
"name": "My brand new workflow with Pléiades and Pansharpening.",
"description": "This workflow is used to generate pansharpened images.",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"createdBy": {
"id": "c744321f-7f29-4c28-b06f-577bf0290560",
"type": "API_KEY"
},
"updatedBy": {
"id": "c744321f-7f29-4c28-b06f-577bf0290560",
"type": "API_KEY"
},
"totalProcessingTime": 0
},
"error": null
}
Parameter | Overview |
---|---|
data.id | string The workflow ID. |
data.name | string The name of the workflow. |
data.description | string A description of the workflow. |
data.createdAt | string The timestamp when the workflow was created. |
data.updatedAt | string The timestamp when the workflow was last updated. |
data.createdBy | object Information about the user who performed the action. |
data.createdBy.id | string The ID of the user who performed the action. |
data.createdBy.type | string The type of the user who performed the action. |
data.updatedBy | object Information about the user who performed the action. |
data.updatedBy.id | string The ID of the user who performed the action. |
data.updatedBy.type | string The type of the user who performed the action. |
data.totalProcessingTime | integer The total duration of the processing time for the workflow. |
Create or update workflow tasks
You can add one data block and up to five processing blocks to a workflow. When you add a block to your workflow, it becomes a workflow task.
To create or update workflow tasks, call the /projects/{project_id}/workflows/{workflow_id}/tasks endpoint with your project ID and the workflow ID as path parameters.
Request
POST /projects/{project_id}/workflows/{workflow_id}/tasks HTTP/1.1
Host: api.up42.com
Content-Type: application/json
Authorization: Bearer {token}
Parameter | Overview |
---|---|
name | string / required The name of the task (up to 100 characters). |
parentName | string The name of the parent task. If it's the first task of the workflow, omit this parameter or set it to null . |
blockId | string / required The block ID. |
See request example
[
{
"name": "first block",
"parentName": null,
"blockId": "defb134b-ca00-4e16-afa0-639c6dc0c5fe"
},
{
"name": "second block",
"parentName": "first block",
"blockId": "903f0435-d638-475e-bbe9-53b5664a22a8"
}
]
Response
The response is an array of the workflow tasks.
See response example
{
"error": null,
"data": [
{
"id": "7289644c-2ad8-4b2c-a3c3-e01996723b60",
"displayId": "7289644c",
"createdAt": "2020-02-09T20:32:00.383Z",
"updatedAt": "2020-02-09T20:32:00.383Z",
"createdBy": {
"id": "71d199bf-b434-48d6-b63d-0fb80cee3c1e",
"type": "API_KEY"
},
"updatedBy": {
"id": "71d199bf-b434-48d6-b63d-0fb80cee3c1e",
"type": "API_KEY"
},
"name": "first block",
"parentsIds": [],
"blockName": "oneatlas-pleiades-fullscene",
"blockVersionTag": "2.5.2",
"block": {
"id": "defb134b-ca00-4e16-afa0-639c6dc0c5fe",
"createdAt": "2019-09-09T15:00:45.418Z",
"updatedAt": "2021-06-21T09:55:00.129Z",
"createdBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"updatedBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"name": "oneatlas-pleiades-fullscene",
"displayName": "Pléiades Reflectance (Download)",
"description": "Pléiades imagery in its original DIMAP format. RGB, NIR (2 m) and panchromatic (0.5 m) bands with 12 bits.",
"containerUrl": "registry.up42.com/marketplace/oneatlas-pleiades-fullscene:xadbCCUH6eqruNJfS4HfcEyneJliUCsojG5Xs9K0",
"inputCapabilities": [],
"outputCapabilities": [],
"provider": "OneAtlas",
"providerWebsite": "https://oneatlas.airbus.com/",
"providerLogoUrl": "https://metadata.up42.com/defb134b-ca00-4e16-afa0-639c6dc0c5fe/Airbus_company_logo1576514591017.jpeg",
"tags": [
"Oil, Gas, Minerals, and Energy",
"Maritime",
"Optical",
"Transportation",
"Infrastructure and Utilities",
"Satellite",
"Insurance and Financial Services",
"Environmental Protection",
"Global",
"Land Use and Management",
"High Revisit",
"Real Estate",
"Agriculture"
],
"isPublic": true,
"isPublicVersion": true,
"isValid": true,
"isRestricted": false,
"isAccessGranted": true,
"isCreditPurchaseRequired": true,
"isLimitStreamingDataAccess": false,
"parameters": {
"ids": {
"type": "array",
"default": null
},
"bbox": {
"type": "array",
"default": null
},
"time": {
"type": "dateRange",
"default": "2018-01-01T00:00:00+00:00/2020-12-31T23:59:59+00:00"
},
"limit": {
"type": "integer",
"default": 1,
"maximum": 500,
"minimum": 1
},
"contains": {
"type": "geometry"
},
"asset_ids": {
"type": "array",
"default": null
},
"intersects": {
"type": "geometry"
},
"time_series": {
"type": "array",
"default": null
},
"max_cloud_cover": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 0
}
},
"type": "DATA",
"isDryRunSupported": true,
"version": "2.5.2",
"metadata": {
"overview": "Pléiades 1A/1B are very-high resolution twin satellites offering 0.5m resolution products. For more information about this data, please check the block's [documentation](https://docs.up42.com/up42-blocks/data/pleiades-download.html) or see the [provider website](https://oneatlas.airbus.com/).",
"termsAndConditionsUrl": "https://metadata.up42.com/OneAtlas/r13117_9_eula-pleiades-vuk-october2017.pdf",
"blockThumbnailUrl": "https://metadata.up42.com/OneAtlas/Pleiades_HR_AOI/0_Pleiades_1A-1B_Avatar.jpg",
"pricingStrategy": {
"id": "ec5be5e5-dbc7-4949-b38a-4fb85e2ecbe4",
"displayId": "ec5be5e5",
"createdAt": "2020-02-04T09:55:00.118Z",
"updatedAt": "2020-02-04T09:55:00.118Z",
"createdBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"updatedBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"type": "SQUARE_KM_OUTPUT",
"credits": 1000
},
"blockPricingStrategy": null,
"blockMarketplaceSampleData": [
{
"id": "185a8f86-791b-4a3d-95a3-a2d5ccd6f935",
"displayId": "185a8f86",
"createdAt": "2020-02-04T09:55:00.120Z",
"updatedAt": "2020-02-04T09:55:00.120Z",
"createdBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"updatedBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"value": "https://metadata.up42.com/OneAtlas/Pleiades_HR_AOI/Pleiades_1A-1B_China_State_of_Jin.jpg",
"type": "IMAGE"
},
{
"id": "6643110f-cdc6-4a67-8d0c-178c16a0e042",
"displayId": "6643110f",
"createdAt": "2020-02-04T09:55:00.123Z",
"updatedAt": "2020-02-04T09:55:00.123Z",
"createdBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"updatedBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"value": "https://metadata.up42.com/OneAtlas/Pleiades_HR_AOI/Pleiades_1A-1B_Egypt_Cairo.jpg",
"type": "IMAGE"
},
{
"id": "8101012a-2d0b-407b-a8cf-9054dfb8b060",
"displayId": "8101012a",
"createdAt": "2020-02-04T09:55:00.125Z",
"updatedAt": "2020-02-04T09:55:00.125Z",
"createdBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"updatedBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"value": "https://metadata.up42.com/OneAtlas/Pleiades_HR_AOI/Pleiades_1A-1B_French_Polynesia_Tupai_Atoll.jpg",
"type": "IMAGE"
},
{
"id": "5e553d84-78f0-49b5-8033-a1ecac93cadb",
"displayId": "5e553d84",
"createdAt": "2020-02-04T09:55:00.126Z",
"updatedAt": "2020-02-04T09:55:00.126Z",
"createdBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"updatedBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"value": "https://metadata.up42.com/OneAtlas/Pleiades_HR_AOI/Pleiades_1A-1B_Japan_Cycle_Tree.jpg",
"type": "IMAGE"
},
{
"id": "b26571d1-95fd-4ab2-a82e-f75a1fed733d",
"displayId": "b26571d1",
"createdAt": "2020-02-04T09:55:00.127Z",
"updatedAt": "2020-02-04T09:55:00.127Z",
"createdBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"updatedBy": {
"id": "eff16ad8-7fc3-46c7-b17b-952d7cb14afe",
"type": "USER"
},
"value": "https://metadata.up42.com/OneAtlas/Pleiades_HR_AOI/Pleiades_1A-1B_US_Los_Angeles.jpg",
"type": "IMAGE"
}
]
},
"machineName": "SMALL",
"manifestVersion": 2,
"capabilities": {
"input": {},
"output": {
"raster": {
"up42_standard": {
"bands": ["red", "green", "blue", "nir", "pan"],
"dtype": "uint16",
"format": "DIMAP",
"sensor": "Pleiades",
"resolution": 0.5,
"processing_level": "l2"
}
}
}
}
},
"environment": null
}
]
}
Get compatible blocks in a workflow
To get a list of blocks that are compatible with a workflow task, call the /projects/{project_id}/workflows/{workflow_id}/compatible-blocks with your project ID and workflow ID as path parameters.
If you don't submit any parent or child tasks in query parameters, you'll get a list of all blocks that have empty input capabilities.
Request
GET /projects/{project_id}/workflows/{workflow_id}/compatible-blocks HTTP/1.1
Host: api.up42.com
Authorization: Bearer {token}
Query parameter | Overview |
---|---|
parentTaskName | string Use to get a list of blocks that can be added to a workflow after the task with this name. |
childTaskName | string Use to get a list of blocks that can be added to a workflow before the task with this name. |
Response
See response example
{
"error": null,
"data": {
"blocks": [
{
"blockId": "c94bb4cd-8ee2-40df-ba76-d332b8f48c6a",
"name": "data-conversion-dimap",
"versionTag": "1.4.3"
}
]
}
}
Parameter | Overview |
---|---|
data.blocks.blockId | string The ID of the block compatible with the workflow task. |
data.blocks.name | string The name of the block compatible with the workflow task. |
data.blocks.versionTag | string The version of the block compatible with the workflow task. |
Troubleshooting
How many blocks can I add to a workflow?
You can add one data block and up to five processing blocks to a workflow.