{
"openapi": "3.0.0",
"info": {
"title": "Routine Registry API",
"description": "Network distribution and execution service for JS
routines.",
"version": "1.0.0"
},
"paths": {
"/routines": {
"get": {
"summary": "List all registered routines",
"responses": {
"200": {
"description": "Array of routine specifications"
}
}
}
},
"/routines/{name}": {
"get": {
"summary": "Get routine specification",
"parameters": [
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Routine spec.json"
}
}
},
"put": {
"summary": "Create or update a routine",
"parameters": [
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"spec": {
"type": "object",
"description": "The spec.json object"
},
"code": {
"type": "string",
"description": "The JS anonymous function code"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Routine saved successfully"
}
}
}
},
"/routines/{name}/artifact": {
"get": {
"summary": "Download the compiled, self-contained executable
artifact",
"parameters": [
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Javascript IIFE payload",
"content": {
"application/javascript": {
}
}
}
}
}
},
"/routines/{name}/run": {
"post": {
"summary": "Execute a routine remotely on the registry node",
"parameters": [
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"responses": {
"200": {
"description": "Execution result"
}
}
}
}
}
}