5. REST API Reference¶
This document lists all REST endpoints exposed by the RADICAL Edge system.
All bridge endpoints are reachable at http(s)://<bridge_host>:<port>/.
Plugin endpoints are prefixed with /<edge_name>/<plugin_name>/.
5.1. Bridge Endpoints¶
These routes are served directly by the bridge process.
Method |
Path |
Description |
|---|---|---|
|
|
Explorer UI (HTML) |
|
|
SSE stream for real-time notifications and topology changes |
|
|
List connected edges and their plugins. Returns |
|
|
Gracefully disconnect an edge and terminate it |
|
|
Terminate the bridge process |
|
|
Serve a JS plugin module file (used by Explorer UI) |
|
|
Proxy a GET request to a plugin on the named edge |
|
|
Proxy a POST request to a plugin on the named edge |
5.1.1. SSE Event Format¶
The /events stream sends JSON-encoded events:
data: {"topic": "notification", "data": {
"edge": "my_edge",
"plugin": "psij",
"topic": "job_status",
"data": { ... plugin-specific ... }
}}
data: {"topic": "topology", "data": {
"edges": {"my_edge": {"plugins": ["sysinfo", "psij"]}}
}}
5.2. Plugin Base Routes¶
Every plugin automatically registers these routes under /<plugin_name>/:
Method |
Path |
Description |
|---|---|---|
|
|
Create a new session. Returns |
|
|
Close and remove a session. Returns |
|
|
Plugin version. Returns |
|
|
Active session IDs. Returns |
|
|
Health check. Returns status, uptime, active session count |
|
|
UI configuration for the Explorer. Returns plugin name, version, and |
5.3. PsiJ Plugin¶
Namespace: psij
Method |
Path |
Description |
|---|---|---|
|
|
Submit a job. Body: |
|
|
Job status and output. Query params: |
|
|
All jobs in the session. Returns |
|
|
Cancel a job. Returns |
submit request body:
{
"executor": "slurm",
"job_spec": {
"executable": "/path/to/bin",
"arguments": ["--arg", "val"],
"attributes": {
"queue_name": "debug",
"account": "myproject",
"duration": 600,
"node_count": 2
}
}
}
status response:
{
"job_id": "job.abc123",
"native_id": "12345",
"state": "COMPLETED",
"exit_code": 0,
"executable": "/path/to/bin",
"arguments": ["--arg", "val"],
"executor": "slurm",
"stdout": "...",
"stderr": "...",
"stdout_offset": 1024,
"stderr_offset": 0
}
5.4. Rhapsody Plugin¶
Namespace: rhapsody
register_session accepts an optional body: {"backends": ["local", "dragon_v3"]}
Method |
Path |
Description |
|---|---|---|
|
|
Submit tasks. Body: |
|
|
Wait for tasks. Body: |
|
|
All tasks in session |
|
|
Task details including stdout, stderr, exception |
|
|
Cancel a task |
|
|
Backend execution statistics |
5.5. Queue Info Plugin¶
Namespace: queue_info
is_enabled and job_allocation are session-less and return immediately
without requiring a session.
Method |
Path |
Description |
|---|---|---|
|
|
Returns |
|
|
Returns current job allocation of the edge process (see below) |
|
|
Partition and allocation info |
|
|
Jobs in a specific queue/partition |
|
|
All jobs visible to the current user |
|
|
Active allocations |
|
|
Cancel a queued or running job |
job_allocation response:
# Edge running on a login node (no SLURM job):
{"allocation": null}
# Edge running inside a SLURM job allocation:
{"allocation": {"n_nodes": 4, "runtime": 3600}}
# Edge running inside a SLURM job with unlimited walltime:
{"allocation": {"n_nodes": 4, "runtime": null}}
n_nodes is the number of nodes in the allocation; runtime is the
walltime limit in seconds (null for UNLIMITED). A 500 response is
returned if SLURM_JOB_ID is set but allocation details cannot be
determined (missing env vars, squeue failure or timeout).
5.6. Sysinfo Plugin¶
Namespace: sysinfo
Method |
Path |
Description |
|---|---|---|
|
|
Home directory path. Returns |
|
|
System metrics (CPU, memory, disk, GPUs, network, filesystems) |
5.7. Staging Plugin¶
Namespace: staging
Method |
Path |
Description |
|---|---|---|
|
|
Upload a file to the edge. Body: |
|
|
Download a file from the edge. Body: |
|
|
List files in the session staging area |
5.8. XGFabric Plugin¶
Namespace: xgfabric
Method |
Path |
Description |
|---|---|---|
|
|
Get current config directory |
|
|
Set config directory. Body: |
|
|
List saved configurations |
|
|
Load the built-in default workflow config |
|
|
Load the built-in test workflow config (stub tasks) |
|
|
Load a named config from disk |
|
|
Save a configuration. Body: workflow config dict with |
|
|
Delete a saved configuration |
|
|
Current workflow state (status, phase, cluster lists, progress) |
|
|
Start workflow. Body: |
|
|
Cancel a running workflow |
5.9. Error Responses¶
All plugin endpoints return standard HTTP status codes:
200— Success400— Bad request (missing/invalid parameters)404— Session or resource not found409— Conflict (e.g. workflow already running)410— Session expired (TTL exceeded)500— Internal server error
Error body format:
{"detail": "human-readable error message"}