Download OpenAPI specification:Download
Cuica CI Pipeline-Ready Test Fixture API
Development version: 2de78572
{- "tokens": [
- {
- "uuid": "7d-7vl0rcJ95KAxt96Owrw==",
- "label": "token 1",
- "username": "hall",
- "creationTime": 1709329899,
- "expireTime": 1709333499
}, - {
- "uuid": "9i3ya1Xk8E0ticACM-6V2w==",
- "label": "token 2",
- "username": "oates",
- "creationTime": 1710721039,
- "expireTime": 1724775079
}
]
}
Create a new token. The limit for tokens across all users is 25.
label | string The label to associate with the token |
expires | number The expiration time of the token seconds from now |
{- "label": "my new token",
- "expires": 1000
}
{- "token": "eyJhbGciOiJIUz...",
- "uuid": "SRHsEFH64ypAmtSD-QUgUw=="
}
Delete a specific token from the system permanently by UUID
token-uuid required | string The UUID of the token to delete |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the list of users on the system
{- "users": [
- {
- "username": "admin",
- "fullName": "Administrator Account",
- "isAdmin": 1
}, - {
- "username": "falco",
- "fullName": "Falco Danzig",
- "isAdmin": 0
}
]
}
Create a new user. The limit for users is 10.
username | string The username of the new user |
fullName | number The full name of the new user |
password | string The password for the new user |
isAdmin | number Whether the new user should have administrator privileges |
{- "username": "Nena",
- "fullName": "Gabriele Susanne Kerner",
- "password": "gg Luftball0n$",
- "isAdmin": 1
}
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Delete a specific user from the system permanently by username
username required | string The username of the user to delete |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Operations related to binary image program history, prefixed with the endpoint /binary-image-programs
Get some or all binary image programs. If the filter-by-binary-image query parameter is provided, only binary image programs associated with that binary image will be returned. Use the metadata query parameter to control the amount of detail returned.
metadata | string Enum: "none" "basic" "extended" The level of metadata to return. Defaults to none. Levels:
|
filter-by-binary-image | string <uuid> Optional UUID of the binary image by which to filter the results |
{- "binaryImageProgramsUuids": [
- "664ee468-61b9-4be4-a9f6-14210544c078",
- "f800dd51-86ff-4a49-99d5-c911d5503625"
]
}
Delete some or all binary image programs. If the filter-by-binary-image query parameter is provided, only binary image programs associated with that binary image will be deleted.
filter-by-binary-image | string <uuid> Optional UUID of the binary image by which to filter the deletions |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the data associated with a binary image program by UUID
test-script-run-uuid required | any The test script run UUID |
{- "binaryImagePrograms": {
- "664ee468-61b9-4be4-a9f6-14210544c078": {
- "uuid": "664ee468-61b9-4be4-a9f6-14210544c078",
- "startRequestUuid": "364815cf-027c-4609-b1c4-49620abcb47b",
- "binaryImageUuid": "4a6c1faf-fa18-4975-a494-9912a74dd58a",
- "startTime": "2024-03-20T22:35:58.798438993",
- "finishTime": "2024-03-20T22:36:14.936838619",
- "result": "abort",
- "totalOutputSize": null
}
}
}
Delete a binary image program by UUID
test-script-run-uuid required | any The test script run UUID |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the textual output from the binary image program
test-script-run-uuid required | any The test script run UUID |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Set the user deployer configuration by deployer type and label.
type required | string (DeployerType) Enum: "openocd" "avr" The type of the deployer: [openocd, avr]. |
label required | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ The label of the deployer configuration. |
{- "error": {
- "message": "Bad Request: Deserialize(Error(\"missing field `configData`\", line: 1, column: 2))",
- "reason": "Bad Request",
- "statusCode": 400
}
}
Get configuration for a specific deployer type and label
type required | string (DeployerType) Enum: "openocd" "avr" The type of the deployer: [openocd, avr]. |
label required | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ The label of the deployer configuration. |
{- "label": "jlink",
- "configData": "#\n# SEGGER J-Link\n#\n# http://www.segger.com/jlink.html\n#\n\nadapter driver jlink\n\n# The serial number can be used to select a specific device in case more than\n# one is connected to the host.\n#\n# Example: Select J-Link with serial number 123456789\n#\n# jlink serial 123456789\n"
}
Remove user configuration for a specific deployer type and label
type required | string (DeployerType) Enum: "openocd" "avr" The type of the deployer: [openocd, avr]. |
label required | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ The label of the deployer configuration. |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Add user configuration for a specific deployer type. The configuration format is specific to the deployer. Some may be proprietary config formats like OpenOCD's or they may be JSON files specific to the cuica which are used to construct the file or files expected by an alternate programmer.
type required | string (DeployerType) Enum: "openocd" "avr" The type of the deployer: [openocd, avr]. |
label required | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well as a single '.' or '..' |
config required | string Configuration details for the deployer |
{- "label": "jlink_custom",
- "config": "# My custom OpenOCD script:\\nadapter driver jlink\\n# etc."
}
{- "error": {
- "message": "Bad Request: Deserialize(Error(\"missing field `configData`\", line: 1, column: 2))",
- "reason": "Bad Request",
- "statusCode": 400
}
}
Get configurations for a specific deployer type
type required | string (DeployerType) Enum: "openocd" "avr" The type of the deployer: [openocd, avr]. |
{- "systemConfigLabels": [
- "Cuica",
- "altera-usb-blaster",
- "altera-usb-blaster2",
- "..."
], - "userConfigLabels": [
- "my_custom_config",
- "..."
]
}
Remove all user configurations
type required | string (DeployerType) Enum: "openocd" "avr" The type of the deployer: [openocd, avr]. |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
This requests the programming of the DUT with a binary uploaded to the endpoint using configuration values, if provided, otherwise by using the default configuration values. The configuration values 'DefaultDUTConfig' and 'DefaultDeployerConfig' must be set using SystemSetConfigurationValue prior to using this endpoint if not provided.
requestUuid | string The UUID of the request |
deployerType | string (DeployerType) Enum: "openocd" "avr" |
dutConfigLabel | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well as a single '.' or '..' |
deployerConfigLabel | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well as a single '.' or '..' |
{- "requestUuid": "string",
- "deployerType": "openocd",
- "dutConfigLabel": "string",
- "deployerConfigLabel": "string"
}
{- "requestUuid": "ba2f1fba-3ddc-11ee-b03a-ebf94000f79a"
}
Remove a tag associated with a binary image.
binary-image-uuid required | string <uuid> The UUID of the binary image |
tag required | string (TagString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ The binary image tag |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Add a tag to the binary image
binary-image-uuid required | string <uuid> The UUID of the binary image |
tag required | string (TagString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well the exact string '.' or '..' |
{- "label": "special_release"
}
{- "error": {
- "statusCode": 0,
- "reason": "string",
- "message": "string"
}
}
Remove all of tags for the binary image
binary-image-uuid required | string <uuid> The UUID of the binary image |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
This programs the DUT with a binary from the binary image bank using the provided configuration values, if specified, otherwise using the default configuration values. The configuration values 'DefaultDUTConfig' and 'DefaultDeployerConfig' must be set using SystemSetConfigurationValue prior to using this endpoint if not provided.
binary-image-uuid required | string <uuid> The UUID of the binary image |
requestUuid | string The UUID of the request |
deployerType | string (DeployerType) Enum: "openocd" "avr" |
dutConfigLabel | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well as a single '.' or '..' |
deployerConfigLabel | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well as a single '.' or '..' |
{- "requestUuid": "string",
- "deployerType": "openocd",
- "dutConfigLabel": "string",
- "deployerConfigLabel": "string"
}
{- "requestUuid": "ba2f1fba-3ddc-11ee-b03a-ebf94000f79a"
}
Download the binary image from the binary bank matching the label or get metadata
binary-image-uuid required | string <uuid> The UUID of the binary image |
metadata | string Enum: "none" "basic" "extended" The level of metadata to return. Defaults to none. Levels:
|
Replace a binary image in the binary bank by binary image uuid.
binary-image-uuid required | string <uuid> The UUID of the binary image |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Remove a binary image from the binary bank matching the label.
binary-image-uuid required | string <uuid> The UUID of the binary image |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Add a binary image to the binary image bank
requestUuid | string The UUID of the request |
{- "requestUuid": "string"
}
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the list of binary images in the binary image bank
metadata | string Enum: "none" "basic" "extended" The level of metadata to return. Defaults to none. Levels:
|
tag | string (TagString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ Only return data for binary images having tag |
{- "metadata": {
- "5041ca60-0d84-49c8-8f1e-a2b5259c2375": {
- "label": "my_binary",
- "version": "2b88c978",
- "tags": [ ],
- "readOnly": {
- "uuid": "5041ca60-0d84-49c8-8f1e-a2b5259c2375",
- "modificationCount": 0,
- "addRequestUuid": "90418c4f-bcf5-4fde-bd87-e8c44d156fdf",
- "addedByTestSuiteUuid": "f6f796d0-42b6-4e05-895e-0649814e207c",
- "originalFilename": "my_binary.elf",
- "currentSha256": "53ddbb9ab07252dab5028c4b407ad9e95776955163ae3a3636b77a08afc4f94f",
- "originalSha256": "53ddbb9ab07252dab5028c4b407ad9e95776955163ae3a3636b77a08afc4f94f",
- "creationTime": "2024-06-27T22:24:23.361798889"
}, - "extendedReadOnly": {
- "size": 510972,
- "sha256": "53ddbb9ab07252dab5028c4b407ad9e95776955163ae3a3636b77a08afc4f94f",
- "md5": "f7914e8a56c519bcfc6504432b428804",
- "sha1": "6bc657451f67f79ba446961f4388e7d2d1b9ebc3",
- "crc32": "67aa2f74",
- "architecture": "elf",
- "machineType": "ARM"
}
}, - "6e77bf20-d70d-44be-b69c-1ecda52fbf12": {
- "label": "gpio_test",
- "version": "",
- "tags": [ ],
- "readOnly": {
- "uuid": "6e77bf20-d70d-44be-b69c-1ecda52fbf12",
- "modificationCount": 0,
- "addRequestUuid": "f0d8e38a-51f9-48f5-ad7c-8a4bd6eeceec",
- "addedByTestSuiteUuid": "b5fca8ec-4359-4aae-b52e-7d1f46ba95d8",
- "originalFilename": "gpio_test.elf",
- "currentSha256": "460250b3e94669465cef20b9aa3067ef042608e3c7b861bd9c10f4955702d8fd",
- "originalSha256": "460250b3e94669465cef20b9aa3067ef042608e3c7b861bd9c10f4955702d8fd",
- "creationTime": "2024-07-08T21:01:22.589312258"
}, - "extendedReadOnly": {
- "size": 887672,
- "sha256": "460250b3e94669465cef20b9aa3067ef042608e3c7b861bd9c10f4955702d8fd",
- "md5": "6bbdd9e2966bb0448215ad925ee790c0",
- "sha1": "ab7ce39dc99092c3c8500748c354b54be786e778",
- "crc32": "f9b03ea5",
- "architecture": "elf",
- "machineType": "ARM"
}
}, - "c88caab0-c6bb-411c-8a96-95720f99f487": {
- "label": "my_binary2",
- "version": "2b88c978",
- "tags": [ ],
- "readOnly": {
- "uuid": "c88caab0-c6bb-411c-8a96-95720f99f487",
- "modificationCount": 0,
- "addRequestUuid": "90418c4f-bcf5-4fde-bd87-e8c44d156fdf",
- "addedByTestSuiteUuid": "f6f796d0-42b6-4e05-895e-0649814e207c",
- "originalFilename": "my_binary2.elf",
- "currentSha256": "53ddbb9ab07252dab5028c4b407ad9e95776955163ae3a3636b77a08afc4f94f",
- "originalSha256": "53ddbb9ab07252dab5028c4b407ad9e95776955163ae3a3636b77a08afc4f94f",
- "creationTime": "2024-06-27T22:24:23.842845181"
}, - "extendedReadOnly": {
- "size": 510972,
- "sha256": "53ddbb9ab07252dab5028c4b407ad9e95776955163ae3a3636b77a08afc4f94f",
- "md5": "f7914e8a56c519bcfc6504432b428804",
- "sha1": "6bc657451f67f79ba446961f4388e7d2d1b9ebc3",
- "crc32": "67aa2f74",
- "architecture": "elf",
- "machineType": "ARM"
}
}, - "faa94a70-b763-470e-8dc2-bd7cad159622": {
- "label": "uart_test",
- "version": "",
- "tags": [ ],
- "readOnly": {
- "uuid": "faa94a70-b763-470e-8dc2-bd7cad159622",
- "modificationCount": 0,
- "addRequestUuid": "f0d8e38a-51f9-48f5-ad7c-8a4bd6eeceec",
- "addedByTestSuiteUuid": "b5fca8ec-4359-4aae-b52e-7d1f46ba95d8",
- "originalFilename": "uart_test.elf",
- "currentSha256": "77b96ee84a8fcc22372efba4c56f29a8de71666b345bf9322657f236a717a797",
- "originalSha256": "77b96ee84a8fcc22372efba4c56f29a8de71666b345bf9322657f236a717a797",
- "creationTime": "2024-07-08T21:01:22.048002092"
}, - "extendedReadOnly": {
- "size": 900112,
- "sha256": "77b96ee84a8fcc22372efba4c56f29a8de71666b345bf9322657f236a717a797",
- "md5": "ac0e6c2be5313d4cf416940a8713f667",
- "sha1": "5cd3e727481ab77c6f853db29e58427ea3ac4374",
- "crc32": "deb5bc28",
- "architecture": "elf",
- "machineType": "ARM"
}
}, - "fba87efa-ba0c-49c6-92b0-9e484e56c782": {
- "label": "spi_test",
- "version": "",
- "tags": [ ],
- "readOnly": {
- "uuid": "fba87efa-ba0c-49c6-92b0-9e484e56c782",
- "modificationCount": 0,
- "addRequestUuid": "27b28a65-f3d3-458e-94a5-b4cf73c186de",
- "addedByTestSuiteUuid": "6f1de466-33a9-4013-8d75-0484059d32b9",
- "originalFilename": "spi_test.elf",
- "currentSha256": "70a3eb21582a477e45b15247210bea4ec611f60c2ae3a78e1a95f9859c4520d5",
- "originalSha256": "70a3eb21582a477e45b15247210bea4ec611f60c2ae3a78e1a95f9859c4520d5",
- "creationTime": "2024-07-08T20:59:52.694494581"
}, - "extendedReadOnly": {
- "size": 878312,
- "sha256": "70a3eb21582a477e45b15247210bea4ec611f60c2ae3a78e1a95f9859c4520d5",
- "md5": "84a81ad0efec7fd29e06eebcd16c3c4f",
- "sha1": "294e111680c828ff06c90b0ec4c0eef2a4c7f0c1",
- "crc32": "86b601ee",
- "architecture": "elf",
- "machineType": "ARM"
}
}
}
}
Get DUT configuration for a specific deployer type and label
binary-image-uuid required | string <uuid> The UUID of the binary image |
{- "label": "rp2040",
- "configData": "source [find target/swj-dp.tcl]\nsource [find mem_helper.tcl]\n\nset _CHIPNAME rp2040\nset _CPUTAPID 0x01002927..."
}
Remove user configuration for a specific deployer type and label
binary-image-uuid required | string <uuid> The UUID of the binary image |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Add user DUT configuration for a specific deployer type. The configuration format is specific to the DUT. Some may be proprietary config formats like OpenOCD's or they may be JSON files specific to the cuica which are used to construct the file or files expected by an alternate programmer.
{- "error": {
- "statusCode": 0,
- "reason": "string",
- "message": "string"
}
}
Update the fixture firmware with an uploaded signed binary. This is to program custom fixure programs provided by Uatha. Contact info@uatha.com for more information.
file required | string <binary> |
{- "requestUuid": "ba2f1fba-3ddc-11ee-b03a-ebf94000f79a"
}
Get either the setup or test case test script code
setup_or_test_case required | string (TestScriptType) Enum: "shared" "test-case" The type of test script |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Replace either the setup or test case test script code
requestUuid | string or null <uuid> |
uploadedFilePath | string or null |
testScriptText | string or null |
{- "testScriptText": "import time\\ntime.sleep(1.0)"
}
{- "error": {
- "message": "Unsupported Content-Type",
- "reason": "Bad Request",
- "statusCode": 400
}
}
Add a test script to the test script bank
requestUuid | string or null <uuid> |
uploadedFilePath | string or null |
testScriptText | string or null |
{- "testScriptText": "import time\\ntime.sleep(1.0)"
}
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the list of test scripts in the test script bank
metadata | string Enum: "none" "basic" "extended" The level of metadata to return. Defaults to none. Levels:
|
tag | string (TagString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ Only return data for test scripts having tag |
{- "metadata": {
- "1879e23e-884a-4f9c-bf3a-3a7e0f64b558": {
- "label": "GPIO Test",
- "version": "",
- "tags": [ ],
- "readOnly": {
- "uuid": "1879e23e-884a-4f9c-bf3a-3a7e0f64b558",
- "format": "python",
- "modificationCount": 0,
- "addRequestUuid": "27b28a65-f3d3-458e-94a5-b4cf73c186de",
- "addedByTestSuiteUuid": "6f1de466-33a9-4013-8d75-0484059d32b9",
- "originalFilename": "gpio_test.py",
- "currentSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "originalSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "creationTime": "2024-07-08T20:59:53.018188123"
}, - "extendedReadOnly": {
- "size": 0,
- "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "md5": "d41d8cd98f00b204e9800998ecf8427e",
- "sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
- "crc32": "00000000",
- "checkResults": {
- "errorString": "",
- "errorLine": 0,
- "bytesUsed": 22,
- "bytesTotal": 16384
}
}
}, - "3f5c126c-7de7-473f-8836-cabeccd2a421": {
- "label": "UART Test",
- "version": "",
- "tags": [ ],
- "readOnly": {
- "uuid": "3f5c126c-7de7-473f-8836-cabeccd2a421",
- "format": "python",
- "modificationCount": 0,
- "addRequestUuid": "f0d8e38a-51f9-48f5-ad7c-8a4bd6eeceec",
- "addedByTestSuiteUuid": "b5fca8ec-4359-4aae-b52e-7d1f46ba95d8",
- "originalFilename": "uart_test.py",
- "currentSha256": "d08a87f78dc737b2042db0ed968c30aa84e14e1832fa4fc876af8cdc6e94c667",
- "originalSha256": "d08a87f78dc737b2042db0ed968c30aa84e14e1832fa4fc876af8cdc6e94c667",
- "creationTime": "2024-07-08T21:01:23.314541133"
}, - "extendedReadOnly": {
- "size": 1015,
- "sha256": "d08a87f78dc737b2042db0ed968c30aa84e14e1832fa4fc876af8cdc6e94c667",
- "md5": "649c49dd6b6ba603751cacc8bf8fc68f",
- "sha1": "2cb4e735a0a5c2eb20ab05cc4e9e4d2dbf94cc39",
- "crc32": "045758d0",
- "checkResults": {
- "errorString": "",
- "errorLine": 0,
- "bytesUsed": 602,
- "bytesTotal": 16384
}
}
}, - "6a9e6b62-d8ca-4c2f-92d5-60e0b74c73de": {
- "label": "On-the-fly",
- "version": "2b88c978",
- "tags": [ ],
- "readOnly": {
- "uuid": "6a9e6b62-d8ca-4c2f-92d5-60e0b74c73de",
- "format": "python",
- "modificationCount": 0,
- "addRequestUuid": "90418c4f-bcf5-4fde-bd87-e8c44d156fdf",
- "addedByTestSuiteUuid": "f6f796d0-42b6-4e05-895e-0649814e207c",
- "originalFilename": null,
- "currentSha256": "a183800b7b85826232aa33a5664fcb23ec5b7902cf2fbd8d41ed263c20daf9d5",
- "originalSha256": "a183800b7b85826232aa33a5664fcb23ec5b7902cf2fbd8d41ed263c20daf9d5",
- "creationTime": "2024-06-27T22:24:24.550030847"
}, - "extendedReadOnly": {
- "size": 54,
- "sha256": "a183800b7b85826232aa33a5664fcb23ec5b7902cf2fbd8d41ed263c20daf9d5",
- "md5": "d74e66dae5c4f8e774c5cc02d8ba643a",
- "sha1": "3366d3ba6ef7934ddf2f13ef402678939f05bea0",
- "crc32": "e98fdd0b",
- "checkResults": {
- "errorString": "",
- "errorLine": 0,
- "bytesUsed": 86,
- "bytesTotal": 16384
}
}
}, - "895ba2b6-4230-411c-a7d8-291190d1bfdf": {
- "label": "Stress test",
- "version": "",
- "tags": [ ],
- "readOnly": {
- "uuid": "895ba2b6-4230-411c-a7d8-291190d1bfdf",
- "format": "python",
- "modificationCount": 0,
- "addRequestUuid": "27b28a65-f3d3-458e-94a5-b4cf73c186de",
- "addedByTestSuiteUuid": "6f1de466-33a9-4013-8d75-0484059d32b9",
- "originalFilename": "stress_test.py",
- "currentSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "originalSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "creationTime": "2024-07-08T20:59:53.592612206"
}, - "extendedReadOnly": {
- "size": 0,
- "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "md5": "d41d8cd98f00b204e9800998ecf8427e",
- "sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
- "crc32": "00000000",
- "checkResults": {
- "errorString": "",
- "errorLine": 0,
- "bytesUsed": 22,
- "bytesTotal": 16384
}
}
}, - "dda1b74b-677b-41e1-bb7e-820dbd15f8f3": {
- "label": "UART Read",
- "version": "",
- "tags": [ ],
- "readOnly": {
- "uuid": "dda1b74b-677b-41e1-bb7e-820dbd15f8f3",
- "format": "python",
- "modificationCount": 0,
- "addRequestUuid": "f0d8e38a-51f9-48f5-ad7c-8a4bd6eeceec",
- "addedByTestSuiteUuid": "b5fca8ec-4359-4aae-b52e-7d1f46ba95d8",
- "originalFilename": "uart_read.py",
- "currentSha256": "9cd4925fe1daf42308c04c0edafd18846cb7f2710c7e817eeb0126eb94694277",
- "originalSha256": "9cd4925fe1daf42308c04c0edafd18846cb7f2710c7e817eeb0126eb94694277",
- "creationTime": "2024-07-08T21:01:23.072572342"
}, - "extendedReadOnly": {
- "size": 864,
- "sha256": "9cd4925fe1daf42308c04c0edafd18846cb7f2710c7e817eeb0126eb94694277",
- "md5": "72cae8d696dd534b11caca516e5a3119",
- "sha1": "15e649954dc5335646641d59fc0fbded7c9f50df",
- "crc32": "ce767794",
- "checkResults": {
- "errorString": "",
- "errorLine": 0,
- "bytesUsed": 589,
- "bytesTotal": 16384
}
}
}
}
}
Get test script or test script metadata by test script UUID
test-script-uuid required | string <uuid> The UUID of the test script |
metadata | string Enum: "none" "basic" "extended" The level of metadata to return. Defaults to none. Levels:
|
{- "metadata": {
- "label": "my_script",
- "version": "2b88c978",
- "tags": [ ],
- "readOnly": {
- "uuid": "94f95db6-e849-4ba2-863d-919e61763de9",
- "format": "python",
- "modificationCount": 0,
- "addRequestUuid": "90418c4f-bcf5-4fde-bd87-e8c44d156fdf",
- "addedByTestSuiteUuid": "f6f796d0-42b6-4e05-895e-0649814e207c",
- "originalFilename": "my_script.py",
- "currentSha256": "c0784484d82ae9e6f4815e9e4835ce01aff94052e5cbeb6848845fabb755d940",
- "originalSha256": "c0784484d82ae9e6f4815e9e4835ce01aff94052e5cbeb6848845fabb755d940",
- "creationTime": "2024-06-27T22:24:24.315840972"
}, - "extendedReadOnly": {
- "size": 30,
- "sha256": "c0784484d82ae9e6f4815e9e4835ce01aff94052e5cbeb6848845fabb755d940",
- "md5": "b745a13401ec0d2cb38365238a067380",
- "sha1": "cd04a6b05f5280dd4400529ccfe628e40f809034",
- "crc32": "d805cd8d",
- "checkResults": {
- "errorString": "",
- "errorLine": 0,
- "bytesUsed": 60,
- "bytesTotal": 16384
}
}
}
}
Replace test script code by test script UUID
requestUuid | string or null <uuid> |
uploadedFilePath | string or null |
testScriptText | string or null |
{- "testScriptText": "import time\\ntime.sleep(1.0)"
}
{- "error": {
- "message": "Unsupported Content-Type",
- "reason": "Bad Request",
- "statusCode": 400
}
}
Set test script metadata by test script UUID
requestUuid | string or null <uuid> |
version | string or null |
label | string or null |
{- "label": "A new name",
- "version": "v2.0"
}
{- "error": {
- "message": "Unsupported Content-Type",
- "reason": "Bad Request",
- "statusCode": 400
}
}
Add test script tag by test script UUID
test-script-uuid required | string <uuid> The UUID of the test script |
{- "error": {
- "statusCode": 0,
- "reason": "string",
- "message": "string"
}
}
Remove all test script tags by test script UUID
test-script-uuid required | string <uuid> The UUID of the test script |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Remove a tag associated with a test script.
test-script-uuid required | string <uuid> The UUID of the test script |
tag required | string (TagString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ The test script tag |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Run test script by test script UUID
test-script-uuid required | string <uuid> The UUID of the test script |
{- "requestUuid": "ba2f1fba-3ddc-11ee-b03a-ebf94000f79a"
}
Check ad hoc test script without adding to test script bank
requestUuid | string or null <uuid> |
uploadedFilePath | string or null |
testScriptText | string or null |
{- "testScriptText": "import time\\ntime.sleep(1.0)"
}
{- "requestUuid": "ba2f1fba-3ddc-11ee-b03a-ebf94000f79a"
}
Run ad hoc test script without adding to the test script bank
requestUuid | string or null <uuid> |
uploadedFilePath | string or null |
testScriptText | string or null |
{- "testScriptText": "import time\\ntime.sleep(1.0)"
}
{- "requestUuid": "ba2f1fba-3ddc-11ee-b03a-ebf94000f79a"
}
Determine if there is an available update from the public software update web service.
{- "success": {
- "message": "Software update available: cuica_2.0.47_0.6.3_0.3.1.tar",
- "image": "cuica_2.0.47_0.6.3_0.3.1.tar"
}
}
This method is used to check on the state of a request which has been accepted. It's to be used for clients which do not wish to have a websocket client and need to poll for the status in order to determine whether a long-running command is still in progress or has completed, as well as whether the command had succeeded.
request_uuid required | string UUID of the request |
{- "eventType": "commandCompleted",
- "command": {
- "FixtureCheckAdHocTestScript": {
- "requestUuid": "671fd11d-1e0c-4628-972e-e2df09a21e6e"
}
}, - "result": {
- "success": "success"
}
}
Get the current system configuration values
{- "defaultDeployerConfig": "Cuica",
- "defaultDeployerType": "openocd",
- "defaultDutConfig": "rp2040",
- "hostname": "cuica-host",
- "ntpEnabled": true,
- "timezone": "America/New_York"
}
Set one or more system configuration values
hostname | string (Hostname) ^[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$ |
defaultDeployerType | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well as a single '.' or '..' |
defaultDeployerConfig | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well as a single '.' or '..' |
defaultDutConfig | string (LabelString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well as a single '.' or '..' |
ntpEnabled | boolean NTP is enabled and will use the server specified by 'ntpServer' to maintain the system time |
timezone | string The current timezone |
{- "hostname": "string",
- "defaultDeployerType": "string",
- "defaultDeployerConfig": "string",
- "defaultDutConfig": "string",
- "ntpEnabled": true,
- "timezone": "string"
}
{- "defaultDeployerConfig": "Cuica"
}
Perform a factory reset. NOTE: This will trigger a reboot of the system.
username required | string Username of the user initiating the factory reset |
password required | string <password> Password for authentication |
hardReset required | boolean Whether to perform a hard reset |
{- "username": "string",
- "password": "pa$$word",
- "hardReset": true
}
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Set the Wifi connection parameters
requestUuid | string <uuid> The request UUID, if any |
ssid | string The Wifi SSID to which the connection will be made |
passphrase | string The Wifi passphrase to use when connecting |
{- "requestUuid": "aa738192-9680-4e5b-bd2e-c0b19364a1df",
- "ssid": "string",
- "passphrase": "string"
}
{- "requestUuid": "ba2f1fba-3ddc-11ee-b03a-ebf94000f79a"
}
Disconnect and clear the Wifi connection parameters
requestUuid | string <uuid> The request UUID, if any |
{- "requestUuid": "aa738192-9680-4e5b-bd2e-c0b19364a1df"
}
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the current memory usage of the system including both RAM and flash memory
{- "memoryUsage": {
- "nonvolatileBytesFree": 3801296896,
- "nonvolatileBytesTotal": 3819200512,
- "volatileBytesFree": 389791744,
- "volatileBytesTotal": 514203648
}
}
Set the TLS certificate & key to use for the web interface. NOTE: This will trigger a reboot of the system to use the new certificate and key.
certificateFile | string <binary> The certificate file to be uploaded |
keyFile | string <binary> The key file to be uploaded |
{- "error": {
- "message": "Unsupported Content-Type",
- "reason": "Bad Request",
- "statusCode": 400
}
}
Delete the TLS certificate to use for the web interface and use the factory-installed default instead
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Send the system logs to Uatha LLC to help with debugging and assistance. The back-end service is rate limited.
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Operations related to test cases, prefixed with the endpoint /test-cases
Note: These fields in the specification are not yet implemented: resultsFormat
, resultsFile
, retries
, delay
, shouldSkip
, timeout
{- "specification": [
- {
- "schemaVersion": "1.0",
- "binary": {
- "uuid": "5041ca60-0d84-49c8-8f1e-a2b5259c2375",
- "label": "my_binary"
}, - "setupScript": {
- "uuid": "94f95db6-e849-4ba2-863d-919e61763de9",
- "label": "my_script"
}, - "testScript": {
- "uuid": "6a9e6b62-d8ca-4c2f-92d5-60e0b74c73de",
- "label": "my_script2"
}, - "resultsFormat": "json",
- "resultsFile": "${name}_${run}.json",
- "retries": 3,
- "delay": 100,
- "shouldSkip": false,
- "timeout": 60,
- "readOnly": {
- "uuid": "898440c0-dcfa-48a3-ba4b-55b1558fcf49"
}
}
]
}
Operations related to test script run history, prefixed with the endpoint /test-script-runs
Get some or all test script runs. If the filter-by-test-script query parameter is provided, only test script runs associated with that test script will be returned. Use the metadata query parameter to control the amount of detail returned.
metadata | string Enum: "none" "basic" "extended" The level of metadata to return. Defaults to none. Levels:
|
filter-by-test-script | string <uuid> Optional UUID of the test script by which to filter the results |
{- "testScriptRunsUuids": [
- "04422866-fcca-462c-929e-2e5ce3b34e8b",
- "2f680d9a-9a73-4f0f-9082-67114a46a902"
]
}
Delete some or all test script runs. If the filter-by-test-script query parameter is provided, only test script runs associated with that test script will be deleted.
filter-by-test-script | string <uuid> Optional UUID of the test script by which to filter the deletions |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the data associated with a test script run by UUID
test-script-run-uuid required | any The test script run UUID |
{- "testScriptRuns": {
- "04422866-fcca-462c-929e-2e5ce3b34e8b": {
- "uuid": "04422866-fcca-462c-929e-2e5ce3b34e8b",
- "startRequestUuid": "3d969281-77ef-470a-a980-8f877d689983",
- "testScriptUuid": "c07b45df-8111-46c4-a2b4-76bcf8ce93e3",
- "testScriptSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
- "testScriptVersion": "",
- "testScriptModificationCount'": 0,
- "startTime": "2024-03-06T02:16:13.986147045",
- "finishTime'": "2024-03-06T02:16:14.945652228",
- "result": "pass",
- "wasRunAsTestCaseScript": true
}
}
}
Delete a test script run by UUID
test-script-run-uuid required | any The test script run UUID |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the print() and other console data from the test script run
test-script-run-uuid required | any The test script run UUID |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the results from the test script run
test-script-run-uuid required | any The test script run UUID |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Operations related to test suite run history, prefixed with the endpoint /test-suite-runs
Get all test suite runs
metadata | string Enum: "none" "basic" "extended" The level of metadata to return. Defaults to none. Levels:
|
filter-by-test-suite | string <uuid> Optional UUID of the test suite by which to filter the results |
{- "testSuiteRunsUuids": [
- "bd7baa8d-8b1a-4e97-88ee-a9ef09529b37"
]
}
Delete some or all test suite runs
filter-by-test-suite | string <uuid> Optional UUID of the test suite by which to filter the deletions |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get test suite run details by UUID
test-suite-run-uuid required | any The test suite run UUID |
{- "testSuiteRuns"": {
- "bd7baa8d-8b1a-4e97-88ee-a9ef09529b37": {
- "uuid": "bd7baa8d-8b1a-4e97-88ee-a9ef09529b37",
- "testSuiteUuid": "ffa1b860-ea8c-4d73-af2e-51ed42e69e2f",
- "startRequestUuid": "a8f618e3-90b0-4814-a2d5-869d436838ca",
- "abortRequestUuid": "a8f618e3-90b0-4814-a2d5-869d436838ca",
- "startTime": "2024-03-26T23:52:57.496923959",
- "finishTime": "2024-03-26T23:53:00.573619166",
- "note": "",
- "result": "pass",
- "testCaseRuns": [
- {
- "testCaseUuid": "e7968a5d-b454-442a-8edb-b958fc98ad6e",
- "setupScriptRunUuid": "8b677ff7-1b72-455f-b6c4-3b2bf611e2ff",
- "testScriptRunUuid": "3843a891-c34f-42c4-a533-83dba497a3b0",
- "binaryImageProgramUuid": null,
- "startTime": "2024-03-26T23:52:57.682610917",
- "finishTime": "2024-03-26T23:53:00.181802497",
- "binaryImageProgramResult": null,
- "testScriptRunResult": "pass",
- "result": "pass"
}
]
}
}
}
Delete a test suite run by UUID
test-suite-run-uuid required | any The test suite run UUID |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Operations related to test suite operations, prefixed with the endpoint /test-suites
Note: These fields in the specification are not yet implemented: timeout
Add a test suite to the test script bank
requestUuid | string or null <uuid> |
uploadedFilePath | string or null |
object or null |
{- "requestUuid": "aa738192-9680-4e5b-bd2e-c0b19364a1df",
- "uploadedFilePath": "string",
- "specification": {
- "schemaVersion": "string",
- "version": "string",
- "author": "string",
- "description": "string",
- "deployment": {
- "deployerType": "string",
- "deployerConfig": "string",
- "dutConfig": "string"
}, - "tags": [
- "string"
], - "timeout": 0,
- "addBinaries": {
- "property1": {
- "file": "string",
- "version": "string"
}, - "property2": {
- "file": "string",
- "version": "string"
}
}, - "addScripts": {
- "property1": {
- "file": "string",
- "data": "string",
- "version": "string"
}, - "property2": {
- "file": "string",
- "data": "string",
- "version": "string"
}
}, - "testCases": [
- {
- "binary": {
- "label": "string"
}, - "setupScript": {
- "label": "string"
}, - "testScript": {
- "label": "string"
}, - "resultsFormat": "string",
- "resultsFile": "string",
- "retries": 0,
- "delay": 0,
- "timeout": 0
}
]
}
}
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get the list of test suites
metadata | string Enum: "none" "basic" "extended" The level of metadata to return. Defaults to none. Levels:
|
tag | string (TagString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ Only return data for test scripts having tag |
{- "testSuites": {
- "YAML Reference Test Suite": {
- "schemaVersion": "1.0",
- "version": "v3.2.1",
- "author": "John Doe",
- "description": "This is a description from the YAML",
- "deployment": {
- "deployerType": "openocd",
- "deployerConfig": "Cuica",
- "dutConfig": "rp2040"
}, - "readOnly": {
- "uuid": "f6f796d0-42b6-4e05-895e-0649814e207c",
- "addRequestUuid": "90418c4f-bcf5-4fde-bd87-e8c44d156fdf",
- "originalFilename": "bundle.tar",
- "creationTime": "2024-06-27T22:24:23.116653055",
- "modificationTime": "2024-06-27T22:24:23.116653055",
- "numTestCases": 1,
- "lastTestSuiteRunResult": "pass"
}
}, - "My Gizmo Test Suite": {
- "schemaVersion": "1.0",
- "version": "",
- "author": "",
- "description": "",
- "deployment": {
- "deployerType": "openocd",
- "deployerConfig": "Cuica",
- "dutConfig": "stm32g4x"
}, - "readOnly": {
- "uuid": "6f1de466-33a9-4013-8d75-0484059d32b9",
- "addRequestUuid": "27b28a65-f3d3-458e-94a5-b4cf73c186de",
- "originalFilename": "gizmo.tar.gz",
- "creationTime": "2024-07-08T20:59:52.485818331",
- "modificationTime": "2024-07-08T20:59:52.485818331",
- "numTestCases": 3,
- "lastTestSuiteRunResult": "pass"
}
}, - "Stress Test Suite": {
- "schemaVersion": "1.0",
- "version": "",
- "author": "",
- "description": "",
- "deployment": {
- "deployerType": "openocd",
- "deployerConfig": "Cuica",
- "dutConfig": "stm32g4x"
}, - "readOnly": {
- "uuid": "b5fca8ec-4359-4aae-b52e-7d1f46ba95d8",
- "addRequestUuid": "f0d8e38a-51f9-48f5-ad7c-8a4bd6eeceec",
- "originalFilename": "stress.tar.gz",
- "creationTime": "2024-07-08T21:01:21.900259092",
- "modificationTime": "2024-07-08T21:01:21.900259092",
- "numTestCases": 6,
- "lastTestSuiteRunResult": "fail"
}
}
}
}
Add a test suite from a bundle file. The bundle is a TAR file which contains the specification file,
and the binary images and test scripts added by the specification in the addBianries
and addScripts
blocks.
The organization of the TAR file is:
.
├── binary_image1.elf
├── binary_image2.elf
├── ...
├── test_script1.py
├── test_script2.py
├── ...
└── spec.yaml
file required | string <binary> The test suite bundle file |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Get test suite specification by test suite UUID
test-script-uuid required | string <uuid> The UUID of the test script |
metadata | string Enum: "none" "basic" "extended" The level of metadata to return. Defaults to none. Levels:
|
{- "testSuites": {
- "YAML Reference Test Suite": {
- "schemaVersion": "1.0",
- "version": "v3.2.1",
- "author": "John Doe",
- "description": "This is a description from the YAML",
- "deployment": {
- "deployerType": "openocd",
- "deployerConfig": "Cuica",
- "dutConfig": "stm32g4x"
}, - "readOnly": {
- "uuid": "f6f796d0-42b6-4e05-895e-0649814e207c",
- "addRequestUuid": "90418c4f-bcf5-4fde-bd87-e8c44d156fdf",
- "originalFilename": "bundle.tar",
- "creationTime": "2024-06-27T22:24:23.116653055",
- "modificationTime": "2024-06-27T22:24:23.116653055",
- "numTestCases": 1,
- "lastTestSuiteRunResult": "pass"
}
}
}
}
Replace test suite by test suite UUID
requestUuid | string or null <uuid> |
uploadedFilePath | string or null |
specification | object or null See schema in |
{- "requestUuid": "aa738192-9680-4e5b-bd2e-c0b19364a1df",
- "uploadedFilePath": "string",
- "specification": { }
}
{- "error": {
- "message": "Unsupported Content-Type",
- "reason": "Bad Request",
- "statusCode": 400
}
}
Modify test suite by test suite UUID
requestUuid | string or null <uuid> |
version | string or null |
label | string or null |
{- "label": "A new name",
- "version": "v2.0"
}
{- "error": {
- "message": "Unsupported Content-Type",
- "reason": "Bad Request",
- "statusCode": 400
}
}
Add a tag to the test suite
test-script-uuid required | string <uuid> The UUID of the test script |
tag required | string (TagString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ A URL-encoded string at most 50 characters (urlencoded in paths), excluding '/', '?', '#', '&', and '', as well the exact string '.' or '..' |
{- "label": "special_release"
}
{- "error": {
- "statusCode": 0,
- "reason": "string",
- "message": "string"
}
}
Remove all of tags for the test suite
test-script-uuid required | string <uuid> The UUID of the test script |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Remove a tag associated with a test suite
test-script-uuid required | string <uuid> The UUID of the test script |
tag required | string (TagString) ^([^\u002F\u003F\u0023\u0026\u005C]){1,50}$ The test script tag |
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Add test case to test suite
schemaVersion | string Represents which parser to use |
description | string Description of the test case |
object A reference to a previously imported binary by label (exclusive, if both are specified, uuid is used) | |
object The deployment config to use for this case; if there is no deployment to be done, omit it | |
object A reference to a previously imported setup script by label (exclusive, if both are specified, uuid is used) | |
object A reference to a previously imported script by label or by uuid (exclusive, if both are specified, uuid is used) |
[- {
- "schemaVersion": "1.0",
- "description": "Description of the YAML reference case",
- "binary": {
- "label": "my_binary",
- "uuid": "72125636-5ecd-11ee-b107-73f17562859e"
}, - "deployment": {
- "deployerType": "openocd",
- "deployerConfig": "cuica",
- "dutConfig": "rp2040"
}, - "setupScript": {
- "label": "my_setup_script",
- "uuid": "686ba66e-5ecd-11ee-a0ff-87e6202d755f"
}, - "testScript": {
- "label": "my_test_script",
- "uuid": "78341fa4-5ecd-11ee-bb30-8bfbb0324ce5"
}
}
]
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Reorder the test cases within a test suite
testCaseUuids | Array of strings <uuid> [ items <uuid > ] The test cases within the test suite, in execution order |
{- "testCaseUuids": [
- [
- "72125636-5ecd-11ee-b107-73f17562859e",
- "c59c3364-41ec-11ef-b309-77ddf6c0064c",
- "ca8b75ec-41ec-11ef-b873-231b2c3913de"
]
]
}
{- "error": {
- "message": "Unauthorized",
- "reason": "Unauthorized",
- "statusCode": 401
}
}
Connect to this WebSocket to receive asynchronous events. For commands which aren't serviced
immediately, a 202 is returned along with a request UUID. The request UUID can then be
either checked synchronously, i.e. polled, via the GET /system/request/{uuid}
endpoint or by
waiting for the CommandCompleted websocket event. A request UUID can also be provided to
those endpoints in order to add flexibility to the client logic.
Some events are also generated when system state changes or when a record has been added, modified, or deleted, as well when a spontaneous system state change occurs, e.g. Wifi signal strength change, so that all clients are aware of the state change.
See the documentation for the individual endpoints to see which events they may trigger.
Every event has an eventType field which can be used to route messages in client applications.
Event: commandCompleted
{
"eventType": "commandCompleted",
"command": {
// Command structure here
},
"result": {
// CommandResult structure here
}
}
Event: synchronousCommandCompleted
{
"eventType": "synchronousCommandCompleted",
"command": {
// Command structure here
},
"result": {
// CommandResult structure here
},
"resultData": {
// SynchronousCommandResultData structure here (if any)
}
}
Event: systemShutdownBegun
{
"eventType": "systemShutdownBegun"
}
Event: notificationPosted
{
"eventType": "notificationPosted",
"uuid": "uuid-value",
"text": "Notification text",
"severity": "severity-value",
"time": 1234567890
}
Event: programmingStatusChanged
{
"eventType": "programmingStatusChanged",
"status": "status-value",
"message": "Status message",
"requestUuid": "uuid-value"
}
Event: programmingOutputAdded
{
"eventType": "programmingOutputAdded",
"output": "Output string",
"requestUuid": "uuid-value",
"cumulativeOutputSize": 1234
}
Event: factoryResetButtonPress
{
"eventType": "factoryResetButtonPress",
"holdCount": 10
}
Event: factoryResetButtonRelease
{
"eventType": "factoryResetButtonRelease",
"holdCount": 10
}
Event: testSuitesAdded
{
"eventType": "testSuitesAdded",
"requestUuid": "uuid-value",
"testSuiteUuids": ["uuid-value1", "uuid-value2"]
}
Event: testSuitesChanged
{
"eventType": "testSuitesChanged",
"requestUuid": "uuid-value",
"testSuiteUuids": ["uuid-value1", "uuid-value2"]
}
Event: testSuitesRemoved
{
"eventType": "testSuitesRemoved",
"requestUuid": "uuid-value",
"testSuiteUuids": ["uuid-value1", "uuid-value2"]
}
Event: testSuiteRunStarted
{
"eventType": "testSuiteRunStarted",
"requestUuid": "uuid-value",
"testSuiteLabel": "label",
"testSuiteUuid": "uuid-value",
"testSuiteRunUuid": "uuid-value"
}
Event: testSuiteRunCompleted
{
"eventType": "testSuiteRunCompleted",
"requestUuid": "uuid-value",
"testSuiteUuid": "uuid-value",
"testSuiteRunUuid": "uuid-value",
"result": "run-result-value"
}
Event: testSuiteRunRemoved
{
"eventType": "testSuiteRunRemoved",
"requestUuid": "uuid-value",
"testSuiteRunUuid": "uuid-value"
}
Event: testCaseRunStarted
{
"eventType": "testCaseRunStarted",
"requestUuid": "uuid-value",
"testSuiteUuid": "uuid-value",
"testSuiteRunUuid": "uuid-value",
"testCaseUuid": "uuid-value",
"testCaseRunUuid": "uuid-value",
"testCaseIndex": 1,
"numTestCases": 10
}
Event: testCaseRunCompleted
{
"eventType": "testCaseRunCompleted",
"requestUuid": "uuid-value",
"testSuiteUuid": "uuid-value",
"testSuiteRunUuid": "uuid-value",
"testCaseUuid": "uuid-value",
"testCaseRunUuid": "uuid-value",
"result": "run-result-value"
}
Event: binaryImagesAdded
{
"eventType": "binaryImagesAdded",
"requestUuid": "uuid-value",
"binaryImageUuids": ["uuid-value1", "uuid-value2"]
}
Event: binaryImagesChanged
{
"eventType": "binaryImagesChanged",
"requestUuid": "uuid-value",
"binaryImageUuids": ["uuid-value1", "uuid-value2"]
}
Event: binaryImagesRemoved
{
"eventType": "binaryImagesRemoved",
"requestUuid": "uuid-value",
"binaryImageUuids": ["uuid-value1", "uuid-value2"]
}
Event: binaryImageProgramStarted
{
"eventType": "binaryImageProgramStarted",
"requestUuid": "uuid-value",
"binaryImageUuid": "uuid-value",
"binaryImageProgramUuid": "uuid-value",
"expectedTotalOutputSize": 1234
}
Event: binaryImageProgramCompleted
{
"eventType": "binaryImageProgramCompleted",
"requestUuid": "uuid-value",
"binaryImageUuid": "uuid-value",
"binaryImageProgramUuid": "uuid-value",
"binaryImageProgramResult": "program-result-value",
"stdout": "output string",
"totalOutputSize": 1234
}
Event: testCasesAdded
{
"eventType": "testCasesAdded",
"requestUuid": "uuid-value",
"testCaseUuids": ["uuid-value1", "uuid-value2"]
}
Event: testCasesChanged
{
"eventType": "testCasesChanged",
"requestUuid": "uuid-value",
"testCaseUuids": ["uuid-value1", "uuid-value2"]
}
Event: testCasesRemoved
{
"eventType": "testCasesRemoved",
"requestUuid": "uuid-value",
"testCaseUuids": ["uuid-value1", "uuid-value2"]
}
Event: deploymentConfigsChanged
{
"eventType": "deploymentConfigsChanged",
"requestUuid": "uuid-value"
}
Event: testScriptProgressChanged
{
"eventType": "testScriptProgressChanged",
"requestUuid": "uuid-value",
"testSuiteUuid": "uuid-value",
"testSuiteRunUuid": "uuid-value",
"testScriptStatus": "status-value",
"checkpoint": 10,
"maxCheckpoint": 100
}
Event: testScriptCheckCompleted
{
"eventType": "testScriptCheckCompleted",
"requestUuid": "uuid-value",
"errorString": "error string",
"lineNumber": 0,
"bytesUsed": 123,
"bytesTotal": 1000
}
Event: testScriptRunStarted
{
"eventType": "testScriptRunStarted",
"requestUuid": "uuid-value",
"setupScriptUuid": "uuid-value",
"testCaseScriptUuid": "uuid-value",
"setupScriptRunUuid": "uuid-value",
"testCaseScriptRunUuid": "uuid-value"
}
Event: testScriptRunCompleted
{
"eventType": "testScriptRunCompleted",
"requestUuid": "uuid-value",
"setupScriptUuid": "uuid-value",
"testCaseScriptUuid": "uuid-value",
"setupScriptRunUuid": "uuid-value",
"testCaseScriptRunUuid": "uuid-value",
"testScriptRunResult": "run-result-value",
"stdout": "output string"
}
Event: systemStateChanged
{
"eventType": "systemStateChanged",
"systemState": "state-value"
}
Event: systemOperationChanged
{
"eventType": "systemOperationChanged",
"requestUuid": "uuid-value",
"testSuiteUuid": "uuid-value",
"testSuiteRunUuid": "uuid-value",
"testCaseUuid": "uuid-value",
"testCaseRunUuid": "uuid-value",
"systemOperation": "operation-value"
}
Event: wifiServicesChanged
{
"eventType": "wifiServicesChanged",
"wifiSsids": ["ssid1", "ssid2"]
}
Event: wifiStatusChanged
{
"eventType": "wifiStatusChanged",
"connectionStatus": "status-value",
"activeWifiSsid": "ssid",
"wifiSignalStrength": "signal-strength-value"
}
Event: memoryUsageChanged
{
"eventType": "memoryUsageChanged",
"memoryUsage": {
// MemoryUsage structure here
}
}
Event: systemConfigurationChanged
{
"eventType": "systemConfigurationChanged",
"requestUuid": "uuid-value",
"configurationValues": {
"config-key1": "value1",
"config-key2": "value2"
}
}
Example of receiving a websocket event using python:
import json
import websocket
api_key = '<my-api-token>'
certificate_chain = 'my-chain.pem'
headers = {'Authorization': f'Bearer {api_key}'}
websocket_connection = websocket.create_connection(f'wss://cuica-host/ws',\
sslopt={'ca_certs': certificate_chain)}, header=headers)
websocket_connection.timeout = 30
try:
websocket_result = websocket_connection.recv()
websocket_json_result = json.loads(websocket_result)
print(f'Received: {websocket_json_result}')
except websocket._exceptions.WebSocketTimeoutException as _:
print(f'Websocket event never showed up')
websocket_connection.close()
Sample output:
Received: {'eventType': 'wifiStatusChanged', 'connectionStatus': 'wifiConnected', 'activeWifiSsid': 'my-wifi-router', 'wifiSignalStrength': 'veryGood'}