Dataset Handler Service v1.0.0

Validation/transformation service for user dataset uploads.

link

Resources

get /api

 

Get API documentation HTML document.

curl -X GET \
  undefined/api

200 OK chevron_right expand_more

text/html

text/html

get /config

 

Prints out the current server configuration.

curl -X GET \
  undefined/config

200 OK chevron_right expand_more

OptionsResponse OptionsResponse

application/json

Success full options printout

Additional properties: Yes

Inherits: object

ParameterTypeDescription
serviceName*string

Configured name of the service

port*integer

HTTP port the server is listening on

Min. value: 80

Max. value: 65535

configPath*string

Path to the server configuration file on the host filesystem

commands*array

List of configured commands

commands[]object

Additional properties: Yes

commands[].command*string

The shell command the server will call

commands[].arguments*array

Arguments the server will pass to the configured command.

commands[].arguments[]string

Optionally templated input argument the server will pass to the configured command.

get /health

 

Current status/stats about the the HTTP service.

curl -X GET \
  undefined/health

200 OK chevron_right expand_more

HealthResponse HealthResponse

application/json

Successful server status lookup.

Additional properties: Yes

Inherits: object

ParameterTypeDescription
status*string
Enum:
  • healthy
  • unhealthy
version*string
stats*object

Additional properties: Yes

stats.byStatus*object

Request count by HTTP response status.

Additional properties: Yes

stats.byStatus.//*integer
stats.avgSize*integer

Average User Dataset payload size.

stats.avgDuration*string

Average User Dataset processing time.

stats.largest*integer

Historical largest User Dataset processed size in bytes.

stats.longest*string

Historical longest run encountered for processing a User Dataset.

500 Internal Server Error chevron_right expand_more

500 Response ServerError

application/json

Internal server error.

Discriminator: status

Discriminator value: server-error

Inherits: ErrorResponse

ParameterTypeDescription
status*string
message*string
requestId*string

Response Body

{
  "status": "server-error",
  "message": "Dataset handler connection lost",
  "requestId": "b296c3d9-4032-41b1-906e-c97ccfc447e3"
}

get /metrics

 

Prometheus metrics readout for the service.

curl -X GET \
  undefined/metrics

200 OK chevron_right expand_more

text/plain

text/plain

put /job/{job-id}

 

Parameters chevron_right expand_more

ParameterTypeDescription
Path
job-id*string

Unique identifier for the job being created. Assigned by the calling service. This ID will be used to reference the created job for all subsequent, job-specific requests.

curl -X PUT \
  -H "Content-type: application/json"
  -d @body.json \
  undefined/job/{job-id}

Request Body chevron_right expand_more

MetadatPutBody MetadatPutBody

application/json

Additional properties: Yes

Inherits: object

ParameterTypeDescription
projects*array

Projects in which this User Dataset should be available for install after processing.

Unique items: Yes

projects[]string
Enum:
  • AmoebaDB
  • ClinEpiDB
  • CryptoDB
  • FungiDB
  • GiardiaDB
  • HostDB
  • MicrobiomeDB
  • MicrosporidiaDB
  • OrthoMCL
  • PiroplasmaDB
  • PlasmoDB
  • SchistoDB
  • ToxoDB
  • TrichDB
  • TritrypDB
  • VectorBase
  • VEuPathDB

Inherits: ProjectEnum

owner*integer

WDK User ID of the user submitting this User Dataset for processing.

name*string

Name of the dataset.

Min. length: 3

descriptionstring

Optional description of the dataset.

summarystring

Optional dataset summary.

originstring

Optional (until service is called from Galaxy) dataset origin (galaxy or direct-upload)

Enum:
  • galaxy
  • direct-upload

Inherits: DatasetOrigin

handlerParamsobject

Optional handler-specific parameters that can be injected in Handler CLI call

204 No Content chevron_right expand_more

Job accepted

400 Bad Request chevron_right expand_more

400 Response BadRequestError

application/json

Unusable request error

Discriminator: status

Discriminator value: bad-request

Inherits: ErrorResponse

ParameterTypeDescription
status*string
message*string

Response Body

{
  "status": "bad-request",
  "message": "malformed JSON"
}

422 Unprocessable Entity chevron_right expand_more

422 Response InvalidInputError

application/json

Parsable but invalid request input.

Discriminator: status

Discriminator value: invalid-input

Inherits: ErrorResponse

ParameterTypeDescription
status*string
message*string
errors*object
errors.general*array
errors.general[]string
errors.byKey*object

Additional properties: Yes

errors.byKey.//*string

Response Body

{
  "status": "invalid-input",
  "message": "json validation failed",
  "errors": {
    "general": [],
    "byKey": {
      "datasetName": "Dataset name is required"
    }
  }
}

500 Internal Server Error chevron_right expand_more

500 Response ServerError

application/json

Internal server error.

Discriminator: status

Discriminator value: server-error

Inherits: ErrorResponse

ParameterTypeDescription
status*string
message*string
requestId*string

Response Body

{
  "status": "server-error",
  "message": "Dataset handler connection lost",
  "requestId": "b296c3d9-4032-41b1-906e-c97ccfc447e3"
}

post /job/{job-id}

 

Parameters chevron_right expand_more

ParameterTypeDescription
Path
job-id*string

Unique identifier for the job being created. Assigned by the calling service. This ID will be used to reference the created job for all subsequent, job-specific requests.

curl -X POST \
  -H "Content-type: application/binary"
  -d @file \
  undefined/job/{job-id}

Request Body chevron_right expand_more

application/binary

application/binary

Packaged dataset upload file. Max 500Mb.

Max. length: 524288000

Request Body

zip

dataset.zip

tar

dataset.tar.gz

tgz

dataset.tgz

200 OK chevron_right expand_more

application/binary

application/binary

User Dataset processing completed successfully. Returns the output from the internal script suite as a packaged tar file ready for upload to iRODS.

Response Body

dataset.tgz

400 Bad Request chevron_right expand_more

400 Response BadRequestError

application/json

Invalid request input. Possible causes are:

  1. No Content-Type header
  2. No Content-Length header
  3. Unsupported Content-Type
  4. Payload too large
  5. Incorrect payload format

Discriminator: status

Discriminator value: bad-request

Inherits: ErrorResponse

ParameterTypeDescription
status*string
message*string

Response Body

{
  "status": "bad-request",
  "message": "malformed JSON"
}

404 Not Found chevron_right expand_more

404 Response NotFoundError

application/json

Requested resource not found

Discriminator: status

Discriminator value: not-found

Inherits: ErrorResponse

ParameterTypeDescription
status*string
message*string

Response Body

{
  "status": "not-found",
  "message": "No job found with the given job-id"
}

500 Internal Server Error chevron_right expand_more

500 Response ServerError

application/json

Internal server error.

Discriminator: status

Discriminator value: server-error

Inherits: ErrorResponse

ParameterTypeDescription
status*string
message*string
requestId*string

Response Body

{
  "status": "server-error",
  "message": "Dataset handler connection lost",
  "requestId": "b296c3d9-4032-41b1-906e-c97ccfc447e3"
}

get /job/{job-id}/status

 

Fetch the current status of the User Dataset processing.

Parameters chevron_right expand_more

ParameterTypeDescription
Path
job-id*string

Unique identifier for the job being created. Assigned by the calling service. This ID will be used to reference the created job for all subsequent, job-specific requests.

curl -X GET \
  undefined/job/{job-id}/status

200 OK chevron_right expand_more

User Dataset processing status data.

404 Not Found chevron_right expand_more

404 Response NotFoundError

application/json

Requested resource not found

Discriminator: status

Discriminator value: not-found

Inherits: ErrorResponse

ParameterTypeDescription
status*string
message*string

Response Body

{
  "status": "not-found",
  "message": "No job found with the given job-id"
}

500 Internal Server Error chevron_right expand_more

500 Response ServerError

application/json

Internal server error.

Discriminator: status

Discriminator value: server-error

Inherits: ErrorResponse

ParameterTypeDescription
status*string
message*string
requestId*string

Response Body

{
  "status": "server-error",
  "message": "Dataset handler connection lost",
  "requestId": "b296c3d9-4032-41b1-906e-c97ccfc447e3"
}

Security Schemes

Types

Type ErrorResponse (object)

ErrorResponse

Generic error response

Discriminator: status

Inherits: object

Model

ParameterTypeDescription
status*string
message*string

Type BadRequestError (object)

400 Response

Unusable request error

Discriminator: status

Discriminator value: bad-request

Inherits: ErrorResponse

Model

ParameterTypeDescription
status*string
message*string

Examples

{
  "status": "bad-request",
  "message": "malformed JSON"
}

Type NotFoundError (object)

404 Response

Requested resource not found

Discriminator: status

Discriminator value: not-found

Inherits: ErrorResponse

Model

ParameterTypeDescription
status*string
message*string

Examples

{
  "status": "not-found",
  "message": "No job found with the given job-id"
}

Type InvalidInputError (object)

422 Response

Parsable but invalid request input.

Discriminator: status

Discriminator value: invalid-input

Inherits: ErrorResponse

Model

ParameterTypeDescription
status*string
message*string
errors*object
errors.general*array
errors.general[]string
errors.byKey*object

Additional properties: Yes

errors.byKey.//*string

Examples

{
  "status": "invalid-input",
  "message": "json validation failed",
  "errors": {
    "general": [],
    "byKey": {
      "datasetName": "Dataset name is required"
    }
  }
}

Type ServerError (object)

500 Response

Internal server error.

Discriminator: status

Discriminator value: server-error

Inherits: ErrorResponse

Model

ParameterTypeDescription
status*string
message*string
requestId*string

Examples

{
  "status": "server-error",
  "message": "Dataset handler connection lost",
  "requestId": "b296c3d9-4032-41b1-906e-c97ccfc447e3"
}

Type HealthResponse (object)

HealthResponse

Details about the server's current status.

Additional properties: Yes

Inherits: object

Model

ParameterTypeDescription
status*string
Enum:
  • healthy
  • unhealthy
version*string
stats*object

Additional properties: Yes

stats.byStatus*object

Request count by HTTP response status.

Additional properties: Yes

stats.byStatus.//*integer
stats.avgSize*integer

Average User Dataset payload size.

stats.avgDuration*string

Average User Dataset processing time.

stats.largest*integer

Historical largest User Dataset processed size in bytes.

stats.longest*string

Historical longest run encountered for processing a User Dataset.

Type OptionsResponse (object)

OptionsResponse

Additional properties: Yes

Inherits: object

Model

ParameterTypeDescription
serviceName*string

Configured name of the service

port*integer

HTTP port the server is listening on

Min. value: 80

Max. value: 65535

configPath*string

Path to the server configuration file on the host filesystem

commands*array

List of configured commands

commands[]object

Additional properties: Yes

commands[].command*string

The shell command the server will call

commands[].arguments*array

Arguments the server will pass to the configured command.

commands[].arguments[]string

Optionally templated input argument the server will pass to the configured command.

Type MetadatPutBody (object)

MetadatPutBody

Additional properties: Yes

Inherits: object

Model

ParameterTypeDescription
projects*array

Projects in which this User Dataset should be available for install after processing.

Unique items: Yes

projects[]string
Enum:
  • AmoebaDB
  • ClinEpiDB
  • CryptoDB
  • FungiDB
  • GiardiaDB
  • HostDB
  • MicrobiomeDB
  • MicrosporidiaDB
  • OrthoMCL
  • PiroplasmaDB
  • PlasmoDB
  • SchistoDB
  • ToxoDB
  • TrichDB
  • TritrypDB
  • VectorBase
  • VEuPathDB

Inherits: ProjectEnum

owner*integer

WDK User ID of the user submitting this User Dataset for processing.

name*string

Name of the dataset.

Min. length: 3

descriptionstring

Optional description of the dataset.

summarystring

Optional dataset summary.

originstring

Optional (until service is called from Galaxy) dataset origin (galaxy or direct-upload)

Enum:
  • galaxy
  • direct-upload

Inherits: DatasetOrigin

handlerParamsobject

Optional handler-specific parameters that can be injected in Handler CLI call

Type DatasetOrigin (string)

DatasetOrigin
Enum:
  • galaxy
  • direct-upload

Inherits: string

Type ProjectEnum (string)

ProjectEnum
Enum:
  • AmoebaDB
  • ClinEpiDB
  • CryptoDB
  • FungiDB
  • GiardiaDB
  • HostDB
  • MicrobiomeDB
  • MicrosporidiaDB
  • OrthoMCL
  • PiroplasmaDB
  • PlasmoDB
  • SchistoDB
  • ToxoDB
  • TrichDB
  • TritrypDB
  • VectorBase
  • VEuPathDB

Inherits: string

Type StatusResponse (object)

StatusResponse

Additional properties: Yes

Inherits: object

Model

ParameterTypeDescription
starteddatetime
duration*string

Time it took to process the dataset.

userId*integer
jobId*string
status*string
projects*array
projects[] ProjectEnumstring
Enum:
  • AmoebaDB
  • ClinEpiDB
  • CryptoDB
  • FungiDB
  • GiardiaDB
  • HostDB
  • MicrobiomeDB
  • MicrosporidiaDB
  • OrthoMCL
  • PiroplasmaDB
  • PlasmoDB
  • SchistoDB
  • ToxoDB
  • TrichDB
  • TritrypDB
  • VectorBase
  • VEuPathDB

Inherits: string

size*integer