mirror of
https://github.com/sartography/cr-connect-workflow.git
synced 2025-02-21 20:28:10 +00:00
2390 lines
67 KiB
YAML
Executable File
2390 lines
67 KiB
YAML
Executable File
openapi: "3.0.2"
|
|
info:
|
|
version: 1.0.0
|
|
title: Workflow Microservice
|
|
license:
|
|
name: MIT
|
|
servers:
|
|
- url: http://localhost:5000/v1.0
|
|
security:
|
|
- jwt: ['secret']
|
|
paths:
|
|
/login:
|
|
get:
|
|
operationId: crc.api.user.login
|
|
summary: In production, logs the user in via SSO. If not in production, logs in as a specific user for testing.
|
|
security: [] # Disable security for this endpoint only.
|
|
parameters:
|
|
- name: uid
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: redirect_url
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
tags:
|
|
- Users
|
|
responses:
|
|
'304':
|
|
description: Redirection to the hosted frontend with an auth_token header.
|
|
|
|
/user:
|
|
parameters:
|
|
- name: admin_impersonate_uid
|
|
in: query
|
|
required: false
|
|
description: For admins, the unique uid of an existing user to impersonate.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.user.get_current_user
|
|
summary: Returns the current user.
|
|
tags:
|
|
- Users
|
|
responses:
|
|
'200':
|
|
description: The currently-authenticated user, or, if the current user is an admin and admin_impersonate_uid is provided, this will be the user with the given uid.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/list_users:
|
|
get:
|
|
operationId: crc.api.user.get_all_users
|
|
security:
|
|
- auth_admin: ['secret']
|
|
summary: Returns a list of all users in the database.
|
|
tags:
|
|
- Users
|
|
responses:
|
|
'200':
|
|
description: All users in the database.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
# /v1.0/document_directory/{study_id}
|
|
/document_directory/{study_id}:
|
|
parameters :
|
|
- name : study_id
|
|
required : true
|
|
in : path
|
|
description : The unique id of a study.
|
|
schema :
|
|
type : integer
|
|
- name : workflow_id
|
|
in : query
|
|
required : false
|
|
schema :
|
|
type : integer
|
|
get:
|
|
operationId: crc.api.document.get_document_directory
|
|
summary: Returns a directory of all files for study in a nested structure
|
|
tags:
|
|
- Document Categories
|
|
responses:
|
|
'200':
|
|
description: All IRB Categories defined in the file document.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DocumentDirectory"
|
|
|
|
# Context-less LDAP Lookup
|
|
/ldap:
|
|
parameters:
|
|
- name: query
|
|
in: query
|
|
required: false
|
|
description: The string to search for in the Value column of the lookup table.
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
description: The total number of records to return, defaults to 10.
|
|
schema:
|
|
type: integer
|
|
|
|
get:
|
|
operationId: crc.api.workflow.lookup_ldap
|
|
summary: Returns a list of LDAP users, with a given query.
|
|
tags:
|
|
- Users
|
|
responses:
|
|
'200':
|
|
description: An array of all LDAP users.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
|
|
# /v1.0/study
|
|
/study:
|
|
get:
|
|
operationId: crc.api.study.user_studies
|
|
summary: Provides a list of studies related to the current user.
|
|
tags:
|
|
- Studies
|
|
responses:
|
|
'200':
|
|
description: An array of studies, ordered by the last modified date.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Study"
|
|
post:
|
|
operationId: crc.api.study.add_study
|
|
summary: Creates a new study with the given parameters.
|
|
tags:
|
|
- Studies
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Study'
|
|
responses:
|
|
'200':
|
|
description: Study created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Study"
|
|
/study/all:
|
|
get:
|
|
operationId: crc.api.study.all_studies
|
|
summary: Provides a list of studies
|
|
tags:
|
|
- Studies
|
|
responses:
|
|
'200':
|
|
description: An array of studies, with submitted files, ordered by the last modified date.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Study"
|
|
/study/{study_id}:
|
|
parameters:
|
|
- name: study_id
|
|
in: path
|
|
required: true
|
|
description: The id of the study for which workflows should be returned.
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
- name: update_status
|
|
in: query
|
|
required: false
|
|
description: If set to true, will synch the study with protocol builder and assure the status of all workflows is up to date (expensive).
|
|
schema:
|
|
type: boolean
|
|
get:
|
|
operationId: crc.api.study.get_study
|
|
summary: Provides a single study
|
|
tags:
|
|
- Studies
|
|
responses:
|
|
'200':
|
|
description: An Study Object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Study"
|
|
delete:
|
|
operationId: crc.api.study.delete_study
|
|
security:
|
|
- auth_admin: ['secret']
|
|
summary: Removes the given study completely.
|
|
tags:
|
|
- Studies
|
|
responses:
|
|
'204':
|
|
description: The study has been removed.
|
|
put:
|
|
operationId: crc.api.study.update_study
|
|
summary: Updates an existing study with the given parameters.
|
|
tags:
|
|
- Studies
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Study'
|
|
responses:
|
|
'200':
|
|
description: Study updated successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Study"
|
|
/study/{study_id}/associates:
|
|
parameters:
|
|
- name: study_id
|
|
in: path
|
|
required: true
|
|
description: The id of the study for which associates should be returned.
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
get:
|
|
operationId: crc.api.study.get_study_associates
|
|
summary: Provides a list of associates for a particular study
|
|
tags:
|
|
- Studies
|
|
responses:
|
|
'200':
|
|
description: list of Study Associate Objects
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/StudyAssociate"
|
|
/study/{study_id}/log:
|
|
parameters:
|
|
- name: study_id
|
|
in: path
|
|
required: true
|
|
description: The id of the study for which logs should be returned.
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
put:
|
|
operationId: crc.api.study.get_logs_for_study
|
|
summary: Provides a list of logged events that occured within a study
|
|
tags:
|
|
- Studies
|
|
requestBody:
|
|
description: Log Pagination Request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PaginatedTaskLog"
|
|
responses:
|
|
'200':
|
|
description: list of Study logs - events that have occured within a study.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TaskLog"
|
|
/workflow-specification:
|
|
get:
|
|
operationId: crc.api.workflow.all_specifications
|
|
summary: Provides a list of workflows specifications that can be added to a study manually. Please note that Protocol Builder will handle this most of the time.
|
|
tags:
|
|
- Workflow Specifications
|
|
parameters :
|
|
- name : libraries
|
|
in : query
|
|
required : false
|
|
description : True if we should return just library schemas
|
|
schema :
|
|
type : boolean
|
|
- name : standalone
|
|
in : query
|
|
required : false
|
|
description : True if we should return just standalone schemas
|
|
schema :
|
|
type : boolean
|
|
responses:
|
|
'200':
|
|
description: An array of workflow specifications
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
post:
|
|
operationId: crc.api.workflow.add_workflow_specification
|
|
summary: Creates a new workflow specification with the given parameters.
|
|
tags:
|
|
- Workflow Specifications
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowSpec'
|
|
responses:
|
|
'200':
|
|
description: Workflow specification created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
|
|
/workflow-specification/{spec_id}/library/{library_id}:
|
|
parameters:
|
|
- name: spec_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing workflow specification.
|
|
schema:
|
|
type: string
|
|
- name: library_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing library specification.
|
|
schema:
|
|
type: string
|
|
|
|
|
|
post:
|
|
operationId: crc.api.workflow.add_workflow_spec_library
|
|
summary: Adds a library to a workflow spec
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'200':
|
|
description: Workflow specification.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
delete:
|
|
operationId: crc.api.workflow.drop_workflow_spec_library
|
|
summary: Delete a library from a workflow
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'200':
|
|
description: Workflow specification.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
|
|
/workflow-specification/{spec_id}:
|
|
parameters:
|
|
- name: spec_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing workflow specification.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.workflow.get_workflow_specification
|
|
summary: Returns a single workflow specification
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'200':
|
|
description: Workflow specification.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
post:
|
|
operationId: crc.api.workflow.get_workflow_from_spec
|
|
summary: Creates a workflow from a workflow spec and returns the workflow
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'200':
|
|
description: Workflow generated successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workflow"
|
|
put:
|
|
operationId: crc.api.workflow.update_workflow_specification
|
|
security:
|
|
- auth_admin: ['secret']
|
|
summary: Modifies an existing workflow specification with the given parameters.
|
|
tags:
|
|
- Workflow Specifications
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowSpec'
|
|
responses:
|
|
'200':
|
|
description: Workflow specification created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
delete:
|
|
operationId: crc.api.workflow.delete_workflow_specification
|
|
security:
|
|
- auth_admin: ['secret']
|
|
summary: Removes an existing workflow specification
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'204':
|
|
description: The workflow specification has been removed.
|
|
/workflow-specification/{spec_id}/reorder:
|
|
parameters:
|
|
- name: spec_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing workflow specification to validate.
|
|
schema:
|
|
type: string
|
|
- name: direction
|
|
in: query
|
|
required: true
|
|
description: The direction we want to move the spec - `up` or `down`
|
|
schema:
|
|
type: string
|
|
example: up
|
|
put:
|
|
operationId: crc.api.workflow.reorder_workflow_specification
|
|
summary: Move the workflow spec up or down in the display order
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'200':
|
|
description: An array of workflow specifications
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
|
|
/workflow-specification/{spec_id}/validate:
|
|
parameters:
|
|
- name: spec_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing workflow specification to validate.
|
|
schema:
|
|
type: string
|
|
- name: study_id
|
|
in: query
|
|
required: false
|
|
description: Optional id of study to test under different scenarios
|
|
schema:
|
|
type: string
|
|
- name: test_until
|
|
in: query
|
|
required: false
|
|
description: Optional name of task to stop validating at
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.workflow.validate_workflow_specification
|
|
summary: Loads and attempts to execute a Workflow Specification, returning a list of errors encountered
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'200':
|
|
description: Workflow specification.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Error"
|
|
/workflow-specification/{spec_id}/file:
|
|
parameters:
|
|
- name: spec_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing workflow specification to validate.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.spec_file.get_files
|
|
summary: Provide a list of workflow spec files for the given workflow_spec_id. IMPORTANT, only includes metadata, not the file content.
|
|
tags:
|
|
- Spec Files
|
|
responses:
|
|
'200':
|
|
description: An array of file descriptions (not the file content)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/File"
|
|
post:
|
|
operationId: crc.api.spec_file.add_file
|
|
summary: Add a new workflow spec file
|
|
tags:
|
|
- Spec Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'200':
|
|
description: Metadata about the uploaded file, but not the file content.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#components/schemas/File"
|
|
/workflow-specification/{spec_id}/file/{file_name}:
|
|
parameters:
|
|
- name: spec_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing workflow specification to validate.
|
|
schema:
|
|
type: string
|
|
- name: file_name
|
|
in: path
|
|
required: true
|
|
description: The id of the spec file
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.spec_file.get_file
|
|
summary: Returns metadata about the file
|
|
tags:
|
|
- Spec Files
|
|
responses:
|
|
'200':
|
|
description: Returns the file information requested.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#components/schemas/File"
|
|
put:
|
|
operationId: crc.api.spec_file.update
|
|
summary: updates the given file to be the primary file and process, if so specified.
|
|
tags:
|
|
- Spec Files
|
|
parameters:
|
|
- name: is_primary
|
|
in: query
|
|
required: true
|
|
description: Whether to make this the primary file for the workflow.
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: Log Pagination Request
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/File'
|
|
responses:
|
|
'200':
|
|
description: Returns the file information.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#components/schemas/File"
|
|
delete:
|
|
operationId: crc.api.spec_file.delete
|
|
summary: Removes an existing workflow spec file.
|
|
tags:
|
|
- Spec Files
|
|
responses:
|
|
'204':
|
|
description: The file was removed.
|
|
/workflow-specification/{spec_id}/file/{file_name}/data:
|
|
parameters:
|
|
- name: spec_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing workflow specification to validate.
|
|
schema:
|
|
type: string
|
|
- name: file_name
|
|
in: path
|
|
required: true
|
|
description: The id of the requested file
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.spec_file.get_data
|
|
summary: Returns only the spec file content
|
|
tags:
|
|
- Spec Files
|
|
responses:
|
|
'200':
|
|
description: Returns the actual spec file
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
put:
|
|
operationId: crc.api.spec_file.update_data
|
|
summary: Update the contents of a spec file
|
|
tags:
|
|
- Spec Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
x-body-name: file
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
required:
|
|
- file
|
|
responses:
|
|
'200':
|
|
description: Returns the updated file model
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
/workflow-specification-category:
|
|
get:
|
|
operationId: crc.api.workflow.list_workflow_spec_categories
|
|
summary: Provides a list of categories that can be added to a workflow spec.
|
|
tags:
|
|
- Workflow Specification Category
|
|
responses:
|
|
'200':
|
|
description: An array of workflow specification categories
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
post:
|
|
operationId: crc.api.workflow.add_workflow_spec_category
|
|
security:
|
|
- auth_admin: ['secret']
|
|
summary: Creates a new workflow spec category with the given parameters.
|
|
tags:
|
|
- Workflow Specification Category
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowSpecCategory'
|
|
responses:
|
|
'200':
|
|
description: Workflow spec category created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
/workflow-specification-category/{cat_id}:
|
|
parameters:
|
|
- name: cat_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing workflow spec category to modify.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.workflow.get_workflow_spec_category
|
|
summary: Returns a single workflow spec category
|
|
tags:
|
|
- Workflow Specification Category
|
|
responses:
|
|
'200':
|
|
description: Workflow spec category.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
put:
|
|
operationId: crc.api.workflow.update_workflow_spec_category
|
|
security:
|
|
- auth_admin: ['secret']
|
|
summary: Modifies an existing workflow spec category with the given parameters.
|
|
tags:
|
|
- Workflow Specification Category
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowSpecCategory'
|
|
responses:
|
|
'200':
|
|
description: Workflow spec category created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
delete:
|
|
operationId: crc.api.workflow.delete_workflow_spec_category
|
|
security:
|
|
- auth_admin: ['secret']
|
|
summary: Removes an existing workflow spec category
|
|
tags:
|
|
- Workflow Specification Category
|
|
responses:
|
|
'204':
|
|
description: The workflow spec category has been removed.
|
|
/workflow-specification-category/{cat_id}/reorder:
|
|
parameters:
|
|
- name: cat_id
|
|
in: path
|
|
required: true
|
|
description: The unique id of an existing workflow spec category to modify.
|
|
schema:
|
|
type: string
|
|
- name: direction
|
|
in: query
|
|
required: true
|
|
description: The direction you want to move the category - `up` or `down`
|
|
schema:
|
|
type: string
|
|
example: up
|
|
put:
|
|
operationId: crc.api.workflow.reorder_workflow_spec_category
|
|
summary: Move the workflow spec category up or down in the display order
|
|
tags:
|
|
- Workflow Specification Category
|
|
responses:
|
|
'200':
|
|
description: An array of workflow spec categories
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
|
|
/file:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: query
|
|
required: false
|
|
description: The unique id of a workflow instance
|
|
schema:
|
|
type: integer
|
|
- name: task_spec_name
|
|
in: query
|
|
required: false
|
|
description: The name of the task spec
|
|
schema:
|
|
type: string
|
|
- name: form_field_key
|
|
in: query
|
|
required: false
|
|
description: The unique key of a workflow task form field. Make sure this matches a document in the irb_documents.xslx reference sheet.
|
|
schema:
|
|
type: string
|
|
- name: study_id
|
|
in: query
|
|
required: false
|
|
description: The study that the files are related to
|
|
schema:
|
|
type: integer
|
|
get:
|
|
operationId: crc.api.file.get_files
|
|
summary: Provides a list of files that match the given parameters (such as a spec id) IMPORTANT, only includes metadata, not the file content.
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'200':
|
|
description: An array of file descriptions (not the file content)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/File"
|
|
|
|
post:
|
|
operationId: crc.api.file.add_file
|
|
summary: Add a new file
|
|
tags:
|
|
- Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'200':
|
|
description: Metadata about the uploaded file, but not the file content.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
/file/{file_id}:
|
|
parameters:
|
|
- name: file_id
|
|
in: path
|
|
required: true
|
|
description: The id of the File requested
|
|
schema:
|
|
type: integer
|
|
get:
|
|
operationId: crc.api.file.get_file_info
|
|
summary: Returns metadata about a file.
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'200':
|
|
description: Returns the file information requested.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
put:
|
|
operationId: crc.api.file.update_file_info
|
|
summary: Updates existing file info with the given parameters.
|
|
tags:
|
|
- Files
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/File'
|
|
responses:
|
|
'200':
|
|
description: File info updated successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
delete:
|
|
operationId: crc.api.file.delete_file
|
|
summary: Removes an existing file.
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'204':
|
|
description: The file has been removed.
|
|
/file/{file_id}/download :
|
|
parameters :
|
|
- name : file_id
|
|
in : path
|
|
required : true
|
|
description : The id of the File requested
|
|
schema :
|
|
type : integer
|
|
- name : auth_token
|
|
in : query
|
|
required : true
|
|
description : User Auth Toeken
|
|
schema :
|
|
type : string
|
|
- name : version
|
|
in : query
|
|
required : false
|
|
description : The version of the file, or none for latest version
|
|
schema :
|
|
type : integer
|
|
get :
|
|
operationId : crc.api.file.get_file_data_link
|
|
summary : Returns only the file contents
|
|
security: []
|
|
tags :
|
|
- Files
|
|
responses :
|
|
'200' :
|
|
description : Returns the actual file
|
|
content :
|
|
application/octet-stream :
|
|
schema :
|
|
type : string
|
|
format : binary
|
|
example : '<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions></bpmn:definitions>'
|
|
/file/{file_id}/data:
|
|
parameters:
|
|
- name: file_id
|
|
in: path
|
|
required: true
|
|
description: The id of the File requested
|
|
schema:
|
|
type: integer
|
|
- name: version
|
|
in: query
|
|
required: false
|
|
description: The version of the file, or none for latest version
|
|
schema:
|
|
type: integer
|
|
get:
|
|
operationId: crc.api.file.get_file_data
|
|
summary: Returns only the file contents
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'200':
|
|
description: Returns the actual file
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
example: '<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions></bpmn:definitions>'
|
|
put:
|
|
operationId: crc.api.file.update_file_data
|
|
summary: Update only the file contents for a given file
|
|
tags:
|
|
- Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
x-body-name: file
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
required:
|
|
- file
|
|
responses:
|
|
'200':
|
|
description: Returns the updated file model with the new version information.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
|
|
/reference_file:
|
|
get:
|
|
operationId: crc.api.reference_file.get_reference_files
|
|
summary: Provides a list of existing reference files that are available in the system.
|
|
tags:
|
|
- Reference Files
|
|
responses:
|
|
'200':
|
|
description: An array of file descriptions (not the file content)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/File"
|
|
post:
|
|
operationId: crc.api.reference_file.add_reference_file
|
|
security:
|
|
- auth_admin: [ 'secret' ]
|
|
summary: Add a new reference file.
|
|
tags:
|
|
- Reference Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'200':
|
|
description: Metadata about the new reference file, but not the file content.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
/reference_file/{name}:
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
description: The special name of the reference file.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.reference_file.get_reference_file_info
|
|
summary: Returns the file info for a reference file
|
|
tags:
|
|
- Reference Files
|
|
responses:
|
|
'200':
|
|
description: Returns the info for a reference file
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
example: '<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions></bpmn:definitions>'
|
|
delete:
|
|
operationId: crc.api.reference_file.delete_reference_file
|
|
summary: Remove an existing reference file.
|
|
tags:
|
|
- Reference Files
|
|
responses:
|
|
'204':
|
|
description: The reference file was removed.
|
|
/reference_file/{name}/data:
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
description: The special name of the reference file.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.reference_file.get_reference_file_data
|
|
summary: Returns only the reference file content
|
|
tags:
|
|
- Reference Files
|
|
responses:
|
|
'200':
|
|
description: Returns the actual reference file
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
put:
|
|
operationId: crc.api.reference_file.update_reference_file_data
|
|
security:
|
|
- auth_admin: ['secret']
|
|
summary: Update the contents of a reference file
|
|
tags:
|
|
- Reference Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
x-body-name: file
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
required:
|
|
- file
|
|
responses:
|
|
'200':
|
|
description: Returns the updated file model
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
/dmn_from_ss:
|
|
post:
|
|
operationId: crc.api.file.dmn_from_ss
|
|
summary: Create a DMN table from a spreadsheet
|
|
tags:
|
|
- Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'200':
|
|
description: DMN file for workflow spec
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
example: '<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions></bpmn:definitions>'
|
|
/task_events:
|
|
parameters:
|
|
- name: action
|
|
in: query
|
|
required: false
|
|
description: The type of action the event documents, options include "ASSIGNMENT" for tasks that are waiting on you, "COMPLETE" for things have completed.
|
|
schema:
|
|
type: string
|
|
- name: workflow
|
|
in: query
|
|
required: false
|
|
description: Restrict results to the given workflow.
|
|
schema:
|
|
type: number
|
|
- name: study
|
|
in: query
|
|
required: false
|
|
description: Restrict results to the given study.
|
|
schema:
|
|
type: number
|
|
get:
|
|
operationId: crc.api.workflow.get_task_events
|
|
summary: Returns a list of task events related to the current user. Can be filtered by type.
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'200':
|
|
description: Returns details about tasks that are waiting on the current user.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TaskEvent"
|
|
# /v1.0/workflow/0
|
|
/workflow/{workflow_id}:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
get:
|
|
operationId: crc.api.workflow.get_workflow
|
|
summary: Returns a workflow.
|
|
parameters:
|
|
- name: do_engine_steps
|
|
in: query
|
|
required: false
|
|
description: Defaults to true, can be set to false if you are just looking at the workflow not completeing it.
|
|
schema:
|
|
type: boolean
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'200':
|
|
description: Returns details about the workflows state and current task
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workflow"
|
|
delete:
|
|
operationId: crc.api.workflow.delete_workflow
|
|
security:
|
|
- auth_admin: ['secret']
|
|
summary: Removes an existing workflow
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'204':
|
|
description: The workflow was removed
|
|
/workflow/{workflow_id}/restart:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
get:
|
|
operationId: crc.api.workflow.restart_workflow
|
|
summary: Restarts a workflow with the latest spec. Can also clear data.
|
|
parameters:
|
|
- name: clear_data
|
|
in: query
|
|
required: false
|
|
description: Set this to true to clear data when starting workflow.
|
|
schema:
|
|
type: boolean
|
|
- name: delete_files
|
|
in: query
|
|
required: false
|
|
description: Set this to true to delete associated files when starting workflow.
|
|
schema:
|
|
type: boolean
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'200':
|
|
description: Returns updated workflow, possibly without data.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workflow"
|
|
/workflow/{workflow_id}/log:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow for which logs should be returned.
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
put:
|
|
operationId: crc.api.workflow.get_logs_for_workflow
|
|
summary: Provides a paginated list of logged events that occured within a study,
|
|
tags:
|
|
- Workflows and Tasks
|
|
requestBody:
|
|
description: Log Pagination Request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PaginatedTaskLog"
|
|
responses:
|
|
'200':
|
|
description: list of logs - events that have occured within a specific workflow.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PaginatedTaskLog"
|
|
/workflow/{workflow_id}/task/{task_id}/data:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
- name: task_id
|
|
in: path
|
|
required: true
|
|
description: The id of the task
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: terminate_loop
|
|
in: query
|
|
required: false
|
|
description: Terminate the loop on a looping task
|
|
schema:
|
|
type: boolean
|
|
- name: update_all
|
|
in: query
|
|
required: false
|
|
description: In the case of a multi-instance user task, update all tasks with the submitted values.
|
|
schema:
|
|
type: boolean
|
|
put:
|
|
operationId: crc.api.workflow.update_task
|
|
summary: Exclusively for User Tasks, submits form data as a flat set of key/values.
|
|
tags:
|
|
- Workflows and Tasks
|
|
requestBody:
|
|
description: Key / Value pairs in JSON format.
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
example:
|
|
favorite_color: blue
|
|
capital_assyria: Assur
|
|
responses:
|
|
'201':
|
|
description: Returns the updated workflow with this task as the current task.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workflow"
|
|
/workflow/{workflow_id}/task/{task_id}/set_token:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
- name: task_id
|
|
in: path
|
|
required: true
|
|
description: The id of the task
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
put:
|
|
operationId: crc.api.workflow.set_current_task
|
|
summary: Attempts to make the given task the Current Active Task
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'201':
|
|
description: Returns the updated workflow with this task as the current task.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workflow"
|
|
/workflow/{workflow_id}/lookup/{task_spec_name}/{field_id}:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
- name: task_spec_name
|
|
in: path
|
|
required: true
|
|
description: The name of the current task
|
|
schema:
|
|
type: string
|
|
- name: field_id
|
|
in: path
|
|
required: true
|
|
description: The id of the field (as set in the bpmn editor) on which to do a lookup.
|
|
schema:
|
|
type: string
|
|
- name: query
|
|
in: query
|
|
required: false
|
|
description: The string to search for in the Value column of the lookup table.
|
|
schema:
|
|
type: string
|
|
- name: value
|
|
in: query
|
|
required: false
|
|
description: An alternative to query, this accepts the specific value or id selected in a dropdown list or auto-complete, and will return the one matching record. Useful for getting additional details about an item selected in a dropdown.
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
description: The total number of records to return, defaults to 10.
|
|
schema:
|
|
type: integer
|
|
|
|
get:
|
|
operationId: crc.api.workflow.lookup
|
|
summary: Provides type-ahead search against a lookup table associted with a form field.
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'201':
|
|
description: Returns the a list of values and labels for a lookup form.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/LookupItem"
|
|
/render_markdown:
|
|
parameters:
|
|
- name: data
|
|
in: query
|
|
required: true
|
|
description: The json data to use in populating the template
|
|
schema:
|
|
type: string
|
|
- name: template
|
|
in: query
|
|
required: true
|
|
description: The markdown template to process.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.tools.render_markdown
|
|
security: [] # Disable security for this endpoint only.
|
|
summary: Processes the markdown template using the data provided.
|
|
tags:
|
|
- Configurator Tools
|
|
responses:
|
|
'201':
|
|
description: Returns the updated workflow with the task completed.
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/send_email:
|
|
parameters:
|
|
- in: query
|
|
name: subject
|
|
required: true
|
|
description: The subject of the email.
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: address
|
|
required: true
|
|
description: The address to send a test email to.
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: data
|
|
required: false
|
|
description:
|
|
The data to use in populating the message.
|
|
schema:
|
|
type: string
|
|
example: {"id_1": "value_1", "id_2": "value_2"}
|
|
put:
|
|
operationId: crc.api.tools.send_email
|
|
summary: Sends an email so we can see what the message will look like.
|
|
tags:
|
|
- Configurator Tools
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: Returns any error messages that might come back from sending the email.
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/render_docx:
|
|
put:
|
|
operationId: crc.api.tools.render_docx
|
|
security: [] # Disable security for this endpoint only.
|
|
summary: Renders a docx template with embedded jinja2 markup.
|
|
tags:
|
|
- Configurator Tools
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
data:
|
|
type: string
|
|
format: json
|
|
responses:
|
|
'200':
|
|
description: Returns the generated document.
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
example: '<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions></bpmn:definitions>'
|
|
/list_scripts:
|
|
get:
|
|
operationId: crc.api.tools.list_scripts
|
|
security: [] # Disable security for this endpoint only.
|
|
summary: Returns an list of scripts, along with their descriptions
|
|
tags:
|
|
- Configurator Tools
|
|
responses:
|
|
'201':
|
|
description: The list of scripts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Script"
|
|
/eval:
|
|
put:
|
|
operationId: crc.api.tools.evaluate_python_expression
|
|
summary: Execute the given python expression, with the given json data structure used as local variables, returns the result of the evaluation.
|
|
tags:
|
|
- Configurator Tools
|
|
requestBody:
|
|
description: The expression and the json data to use as local variables when evaluating the expresson.
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: Returns the result of executing the given python script.
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/datastore:
|
|
post:
|
|
operationId: crc.api.data_store.add_datastore
|
|
summary: Add datastore item with the given parameters.
|
|
tags:
|
|
- DataStore
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataStore'
|
|
responses:
|
|
'200':
|
|
description: Datastore updated successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DataStore"
|
|
/datastore/{id}:
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: The key to lookup.
|
|
schema:
|
|
type: string
|
|
format: string
|
|
|
|
get:
|
|
operationId: crc.api.data_store.datastore_get
|
|
summary: Get a datastore item by id
|
|
tags:
|
|
- DataStore
|
|
responses:
|
|
'200':
|
|
description: A value from the data store, or a default if provided, or None if not found.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DataStore"
|
|
put:
|
|
operationId: crc.api.data_store.update_datastore
|
|
summary: Updates an existing datastore item with the given parameters.
|
|
tags:
|
|
- DataStore
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataStore'
|
|
responses:
|
|
'200':
|
|
description: Datastore updated successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DataStore"
|
|
|
|
|
|
delete:
|
|
operationId: crc.api.data_store.datastore_del
|
|
summary: Deletes a value from the data store by id
|
|
tags:
|
|
- DataStore
|
|
responses:
|
|
'200':
|
|
description: Deletes a value from a data store.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DataStore"
|
|
/datastore/study/{study_id}:
|
|
parameters:
|
|
- name: study_id
|
|
in: path
|
|
required: true
|
|
description: The study id we are concerned with .
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
get:
|
|
operationId: crc.api.data_store.study_multi_get
|
|
summary: Gets all datastore items for a study_id
|
|
tags:
|
|
- DataStore
|
|
responses:
|
|
'200':
|
|
description: Get all values from the data store for a study_id
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DataStore"
|
|
/datastore/user/{user_id}:
|
|
parameters:
|
|
- name: user_id
|
|
in: path
|
|
required: true
|
|
description: The user id we are concerned with .
|
|
schema:
|
|
type: string
|
|
format: string
|
|
get:
|
|
operationId: crc.api.data_store.user_multi_get
|
|
summary: Gets all datastore items by user_id
|
|
tags:
|
|
- DataStore
|
|
responses:
|
|
'200':
|
|
description: Get all values from the data store for a user_id.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DataStore"
|
|
/datastore/file/{file_id}:
|
|
parameters:
|
|
- name: file_id
|
|
in: path
|
|
required: true
|
|
description: The file id we are concerned with
|
|
schema:
|
|
type: string
|
|
format: string
|
|
get:
|
|
operationId: crc.api.data_store.file_multi_get
|
|
summary: Gets all datastore items by file_id
|
|
tags:
|
|
- DataStore
|
|
responses:
|
|
'200':
|
|
description: Get all values from the data store for a file_id
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DataStore"
|
|
|
|
/git_repo:
|
|
get:
|
|
operationId: crc.api.git_repo.get_repo
|
|
summary: get current state of the git repo
|
|
tags:
|
|
- Git Repo
|
|
responses:
|
|
'200':
|
|
description: Current state of the git repo
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GitRepo"
|
|
/git_repo/merge:
|
|
parameters:
|
|
- name: branch
|
|
in: query
|
|
required: true
|
|
description: The branch to merge with
|
|
schema:
|
|
type: string
|
|
example: staging
|
|
get:
|
|
operationId: crc.api.git_repo.merge_with_branch
|
|
summary: merge with given branch
|
|
tags:
|
|
- Git Repo
|
|
responses:
|
|
'200':
|
|
description: Current state of the git repo
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GitRepo"
|
|
/git_repo/push:
|
|
parameters:
|
|
- name: comment
|
|
in: query
|
|
required: false
|
|
description: The comment we want to pass along with the push commit
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.git_repo.push_to_remote
|
|
summary: Push local changes to remote
|
|
tags:
|
|
- Git Repo
|
|
responses:
|
|
'200':
|
|
description: Local changes were pushed successfully
|
|
/git_repo/pull:
|
|
get:
|
|
operationId: crc.api.git_repo.pull_from_remote
|
|
summary: Pull current code from remote
|
|
tags:
|
|
- Git Repo
|
|
responses:
|
|
'200':
|
|
description: Remote code was pulled successfully
|
|
|
|
components:
|
|
securitySchemes:
|
|
jwt:
|
|
type: http
|
|
scheme: bearer
|
|
bearerFormat: JWT
|
|
x-bearerInfoFunc: crc.api.user.verify_token
|
|
auth_admin:
|
|
type: http
|
|
scheme: bearer
|
|
bearerFormat: JWT
|
|
x-bearerInfoFunc: crc.api.user.verify_token_admin
|
|
|
|
schemas:
|
|
User:
|
|
properties:
|
|
uid:
|
|
type: string
|
|
email_address:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
affiliation:
|
|
type: string
|
|
eppn:
|
|
type: string
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
title:
|
|
type: string
|
|
DataModel:
|
|
properties:
|
|
id:
|
|
type: string
|
|
WorkflowSpecDiffList:
|
|
properties:
|
|
workflow_spec_id:
|
|
type: string
|
|
example : top_level_workflow
|
|
date_created :
|
|
type: string
|
|
example : 2020-12-09 16:55:12.951500+00:00
|
|
location :
|
|
type : string
|
|
example : remote
|
|
new :
|
|
type : boolean
|
|
example : false
|
|
WorkflowSpecFilesList:
|
|
properties:
|
|
file_model_id:
|
|
type : integer
|
|
example : 171
|
|
workflow_spec_id :
|
|
type: string
|
|
example : top_level_workflow
|
|
filename :
|
|
type: string
|
|
example : data_security_plan.dmn
|
|
date_created :
|
|
type: string
|
|
example : 2020-12-01 13:58:12.420333+00:00
|
|
type:
|
|
type : string
|
|
example : dmn
|
|
primary :
|
|
type : boolean
|
|
example : false
|
|
content_type:
|
|
type: string
|
|
example : text/xml
|
|
primary_process_id:
|
|
type : string
|
|
example : null
|
|
md5_hash:
|
|
type: string
|
|
example: f12e2bbd-a20c-673b-ccb8-a8a1ea9c5b7b
|
|
|
|
|
|
WorkflowSpecFilesDiff:
|
|
properties:
|
|
filename :
|
|
type: string
|
|
example : data_security_plan.dmn
|
|
date_created :
|
|
type: string
|
|
example : 2020-12-01 13:58:12.420333+00:00
|
|
type:
|
|
type : string
|
|
example : dmn
|
|
primary :
|
|
type : boolean
|
|
example : false
|
|
content_type:
|
|
type: string
|
|
example : text/xml
|
|
primary_process_id:
|
|
type : string
|
|
example : null
|
|
md5_hash:
|
|
type: string
|
|
example: f12e2bbd-a20c-673b-ccb8-a8a1ea9c5b7b
|
|
location:
|
|
type : string
|
|
example : remote
|
|
new:
|
|
type: boolean
|
|
example : false
|
|
WorkflowSpecAll:
|
|
properties:
|
|
workflow_spec_id :
|
|
type: string
|
|
example : acaf1258-43b4-437e-8846-f612afa66811
|
|
date_created :
|
|
type: string
|
|
example : 2020-12-01 13:58:12.420333+00:00
|
|
md5_hash:
|
|
type: string
|
|
example: c30fd597f21715018eab12f97f9d4956
|
|
Study:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
example: 1234
|
|
title:
|
|
type: string
|
|
example: The impact of fried pickles on beer consumption in bipedal software developers.
|
|
last_updated:
|
|
type: string
|
|
format: date_time
|
|
example: "2019-12-25T09:12:33.001Z"
|
|
primary_investigator_id:
|
|
type: string
|
|
x-nullable: true
|
|
example: dhf8r
|
|
user_uid:
|
|
type: string
|
|
example: dhf8r
|
|
status:
|
|
type: string
|
|
enum: ['in_progress', 'hold', 'open_for_enrollment', 'abandoned']
|
|
example: done
|
|
sponsor:
|
|
type: string
|
|
x-nullable: true
|
|
example: "Sartography Pharmaceuticals"
|
|
ind_number:
|
|
type: string
|
|
x-nullable: true
|
|
example: "27b-6-42"
|
|
StudyAssociate:
|
|
properties:
|
|
uid:
|
|
type: string
|
|
example: "dhf8r"
|
|
access:
|
|
type: boolean
|
|
example: False
|
|
role:
|
|
type: string
|
|
example: "TODO"
|
|
DocumentDirectory:
|
|
properties:
|
|
level:
|
|
type: string
|
|
x-nullable: true
|
|
example: "Ancillary Document"
|
|
description:
|
|
type: string
|
|
x-nullable: true
|
|
example: "Documents that are ancillary to the study"
|
|
file:
|
|
$ref: "#/components/schemas/File"
|
|
x-nullable: true
|
|
expanded:
|
|
type: boolean
|
|
example: False
|
|
filecount:
|
|
type: integer
|
|
example: 1
|
|
children:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/File"
|
|
DataStore:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
example: 1234
|
|
key:
|
|
type: string
|
|
example: MyKey
|
|
workflow_id:
|
|
type: integer
|
|
x-nullable: true
|
|
example: 12
|
|
study_id:
|
|
type: integer
|
|
x-nullable: true
|
|
example: 42
|
|
user_id:
|
|
type: string
|
|
x-nullable: true
|
|
example: dhf8r
|
|
task_id:
|
|
type: string
|
|
x-nullable: true
|
|
example: MyTask
|
|
spec_id:
|
|
type: string
|
|
x-nullable: true
|
|
example: My Spec Name
|
|
value:
|
|
type: string
|
|
x-nullable: true
|
|
example: Some Value
|
|
|
|
WorkflowSpec:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
primary_process_id:
|
|
type: string
|
|
nullable: true
|
|
category_id:
|
|
type: string
|
|
nullable: true
|
|
standalone:
|
|
type: boolean
|
|
example: false
|
|
default: false
|
|
workflow_spec_category:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
is_status:
|
|
type: boolean
|
|
nullable: true
|
|
WorkflowSpecCategory:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
display_order:
|
|
type: integer
|
|
workflows:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Workflow"
|
|
File:
|
|
properties:
|
|
id:
|
|
type: number
|
|
name:
|
|
type: string
|
|
example: "random_fact.bpmn"
|
|
version:
|
|
type: integer
|
|
last_updated:
|
|
type: string
|
|
format: date_time
|
|
example: "2019-12-25T09:12:33.001Z"
|
|
type:
|
|
type: string
|
|
primary:
|
|
type: boolean
|
|
content_type:
|
|
type: string
|
|
example: "application/xml"
|
|
workflow_spec_id:
|
|
type: string
|
|
example: "random_fact"
|
|
x-nullable: true
|
|
file:
|
|
type: string
|
|
Workflow:
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: string
|
|
enum: ['new','user_input_required','waiting','complete']
|
|
navigation:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NavigationItem"
|
|
next_task:
|
|
$ref: "#/components/schemas/Task"
|
|
workflow_spec_id:
|
|
type: string
|
|
spec_version:
|
|
type: string
|
|
is_latest_spec:
|
|
type: boolean
|
|
num_tasks_total:
|
|
type: integer
|
|
num_tasks_complete:
|
|
type: integer
|
|
num_tasks_incomplete:
|
|
type: integer
|
|
study_id:
|
|
type: integer
|
|
|
|
example:
|
|
id: 291234
|
|
status: 'user_input_required'
|
|
workflow_spec_id: 'random_fact'
|
|
spec_version: 'v1.1 [22,23]'
|
|
is_latest_spec: True
|
|
next_task:
|
|
id: study_identification
|
|
name: Study Identification
|
|
title: IRB Review
|
|
documentation: "# Heading 1\n\nMarkdown documentation text goes here"
|
|
type: form
|
|
state: ready
|
|
Task:
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
name:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type:
|
|
type: string
|
|
state:
|
|
type: string
|
|
form:
|
|
$ref: "#/components/schemas/Form"
|
|
documentation:
|
|
type: string
|
|
data:
|
|
type: object
|
|
multi_instance_type:
|
|
type: string
|
|
enum: ['none', 'looping', 'parallel', 'sequential']
|
|
multi_instance_count:
|
|
type: number
|
|
multi_instance_index:
|
|
type: number
|
|
process_name:
|
|
type: string
|
|
properties:
|
|
type: object
|
|
example:
|
|
id: study_identification
|
|
name: Study Identification
|
|
title: IRB Review
|
|
documentation: "# Heading 1\n\nMarkdown documentation text goes here"
|
|
type: form
|
|
state: ready
|
|
form:
|
|
"key": "irb_review_form"
|
|
"fields":
|
|
- "id": "irb_review_type"
|
|
"type": "enum"
|
|
"label": "Select IRB Review Type"
|
|
"options":
|
|
- id: "emergency_use"
|
|
name: "Emergency Use"
|
|
- id: "humanitarian_device"
|
|
name: "Humanitarian Device"
|
|
- id: "non_human"
|
|
name: "Non-Human"
|
|
- id: "non_uva_agent"
|
|
name: "Non-UVA Agent"
|
|
- id: "exempt"
|
|
name: "Exempt"
|
|
- id: "non_engaged"
|
|
name: "Non-Engaged"
|
|
- id: "expedited"
|
|
name: "Expedited"
|
|
- id: "full_board"
|
|
name: "Full Board"
|
|
"default_value": "Full Board"
|
|
"validation":
|
|
- name: "required"
|
|
config: "true"
|
|
"properties":
|
|
- id: "description"
|
|
value: "Description text goes here"
|
|
- id: "help"
|
|
value: "# Heading 1\n\nMarkdown help text goes here"
|
|
- id: "required_expression"
|
|
value: "model.my_boolean_field_id && model.my_enum_field_value !== 'something'"
|
|
- id: "hide_expression"
|
|
value: "model.my_enum_field_value === 'something'"
|
|
PaginatedTaskLog:
|
|
properties:
|
|
code:
|
|
example: "email_sent"
|
|
type: string
|
|
level:
|
|
example: "warning"
|
|
type: string
|
|
user:
|
|
example: "email_sent"
|
|
type: string
|
|
page:
|
|
type: integer
|
|
example: 0
|
|
per_page:
|
|
type: integer
|
|
example: 10
|
|
sort_column:
|
|
type: string
|
|
example: "timestamp"
|
|
sort_reverse:
|
|
type: boolean
|
|
example: false
|
|
items:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TaskLog"
|
|
has_next:
|
|
type: boolean
|
|
example: true
|
|
has_previous:
|
|
type: boolean
|
|
example: false
|
|
TaskLog:
|
|
properties:
|
|
level:
|
|
type: string
|
|
example: "info"
|
|
code:
|
|
example: "email_sent"
|
|
type: string
|
|
message:
|
|
example: "Approval email set to Jake in Accounting"
|
|
type: string
|
|
workflow_id:
|
|
example: 42
|
|
type: integer
|
|
study_id:
|
|
example: 187
|
|
type: integer
|
|
user_uid:
|
|
example: "dhf8r"
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
format: date_time
|
|
example: "2021-01-07T11:36:40.001Z"
|
|
TaskEvent:
|
|
properties:
|
|
workflow:
|
|
$ref: "#/components/schemas/Workflow"
|
|
study:
|
|
$ref: "#/components/schemas/Study"
|
|
workflow_sec:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
spec_version:
|
|
type: string
|
|
action:
|
|
type: string
|
|
task_id:
|
|
type: string
|
|
task_type:
|
|
type: string
|
|
task_lane:
|
|
type: string
|
|
form_data:
|
|
type: object
|
|
mi_type:
|
|
type: string
|
|
mi_count:
|
|
type: integer
|
|
mi_index:
|
|
type: integer
|
|
process_name:
|
|
type: string
|
|
date:
|
|
type: string
|
|
Form:
|
|
properties:
|
|
key:
|
|
type: string
|
|
fields:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Field"
|
|
example:
|
|
"key": "irb_review_form"
|
|
"fields":
|
|
- "id": "irb_review_type"
|
|
"type": "enum"
|
|
"label": "Select IRB Review Type"
|
|
"options":
|
|
- id: "emergency_use"
|
|
name: "Emergency Use"
|
|
- id: "humanitarian_device"
|
|
name: "Humanitarian Device"
|
|
- id: "non_human"
|
|
name: "Non-Human"
|
|
- id: "non_uva_agent"
|
|
name: "Non-UVA Agent"
|
|
- id: "exempt"
|
|
name: "Exempt"
|
|
- id: "non_engaged"
|
|
name: "Non-Engaged"
|
|
- id: "expedited"
|
|
name: "Expedited"
|
|
- id: "full_board"
|
|
name: "Full Board"
|
|
"default_value": "Full Board"
|
|
"validation":
|
|
- name: "required"
|
|
config: "true"
|
|
"properties":
|
|
- id: "description"
|
|
value: "Description text goes here"
|
|
- id: "help"
|
|
value: "# Heading 1\n\nMarkdown help text goes here"
|
|
- id: "required_expression"
|
|
value: "model.my_boolean_field_id && model.my_enum_field_value !== 'something'"
|
|
- id: "hide_expression"
|
|
value: "model.my_enum_field_value === 'something'"
|
|
Field:
|
|
properties:
|
|
id:
|
|
type: string
|
|
readOnly: true
|
|
type:
|
|
type: string
|
|
enum: ['string', 'long', 'boolean', 'date', 'enum']
|
|
readOnly: true
|
|
label:
|
|
type: string
|
|
readOnly: true
|
|
options:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EnumFieldOption"
|
|
readOnly: true
|
|
default_value:
|
|
type: string
|
|
readOnly: true
|
|
validation:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FieldValidation"
|
|
readOnly: true
|
|
"properties":
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FieldProperty"
|
|
readOnly: true
|
|
EnumFieldOption:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
FieldValidation:
|
|
properties:
|
|
name:
|
|
type: string
|
|
config:
|
|
type: string
|
|
FieldProperty:
|
|
properties:
|
|
id:
|
|
type: string
|
|
value:
|
|
type: string
|
|
example:
|
|
id: "required_expression"
|
|
value: "model.should_require"
|
|
Error:
|
|
required:
|
|
- code
|
|
- message
|
|
properties:
|
|
code:
|
|
type: string
|
|
format: string
|
|
example: "access_denied"
|
|
message:
|
|
type: string
|
|
example: "You do not have permission to view the requested study."
|
|
Script:
|
|
properties:
|
|
name:
|
|
type: string
|
|
format: string
|
|
example: "random_fact"
|
|
description:
|
|
type: string
|
|
example: "Returns a random fact about a topic. Provide an argument of either 'cat', 'norris', or 'buzzword'"
|
|
LookupItem:
|
|
properties:
|
|
value:
|
|
type: string
|
|
format: string
|
|
example: "1000"
|
|
label:
|
|
type: string
|
|
example: "Chuck Norris"
|
|
data:
|
|
type: string
|
|
NavigationItem:
|
|
properties:
|
|
id:
|
|
type: number
|
|
format: integer
|
|
example: 5
|
|
task_id:
|
|
type: string
|
|
format: uuid
|
|
example: "1234123uuid1234"
|
|
name:
|
|
type: string
|
|
example: "Task_Has_bananas"
|
|
description:
|
|
type: string
|
|
example: "Has Bananas?"
|
|
backtracks:
|
|
type: boolean
|
|
example: false
|
|
level:
|
|
type: integer
|
|
example: 1
|
|
indent:
|
|
type: integer
|
|
example: 2
|
|
child_count:
|
|
type: integer
|
|
example: 4
|
|
state:
|
|
type: string
|
|
enum: ['FUTURE', 'WAITING', 'READY', 'CANCELLED', 'COMPLETED','LIKELY','MAYBE']
|
|
readOnly: true
|
|
is_decision:
|
|
type: boolean
|
|
example: False
|
|
readOnly: true
|
|
task:
|
|
$ref: "#/components/schemas/Task"
|
|
Approval:
|
|
properties:
|
|
id:
|
|
type: number
|
|
format: integer
|
|
example: 5
|
|
ApprovalCounts:
|
|
properties:
|
|
PENDING:
|
|
type: number
|
|
format: integer
|
|
example: 5
|
|
APPROVED:
|
|
type: number
|
|
format: integer
|
|
example: 5
|
|
DECLINED:
|
|
type: number
|
|
format: integer
|
|
example: 5
|
|
CANCELED:
|
|
type: number
|
|
format: integer
|
|
example: 5
|
|
AWAITING:
|
|
type: number
|
|
format: integer
|
|
example: 5
|
|
GitRepo:
|
|
properties:
|
|
# remote:
|
|
# type: string
|
|
# example: sartography/crconnect-workflow-specs
|
|
directory:
|
|
type: string
|
|
example: /home/cr-connect/sync_files
|
|
branch:
|
|
type: string
|
|
example: dev
|
|
merge_branch:
|
|
type: string
|
|
example: staging
|
|
changes:
|
|
type: array
|
|
example: ['file_1.txt', 'file_2.txt']
|
|
untracked:
|
|
type: array
|
|
example: ['a_file.txt', 'b_file.txt']
|