Data Types

apiSchema

This is a meta-schema that explains the format of API manifest yaml files under api/*/index.yaml.

name

type
string
{"type":"string"}

description

type
string
{"type":"string"}

routes

type
array
array items
object
{"type":"array","items":{"type":"object","properties":{"verb":{"type":"string","enum":["get","put","post","patch","delete"],"description":"HTTP verb of this route."},"path":{"type":"string","description":"HTTP URL path of this route."},"handler":{"type":"string","description":"Handle fucntion name. If omitted, default value is determined from the verb (eg. \"handleGet\", \"handlePatch\").\n"},"description":{"type":"string","description":"API description. Parsed as markdown, appears as API reference.\n"},"requiredGlobalPrivilege":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"requiredProjectPrivilege":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"requiredPluginPrivilege":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"requiredSeriesDomainCheck":{"oneOf":[{"type":"string"},{"type":"boolean"}]},"forDebug":{"type":"boolean","description":"This route will be loaded only when the API server is loaded in the debug mode.\n"},"expectedContentType":{"type":"string","default":"application/json"},"requestSchema":{"type":["object","string"],"description":"JSON Schema of the HTTP request JSON. A string value represents the ID of the schema, whereas an object value represents an actual JSON schema (you can still use `$ref` to reference external schema).\n"},"responseSchema":{"type":["object","string"],"description":"JSON Schema of the HTTP response JSON. A string value represents the ID of the schema, whereas an object value represents an actual JSON schema (you can still use `$ref` to reference external schema).\n"},"noAuthentication":{"const":true,"description":"This skips the OAuth authentication and exposes this route to the public.\n"}},"required":["verb","path"],"additionalProperties":false}}

Case

caseId

Randomly-generated case ID.

type
string
{"type":"string","description":"Randomly-generated case ID.\n"}

projectId

type
string
{"type":"string"}

tags

type
array
array items
string
{"type":"array","items":{"type":"string"}}

latestRevision

{"$ref":"revision"}

revisions

type
array
array items
See:revision
{"type":"array","items":{"$ref":"revision"}}

domains

type
array
array items
string
{"type":"array","items":{"type":"string"}}

CaseCreate

projectId

type
string
{"type":"string"}

series

type
array
minimum length
1
array items
See:seriesEntryWithAutoPvd
{"type":"array","items":{"$ref":"seriesEntryWithAutoPvd"},"minLength":1}

tags

type
array
array items
string
{"type":"array","items":{"type":"string"}}

AbbreviatedCase

This is a variation of clinicalCase returned by the endpoints of fetching a list of cases. This does not have the revisions field but has the patientInfo field.

caseId

Randomly-generated case ID.

type
string
{"type":"string","description":"Randomly-generated case ID.\n"}

projectId

type
string
{"type":"string"}

patientInfo

type
object
{"type":"object"}

tags

type
array
array items
string
{"type":"array","items":{"type":"string"}}

latestRevision

{"$ref":"revision"}

domains

type
array
array items
string
{"type":"array","items":{"type":"string"}}

Group

groupId

A unique incremental identifier for the group within a single installation.

type
number
{"type":"number","description":"A unique incremental identifier for the group within a single installation.\n"}

groupName

The name of the group.

type
string
{"type":"string","description":"The name of the group.\n"}

privileges

A list of privileges assigned to the group.

type
array
array items
{"type":"array","items":{"enum":["createProject","deleteProject","manageServer","personalInfoView","downloadVolume","issueOnetime"]},"description":"A list of privileges assigned to the group.\n"}

domains

Domains that group members are allowed to access.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Domains that group members are allowed to access.\n"}

readProjects

Project IDs that group members have read access to.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Project IDs that group members have read access to.\n"}

writeProjects

Project IDs that group members have write access to.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Project IDs that group members have write access to.\n"}

addSeriesProjects

Project IDs where group members can add series to existing cases.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Project IDs where group members can add series to existing cases.\n"}

viewPersonalInfoProjects

Project IDs where group members can view personal information.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Project IDs where group members can view personal information.\n"}

moderateProjects

Project IDs where group members have moderation privileges.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Project IDs where group members have moderation privileges.\n"}

readPlugin

Plugin IDs that group members have read access to.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Plugin IDs that group members have read access to.\n"}

executePlugin

Plugin IDs that group members can execute.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Plugin IDs that group members can execute.\n"}

manageJobs

Plugin IDs where group members can manage and invalidate succeeded jobs.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Plugin IDs where group members can manage and invalidate succeeded jobs.\n"}

inputConsensualFeedback

Plugin IDs where group members can input consensual feedback.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Plugin IDs where group members can input consensual feedback.\n"}

inputPersonalFeedback

Plugin IDs where group members can input personal feedback.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Plugin IDs where group members can input personal feedback.\n"}

manageFeedback

Plugin IDs where group members can manage and delete feedback.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Plugin IDs where group members can manage and delete feedback.\n"}

viewPersonalInfo

Plugin IDs where group members can view personal information.

type
array
array items
string
{"type":"array","items":{"type":"string"},"description":"Plugin IDs where group members can view personal information.\n"}

Icon

Represents an icon for projects and apps.

glyph

type
string
{"type":"string"}

color

type
string
{"type":"string"}

backgroundColor

type
string
{"type":"string"}

JsonSchemaSubset

type

{"const":"object"}

properties

type
object
{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"enum":["number","integer","string","boolean"]},"maximum":{"type":"number"},"minimum":{"type":"number"},"maximumExclusive":{"type":"number"},"minimumExclusive":{"type":"number"},"minLength":{"type":"integer"},"maxLength":{"type":"integer"},"enum":{"type":"array","items":{"type":"string"}}}}}

required

type
array
array items
string
{"type":"array","items":{"type":"string"}}

Label

Label represents information stored in ClinicalCase.revisions[n].series[m].labels. It holds information that attaches to a certain series in a case.

name

The name of this label.

{"oneOf":[{"type":"string"},{"type":"null"}],"description":"The name of this label.\n"}

data

type
object
{"type":"object","properties":{"color":{"type":"string","pattern":"^#[0-9a-f]{6,6}$","description":"The hexadecimal color value of this label.\n"},"alpha":{"type":"number","minimum":0,"maximum":1,"description":"The alpha value of this label, where 1 is opaque and 0 is transparent.\n"}}}

attributes

An object that represents label attributes.

type
object
{"type":"object","description":"An object that represents label attributes."}

type

type
string
{"type":"string"}

MyList

myListId

type
string
{"type":"string"}

items

type
array
maximum length
1000
array items
object
{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string","description":"One of jobId, seriesId, caseId\n"},"createdAt":{"date":true}},"required":["resourceId","createdAt"]},"maxLength":1000}

MyListEditor

Represents an editor of my list

OnetimeUrl

One-time URL that enables a user to log in without a login ID and a password.

onetimeUrlId

type
string
{"type":"string"}

userEmail

type
string
{"type":"string"}

onetimeString

type
string
{"type":"string"}

PartialVolumeDescriptor

Defines partial volume in series images.

start

type
number
{"type":"number"}

end

type
number
{"type":"number"}

delta

type
number
{"type":"number"}

PatientInfo

This object contains personal information that was written in corresponding DICOM files.

patientId

type
string
{"type":"string"}

patientName

type
string
{"type":"string"}

age

type
number
{"type":"number"}

birthDate

type
string
pattern (regexp)
^\d\d\d\d-\d\d-\d\d$
{"type":"string","pattern":"^\\d\\d\\d\\d-\\d\\d-\\d\\d$"}

sex

type
string
accepted values
F | M | O
{"type":"string","enum":["F","M","O"]}

size

type
number
{"type":"number"}

weight

type
number
{"type":"number"}

Permanent token exchanged via API.

tokenId

Optional identifier for permanent token (this is not a token itself)

type
string
{"type":"string","description":"Optional identifier for permanent token (this is not a token itself)"}

description

Free text to describe this token.

type
string
{"type":"string","description":"Free text to describe this token."}

PluginDefinition

Represents a CIRCUS CS plug-in (app).

pluginId

🔑 The unique ID of this plug-in.

type
string
format
dockerId
{"type":"string","format":"dockerId","description":":key: The unique ID of this plug-in.\n"}

pluginName

Displayed plug-in name.

type
string
maximum length
128
minimum length
1
{"type":"string","minLength":1,"maxLength":128,"description":"Displayed plug-in name.\n"}

version

Semver-compatible plug-in version.

type
string
format
semver
{"type":"string","format":"semver","description":"Semver-compatible plug-in version.\n"}

type

Plug-in type. Currently the only supported value is 'CAD'.

accepted values
CAD
{"enum":["CAD"],"description":"Plug-in type. Currently the only supported value is 'CAD'.\n"}

description

Short text that describes what this plug-in does.

type
string
maximum length
128
{"type":"string","maxLength":128,"description":"Short text that describes what this plug-in does.\n"}

runConfiguration

Installation-specific configurations.

type
object
{"type":"object","description":"Installation-specific configurations.\n","properties":{"timeout":{"type":"integer","minValue":0,"description":"Execution timeout in seconds. Specify 0 if there is no timeout.\n"},"gpus":{"type":"string","description":"Passed to Docker container.\n"}},"additionalProperties":false}

icon

{"$ref":"icon"}

displayStrategy

Determines how plug-in results are displayed and how feedback is collected.

type
array
array items
object
{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"feedbackKey":{"type":"string"},"caption":{"type":"string"},"options":{"type":"object"}}},"description":"Determines how plug-in results are displayed and how feedback is collected.\n"}

PluginJob

Represents a CIRCUS CS plug-in job.

jobId

🔑 The unique ID of the job.

type
string
{"type":"string","description":":key: The unique ID of the job.\n"}

pluginId

Plugin-in ID.

type
string
{"type":"string","description":"Plugin-in ID.\n"}

userEmail

type
string
{"type":"string"}

status

The current status of this job.

type
string
accepted values
in_queue | processing | finished | cancelled | failed | invalidated
{"type":"string","description":"The current status of this job.\n","enum":["in_queue","processing","finished","cancelled","failed","invalidated"]}

errorMessage

Contains an error message if the status is 'failed'.

{"oneOf":[{"type":"string"},{"type":"null"}],"description":"Contains an error message if the status is 'failed'.\n"}

series

type
array
array items
See:pluginJobSeries
{"type":"array","minItems":1,"items":{"$ref":"pluginJobSeries"}}

feedbacks

type
array
array items
See:pluginJobFeedback
{"type":"array","items":{"$ref":"pluginJobFeedback"}}

startedAt

Job start time.

{"description":"Job start time.\n","oneOf":[{"date":true},{"type":"null"}]}

finishedAt

Job finish time.

{"description":"Job finish time.\n","oneOf":[{"date":true},{"type":"null"}]}

results

The result data of this plug-in job.

{"description":"The result data of this plug-in job.","oneOf":[{"type":"object"},{"type":"null"}]}

PluginJobFeedback

Represents a CIRCUS CS feedback entry.

feedbackId

type
string
{"type":"string"}

isConsensual

type
boolean
{"type":"boolean"}

userEmail

type
string
{"type":"string"}

data

{}

actionLog

type
array
array items
object
{"type":"array","items":{"type":"object","properties":{"date":{"date":true},"action":{"type":"string"},"data":{"type":"object"}},"required":["date","action"],"additionalProperties":false}}

createdAt

{"date":true}

PluginJobManager

Represents a CIRCUS CS plug-in job manager. Used to turn on/off manager status.

status

type
string
accepted values
running | stopped
{"type":"string","enum":["running","stopped"]}

PluginJobQueue

Represents plug-in job queue.

jobId

type
string
{"type":"string"}

priority

type
integer
{"type":"integer"}

payload

{"$ref":"pluginJob"}

state

type
string
accepted values
wait | processing
{"type":"string","enum":["wait","processing"]}

createdAt

{"oneOf":[{"date":true},{"type":"null"}]}

updatedAt

{"oneOf":[{"date":true},{"type":"null"}]}

startedAt

{"oneOf":[{"date":true},{"type":"null"}]}

PluginJob

Represents a CIRCUS CS plug-in job.

jobId

🔑 The unique ID of the job.

type
string
{"type":"string","description":":key: The unique ID of the job.\n"}

pluginId

type
string
{"type":"string"}

userEmail

type
string
{"type":"string"}

status

The current status of this job.

type
string
accepted values
in_queue | processing | finished | cancelled | failed | invalidated
{"type":"string","description":"The current status of this job.\n","enum":["in_queue","processing","finished","cancelled","failed","invalidated"]}

errorMessage

Contains an error message if the status is 'failed'.

{"oneOf":[{"type":"string"},{"type":"null"}],"description":"Contains an error message if the status is 'failed'.\n"}

series

type
array
array items
See:pluginJobSeries
{"type":"array","minItems":1,"items":{"$ref":"pluginJobSeries"}}

feedbacks

type
array
array items
See:pluginJobFeedback
{"type":"array","items":{"$ref":"pluginJobFeedback"}}

startedAt

Job start time.

{"description":"Job start time.\n","oneOf":[{"date":true},{"type":"null"}]}

finishedAt

Job finish time.

{"description":"Job finish time.\n","oneOf":[{"date":true},{"type":"null"}]}

domain

type
string
{"type":"string"}

PluginJobSeries

Represents series information used to build raw volume consumed by CAD plug-ins.

seriesUid

type
string
format
dicomUid
{"type":"string","format":"dicomUid"}

partialVolumeDescriptor

{"oneOf":[{"const":"auto"},{"$ref":"partialVolumeDescriptor"}]}

requiredPrivateTags

type
string
{"type":"string"}

Preferences

The object that holds the user's preference.

theme

accepted values
mode_black | mode_white
{"enum":["mode_black","mode_white"]}

personalInfoView

type
boolean
{"type":"boolean"}

seriesSearchPresets

type
array
array items
object
{"type":"array","items":{"type":"object"}}

caseSearchPresets

type
array
array items
object
{"type":"array","items":{"type":"object"}}

pluginJobSearchPresets

type
array
array items
object
{"type":"array","items":{"type":"object"}}

referenceLine

type
boolean
{"type":"boolean"}

initailAlphaForNewLabels

type
number
{"type":"number","minimum":0,"maximum":1}

windowPropagationScope

accepted values
all | series | viewer
{"enum":["all","series","viewer"]}

interpolationMode

accepted values
nearestNeighbor | trilinear
{"enum":["nearestNeighbor","trilinear"]}

scrollBars

accepted values
none | small | large
{"enum":["none","small","large"]}

scrollBarsInfo

type
object
{"type":"object","properties":{"size":{"enum":["small","large"]},"position":{"enum":["right","left","top","bottom"]},"visibility":{"enum":["none","always","hover"]}}}

maintainAspectRatio

type
boolean
{"type":"boolean"}

fixCenterOfGravity

type
boolean
{"type":"boolean"}

dimmedOutlineFor2DLabels

accepted values
hide | show | infinity
{"enum":["hide","show","infinity"]}

revisionMessageTemplates

type
array
array items
string
{"type":"array","items":{"type":"string"}}

labelColors

type
object
{"type":"object","properties":{"useDefault":{"type":"boolean"},"customColors":{"type":"array","items":{"type":"string","pattern":"^#[0-9a-f]{6}$"}}}}

Project

projectId

🔑 Randomly-generated project ID. It must be globally unique.

type
string
maximum length
64
{"type":"string","maxLength":64,"description":":key: Randomly-generated project ID. It must be globally unique.\n"}

projectName

Short name for this project.

type
string
maximum length
64
{"type":"string","maxLength":64,"description":"Short name for this project.\n"}

icon

type
object
{"type":"object","properties":{"glyph":{"type":"string","format":"kebab"},"color":{"type":"string","format":"color"},"backgroundColor":{"type":"string","format":"color"}},"requiredProperties":["glyph","color","backgroundColor"]}

description

Optinal arbitrary text to explain this project.

type
string
maximum length
1024
{"type":"string","maxLength":1024,"description":"Optinal arbitrary text to explain this project.\n"}

tags

List of tags available in this project.

type
array
array items
object
{"type":"array","items":{"type":"object","properties":{"caption":{"type":"string"},"color":{"type":"string","pattern":"^\\#[0-9a-f]{6}$"}}},"description":"List of tags available in this project.\n"}

caseAttributesSchema

The schema of case attributes defined as a subset of JSON Schema.

{"$ref":"jsonSchemaSubset","description":"The schema of case attributes defined as a subset of JSON Schema.\n"}

labelAttributesSchema

The schema of label attributes defined as a subset of JSON Schema.

{"$ref":"jsonSchemaSubset","description":"The schema of label attributes defined as a subset of JSON Schema.\n"}

windowPresets

type
array
array items
object
{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"level":{"type":"number"},"width":{"type":"number"}},"required":["label","level","width"]}}

windowPriority

type
string
accepted values
dicom,preset,auto | dicom,auto | preset,dicom,auto | preset,auto | auto
{"type":"string","enum":["dicom,preset,auto","dicom,auto","preset,dicom,auto","preset,auto","auto"]}

Revision

creator

The e-mail address of the creator of this revision. This usually corresponds to one of the registered users in the system, but it's necessarily so. If the case is imported from some external source, this property can have a value not recognized by this CIRCUS installation. (In other words, this works like Git's commiter e-mail address.)

type
string
{"type":"string","description":"The e-mail address of the creator of this revision. This usually corresponds to one of the registered users in the system, but it's necessarily so. If the case is imported from some external source, this property can have a value not recognized by this CIRCUS installation. (In other words, this works like Git's commiter e-mail address.)\n"}

date

When the revision was created.

{"date":true,"description":"When the revision was created."}

description

Optional arbitrary string to explain this revision.

type
string
{"type":"string","description":"Optional arbitrary string to explain this revision."}

attributes

An object that represents case attributes.

type
object
{"type":"object","description":"An object that represents case attributes."}

status

type
string
{"type":"string"}

series

The list of series entries.

type
array
array items
See:revisionSeriesEntry
{"type":"array","items":{"$ref":"revisionSeriesEntry"},"description":"The list of series entries.\n"}

RevisionSeriesEntry

seriesUid

type
string
format
dicomUid
{"type":"string","format":"dicomUid"}

partialVolumeDescriptor

{"$ref":"partialVolumeDescriptor"}

labels

The list of labels attached to this series.

type
array
array items
See:label
{"type":"array","items":{"$ref":"label"},"description":"The list of labels attached to this series.\n"}

SchemaEntry

key

Property key. It's expected to be (but not required to be) alphanumerical.

type
string
{"type":"string","description":"Property key. It's expected to be (but not required to be) alphanumerical."}

caption

Caption that corresponds to the key.

type
string
{"type":"string","description":"Caption that corresponds to the key."}

type

The type of this property.

type
string
accepted values
text | number | boolean | select
{"type":"string","enum":["text","number","boolean","select"],"description":"The type of this property."}

spec

Additional parameters for this property entry.

type
object
{"type":"object","description":"Additional parameters for this property entry."}

Series

Series represents a DICOM series, which is a collection of one or more DICOM images. CIRCUS organizes all images based on DICOM series. Most of the data in this data type come from imported DICOM files.

seriesUid

🔑 The series instance UID, which must be globally unique according to the DICOM spec.

type
string
format
dicomUid
{"type":"string","format":"dicomUid","description":":key: The series instance UID, which must be globally unique according to the DICOM spec.\n"}

studyUid

The study instance UID which this series belongs to. (0020,000d)

type
string
format
dicomUid
{"type":"string","format":"dicomUid","description":"The study instance UID which this series belongs to. (0020,000d)\n"}

width

The width of each image.

type
number
{"type":"number","description":"The width of each image.\n"}

height

The height of each image.

type
number
{"type":"number","description":"The height of each image.\n"}

images

The list of instance numbers which this series consists of, described as a string in multi-integer-range format.

type
string
format
multiIntegerRange
{"type":"string","format":"multiIntegerRange","description":"The list of instance numbers which this series consists of, described as a string in `multi-integer-range` format.\n"}

seriesDate

The "series date", as written in the DICOM file.

{"oneOf":[{"date":true},{"type":"null"}],"description":"The \"series date\", as written in the DICOM file.\n"}

modality

The modality value, such as 'CT', 'MR'.

type
string
maximum length
10
{"type":"string","maxLength":10,"description":"The modality value, such as 'CT', 'MR'.\n"}

seriesDescription

The series description, a human-readable text label of the series, such as 'T2_star axial'.

type
string
{"type":"string","description":"The series description, a human-readable text label of the series, such as 'T2_star axial'.\n"}

bodyPart

The body part, such as 'HEAD', 'CHEST'.

type
string
{"type":"string","description":"The body part, such as 'HEAD', 'CHEST'.\n"}

stationName

The station name.

type
string
{"type":"string","description":"The station name.\n"}

modelName

The model name.

type
string
{"type":"string","description":"The model name.\n"}

manufacturer

The manufacturer (company name) of the modality.

type
string
{"type":"string","description":"The manufacturer (company name) of the modality.\n"}

storageId

The storage ID. May be removed in the near future.

type
number
{"type":"number","description":"The storage ID. **May be removed in the near future.**\n"}

patientInfo

{"$ref":"patientInfo"}

parameters

Any additional key-value pairs retrieved from the imported DICOM file. The stored values will depend on the modality.

type
object
{"type":"object","description":"Any additional key-value pairs retrieved from the imported DICOM file. The stored values will depend on the modality.\n"}

domain

The domain to which this series belongs.

type
string
{"type":"string","description":"The domain to which this series belongs.\n"}

SeriesEntry

seriesUid

type
string
format
dicomUid
{"type":"string","format":"dicomUid"}

partialVolumeDescriptor

{"$ref":"partialVolumeDescriptor"}

SeriesEntryWithAutoPvd

seriesUid

type
string
format
dicomUid
{"type":"string","format":"dicomUid"}

partialVolumeDescriptor

{"oneOf":[{"const":"auto"},{"$ref":"partialVolumeDescriptor"}]}

ServerParam

key

type
string
{"type":"string"}

value

{}

Task

taskId

The task ID.

type
string
{"type":"string","description":"The task ID."}

userEmail

The user who started this task.

type
string
format
email
{"type":"string","format":"email","description":"The user who started this task."}

name

Display name of the task.

type
string
{"type":"string","description":"Display name of the task."}

status

The task status.

type
string
accepted values
finished | error | processing
{"type":"string","enum":["finished","error","processing"],"description":"The task status."}

errorMessage

{"oneOf":[{"type":"string"},{"type":"null"}]}

finishedMessage

{"oneOf":[{"type":"string"},{"type":"null"}]}

endedAt

{"oneOf":[{"date":true},{"type":"null"}]}

downloadFileType

MIME type when the result can be downloaded after the task is completed.

{"oneOf":[{"type":"string"},{"type":"null"}],"description":"MIME type when the result can be downloaded after the task is completed."}

dismissed

type
boolean
{"type":"boolean"}

Represents an OAuth2 token.

accessToken

type
string
{"type":"string"}

accessTokenExpiresAt

{"date":true}

clientId

type
string
{"type":"string"}

refreshToken

type
string
{"type":"string"}

refreshTokenExpiresAt

{"date":true}

userId

type
string
{"type":"string"}

permanentTokenId

Optional identifier for permanent token (this is not a token itself)

{"oneOf":[{"type":"string"},{"type":"null"}],"description":"Optional identifier for permanent token (this is not a token itself)"}

permanentTokenDescription

maximum length
1024
{"oneOf":[{"type":"string"},{"type":"null"}],"maxLength":1024}

User

This object contains information of one user. All users must be identified using an E-mail address, similarly to Git.

userEmail

🔑 User's E-mail address. It works as a global identifier of the user. Once you have created a user, userEmail cannot be changed. This will identify a user globally.

type
string
format
email
{"type":"string","format":"email","description":":key: User's E-mail address. It works as a global identifier of the user. Once you have created a user, `userEmail` cannot be changed. This will identify a user globally.\n"}

loginId

Login ID of the user. A user can use either their E-mail or the login ID to log in to the system. It can be short enough (like alice), and can be changed after the creation of the user. Unlike userEmail, loginId doesn't have to be globally unique.

type
string
{"type":"string","description":"Login ID of the user. A user can use either their E-mail or the login ID to log in to the system. It can be short enough (like `alice`), and can be changed after the creation of the user. Unlike `userEmail`, `loginId` doesn't have to be globally unique.\n"}

password

The hashed password of this user. The hash is generated by PHP-compatible hash function.

type
string
{"type":"string","description":"The hashed password of this user. The hash is generated by PHP-compatible hash function.\n"}

lastLoginTime

The last login time of this user.

{"date":true,"description":"The last login time of this user.\n"}

lastLoginIp

The IP address of the last login of this user.

type
string
{"type":"string","description":"The IP address of the last login of this user.\n"}

preferences

{"$ref":"preferences"}

loginEnabled

If false, the user cannot login to the system.

type
boolean
{"type":"boolean","description":"If false, the user cannot login to the system.\n"}

description

Optinal arbitrary text to identify this user.

type
string
{"type":"string","description":"Optinal arbitrary text to identify this user.\n"}

groups

The group ID of groups which this user belongs to. The set of previleges the user has is deteremined as the union of the privileges of the groups the user belongs to.

type
array
array items
number
{"type":"array","items":{"type":"number"},"description":"The group ID of groups which this user belongs to. The set of previleges the user has is deteremined as the union of the privileges of the groups the user belongs to.\n"}

myLists

type
array
array items
See:userMyList
{"type":"array","items":{"$ref":"userMyList"}}

UserMyList

Represents a user's sub-document for my list.

myListId

type
string
{"type":"string"}

resourceType

type
string
accepted values
series | clinicalCases | pluginJobs
{"type":"string","enum":["series","clinicalCases","pluginJobs"]}

name

type
string
maximum length
64
minimum length
1
{"type":"string","minLength":1,"maxLength":64}

public

type
boolean
{"type":"boolean"}

editors

type
array
array items
See:myListEditor
{"type":"array","items":{"$ref":"myListEditor"}}

createdAt

{"date":true}