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