API

API OneBridge поддерживает HTTPS-протоколы. В API OneBridge используются GET-, POST-, PATCH- и DELETE-запросы.

Каждый запрос начинается с URL http://<host>, за ним следует название метода и параметры, при необходимости. Например, запрос для получения информации о запуске графа может быть записан так: http://127.0.0.1:3000/api/runs/154 или https://onebridge-dev.dev.allbridge.ru/api/runs/154. В таблицах с описанием методов будут указаны относительные пути URL-запросов.

Список API-методов системы OneBridge, доступных для вызова:

Resources

get info

ПараметрЗначение
ОписаниеПросмотр основной информации о сервере
МетодGET
URL запроса
/api/info
Параметры запросабез параметров
Структура ответа
name: string, 
ip_addrs: [string],
os: string,
uptime: integer,  
local_time: date-time,  
utc_time: date-time.
Пример ответа
{
  "name": "onebridge@sbar-dev-app01",
  "ip_addrs": [
    "ens192 10.131.1.101/24"
  ],
  "os": "Debian GNU/Linux 12 (bookworm)\n",
  "uptime": 339187,
  "local_time": "2025-02-25T10:12:42.143302793+03:00",
  "utc_time": "2025-02-25T07:12:42.143338945Z"
}

get performance

ПараметрЗначение
ОписаниеПросмотр данных о работе сервера для отображения графиков работы памяти, процессора и запущенных заданий
МетодGET
URL запроса
/api/performance
Параметры запросабез параметров
Структура ответа возвращает JSON файл со структурой, которая содержит объекты, описывающие состояние памяти, процессора и запущенных заданий:

ram: объект с информацией о памяти

datetime: date-time,  
total: string, 
used: string

cpu: объект с информацией о процессоре

datetime: date-time,
usage: string

job: объект с информацией о запущенных заданиях

datetime: date-time,
jobs: integer
Пример ответа

"ram": {
    "system_ram": 
    [
        {
        "datetime": "2023-06-13T06:37:36Z",
        "total": "16777785344",
        "used": "1356226560"
        },
    ...],
    "worker_ram": []  },
"cpu": {
    "system_cpu": 
    [
        {
        "datetime": "2023-06-13T06:37:36Z",
        "usage": "0.21265951"
        },
    ...],
    "worker_cpu": []  
    },
"jobs": {
    "jobs": 
    [
      {
      "datetime": "2025-03-06T15:07:37.895436576+03:00",
      "jobs": 0
      },
...]

get utilization

ПараметрЗначение
ОписаниеПросмотр данных о количестве используемой памяти сервера
МетодGET
URL запроса
/api/utilization
Параметры запросабез параметров
Структура ответа
name: string,
total: integer,
used: integer
Пример ответа
"name":"System RAM",
"total":16777785344,
"used":1351917568

Execution

get job params

ПараметрЗначение
ОписаниеПросмотр параметров задания
МетодGET
URL запроса
api/job_params?path=/project/directory/graphname.grf
Параметры запроса
path: string
Структура ответа
name: string
{
  value: string,
  required: boolean,
  encrypted: boolean
}
Пример ответа
{
    "count": {
        "value": "1",
        "required": false,
        "encrypted": false
    },
    "str": {
        "value": "Hello, world!",
        "required": false,
        "encrypted": false
    }
}

get run by id

ПараметрЗначение
ОписаниеПросмотр информации о запуске задания по id
МетодGET
URL запроса
/api/runs/id
Параметры запросабез параметров
Структура ответа
id: integer,  
started: date-time,  
finished: date-time, (необязательно)  
job_file: string,  
status: string, возможные значения: "Succeeded", "Failed", "InProgress"
params: {
    name: string {
        value: integer,
        required: boolean,
        encrypted: boolean
    }
},
project_id: string,
launch_type: string (варианты: manual, child_call, schedule, event_listener),
user: string.
children: [string], (необязательно)  
root: boolean
Пример ответа
{
  "id": "1039",
  "started": "2025-03-05T11:27:26.115895190+03:00",
  "finished": "2025-03-05T11:27:46.129338590+03:00",
  "job_file": "/ready-check/1232_encryptedParams.grf",
  "status": "Succeeded",
  "params": {
    "JOB_FILE": "1232_encryptedParams.grf",
    "SANDBOX_ROOT": "/opt/onebridge-dev/projects/ready-check",
    "SECONDS": {
      "value": "20",
      "required": "true",
      "encrypted": "true"
    }
  },
  "project_id": "ready-check",
  "launch_type": "manual",
  "user": "sofiko",
  "children": [],
  "root": true
}

get runs

ПараметрЗначение
ОписаниеПросмотр списка заданий
МетодGET
URL запроса
api/runs?offset=0&limit=25&includeRoot=true
Параметры запроса
from: date-time, начало интервала работы графа, необязательно  
to: date-time, конец интервала работы графа, необязательно  
job_file: string, имя файла, необязательно  
status: string, статус выполнения, необязательно  
offset: integer, начальный индекс в актуальном списке запущенных заданий, необязательно   
limit: integer, количество записей, которые нужно прислать, необязательно   
order: string, порядок сортировки ответов, возможные значения: "Asc", "Desc", по умолчанию order = "Desc"
Структура ответа
id: string,  
parent_id: string, (необязательно)  
started: date-time,  
job_file: string,  
status: string, возможные значения: "Succeeded", "Failed", "InProgress"
user: string
Пример ответа
[
  {
    "id": "1045",
    "parent_id": null,
    "started": "2025-03-07T12:15:33.679945596+03:00",
    "job_file": "/bug-checking/lookup_table_writer.grf",
    "status": "Succeeded",
    "user": "admin"
  },
  {
    "id": "1044",
    "parent_id": null,
    "started": "2025-03-05T12:17:53.216573428+03:00",
    "job_file": "/bug-checking/1148_data_transfer_row_count_1.grf",
    "status": "Failed",
    "user": "sofiko"
  },
  {
    "id": "1043",
    "parent_id": null,
    "started": "2025-03-05T11:34:00.002568904+03:00",
    "job_file": "/ready-check/1232_encryptedParams.grf",
    "status": "Failed",
    "user": "root"
  },
  {
    "id": "1042",
    "parent_id": null,
    "started": "2025-03-05T11:32:00.002515507+03:00",
    "job_file": "/ready-check/1048_NaN.grf",
    "status": "Failed",
    "user": "root"
  },
  {
    "id": "1041",
    "parent_id": null,
    "started": "2025-03-05T11:29:25.143493799+03:00",
    "job_file": "/ready-check/1232_encryptedParams.grf",
    "status": "Succeeded",
    "user": "sofiko"
  }
]

get runs in progress

ПараметрЗначение
ОписаниеПросмотр списка запущенных на данный момент заданий
МетодGET
URL запроса
api/runs/inProgress
Параметры запросаБез параметров
Структура ответа
id: string,   
started:  date-time,
finished: date-time,
job_file: string,  
status: string, возможные значения: "Succeeded", "Failed", "InProgress"
children: [string]
Пример ответа
[
  {
    "id": 1046,
    "started": "2025-03-07T13:54:44.674032212+03:00",
    "finished": null,
    "job_file": "/ready-check/1232_encryptedParams.grf",
    "status": "InProgress",
    "children": []
  },
  {
    "id": 1047,
    "started": "2025-03-07T13:54:47.740575439+03:00",
    "finished": null,
    "job_file": "/ready-check/1232_encryptedParams.grf",
    "status": "InProgress",
    "children": []
  }
]

post runs

ПараметрЗначение
ОписаниеЗапускает задание в работу и возвращает номер запущенного задания
МетодPOST
URL запроса
/api/runs
Параметры запросабез параметров
Тело запроса
job_file: string, имя задания   
params: {        
    name: string, имя параметра  {
        encrypted: boolean, шифрованность параметра
        required: boolean, обязательность параметра
        value: string - значение параметра  
    }
}
Пример запроса
{
    "job_file":"/bug-checking/1187_params.grf",
    "params":  {
        "count":  {
            "value":"2",
            "required":false,
            "encrypted":false
        },
        "str":  {
            "value":"1",
            "required":false,
            "encrypted":false
        }
    }
}
Структура ответа
id: string
Пример ответа
"id":"162"

get run position

ПараметрЗначение
ОписаниеПросмотр позиции запуска
МетодGET
URL запроса
/api/runs/position?id=14
Параметры запроса
id: string
Структура ответа
position: integer
Пример ответа
{
  "position": 577
}

get runs log

ПараметрЗначение
ОписаниеПросмотр логов запуска
МетодGET
URL запроса
/api/runs/id/log?last_bytes=1024
Параметры запроса
last_bytes: integer, ограничение длины логов, необязательно
Структура ответаlog: string
Пример ответа
2024-01-17T18:51:13.214084Z  INFO edge started id="DataGenerator0:e-2"
2024-01-17T18:51:13.214109Z  INFO edge started id="DataGenerator1:e-1"
2024-01-17T18:51:13.214113Z  INFO edge started id="HashJoin0:e-2"
2024-01-17T18:51:13.214116Z  INFO edge started id="HashJoin0:e-3"
2024-01-17T18:51:13.274860Z  INFO node succeeded id="FlatFileWriter2" duration=0 received=2500 sent=0
2024-01-17T18:51:13.274890Z  INFO node succeeded id="FlatFileWriter3" duration=0 received=0 sent=0
2024-01-17T18:51:13.274898Z  INFO node succeeded id="HashJoin0" duration=0 received=5500 sent=2500
2024-01-17T18:51:13.274902Z  INFO node succeeded id="DataGenerator1" duration=0 received=0 sent=3000
2024-01-17T18:51:13.274906Z  INFO node succeeded id="DataGenerator0" duration=0 received=0 sent=2500
2024-01-17T18:51:13.274917Z  INFO phase finished number=0 duration=0

get runs num

ПараметрЗначение
ОписаниеКоличество запусков заданий. Можно добавить фильтр по статусу, дате и имени файла
МетодGET
URL запроса
/api/runs/num?from=2023-12-31T21:00:00%2B00:00&to=2024-01-19T21:00:00%2B00:00&job_file=test-cases%2Fgraphs%2FflatFileReader05.grf&status=Failed&includeRoot=true
Параметры запроса
from: date-time, необязательный
to: date-time, необязательный
job_file: string, необязательный
status: string, необязательный, возможные значения: "Succeeded", "Failed", "InProgress"
includeRoot: boolean
Структура ответа
runs_num: integer, количество запусков заданий, подходящих под критерии установленных фильтров
Пример ответа
{
  "runs_num": 409
}

get job content

ПараметрЗначение
ОписаниеПросмотр содержимого файла задания, актуального на момент его запуска
МетодGET
URL запроса
/api/runs/id/job_content
Параметры запроса
id: string
Структура ответа
content: string, контент файла
Пример ответа

"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Graph>\n    <Global>\n        <Metadata id=\"meta\">\n            <Record>\n                <Field name=\"foo\" type=\"integer\" />\n                <Field name=\"bar\" type=\"number\" />\n            </Record>\n        </Metadata>\n    </Global>\n    <Phase number=\"0\">\n        <Node id=\"datagen\" guiX=\"50\" guiY=\"200\" guiName=\"datagen\" recordsNumber=\"100\" type=\"DATA_GENERATOR\">\n            <attr name=\"generate\">\n                <![CDATA[\n                const MAX_FOO = 10;\n                const MAX_BAR = 1;\n                \n                function generate() {\n                    $out[0].foo = Math.floor(Math.random() * MAX_FOO);\n                    $out[0].bar = Math.random() * MAX_FOO;\n\n                    $out[1].foo = Math.floor(Math.random() * MAX_FOO);\n                    $out[1].bar = Math.random() * MAX_FOO;\n\n                    return ALL;\n                }\n                ]]>\n            </attr>\n        </Node>\n        <Node id=\"trash1\" guiX=\"200\" guiY=\"100\" guiName=\"trash\"  type=\"TRASH\"/>\n        <Node id=\"copy\"   guiX=\"200\" guiY=\"300\" guiName=\"copy\"   type=\"SIMPLE_COPY\"/>\n        <Node id=\"trash2\" guiX=\"400\" guiY=\"400\" guiName=\"trash2\"  type=\"TRASH\"/>\n        <Node id=\"filter\" guiX=\"400\" guiY=\"300\" guiName=\"filter\" type=\"FILTER\">\n            <attr name=\"filterExpression\">\n                <![CDATA[ $in[0].foo < 3; ]]>\n            </attr>\n        </Node>\n        <Node id=\"sort\" guiX=\"550\" guiY=\"300\" guiName=\"sort\"  type=\"FAST_SORT\" sortKey=\"foo(a);bar(d)\" sortInMemory=\"false\" />\n        <Node id=\"trash3\"    guiX=\"700\" guiY=\"300\" guiName=\"trash\" type=\"TRASH\"/>\n\n        <Edge id=\"edge1\" fromNode=\"datagen:0\" toNode=\"trash1:0\" metadata=\"meta\" /> \n        <Edge id=\"edge2\" fromNode=\"datagen:1\" toNode=\"copy:0\"   metadata=\"meta\" />\n        <Edge id=\"edge3\" fromNode=\"copy:0\"    toNode=\"filter:0\" metadata=\"meta\" /> \n        <Edge id=\"edge4\" fromNode=\"copy:1\"    toNode=\"trash2:0\" metadata=\"meta\" />\n        <Edge id=\"edge5\" fromNode=\"filter:0\"  toNode=\"sort:0\"   metadata=\"meta\" />\n        <Edge id=\"edge6\" fromNode=\"sort:0\"    toNode=\"trash3:0\" metadata=\"meta\" />\n    </Phase>\n</Graph>"

get run stats

ПараметрЗначение
ОписаниеПросмотр статистики по запуску
МетодGET
URL запроса
/api/runs/id/stats
Параметры запросабез параметров
Структура ответа
id: integer {
    duration: integer,
    nodes: {
        node_name: string : {
            duration: integer,
            error: string,
            in_ports: [
                {
                    avg_rps: integer,
                    max_rps: integer,
                    records: integer,
                    rps: integer
                }
            ],
            out_ports: [
                {
                    avg_rps: integer,
                    max_rps: integer,
                    records: integer,
                    rps: integer
                }   
            ],
            status: string            
        }
    }
}
Пример ответа
{
  "0": {
    "duration": 0,
    "nodes": {
      "DatabaseReader0": {
        "duration": 0,
        "status": "Succeeded",
        "error": null,
        "in_ports": {},
        "out_ports": {
          "0": {
            "records": 100,
            "rps": 0.0,
            "avg_rps": 5033.325902466526,
            "max_rps": 5033.325902466526
          }
        }
      }
    }
  },
  "20": {
    "duration": 6,
    "nodes": {
      "DbJoin0": {
        "duration": 6,
        "status": "Succeeded",
        "error": null,
        "in_ports": {
          "0": {
            "records": 100,
            "rps": 0.0,
            "avg_rps": 16.346543267496433,
            "max_rps": 36.617655443638384
          }
        },
        "out_ports": {
          "0": {
            "records": 100,
            "rps": 0.0,
            "avg_rps": 16.346543267496433,
            "max_rps": 16.982217325860482
          },
          "1": {
            "records": 0,
            "rps": 0.0,
            "avg_rps": 0.0,
            "max_rps": 0.0
          }
        }
      },
      "FlatFileWriter0": {
        "duration": 5,
        "status": "Succeeded",
        "error": null,
        "in_ports": {
          "0": {
            "records": 100,
            "rps": 0.0,
            "avg_rps": 16.751940970341305,
            "max_rps": 16.982217325860482
          }
        },
        "out_ports": {}
      },
      "FlatFileWriter1": {
        "duration": 0,
        "status": "Succeeded",
        "error": null,
        "in_ports": {
          "0": {
            "records": 0,
            "rps": 0.0,
            "avg_rps": 0.0,
            "max_rps": 0.0
          }
        },
        "out_ports": {}
      }
    }
  }
}

abort run

ПараметрЗначение
ОписаниеПрерывает выполнение задания
МетодPOST
URL запроса
/api/runs/id/abort
Параметры запросабез параметров
Структура ответа
response: string
Пример ответа
Success

get runs inspect

ПараметрЗначение
ОписаниеВозвращает данные о записях, прошедших по указанному ребру.
МетодGET
URL запроса
/api/runs/run_id/inspect?edge=edge_id
Параметры запросаedge:string (id ребра)
Структура ответа
name: string,
type: string,
value: string
Пример ответа
[
    [
        {
            "name": "date",
            "type": "date",
            "value": "2023-12-21 00:00:00 UTC"
        },
        {
            "name": "last_name",
            "type": "string",
            "value": "Gorilov"
        },
        {
            "name": "number",
            "type": "string",
            "value": "17.921\r"
        }
    ],
    [
        {
            "name": "date",
            "type": "date",
            "value": "2013-12-08 00:00:00 UTC"
        },
        {
            "name": "last_name",
            "type": "string",
            "value": "Алексеев"
        },
        {
            "name": "number",
            "type": "string",
            "value": "2.023\r"
        }
    ],
    [
        {
            "name": "date",
            "type": "date",
            "value": "2022-09-23 00:00:00 UTC"
        },
        {
            "name": "last_name",
            "type": "string",
            "value": "Vasin"
        },
        {
            "name": "number",
            "type": "string",
            "value": "0.02\r"
        }
    ],
    [
        {
            "name": "date",
            "type": "date",
            "value": "2016-11-25 00:00:00 UTC"
        },
        {
            "name": "last_name",
            "type": "string",
            "value": "Васькин"
        },
        {
            "name": "number",
            "type": "string",
            "value": "-0.231"
        }
    ]
]

encrypt

ПараметрЗначение
ОписаниеШифрует значение параметра.
МетодPOST
URL запроса
/api/encrypt
Параметры запросаplaintext:string (значение параметра)
Структура ответа
ciphertext: string (зашифрованное значение параметра)
Пример ответа
{
  "ciphertext": "9380d423659fc5a5c855f210b647ffbbc6684ae80836bfe4db2a6efc3f"
}

Projects

get tree

ПараметрЗначение
ОписаниеПросмотр дерева проектов
МетодGET
URL запроса
/api/tree
Параметры запросабез параметров
Структура ответа
name: string,
path: string,
type: string,
children: [string]
Пример ответа
[
    {
        "name": "folder1",
        "path": "/folder1",
        "type": "project",
        "children": [
            {
                "name": "data-in",
                "path": "/folder1/data-in",
                "type": "directory",
                "children": [
                    {
                        "name": "dev.order.csv",
                        "path": "/folder1/data-in/testData/dev.order.csv",
                        "type": "file",
                        "children": []
                    }
                ],

                "name": "data-out",
                "path": "/folder1/data-out",
                "type": "directory",
                "children": [
                    {
                        "name": "testData",
                        "path": "/folder1/data-out/testData",
                        "type": "directory",
                        "children": []
                    }
                ],
                
                "name": "graph",
                "path": "/folder1/graph",
                "type": "directory",
                "children": [
                    {
                        "name": "graph.grf",
                        "path": "/folder1/graph/graph.grf",
                        "type": "file",
                        "children": []
                    }
                ]
            }
        ]
    }
]

get directory

ПараметрЗначение
ОписаниеПросмотр информации об указанной директории
МетодGET
URL запроса
/api/directory?path="PATH"
Параметры запроса
path: string
Структура ответа
name: string,
path: string
Пример ответа
"name":"data-in",
"path":"/JobsForTests/data-in"

get project

ПараметрЗначение
ОписаниеПросмотр информации о проекте
МетодGET
URL запроса
/api/project?path="PATH"
Параметры запроса
path: string
Структура ответа
name: string,
path: string
Пример ответа
{
  "name": "test-cases",
  "path": "/test-cases"
}

get file

ПараметрЗначение
ОписаниеПросмотр информации о выбранном файле
МетодGET
URL запроса
/api/file?path="PATH"
Параметры запроса
path: string, путь к файлу
content: bool (необязательно, по умолчанию равен false, +"content=true" вернёт содержимое выбранного файла)
Структура ответа
name: string,
path: string,
size: integer,
modified: date-time
Пример ответа
"name":"concat.grf",
"path":"/JobsForTests/graph/others/concat.grf",
"size":1278,
"modified":"2023-04-17T12:47:39.073986214Z"

post project

ПараметрЗначение
ОписаниеСоздать проект
МетодPOST
URL запроса
/api/project?path="PATH"
Параметры запроса
path: string, путь к создаваемому проекту
template: bool, флаг создания проекта по шаблону, необязательно
Структура ответа
name: string,
path: string
Пример ответа
"name":"test2",
"path":"/test2"

post project rename

ПараметрЗначение
ОписаниеПереименовать проект
МетодPOST
URL запроса
/api/project/rename?path="PATH"&to="PROJECT"
Параметры запроса
path: string, путь к проекту, который переименовываем
to: string, новое имя проекта
Структура ответа
name: string,
path: string
Пример ответа
"name":"test44",
"path":"/test44"

post directory

ПараметрЗначение
ОписаниеСоздать директорию
МетодPOST
URL запроса
/api/directory?path="PATH"
Параметры запроса
path: string, путь к директории, которую создаём
Структура ответа
name: string,
path: string
Пример ответа
"name":"infolder",
"path":"/test-project/folder1"

post directory rename

ПараметрЗначение
ОписаниеИзменить название директории
МетодPOST
URL запроса
/api/directory/rename?path="PATH"&to="DIRECTORY"
Параметры запроса
path: string, путь к директории, которую переименовываем
to: string новое имя директории
Структура ответа
name: string,
path: string
Пример ответа
"name":" folder10",
"path":"/test22/folder10"

post file

ПараметрЗначение
ОписаниеСоздать файл
МетодPOST
URL запроса
/api/file?path="PATH"
Параметры запроса
path: string, путь к новому файлу
Структура ответа
name: string,
path: string,
size: integer,
modified: date-time
Пример ответа
"name": "kudo.grf",
"path": "/test44/tururu/lalala/kuku/oshshshs/kudo.grf",
"size": 0,
"modified": "2023-06-15T08:10:21.261541736Z"

post file rename

ПараметрЗначение
ОписаниеПереименовать файл
МетодPOST
URL запроса
/api/file/rename?path="PATH"&to="FILE"
Параметры запроса
path: string, директория файла, который переименовывается
to: string, новое имя файла
Структура ответа
name: string,
path: string,
size: integer,
modified: date-time
Пример ответа
"name": "fileNEW",
"path": "/test44/tururu/lalala/kuku/bip/fileNEW",
"size": 0,
"modified": "2023-06-14T14:04:37.625674537Z"

patch file

ПараметрЗначение
ОписаниеЗаменить контент файла
МетодPATCH
URL запроса
/api/file?path="PATH"
Параметры запроса
path: string, путь к изменяемому файлу  
sent_file: string, текст изменённого файла
Структура ответа
name: string,
path: string,
size: integer,
modified: date-time
Пример ответа
{
    "name": "dg02_out.txt",
    "path": "/test-cases/data-out/dg02_out.txt",
    "size": 13,
    "modified": "2024-01-18T08:37:47.819450853Z"
}

delete directory

ПараметрЗначение
ОписаниеУдалить директорию
МетодDELETE
URL запроса
/api/directory?path="PATH"
Параметры запроса
path: string, путь к удаляемой папке
Структура ответаничего не возвращает

delete file

ПараметрЗначение
ОписаниеУдалить файл
МетодDELETE
URL запроса
/api/file?path="PATH"
Параметры запроса
path: string, путь к удаляемому файлу
Структура ответаничего не возвращает

delete project

ПараметрЗначение
ОписаниеУдалить проект
МетодDELETE
URL запроса
/api/project?path="PATH"
Параметры запроса
path: string, путь к удаляемому проекту
Структура ответаничего не возвращает

get download folder

ПараметрЗначение
ОписаниеСкачать папку
МетодGET
URL запроса
/api/download?path="PATH"
Параметры запроса
path: string, путь к скачиваемому проекту\папке
Структура ответаВозвращает содержимое выбранной папки в виде zip-архива.

Schedules

get schedules

ПараметрЗначение
ОписаниеПросмотреть список расписаний
МетодGET
URL запроса
/api/schedules?offset=0&limit=15&order_by=name&order=asc&contains=
Параметры запроса
offset: string, необязательно
limit: string, необязательно
order_by: string, необязательно
order: string, необязательно
contains: string, необязательно
Структура ответа
id: integer,
name: string,  
enabled: bool, 
job_file: string,  
trigger:    "Once": date-time или   
            "Interval": integer или   
            "Cron": string,  
last_run: date-time, (необязательно)  
next_run: date-time, (необязательно) 
run_status: string 
Пример ответа
[
  {
    "id": 4,
    "name": "1232",
    "enabled": true,
    "job_file": "/ready-check/1232_encryptedParams.grf",
    "once": "2025-02-13T12:44:00+03:00",
    "last_run": "2025-02-13T12:44:00+03:00",
    "next_run": null,
    "run_status": "Failed"
  },
  {
    "id": 3,
    "name": "6",
    "enabled": true,
    "job_file": "/reg2/graph/copy_1.grf",
    "interval": 60,
    "last_run": "2025-02-07T10:30:00+03:00",
    "next_run": null,
    "run_status": "Succeeded"
  },
  {
    "id": 2,
    "name": "11",
    "enabled": true,
    "job_file": "/bug-checking/825_params.grf",
    "once": "2025-02-05T13:12:00+03:00",
    "last_run": "2025-02-05T13:12:00+03:00",
    "next_run": null,
    "run_status": "Succeeded"
  },
  {
    "id": 1,
    "name": "123",
    "enabled": true,
    "job_file": "/test_nse/gen.grf",
    "interval": 30,
    "last_run": "2025-02-05T13:01:34.506441579+03:00",
    "next_run": null,
    "run_status": "Succeeded"
  }
]

get schedule by id

ПараметрЗначение
ОписаниеВыбор расписания по id
МетодGET
URL запроса
/api/schedules/schedule_id
Параметры запросабез параметров
Структура ответа
id: integer,
name: string,  
enabled: bool,  
trigger:    "Once": date-time или   
            "Interval": integer или   
            "Cron": string,  
active_from: date-time, (необязательно)  
active_to: date-time, (необязательно)  
job_file: string,  
params: {
    name: string {
        value: string,
        encrypted: boolean
    }
} 
last_run: date-time, (необязательно)  
next_run: date-time, (необязательно) 
created_by: string,
created_at: date-time,  (необязательно)
modified_by: string, (необязательно)
modified_at: date-time, 
run_info: {             (необязательно)
          id: integer, 
          started: datetime, 
          finished: datetime, (необязательно)
          status: string 
}
Пример ответа
{
  "id": 2,
  "name": "11",
  "enabled": true,
  "once": "2025-02-05T13:12:00+03:00",
  "active_from": null,
  "active_to": null,
  "job_file": "/bug-checking/825_params.grf",
  "params": [
    {
      "name": "JOB_FILE",
      "value": "825_params.grf",
      "encrypted": "true"
    },
    {
      "name": "SANDBOX_ROOT",
      "value": "/opt/onebridge-dev/projects/bug-checking",
      "encrypted": "true"
    },
    {
      "name": "prm1",
      "value": "11",
      "encrypted": "false"
    },
    {
      "name": "prm2",
      "value": "fsrg",
      "encrypted": "false"
    },
    {
      "name": "prm3",
      "value": "rw3747f374 rwtrty 24rwtrtyhbdjhcbsjfhajsbjhbjabjdhbcabdhcjsabhcacbasdhcbaichbsdhcbsdhcbsdchbsadhcbsjachbsjadcbh asdcbdbchchbwCBddcbdlcbDBVCdecIDBCADBALlbcl 24rwtrtyh bdjhcbsjfhajsbjhbjabjdhbcabdhcjsabhcacbasdhcbaichbsdh cbsdhcbsdchbsadhcbsjachbsj",
      "encrypted": "true"
    }
  ],
  "last_run": "2025-02-05T13:12:00+03:00",
  "next_run": null,
  "created_by": "sofiko",
  "created_at": "2025-02-05T13:11:15.737006504+03:00",
  "modified_by": "",
  "modified_at": null,
  "run_info": {
    "id": 571,
    "started": "2025-02-05T13:12:00.001963145+03:00",
    "finished": "2025-02-05T13:12:00.014304926+03:00",
    "status": "Succeeded"
  }
}

get schedules num

ПараметрЗначение
ОписаниеКоличество расписаний
МетодGET
URL запроса
/api/schedules/num?contains=
Параметры запроса
contains:string
Структура ответа
num:integer
Пример ответа
{
  9
}

get schedules position

ПараметрЗначение
ОписаниеПозиция расписания по id
МетодGET
URL запроса
/api/schedules/schedule_id/position
Параметры запросабез параметров
Структура ответа
position:integer
Пример ответа
{
  3
}

post schedules

ПараметрЗначение
ОписаниеСоздать расписание
МетодPOST
URL запроса
/api/schedules
Параметры запросабез параметров
Тело запроса
name: string,  
enabled: bool,  
trigger: {
    возможные значения:
    "Once": date-time или   
    "Interval": integer или   
    "Cron": string, 
}        
active_from: date-time, необязательно  
active_to: date-time, необязательно  
job_file: string,  
params: {  
    name: string {
        encrypted: boolean,
        required: boolean,
        value: string 
    }  
} 


Структура ответа
id: integer,
last_run: date-time, необязательно  
next_run: date-time, необязательно
Пример ответа
{
  "id":17,
  "last_run":null,
  "next_run":"2025-03-10T10:08:00+03:00"
}

post toggle schedules

ПараметрЗначение
ОписаниеИзменить состояние расписания (вкл/выкл)
МетодPOST
URL запроса
/api/schedules/schedule_id/toggle
Параметры запросабез параметров
Структура ответа
enabled: bool,
next_run: date-time, необязательно
Пример ответа
"enabled":true,
"next_run":null

delete schedules

ПараметрЗначение
ОписаниеУдалить расписание
МетодDELETE
URL запроса
/api/schedules/schedule_id
Параметры запросабез параметров
Структура ответаничего не возвращает

patch schedules

ПараметрЗначение
ОписаниеИзменить атрибуты расписания
МетодPATCH
URL запроса
/api/schedules/schedule_id
Параметры запросабез параметров
Тело запроса
name: string,   (не обязательно)
enabled: bool,  (не обязательно)
trigger:        (не обязательно)
         "Once": date-time или
         "Interval": integer или
         "Cron": string,
active_from: date-time, (не обязательно)
active_to: date-time,   (не обязательно)
job_file: string,       (не обязательно)
params:                 (не обязательно)
    {
        name: string,
        value: string
    }
Структура ответа
id: integer,
name: string,
enabled: bool,
trigger: "Once": date-time или
         "Interval": integer или 
         "Cron": string,
active_from: date-time, 
active_to: date-time, 
job_file: string,
params: {
    name: string,
    value: string,
    encrypted: string
},
last_run: date-time,
next_run: date-time
Пример ответа
{
  "id": 14,
  "name": "ewewer",
  "enabled": true,
  "once": "2025-03-13T00:00:00+03:00",
  "active_from": null,
  "active_to": null,
  "job_file": "/bug-checking/0_execGraph.grf",
  "params": [
    {
      "name": "JOB_FILE",
      "value": "0_execGraph.grf"
    },
    {
      "name": "SANDBOX_ROOT",
      "value": "/opt/onebridge-dev/projects/bug-checking"
    }
  ],
  "last_run": null,
  "next_run": "2025-03-13T00:00:00.000000006+03:00"
}

Event listeners

get event listeners

ПараметрЗначение
ОписаниеПросмотр списка обработчиков событий
МетодGET
URL запроса
/api/event_listeners
Параметры запроса
offset: integer, необязательно
limit: integer, необязательно
order_by: string, необязательно
order: string, необязательно
contains: string, необязательно
Структура ответа
id: integer,
name: string,
enabled: bool,
last_run: date-time, (необязательно) 
run_status: string,  (необязательно), возможные значения: Succeeded, Failed, InProgress, Aborted, Unknown
Пример ответа
[
  {
    "id": 1,
    "name": "111",
    "enabled": true,
    "last_run": null,
    "run_status": null
  },
  {
    "id": 2,
    "name": "6",
    "enabled": true,
    "last_run": "2025-02-26T10:01:33.903891189+03:00",
    "run_status": "Succeeded"
  },
  {
    "id": 3,
    "name": "Event listener 22",
    "enabled": true,
    "last_run": null,
    "run_status": null
  },
  {
    "id": 4,
    "name": "Event listener 3",
    "enabled": true,
    "last_run": null,
    "run_status": null
  }
]

get event listener by id

ПараметрЗначение
ОписаниеВыбор обработчика событий по id
МетодGET
URL запроса
/api/event_listeners/listener_id
Параметры запросабез параметров
Структура ответа
id: integer,
name: string,
enabled: bool,
action: {
    Command {
        program: string,
        args: string,
    },
или
    StartJob {
        job_file: string,
        params: {
            name: string {
                value: string,
                encrypted: boolean
            }
        },
    },
},
event: {
    Job{
        Finished { 
            job_file: string 
        }
    },
или
    File {
        filesystem: string (Local), 
        path: string, 
        check: string (Added/Removed), 
        interval: integer, 
    }
},
last_run: date-time
created_by: string,
created_at: datetime,
modified_by: string,
modified_at: datetime,
run_info: id: integer,
          started: datetime,
          finished: datetime, (необязательно) 
          status: string
Пример ответа
{
  "id": 12,
  "name": "уу",
  "enabled": false,
  "action": {
    "start_job": {
      "job_file": "/bug-checking/1187_params.grf",
      "params": {
        "JOB_FILE": {
          "value": "1187_params.grf",
          "encrypted": false
        },
        "SANDBOX_ROOT": {
          "value": "/opt/onebridge-dev/projects/bug-checking",
          "encrypted": false
        },
        "count": {
          "value": "15",
          "encrypted": false
        },
        "str": {
          "value": "15",
          "encrypted": false
        }
      }
    }
  },
  "event": {
    "job": {
      "finished": {
        "status": "any",
        "job_file": "/bug-checking/1043_sort.grf"
      }
    }
  },
  "last_run": "2025-04-21T11:38:30.447592892+03:00",
  "created_by": "admin",
  "created_at": "2025-04-21T11:38:17.280127831+03:00",
  "modified_by": "admin",
  "modified_at": "2025-04-22T11:47:45.648334392+03:00",
  "run_info": {
    "id": 2133,
    "started": "2025-04-21T11:38:30.445305275+03:00",
    "finished": "2025-04-21T11:38:30.450381966+03:00",
    "status": "Succeeded"
  }
}

get event listeners num

ПараметрЗначение
ОписаниеПолучить количество расписаний
МетодGET
URL запроса
/api/event_listeners/num?contains=
Параметры запроса
contains: string
Структура ответа
num: integer
Пример ответа
5

get event listeners position

ПараметрЗначение
ОписаниеПолучить позицию расписания по его id
МетодGET
URL запроса
/api/event_listeners/listener_id/position
Параметры запросабез параметров
Структура ответа
position: integer
Пример ответа
17

post event listeners

ПараметрЗначение
ОписаниеСоздает обработчик событий
МетодPOST
URL запроса
/api/event_listeners
Параметры запросабез параметров
Тело запроса
name: string,   имя слушателя событий  
enabled: bool,  переключатель  
event:          отслеживаемое событие  
{  
    Job{  
        Finished {   
            job_file: string,   
            params    {
                name: string,
                value: string
            },
        }  
    },  
    File {  
        filesystem: Local,   
        path: string,   
        check: string ("Added"/"Removed"),   
        interval: integer,   
    }  
},  
action:         действие, которое необходимо выполнить, когда event завершится  
{  
    Command {  
        program: string,  
        args: string  
    },  
    StartJob {  
        job_file: string,  
        params: {  
            name: string {
                encrpited: boolean,
                required: boolean,
                value: string 
            } 
        }  
    }  
}   
Структура ответа
id: integer - id нового расписания

toggle event listeners

ПараметрЗначение
ОписаниеИзменить состояние обработчика событий (вкл/выкл)
МетодPOST
URL запроса
/api/event_listeners/listener_id/toggle
Параметры запроса
name: string
Структура ответа
enabled: bool
Пример ответа
{
  "enabled": true
}

delete event listeners

ПараметрЗначение
ОписаниеУдалить обработчик событий
МетодDELETE
URL запроса
/api/event_listeners/listener_id
Параметры запросабез параметров
Структура ответаничего не возвращает

patch event listeners

ПараметрЗначение
ОписаниеИзменить значения атрибутов обработчика событий
МетодPATCH
URL запроса
/api/event_listeners/listener_id
Тело запроса Все поля опциональные. Но при смене типа события event с "job" на "file" и наоборот, а так же при смене действия action с "Command" на "StartJob" и наоборот - нужно заполнить все сопутствующие атрибуты. Например, если обработчик был настроен на event "job", и нужно заменить его на event "file", то нужно будет задать значение и для атрибутов filesystem, check, path, interval.
name: string,
enabled: bool,  (не обязательно)
event:          (не обязательно)
        "job": Finished { 
            job_file: string 
        }
        "file": { 
            filesystem: "Local",
            path: string,
            check: "Added" или "Removed",
            interval: int,
        }
action:         (не обязательно)
        Command {
            program: string,
            args: string
        },
        StartJob {
            job_file: string,
            params: [
                name: String,
                value: String,
            ]
        } 
Структура ответа
name: string,   (имя остаётся прежним при использовании API patch event_listeners, меняется с помощью API create event_listeners_rename)
enabled: bool,  (новое состоние)
event:  Job     (новое задание или файл)
        {       
            Finished { 
                job_file: string 
            }
        }
        или
        File { 
            filesystem: Local,
            path: string,
            check: {
                Added,
                или
                Removed
            },
            interval: int,
        },
action: Command (новая команда или задание)
        {   
            program: string,
            args: string,
        }
        или
        StartJob {
            job_file: string,
            params: { 
                name: string,
                value: string,
            }
        }
Пример ответа
{
    "name": "listener_name",
    "enabled": false,
    "event": {
        "job": {
            "finished": {
                "job_file": "/JobsForTests/graph/others/concat.grf"
            }
        }
    },
    "action": {
        "start_job": {
            "job_file": "/JobsForTests/graph/others/filter.grf",
            "params": []
        }
    }
}

Auth

login

ПараметрЗначение
ОписаниеАвторизация пользователя в системе
МетодPOST
URL запроса
/auth/login
Параметры запросабез параметров
Тело запроса
username: string,  
password: string
Структура ответа
access_token: string,   
refresh_token: string, необязательно
Пример ответа
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRlc3QwMyIsInBhc3N3b3JkX2NoYW5nZV9yZXF1aXJlZCI6dHJ1ZSwicmVsb2dfcmVxdWlyZWQiOmZhbHNlLCJwcml2aWxlZ2VzIjpbXSwiZXhwIjoxNzA1NTA2MjM5fQ.Ec1gQ9fR6MN5uNDejJbHk4vnKyySrnv2ZOs3nuoYNvQ",
  "refresh_token": ""
}

logout

ПараметрЗначение
ОписаниеЗавершение сеанса работы в системе
МетодPOST
URL запроса
/auth/logout
Параметры запросабез параметров
Структура ответаничего не возвращает

refresh

ПараметрЗначение
ОписаниеОбновление токена
МетодPOST
URL запроса
/auth/refresh
Параметры запросабез параметров
Структура ответа
access_token: string,    
refresh_token: string
Пример ответа
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRlc3Q0IiwicGFzc3dvcmRfY2hhbmdlX3JlcXVpcmVkIjpmYWxzZSwicmVsb2dfcmVxdWlyZWQiOmZhbHNlLCJwcml2aWxlZ2VzIjpbXSwiZXhwIjoxNzA1NTYzNzk5fQ.YdxxXEr-1Ur8BB5nI27OZh3Ueo7BwFwJkx2vg8t44wA",
  "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRlc3Q0IiwicGFzc3dvcmRfY2hhbmdlX3JlcXVpcmVkIjpmYWxzZSwicmVsb2dfcmVxdWlyZWQiOmZhbHNlLCJwcml2aWxlZ2VzIjpbXSwiZXhwIjoxNzA1NTYzNzk5fQ.MBJeIlWnI_BH3MT2TjfhfmoTFhTQGylhpMYu32G6tOw"
}

change password

ПараметрЗначение
ОписаниеСмена пароля
МетодPOST
URL запроса
/auth/change_password
Тело запроса
old_pass: string,
new_pass: string
Структура ответаничего не возвращает

Users

post user

ПараметрЗначение
ОписаниеСоздание пользователя
МетодPOST
URL запроса
api/users
Параметры запросабез параметров
Тело запроса
username: string,     
first_name: string,     
last_name: string, необязательно    
email: string,  
Структура ответа
password: string 
Пример ответа
sNCYtII5bGcFRLJ9

post toggle user status

ПараметрЗначение
ОписаниеИзменение статуса пользователя
МетодPOST
URL запроса
api/users/[user_id]/toggle_status
Параметры запросабез параметров
Структура ответа
status: string, возможные значения: "Active", "Block"
Пример ответа
"Blocked"

post reset user password

ПараметрЗначение
ОписаниеСброс пароля пользователя
МетодPOST
URL запроса
api/users/[user_id]/reset_password
Параметры запросабез параметров
Структура ответа
password: string
Пример ответа
"B4YjaIGX8tTod6ZU"

patch user

ПараметрЗначение
ОписаниеРедактирование данных пользователя. Поменять можно полное имя (fullname) и email
МетодPATCH
URL запроса
api/users/[user_id]
Параметры запросабез параметров
Тело запроса
name: string,    
email: string
Структура ответаничего не возвращает

get user by id

ПараметрЗначение
ОписаниеПросмотр информации о пользователе
МетодGET
URL запроса
api/users/[user_id]?type=full
Параметры запроса
type: string, возможные значения: "full", "basic"
Структура ответа
username: string, - логин пользователя,   
password: string, - пароль, всегда "null",  
first_name: string, - имя пользователя,     
last_name: string,  - фамилия пользователя, необязательно  
auth_method: string, - метод аутентификации в системе, возможные значения: "Internal", "Ldap",   
email: string, - адрес электронной почты пользователя,   
user_status: string, - статус пользователя, возможные значения: "Active", "Blocked",     
password_required: bool, - необходимость ввода пароля,   
last_login_status: string, - статус последнего входа, возможные значения: "NotSet", "Success", "Failure",   
login_attempts: integer, - количество попыток входа,   
last_login_date: date-time,  - дата последней попытки входа, необязательно
Пример ответа
auth_method: "Internal"
email: "sammi@ya.ru"
first_name: "sam"
last_login_date: "2024-01-15T09:37:37.246933528Z"
last_login_status: "Success"
last_name: "smit"
login_attempts: 0
password: null
password_required: false
user_status: "Active"
username: "samael"

get users

ПараметрЗначение
ОписаниеПросмотр списка пользователей
МетодGET
URL запроса
api/users?offset=0&limit=15&order_by=id&order=desc&contains=&type=full
Параметры запроса
offset: integer,
limit: integer,
order_by: string,
order: string,
contains: string,
type: string,
Структура ответа
id: integer,
username: string, - логин пользователя,   
name: string, - имя пользователя,     
user_status: string, - статус последнего входа, возможные значения: "NotSet", "Success", "Failure"
last_login_date: datetime
Пример ответа
[
  {
    "id": 15,
    "username": "user144",
    "name": "user144",
    "user_status": "active",
    "last_login_date": null
  },
  {
    "id": 9,
    "username": "user9",
    "name": "user9",
    "user_status": "active",
    "last_login_date": null
  },
  {
    "id": 8,
    "username": "user8",
    "name": "user8",
    "user_status": "active",
    "last_login_date": null
  },
  {
    "id": 7,
    "username": "sbardeveloper",
    "name": "main developer))",
    "user_status": "active",
    "last_login_date": "2025-03-10T11:46:38.979308285+03:00"
  },
  {
    "id": 6,
    "username": "skhoperskaya",
    "name": "",
    "user_status": "active",
    "last_login_date": "2025-02-21T12:19:38.592916273+03:00"
  },
  {
    "id": 5,
    "username": "sofiko",
    "name": "",
    "user_status": "active",
    "last_login_date": "2025-03-10T14:00:37.570142141+03:00"
  },
  {
    "id": 4,
    "username": "nsense",
    "name": "nsense nsense",
    "user_status": "active",
    "last_login_date": "2025-02-21T11:30:21.271110750+03:00"
  }
]

Roles

get roles

ПараметрЗначение
ОписаниеПросмотр списка ролей
МетодGET
URL запроса
/api/roles
Параметры запроса
offset: integer,
limit: integer,
order_by: string,
order: string, (не обязательный)
contains: string, (не обязательный)
Структура ответа
role_id: integer,   
name: string, необязательно   
description: string, необязательно
is_editable: boolean
Пример ответа
[
  {
    "role_id": 1,
    "name": "admin",
    "description": "Роль администратора",
    "is_editable": false
  },
  {
    "role_id": 2,
    "name": "test-role1",
    "description": "something",
    "is_editable": true
  },
  {
    "role_id": 3,
    "name": "test-role2",
    "description": "описание тестовой роли",
    "is_editable": true
  },
  {
    "role_id": 4,
    "name": "testrole3",
    "description": "описание новой тестовой роли",
    "is_editable": true
  }
]

get role

ПараметрЗначение
ОписаниеПросмотр конкретной роли по её id
МетодGET
URL запроса
/api/roles/[role_id]?type=full
Параметры запроса
type: string
Структура ответа
role_id: integer,   
name: string, необязательно   
description: string, необязательно
is_editable: boolean
Пример ответа
{
  "role_id": 3,
  "name": "administrator",
  "description": "admin for ldap",
  "is_editable": true
}

post role

ПараметрЗначение
ОписаниеСоздание роли
МетодPOST
URL запроса
/api/roles
Параметры запросабез параметров
Тело запроса
name: string, - новое имя роли, необязательно  
description: string, - новое описание роли, необязательно
Пример ответаничего не возвращает

patch role

ПараметрЗначение
ОписаниеРедактирование роли
МетодPATCH
URL запроса
/api/roles/[role_id]
Параметры запросабез параметров
Тело запроса
name: string,
description: string    
Пример ответаничего не возвращает

delete role

ПараметрЗначение
ОписаниеУдаление роли
МетодDELETE
URL запроса
/api/roles/[role_id]
Параметры запросабез параметров
Структура ответаничего не возвращает

get privileges

ПараметрЗначение
ОписаниеПросмотр списка всех существующих привилегий
МетодGET
URL запроса
api/privileges
Параметры запросабез параметров
Структура ответа
privilege_id: integer,
name_ru: string,
name_en: string,
api_method_name: string,
Пример ответа
[
  {
    "privilege_id": 1,
    "name_ru": "Создание пользователя",
    "name_en": "Create User",
    "api_method_name": "POST /users",
    // "group_name": "Users"
  },
  {
    "privilege_id": 2,
    "name_ru": "Изменение статуса пользователя",
    "name_en": "Toggle User Status",
    "api_method_name": "POST /users/[user_id]/toggle_status",
    // "group_name": "Users"
  },
  {
    "privilege_id": 7,
    "name_ru": "Просмотр ролей",
    "name_en": "View Roles",
    "api_method_name": "GET /roles",
    // "group_name": "Roles"
  },
  {
    "privilege_id": 19,
    "name_ru": "Просмотр параметров задания",
    "name_en": "View Job Parameters",
    "api_method_name": "GET /job_params",
    // "group_name": "Runs"
  },
   {
    "privilege_id": 21,
    "name_ru": "Просмотр статистики запуска",
    "name_en": "View Run Stats",
    "api_method_name": "GET /runs/:id/stats",
    // "group_name": "Runs"
  },
   {
    "privilege_id": 51,
    "name_ru": "Создание расписания",
    "name_en": "Create Schedule",
    "api_method_name": "POST /schedules",
    // "group_name": "Schedules"
  }
]

get role privileges

ПараметрЗначение
ОписаниеПросмотр привилегий роли
МетодGET
URL запроса
api/roles/[role_id]/privileges
Параметры запросабез параметров
Структура ответа
id: privileges
Пример ответа
[
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15
]

patch role privileges

ПараметрЗначение
ОписаниеОбновление привилегий роли
МетодPATCH
URL запроса
api/roles/[role_id]/privileges
Параметры запросабез параметров
Тело запроса
{
  "privileges": [4,5,6]
}
Структура ответаничего не возвращает

get role subroles

ПараметрЗначение
ОписаниеПросмотр субролей роли по её id
МетодGET
URL запроса
api/roles/[role_id]/subroles
Параметры запросабез параметров
Структура ответа
role_id: integer
Пример ответа
[4,5]

patch role subroles

ПараметрЗначение
ОписаниеИзменение субролей роли
МетодPATCH
URL запроса
api/roles/[role_id]/subroles
Тело запроса
{
  "sub_roles": [4,5] //список role_id ролей, которые должны быть назначены субролями для роли, указанной в URL-запросе
}
Структура ответаничего не возвращает

get user roles

ПараметрЗначение
ОписаниеПросмотр ролей конкретного пользователя
МетодGET
URL запроса
/api/users/[user_id]/roles
Параметры запросабез параметров
Структура ответа
role_id: integer
Пример ответа
[
  [6,4]
]

patch user roles

ПараметрЗначение
ОписаниеОбновление ролей пользователя
МетодPATCH
URL запроса
/api/roles/[user_id]/roles
Тело запроса
{
  "roles": [3,5] //список role_id, присваеваемых пользователю
}

Структура ответаничего не возвращает

get user privileges

ПараметрЗначение
ОписаниеПросмотр привилегий пользователя
МетодGET
URL запроса
/api/users/[user_id]/privileges
Параметры запросабез параметров
Структура ответа
privilege_id: integer
Пример ответа
[
  28,
  29,
  30,
  31,
  32,
  33,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  62,
  34,
  35,
  36,
  37,
  38,
  39,
  40,
  41,
  42,
  43,
  44,
  45,
  46,
  47,
  48,
  49,
  50,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  57,
  1,
  2,
  3,
  4,
  5,
  6
]

patch user privileges

ПараметрЗначение
ОписаниеОбновление привилегий пользователя
МетодPATCH
URL запроса
/api/users/[user_id]/privileges
Тело запроса
"privileges": [список id присваемых пользователю привилегий]
Структура ответаничего не возвращает

get version

ПараметрЗначение
ОписаниеВозвращает актуальную версию сборки приложения
МетодGET
URL запроса
/api/version
Параметры запросабез параметров
Структура ответа
version: string,
commit: string
Пример ответа
{"version":"1.x.x","commit":"94889c7a70f7444a429b07c2e2b5f9bcfb2028d0"}