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>"