Skip to main content

Computations

Base URL

https://prism.ultraviolet.rs/computations


Create Computation

Endpoint

POST /{domainID}/computations

Body

{
"name": "experiment-001",
"description": "Testing new algorithm",
"owner": "user-abc",
"agent_config": {
"log_level": "info",
"cert_file": "cert.pem",
"server_key": "key.pem",
"server_ca_file": "ca.pem",
"client_ca_file": "client-ca.pem",
"attested_tls": true
}
}

cURL Example

curl -X POST "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ ... }'

Response

201 Created
HX-Location: /computations/{id}

List Computations

Endpoint

GET /{domainID}/computations

cURL Example

curl -X GET "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations?domainID=c1adf32-3dac-4aad-bead-ae96fe071239&limit=10" \
-H "Authorization: Bearer <token>"

Sample Response

{
"computations": [
{
"id": "comp-123",
"name": "experiment-001",
"description": "Test run",
"owner": "user-abc",
"status": "completed",
"created_at": "2025-07-17T08:00:00Z"
}
],
"limit": 10,
"offset": 0,
"total": 1
}

Get Computation

Endpoint

GET /{domainID}/computations/{id}?peek={true|false}

cURL Example

curl -X GET "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123?domainID=c1adf32-3dac-4aad-bead-ae96fe071239&peek=true" \
-H "Authorization: Bearer <token>"

Update Computation

Endpoint

PUT /{domainID}/computations/{id}

Body

{
"name": "experiment-001",
"description": "Testing new algorithm",
"owner": "user-abc",
"agent_config": {
"log_level": "info",
"cert_file": "cert.pem",
"server_key": "key.pem",
"server_ca_file": "ca.pem",
"client_ca_file": "client-ca.pem",
"attested_tls": true
}
}

cURL Example

curl -X PUT "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ ... }'

Delete Computation

Endpoint

DELETE /{domainID}/computations/{id}

cURL Example

curl -X DELETE "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

Response

204 No Content

Run Computation

Endpoint

POST /{domainID}/computations/{id}/run?cvm={cvmID}

cURL Example

curl -X POST "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123/run?domainID=c1adf32-3dac-4aad-bead-ae96fe071239&cvm=cvm-123" \
-H "Authorization: Bearer <token>"

Response

"run-id-string"

View Computation Run

Endpoint

GET /{domainID}/computations/{id}/run

cURL Example

curl -X GET "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123/run?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

Retrieve All Runs

Endpoint

GET /{domainID}/computations/runs

cURL Example

curl -X GET "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/runs?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

Computation Stats

Endpoint

GET /{domainID}/computations/statistics?days=7

cURL Example

curl -X GET "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/statistics?days=7&domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

Sample Response

{
"comp_stats": [
{ "day": "2025-07-16", "status": "completed", "count": 4 },
{ "day": "2025-07-17", "status": "failed", "count": 1 }
]
}

Add User Key

Endpoint

POST /{domainID}/computations/{id}/key

Body

{ "key": "base64-encoded-ssh-key" }

cURL Example

curl -X POST "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123/key?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "key": "base64..." }'

Check Key Uploaded

Endpoint

GET /{domainID}/computations/{id}/key

cURL Example

curl -X GET "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123/key?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

Dry Run

Endpoint

POST /{domainID}/computations/{id}/dryrun

cURL Example

curl -X POST "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123/dryrun?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

Sample Response

{
"missing_items": {
"keys": ["key1"],
"hashes": ["hash1"],
"info": ["Missing algorithm"]
}
}

Stop Computation

Endpoint

GET /{domainID}/computations/{id}/stop

cURL Example

curl -X GET "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123/stop?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"

View Manifest

Endpoint

GET /{domainID}/computations/{id}/manifest

cURL Example

curl -X GET "https://prism.ultraviolet.rs/computations/c1adf32-3dac-4aad-bead-ae96fe071239/computations/comp-123/manifest?domainID=c1adf32-3dac-4aad-bead-ae96fe071239" \
-H "Authorization: Bearer <token>"