The radixPreflight API is a REST-JSON API acording the OpenAPI specification. Every endpoint response with a application/json
content-type.
See bottom if this site for a version history
radixPreflight has the following features
if not noted otherwise, the following reponses are returned
HTTP Status Code | Reason | Response Model |
---|---|---|
200 | OK | JSON |
401 | Unauthorized | JSON |
404 | not found | JSON |
500 | Internal server error | JSON |
900 | pdfToolbox general error | JSON |
904 | pdfToolbox can't open file error | JSON |
905 | pdfToolbox file is encrypted error | JSON |
906 | pdfToolbox can't save file error | JSON |
907 | pdfToolbox file is damaged error | JSON |
942 | pdfToolbox timeout error | JSON |
radixPreflight API collection V1
For testing you also need a postman environment. It will provided to gether with your login credentials per eMail.
Except the Customers.login call, every API calls require an authentication using an AccessToken. When generated, the AccessToken stays valid as long as another login call happens within 2 weeks after the creation. When a login happens within that time, the TTL attribute is reset to another 2 weeks.
This AccessToken has to be defined as either Authorization key in the header or as request parameter where key = access_token
Only the Admin user can create new users.
The AccessToken can be retrieved by performing a login call. The AccessToken is returned as object id of the body response.
POST https://ppadev.calibrate.at/api/Customers
BODY application/json
Request Body
{
"username": "calibrate",
"password": "••••••••••",
"email" : "office@calibrate.at"
}
Response Body
{
"username": "calibrate",
"email": "office@calibrate.at",
"id": "5bbe09c4bc5bf80052231751"
}
HTTP Status Code | Reason | Response Model |
---|---|---|
422 | ValidationError | JSON |
The AccessToken can be retrieved by performing a login call. The AccessToken is returned as object id of the body response.
POST https://ppadev.calibrate.at/api/Customers/login
BODY application/json
Request Body
{
"username": "$user",
"password": "$password"
}
Response Body
{
"id": "GxGXCwtZeFgk8jA03tF2CAmAdFBWBqQYJalhsep5HXYnJbr6NrmM0VvHCSofC6iH",
"ttl": 1209600,
"created": "2018-10-10T13:28:57.056Z",
"userId": "5b45aa75b9a54d00465f2739"
}
This endpoint allows to change the password of an existing user.
POST https://ppadev.calibrate.at/api/Customers/change-password
BODY x-www-form-urlencoded
Request Parameter
key | value |
---|---|
oldPassword | $password |
newPassword | $newPassword |
Response Body
<h1>Password changed successfully</h1>
<p>Please login again with new password</p>
<a href="/">Log in</a>
HTTP Status Code | Reason | Response Model |
---|---|---|
200 | OK | HTML |
Resources are needed when creating a new Task.
Resources define files that are either processed directly (like print data files) or are needed to process other files (like preflight profiles). Resources are defined in the topmost level of a task object and are then referenced from within the processes. The list of resources get appended with every new file that is generated by calibrateFlow.
Object model
{
"resourceId": "inputfile",
"uri": "https://s3.eu-central-1.amazonaws.com/calibrateflow-demo/Testfiles/Flyer_A4.pdf",
"direction": "input",
"usage": "original",
"pathType" : "file"
"auth": {
"provider": {
"type": "s3",
"accessKey": "AKIAIWZDAU3CRI4LWVNQ",
"secretKey": "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"
}
}
}
property | values | required |
---|---|---|
resourceId | unique ID withing one task, arbitrary names, needed as reference | x |
direction | either input or output | |
pathType | either file or folder - set pathType to folder if the resource defines the destination folder for all generated files | |
usage | one of original, report, other or processed. All uploaded files other than the files that shall get process shall get defined es other | |
auth | optional, required if a file needs to get pulled from a different S3 instance when using a different access key than defined for this installation | |
uri | see table below | x |
default values are bold
uri types
type | format | example | comment |
---|---|---|---|
http | http://<host>/<pathname> | https://www.dropbox.com/s/vx28q0zbjwniebf/HHR_1.pdf?dl=1 | currently only for download |
https | https://<host>/<pathname> | https://s3.eu-central-1.amazonaws.com/calibrateflow-demo/calibrate/Testdatei_17.pdf | currently only for download |
s3 | s3://<bucket>/<key> | s3://calibrateflow-demo/calibrate/Testdatei_17.pdf | s3 credentials have to be provided (in .env file) |
formKey | formKey://<postKey> | formKey://postKey001 | used in byUpload endpoints to defined the key of the uloaded file in the form-data request |
ppaId | ppaId://<container>/<name> | ppaId://5b645b38f918e782c901452e/360192ca-bafb-435a-8708-751e9a81c567.pdf | use files that are already stored in the internal storage of calibrateFlow |
generated files
If new files got generated by a process, they are added to the resources ARRAY with the following addition properties:
property | comment |
---|---|
originalFilename | name of the file before it was renamed to the unique name |
direction | output, as this is a new file |
pathType | file |
mimeType | mime type of the resulting file. E.g. image/png or application/pdf |
usage | either processed for processing results or report |
internalUrl | download link to file inside the calibrateFlow storage |
destinationUrl | defines the destiantion URL if the file was saved to an external storage |
publicDestinationUrl | defines a public URL if the destination storage systems has support for such a link |
uri not accessible
If a defined file is not accessible, the call will return with code 404 and an error object.
Example of error, where the S3 input file is not accessible:
{
"error": {
"statusCode": 404,
"name": "S3ResourceError",
"message": "The specified key does not exist. Affected resource uri: https://s3.eu-central-1.amazonaws.com/calibrateflow-demo/Testfiles/Flyer_A4.pd",
"data": {
"error": {
"message": "The specified key does not exist.",
"code": "NoSuchKey",
"region": null,
"time": "2018-10-11T11:16:38.798Z",
"requestId": "CCAED92A6BBC33FD",
"extendedRequestId": "F+s0Ww84v2gqP8V33jZf3176JAqsveImiVPRhUc3RiiknhV2LDmjc1NV/CitGZ1t2wd2AY/qy1Q=",
"statusCode": 404,
"retryable": false,
"retryDelay": 17.252557578468842
},
"uri": "https://s3.eu-central-1.amazonaws.com/calibrateflow-demo/Testfiles/Flyer_A4.pd"
},
"stack": "S3ResourceError: The specified key does not exist. Affected resource uri: https://s3.eu-central-1.amazonaws.com/calibrateflow-demo/Testfiles/Flyer_A4.pd\n at s3Utils.getFileFromS3.then.catch (/root/node/ppa/app/common/models/helpers/download-utils.js:120:19)\n at tryCatcher (/root/node/ppa/app/node_modules/bluebird/js/release/util.js:16:23)\n at Promise._settlePromiseFromHandler (/root/node/ppa/app/node_modules/bluebird/js/release/promise.js:512:31)\n at Promise._settlePromise (/root/node/ppa/app/node_modules/bluebird/js/release/promise.js:569:18)\n at Promise._settlePromise0 (/root/node/ppa/app/node_modules/bluebird/js/release/promise.js:614:10)\n at Promise._settlePromises (/root/node/ppa/app/node_modules/bluebird/js/release/promise.js:690:18)\n at _drainQueueStep (/root/node/ppa/app/node_modules/bluebird/js/release/async.js:138:12)\n at _drainQueue (/root/node/ppa/app/node_modules/bluebird/js/release/async.js:131:9)\n at Async._drainQueues (/root/node/ppa/app/node_modules/bluebird/js/release/async.js:147:5)\n at Immediate.Async.drainQueues (/root/node/ppa/app/node_modules/bluebird/js/release/async.js:17:14)\n at Immediate.args.(anonymous function) [as _onImmediate] (/usr/local/lib/node_modules/pm2/node_modules/event-loop-inspector/index.js:138:29)\n at runCallback (timers.js:696:18)\n at tryOnImmediate (timers.js:667:5)\n at processImmediate (timers.js:649:5)\n at process.topLevelDomainCallback (domain.js:121:23)"
}
}
some processes need additional files like .kfpx profiles or a quickcheck config. These have to be defined using this fileRef object model.
Some files that are present on the calibrateFlow instance inside either the common folder or user folder are defined via the properties base and name. Files in these folder must be uploaded using sFTP up front. Files in the common folder can only get uploaded by calibrate staff.
Example
"configPath": {"base": "$common", "name": "quickchecks/all.cfg"}
property | values | required |
---|---|---|
base | either $common or $user - base path | |
name | subpath and name of the file, relative to base | |
resourceRef | resourceId of file to be used |
either base and name must be defined, or resourceRef
Uploaded files and created files are stored in a container. This container gets created automatically. When a task is done, the files can get downloaded and deleted from the container in various ways. A client should delete a container when all files are loaded and the files are no longer needed on calibrateFlow. Old containers will get deleted after 2 weeks automatically.
A file can get downloaded by using the https link to the file in the final task response.
Example:
"internalUrl": "https://ppadev.calibrate.at/api/Containers/5bbf217ef7660500506aa793/download/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_1.png"
This endpoint downloads all or selected files from a container. The result is a zipped file.
GET https://ppadev.calibrate.at/api/Containers/:id/downloadArchive/{files}
BODY x-www-form-urlencoded
Request Parameter
key | value | comment |
---|---|---|
keep | either true or false | defines if files shall be kept in storage of calibrateFlow after downloading |
https://ppadev.calibrate.at/api/Containers/5aa9d6afce74050031b44845/downloadArchive
https://ppadev.calibrate.at/api/Containers/5aa9d6afce74050031b44845/downloadArchive/sample.pdf,sample_1.png?keep=true
if no files are defind, all files of a container will get zipped and downloaded.
This endpoint deletes a container including all files
DEL https://ppadev.calibrate.at/api/Containers/:id
BODY x-www-form-urlencoded
A Task defines 1 or more processes. A process performs an operation that is applied to a resource. Currently a process is limited to operations performed by callas pdfToolbox.
The timeout for every process is 600 seconds per default. This timeout can only be changed by per installation. However, it is possible to set a lower timeout per process
Object model
{
"name": "profile", // defines the type of process to be performed
"resourceRefs": [
// list of resource Ids
],
"data" : {
//process data, depending on the name property
"variables": [
// optional, ARRAY of varibales defined as OBJECT using {"key":"value"}
],
"options": [
// optional, ARRAY of process options defined as STRING
],
"arguments": [
// optional, ARRAY of process arguments defined as OBJECT using {"argument":"value"}
]
}
}
property | comment | required |
---|---|---|
name | name of process (pdftoolbox) that shall performed. See list below of supported names | x |
priority | higher values will raise the priority - this moves up the job in the list of queued jobs waiting to get processed | |
resourceRefs | array of files, defined by its resourceId. At least one resource of direction:input must be defined. If a resource with pathType:folder and direction:output is defined, then the results will get stored to that defined destination. | x |
data | the definition of the additional data objects are depending on the used method defined by name | x |
when issued, the following properties get added to every process object:
if a process creates new files, these files are defined inside the result.resourceRefs ARRAY. The value refers to a resourceId in the created resource in task.resources.
Example of response of a process that generated additional files:
{
"name": "saveasimg",
"data": {
"arguments": [
{
"imgformat": "PNG"
}
]
},
"completed": true,
"status": "success",
"result": {
"processTime": 1.068278109,
"error": {
"cli": "",
"input": ""
},
"code": 0,
"output": "ProcessID\t204\t\nSerialization\tTime Limited\t\nSerialization\tExpiration Date\t31.12.2018 00:00\nInput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9.pdf\t\nPages\t5\t\nProgress\t16\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_1.png\t\nProgress\t33\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_2.png\t\nProgress\t50\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_3.png\t\nProgress\t66\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_4.png\t\nProgress\t83\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_5.png\t\nProgress\t100\t%\nFinished\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9.pdf\t\nDuration\t00:01\t\n",
"resourceRefs": [
"5bbf2180f7660500506aa795",
"5bbf2180f7660500506aa796",
"5bbf2180f7660500506aa797",
"5bbf2180f7660500506aa798",
"5bbf2180f7660500506aa799"
]
},
"resourceRefs": [
"inputfile",
"outputfile"
],
"id": "5bbf217ee85e930050ada462",
"taskId": "5bbf217ee85e930050ada461"
}
name | result | comment | data object |
---|---|---|---|
saveasimg | one or more files | perform the pdfToolbox action saveasimg. | define the saveAsImg options using the options and arguments ARRAY (see callas pdfToolbox reference) |
profile | no, one or more files | run a .kfpx profile and create reports (optional) | reports - ARRAY of report, profilePath - fileRef |
quickcheck | quickcheck json | perform the pdfToolbox action quickcheck | configPath - fileRef |
splitpdf | one or more files | perform the pdfToolbox action splitpdf | options and arguments |
mergepdf | one file | perform the pdfToolbox action mergepdf. Defined multiple input resources of type=original to merge them to one file. The sequence of these resources defined as merge sequence. | options and arguments |
name | comment |
---|---|
noprogress | no output progess information in final result |
uncompressimg | when running a profile, uncompress images to get the used list of separations, otherwise a CMYK image will always use all four separations (needs extra processing time) |
incremental | performs an incremental save instead of a full save if possible |
novariables | do not list used variables in final result (recommended) |
key | comment |
---|---|
timeout | defines the time when pdfToolbox shall stop processing a file and raise a timeout error (max timeout is defined per installation) |
openpassword | open password for secured files |
definition to request the generation of pdfToolbox reports when perfroming a .kfpx process. See the callas pdfToolboc reference for all report types and options
Example:
[
{
"type": "TEMPLATE",
"templatePath": {
"base": "$common",
"name": "Overview_STD_calibrate"
}
},
{
"type": "XSLT",
"templatePath": {
"base": "$common",
"name": "calibrate_html.xsl"
},
"name": "$originalName_report.html"
},
{
"type": "XML",
"name": "$originalName_report.xml"
},
{
"type": "COMMENT",
"options": [
"OVERVIEW"
]
}
]
Use the name property to define the name of the final file. Even the file will get a unique name, this name will be defined in the response.
Report types
Report types:
XML: XML report
XSLT=<type>: XSLT report
MASK: PDF image mask report
COMMENT: PDF comment report
LAYER: PDF layer report
INVENTORY: PDF inventory report
COMPARE: PDF compare report
TEMPLATE=<template>: PDF report based on HTML templates
SUMMARY: PDF summary report
VARDUMP: Dumps the app.vars object into JSON
Generate report: (e.g. ERROR,WARNING)
ALWAYS: always (default)
ERROR: if at least one problem with severity
'Error' was found
WARNING: if at least one problem with severity
'Warning' was found
INFO: if at least one problem with severity
'Info' was found
HIT: same as INFO,WARNING,ERROR
NOHIT: if no problem was found
Report options:
OVERVIEW: include overview for PDF reports
OVERVIEW_TEMPLATE=<template>: include overview based on HTML templates for PDF reports
DOWNSAMPLING[#<PPI>]: Downsample images in MASK, LAYER and COMMENT reports to resolution <PPI> (default: 150)
HIDEERROR: Hide all checks with severity 'Error'
HIDEWARNING: Hide all checks with severity 'Warning'
HIDEINFO: Hide all checks with severity 'Info'
LANGUAGE=<lang>: language for the report, will overwrite --language option
XML report options (default: ALL):
ALL: include all resources
NONE: include no resources
IMAGES[#<NUM>]: include first <NUM> images
FONTS[#<NUM>]: include first <NUM> fonts
PAGES[#<NUM>]: include first <NUM> pages
COLORS[#<NUM>]: include first <NUM> color spaces
SHADES[#<NUM>]: include first <NUM> smooth shades
PATTERNS[#<NUM>]: include first <NUM> patterns
FORMXOB[#<NUM>]: include first <NUM> Form XObjects
Ink coverage options:
INKCOV: Include ink coverage for every page
INKCOVRES[#<PPI>]: Resolution for ink coverage calculation (default: 300)
INKCOVBOX[#<PageBox>]: Ignore Objects outside page box (default: CropBox)
PDF layer report options (default: off):
ICCNAMES: create layer for all ICC color space names
SPOTNAMES: create layer for all spot color space names
FONTNAMES: create layer for all font names
PDF inventory report options (default: all):
FONTS: include fonts
COLORS: include colors
SHADES: include smooth shades
PATTERNS: include patterns
IMAGES[#<Treshold>]: include images if # of pixel above threshold
FORMXOB: include Form XObjects
XMP: include XMP
XMPADV: include XMP advanced
A Task is used to trigger any process. A task needs at least one process and one resource is required to perform any meaningful process. Tasks can be sent either using byLink or byUpload. The difference is the way a file is being sent to the sysem. byLink requires access to a resource by defining an acessible URI, like a HTTP link, a S3 link or a PPA link (internal storge). byUpload allows to send files as binary files in the body as form-data fields. In that case, the uri has to define the form-data key used for the uploaded file.
Task object
{
"callback": {
"url": optional callback url,
"processes" : [
// list of processes
]
"resources" : [
// list of resources
]
}
The initial response when generating a task provides a taskId and a status. The taskId is used to query the status of a task. This is useful the check if a task is finished. Alternatively it is possible to provide a callback URL. Then calibrateFlow sends the final response to the callback as JSON in the response body when the status changes to finished
Excempt from a task response
{
"status": "Waiting",
"completed": false,
"result": {},
"container": "5bbe1118550d350052ef671e",
"callback": {
"url": "https://tranquil-brushlands-65918.herokuapp.com/1jsutrp1"
},
"id": "5bbe1118bc5bf00052231754",
…
As long as a task is either waiting or processing, the status reads Waiting and completed is false. Upon completion of a task, the status changes to either error or success and completed changes to true. If a callback URL is defined the final response is sent to the defined endpoint.
Example of a completed task:
{
"status": "success",
"completed": true,
"result": {
"errors": []
},
"container": "5bbf217ef7660500506aa793",
"callback": {
"url": "https://tranquil-brushlands-65918.herokuapp.com/1jsutrp1"
},
"id": "5bbf217ee85e930050ada461",
…
Example of an errored task:
{
"status": "error",
"completed": true,
"result": {
"errors": [
{
"message": "An encrypted PDF file could not be opened for writing",
"name": "PlatformPDFTBProcessFileEncrypted",
"statusCode": 905,
"details": {
"process": {
"id": "5f2c10fcd432ee00558fac85",
"name": "profile"
},
"error": {
"cli": "ProcessID\t129\t\nProfile\t/root/data/common/calibrate masterPreflight.kfpx\t\nInput\t/root/data/5f2c10fc618c780055a5b5bb/open_secured.pdf\t\nDuration\t00:04\t\nError\t1011\tCould not open encrypted file /root/data/5f2c10fc618c780055a5b5bb/open_secured.pdf: 10\t\n",
"input": "/root/data/5f2c10fc618c780055a5b5bb/open_secured.pdf",
"filter": null,
"server": null,
"code": 105
},
"output": null
}
}
]
},
"container": "5bbf3061f7660500506aa79a",
"id": "5bbf3061e85e930050ada46b",
…
In case of errors, status changes to error, completed changes to true and the error ARRAY in the result object gets defined. An error can either be caused by a process, the download or the upload process to an external storage.
Returns a list of all tasks sent by that user.
GET https://ppadev.calibrate.at/api/Tasks
BODY x-www-form-urlencoded
Response Body
[
Array with all avaliable Tasks. An example of one task can be found below.
]
Returns an individual task. Mostly used to check if a task is still running or, if finshed, ended with an error or not.
GET https://ppadev.calibrate.at/api/Tasks/{id}
BODY x-www-form-urlencoded
Response Body
{
"status": "Waiting",
"completed": false,
"result": {},
"container": "5bbe1118550d350052ef671e",
"callback": {
"url": "https://tranquil-brushlands-65918.herokuapp.com/1jsutrp1"
},
"id": "5bbe1118bc5bf00052231754",
"processes": [
{
"name": "saveasimg",
"priority": 234,
"data": {
"arguments": [
{
"imgformat": "PNG"
}
]
},
"completed": false,
"status": "Waiting",
"result": {},
"resourceRefs": [
"inputfile",
"outputfile"
],
"id": "5bbe1118bc5bf00052231755",
"taskId": "5bbe1118bc5bf00052231754"
}
],
"resources": [
{
"resourceId": "inputfile",
"name": "6cbd2c8e-d713-49cc-bb0e-c07b6c01ca62.pdf",
"originalFilename": "Blue_Poster_Original.pdf",
"direction": "input",
"pathType": "file",
"uri": "formKey://file001",
"usage": "original",
"container": "5bbe1118550d350052ef671e",
"mimeType": "application/pdf",
"internalUrl": "https://ppadev.calibrate.at/api/Containers/5bbe1118550d350052ef671e/download/6cbd2c8e-d713-49cc-bb0e-c07b6c01ca62.pdf",
"destinationUrl": "",
"size": 25795550,
"id": "5bbe1118bc5bf00052231756",
"taskId": "5bbe1118bc5bf00052231754"
},
{
"resourceId": "outputfile",
"direction": "output",
"pathType": "folder",
"uri": "s3://calibrateflow-test/generated/",
"usage": "processed",
"container": "5bbe1118550d350052ef671e",
"id": "5bbe1118bc5bf00052231757",
"taskId": "5bbe1118bc5bf00052231754"
}
]
}
Use this endpoint if all resources (files) are defined by a link and are not uploaded by the client.
POST https://ppadev.calibrate.at/api/Tasks/byLink
BODY application/json
Exampe to call quickcheck action:
{
"processes":[
{"name":"quickcheck", "data": {"configPath": {"base": "$common", "name": "quickchecks/all.cfg"}},
"resourceRefs": [
"inputfile"]
}
],
"resources": [
{
"resourceId": "inputfile",
"uri": "s3://calibrateflow-demo/Testfiles/Flyer_A4.pdf",
"direction": "input",
"usage": "original"
}
]
}
Example to run a .kfpx profile and create reports and stored result on S3 storage:
{
"callback": {
"url": "http://customer.callback.at"
},
"resources": [
{
"resourceId": "inputfile",
"uri": "s3://calibrateflow-demo/Testfiles/Flyer_A4.pdf",
"direction": "input",
"usage": "original"
},
{
"resourceId": "outputfile",
"uri": "s3://calibrateflow-test/generated/",
"direction": "output",
"pathType": "folder"
}
],
"processes": [
{
"name": "profile",
"priority": 100,
"resourceRefs": [
"inputfile",
"outputfile"
],
"data": {
"reports": [
{
"type": "TEMPLATE",
"templatePath": {
"base": "$common",
"name": "Overview_STD_calibrate"
},
"name": "$originalName_Übersicht.pdf"
},
{
"type": "XML"
}
],
"variables": [
{
"foo": "bar"
}
],
"options": [
"novariables",
"uncompressimg"
],
"arguments": [
{
"language": "de"
}
],
"profilePath": {
"base": "$common",
"name": "sample.kfpx"
}
}
}
]
}
Use this endpoint if some resources (files) get uploaded by the client.
POST https://ppadev.calibrate.at/api/Tasks/byUpload
BODY form-data
form-data.task JSON payload
form-data.<fileid_1> binary
form-data.<fileid_2> binary
…
Exampe payload to call saveasimage action with one file file001:
{"callback": { "url" : "https://tranquil-brushlands-65918.herokuapp.com/1jsutrp1"},
"processes":[
{"name":"saveasimg", "data": {"arguments": [{"imgformat": "PNG"}]},
"resourceRefs": [
"inputfile"]
}
],
"resources": [
{
"resourceId": "inputfile",
"uri":"formKey://file001",
"direction": "input",
"usage": "original"
}
]
}
When all processes inside a task are finished then the status of a task also gets changed. The status is set to error if any process completes with an error. otherwise it is set to success. If new files got generated, they are added to the resources ARRAY.
Make sure to delete the container after downloading all files.
Example of task with a saveasimg process:
{
"status": "success",
"completed": true,
"result": {
"errors": []
},
"container": "5bbf217ef7660500506aa793",
"callback": {
"url": "https://tranquil-brushlands-65918.herokuapp.com/1jsutrp1"
},
"id": "5bbf217ee85e930050ada461",
"processes": [
{
"name": "saveasimg",
"priority": 234,
"data": {
"arguments": [
{
"imgformat": "PNG"
}
]
},
"completed": true,
"status": "success",
"result": {
"processTime": 1.068278109,
"error": {
"cli": "",
"input": ""
},
"code": 0,
"output": "ProcessID\t204\t\nSerialization\tTime Limited\t\nSerialization\tExpiration Date\t31.12.2018 00:00\nInput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9.pdf\t\nPages\t5\t\nProgress\t16\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_1.png\t\nProgress\t33\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_2.png\t\nProgress\t50\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_3.png\t\nProgress\t66\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_4.png\t\nProgress\t83\t%\nOutput\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_5.png\t\nProgress\t100\t%\nFinished\t/root/data/5bbf217ef7660500506aa793/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9.pdf\t\nDuration\t00:01\t\n",
"resourceRefs": [
"5bbf2180f7660500506aa795",
"5bbf2180f7660500506aa796",
"5bbf2180f7660500506aa797",
"5bbf2180f7660500506aa798",
"5bbf2180f7660500506aa799"
]
},
"resourceRefs": [
"inputfile",
"outputfile"
],
"id": "5bbf217ee85e930050ada462",
"taskId": "5bbf217ee85e930050ada461"
}
],
"resources": [
{
"resourceId": "inputfile",
"name": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9.pdf",
"originalFilename": "sitzposition_berechnung.pdf",
"direction": "input",
"pathType": "file",
"uri": "formKey://file001",
"usage": "original",
"container": "5bbf217ef7660500506aa793",
"mimeType": "application/pdf",
"internalUrl": "https://ppadev.calibrate.at/api/Containers/5bbf217ef7660500506aa793/download/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9.pdf",
"destinationUrl": "",
"size": 1018166,
"id": "5bbf217ee85e930050ada463",
"taskId": "5bbf217ee85e930050ada461"
},
{
"resourceId": "outputfile",
"direction": "output",
"pathType": "folder",
"uri": "s3://calibrateflow-test/generated/",
"usage": "processed",
"container": "5bbf217ef7660500506aa793",
"internalUrl": "https://ppadev.calibrate.at/api/Containers/5bbf217ef7660500506aa793/downloadArchive",
"id": "5bbf217ee85e930050ada464",
"taskId": "5bbf217ee85e930050ada461"
},
{
"resourceId": "5bbf2180f7660500506aa795",
"name": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_1.png",
"originalFilename": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_1.png",
"direction": "output",
"pathType": "file",
"uri": "s3://calibrateflow-test/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_1.png",
"usage": "processed",
"container": "5bbf217ef7660500506aa793",
"mimeType": "image/png",
"internalUrl": "https://ppadev.calibrate.at/api/Containers/5bbf217ef7660500506aa793/download/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_1.png",
"destinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_1.png",
"publicDestinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_1.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ247C7SGH7HD2AXA%2F20181011%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20181011T101008Z&X-Amz-Expires=900&X-Amz-Signature=1f7a073f82d77c6838268a2de727e4a2b410817dc31d6614f5b2b035b13515bb&X-Amz-SignedHeaders=host",
"size": 236073,
"id": "5bbf2180e85e930050ada465",
"taskId": "5bbf217ee85e930050ada461"
},
{
"resourceId": "5bbf2180f7660500506aa796",
"name": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_2.png",
"originalFilename": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_2.png",
"direction": "output",
"pathType": "file",
"uri": "s3://calibrateflow-test/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_2.png",
"usage": "processed",
"container": "5bbf217ef7660500506aa793",
"mimeType": "image/png",
"internalUrl": "https://ppadev.calibrate.at/api/Containers/5bbf217ef7660500506aa793/download/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_2.png",
"destinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_2.png",
"publicDestinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ247C7SGH7HD2AXA%2F20181011%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20181011T101008Z&X-Amz-Expires=900&X-Amz-Signature=fb1a5bec22aa0494b336b4bfb205ba295d7deedcd0d772f1554535faceecf30b&X-Amz-SignedHeaders=host",
"size": 50358,
"id": "5bbf2180e85e930050ada466",
"taskId": "5bbf217ee85e930050ada461"
},
{
"resourceId": "5bbf2180f7660500506aa797",
"name": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_3.png",
"originalFilename": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_3.png",
"direction": "output",
"pathType": "file",
"uri": "s3://calibrateflow-test/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_3.png",
"usage": "processed",
"container": "5bbf217ef7660500506aa793",
"mimeType": "image/png",
"internalUrl": "https://ppadev.calibrate.at/api/Containers/5bbf217ef7660500506aa793/download/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_3.png",
"destinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_3.png",
"publicDestinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_3.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ247C7SGH7HD2AXA%2F20181011%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20181011T101008Z&X-Amz-Expires=900&X-Amz-Signature=1be269e9362adae6ccbbd4212bba2b487e526d183281469dec751305fc696404&X-Amz-SignedHeaders=host",
"size": 283834,
"id": "5bbf2180e85e930050ada467",
"taskId": "5bbf217ee85e930050ada461"
},
{
"resourceId": "5bbf2180f7660500506aa798",
"name": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_4.png",
"originalFilename": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_4.png",
"direction": "output",
"pathType": "file",
"uri": "s3://calibrateflow-test/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_4.png",
"usage": "processed",
"container": "5bbf217ef7660500506aa793",
"mimeType": "image/png",
"internalUrl": "https://ppadev.calibrate.at/api/Containers/5bbf217ef7660500506aa793/download/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_4.png",
"destinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_4.png",
"publicDestinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_4.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ247C7SGH7HD2AXA%2F20181011%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20181011T101008Z&X-Amz-Expires=900&X-Amz-Signature=806351fb291402e69522b6194bc533552b353f7447100865c9b01d1c9c1e2208&X-Amz-SignedHeaders=host",
"size": 127739,
"id": "5bbf2180e85e930050ada468",
"taskId": "5bbf217ee85e930050ada461"
},
{
"resourceId": "5bbf2180f7660500506aa799",
"name": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_5.png",
"originalFilename": "c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_5.png",
"direction": "output",
"pathType": "file",
"uri": "s3://calibrateflow-test/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_5.png",
"usage": "processed",
"container": "5bbf217ef7660500506aa793",
"mimeType": "image/png",
"internalUrl": "https://ppadev.calibrate.at/api/Containers/5bbf217ef7660500506aa793/download/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_5.png",
"destinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_5.png",
"publicDestinationUrl": "https://calibrateflow-test.s3.eu-central-1.amazonaws.com/generated/c43654fd-31f1-412f-a7f1-3d02ab9cc1a9_5.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ247C7SGH7HD2AXA%2F20181011%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20181011T101008Z&X-Amz-Expires=900&X-Amz-Signature=adb9983abd59b8c9e9d31885148f2c5213c64dd2ce2dfb42a1145ca7452616ce&X-Amz-SignedHeaders=host",
"size": 243790,
"id": "5bbf2180e85e930050ada469",
"taskId": "5bbf217ee85e930050ada461"
}
]
}
in case of an error, the occured errors are listed in the errors collection of the result object. Example of an error object:
{
"message": "An encrypted PDF file could not be opened for writing",
"name": "PlatformPDFTBProcessFileEncrypted",
"statusCode": 905,
"details": {
"process": {
"id": "5f2c10fcd432ee00558fac85",
"name": "profile"
},
"error": {
"cli": "ProcessID\t129\t\nProfile\t/root/data/common/calibrate masterPreflight.kfpx\t\nInput\t/root/data/5f2c10fc618c780055a5b5bb/open_secured.pdf\t\nDuration\t00:04\t\nError\t1011\tCould not open encrypted file /root/data/5f2c10fc618c780055a5b5bb/open_secured.pdf: 10\t\n",
"input": "/root/data/5f2c10fc618c780055a5b5bb/open_secured.pdf",
"filter": null,
"server": null,
"code": 105
},
"output": null
}
}
property | type | comment |
---|---|---|
message | string | human readable describes about what triggered the error |
name | enum | unique name for the type of error |
statusCode | integer | status code for the type of error |
details | object | detailed information about the module causing the error with additional information |
status code and coresponding names
code | name |
---|---|
400 | URIFormatUnsupportedError |
401 | RequestAuthorizationError |
401 | RequestAuthenticationError |
404 | ResourceNotFoundError |
404 | S3ResourceError |
404 | S3InvalidCredentialsError |
404 | S3InvalidURIError |
409 | |
413 | |
422 | |
423 | |
500 | |
501 | |
900 | PlatformPDFTBProcessError |
904 | PlatformPDFTBProcessFileCannotopen |
905 | PlatformPDFTBProcessFileEncrypted |
906 | PlatformPDFTBProcessFileCannotsave |
907 | PlatformPDFTBProcessFileDamaged |
942 | PlatformPDFTBProcessTimeout |