REST API


RS сlient API

Предоставляет API для удалённого запуска пользовательских скриптов и вывода сообщений на рабочем столе.

Информация о модуле

Все информация о задачах сохраняется в локальной базе данных.

Лимиты

  • Максимальный размер скрипта — 10 КБ.
  • Время выполнения по умолчанию — 3600 с (можно уменьшить параметром timeout).
POST
/v1/actions/run-script
Запуск скрипта

Запрос

Name In Type Description
script body string Скрипт, закодированный в формате base64.
timeout (Optional) body integer Максимальное время работы скрипта, с.

Пример запроса:

SCRIPT_B64=$(base64 -w0 hello.py)
curl -X POST -H "Content-Type: application/json" \
     -d "{\"script\":\"$SCRIPT_B64\",\"timeout\":120}" \
     http://controller:9364/v1/actions/run-script | python -m json.tool

Ответ

Name In Type Description
task_id (Optional) body string Идентификатор задачи.

{
  "task_id": "1f1cda8e5d8f4b15a0c4eabf104e1ce9"
}
GET
/v1/actions/{task_id}
Получение статуса задачи

Запрос

Name In Type Description
task_id path string Идентификатор задачи.

Пример запроса:

curl -X GET http://controller:9364/v1/actions/1f1cda8e5d8f4b15a0c4eabf104e1ce9 \
     | python -m json.tool

Ответ

Name In Type Description
task_id (Optional) body string Идентификатор задачи.
status (Optional) body string Статус задачи (Running, Completed, Failed).
stdout (Optional) body string Вывод скрипта в stdout.
stderr (Optional) body string Вывод скрипта в stderr.
return_code (Optional) body string Код возврата процесса.
start_time (Optional) body string Время запуска задачи (UTC).
end_time (Optional) body string Время завершения задачи (UTC).
runtime (Optional) body number Длительность выполнения, с.

{
  "task_id": "1f1cda8e5d8f4b15a0c4eabf104e1ce9",
  "status": "Completed",
  "stdout": "Hello World\n",
  "stderr": "",
  "return_code": 0,
  "start_time": "2025-05-26T12:00:00+00:00",
  "end_time": "2025-05-26T12:00:01+00:00",
  "runtime": 1.0
}
POST
/v1/actions/print-message
Вывод сообщения на экран

Запрос

Name In Type Description
message body string Текст сообщения, закодированный в base64.

Пример запроса:

MSG_B64=$(echo -n "Не забудьте сохранить работу" | base64 -w0)
curl -X POST -H "Content-Type: application/json" \
     -d "{\"message\":\"$MSG_B64\"}" \
     http://controller:9364/v1/actions/print-message | python -m json.tool

Ответ

Name In Type Description
status (Optional) body string Статус ответа (success / error).

{
  "status": "success"
}