Обновление рабочего стола
Запрос
Тип | Метод |
---|---|
PUT |
/dashboards/update |
Описание: при выполнении запроса будет обновлена информация о рабочем столе в соответствии с заданными параметрами.
Операция доступна только владельцу рабочего стола, либо пользователю с ролью “admin”.
Пример запроса
PUT
http://127.0.0.1/cruddy/v2/dashboards/update
Тело запроса
Параметр | Тип данных | Обязательность | Описание |
---|---|---|---|
id | string |
Required | Идентификатор рабочего стола |
trace_id | string |
Required | Идентификатор трассировки действия пользователя для аудита |
name | string |
Required | Название рабочего стола |
config | Object <config> |
Required | Свойства рабочего стола |
Config
Параметр | Тип | Обязательность | Описание |
---|---|---|---|
grid | Array of <grid> |
Required | Список параметров расположения виджетов на странице |
period | Array of Strings |
Required | Временной диапазон данных на рабочем столе |
Пример тела запроса
{
"id": "uuid",
"trace_id": "uuid",
"name": "string",
"config": {
"grid": [
{}
],
"period": [
"now-1",
"now"
]
}
}
Статус код: 200
- успешное обновление рабочего стола.
Формат: JSON
.
Тело ответа: модель обновленного рабочего стола.
Пример ответа
{
"id": "uuid",
"created_at": "2023-12-20T00:00:01.652259Z",
"updated_at": "2023-12-20T00:00:01.652259Z",
"trace_id": "uuid",
"name": "string",
"config": {
"grid": [
{}
],
"period": [
"now-1",
"now"
]
},
"owner": {
"id": "uuid",
"email": "string",
"first_name": "string",
"last_name": "string",
"username": "string"
},
"users": [
{
"id": "uuid",
"email": "string",
"first_name": "string",
"last_name": "string",
"username": "string"
}
],
"user_ids": [
"uuid"
],
"groups": [
{
"id": "uuid",
"name": "string",
"parent_group": "string",
"realm_id": "string",
"email": "string",
"phone_number": "string",
"leader_id": "string",
"accept_risk": true,
"visible_scan_schedules": true,
"stop_scans": true,
"edited_by": "string",
"user_ids": [
"uuid"
]
}
],
"group_ids": [
"uuid"
],
"widgets": [
{
"id": "uuid",
"created_at": "2023-12-20T00:00:01.652259Z",
"updated_at": "2023-12-20T00:00:01.652259Z",
"trace_id": "uuid",
"name": "string",
"config": {
"type": "string",
"settings": {
"kind": "histogram",
"base": {
"name": "Гистрограмма",
"showHeading": true,
"description": "string"
},
"legend": {
"placement": "string",
"show": true
},
"settings": {
"type": "bar",
"lineStyle": "linear",
"showDots": true,
"stack": true,
"theme": "string"
},
"mappings": {
"xAxis": {
"field": "string",
"customRange": true,
"customRangeValues": [
"string"
],
"useUnknownValues": true
},
"yAxis": {
"field": "string",
"groupingField": "string"
},
"normalizationStrategy": "fix"
}
},
"series": [
{
"name": "string",
"mode": "string",
"source": "string",
"period": [
"now-1",
"now"
],
"sql": "string",
"query": {
"dataset": "string",
"distinct": true,
"fields": [
{
"field": "string",
"alias": "string",
"format": "string",
"aggregation": {
"func": "string",
"distinct": true,
"args": [
"string"
]
}
}
],
"filters": [
{
"field": "string",
"negation": false,
"operator": "is",
"value": "string"
}
],
"group_by": [
"string"
],
"limit": 20,
"offset": 0,
"order_by": [
{
"direction": "asc",
"field": "string"
}
],
"interval": "1y"
}
}
]
},
"settings": {
"settings": {
"kind": "histogram",
"base": {
"name": "Гистрограмма",
"showHeading": true,
"description": "string"
},
"legend": {
"placement": "string",
"show": true
},
"settings": {
"type": "bar",
"showDots": true,
"text": "string",
"image": "string",
"fit": "string"
},
"mappings": {
"xAxis": {
"field": "string",
"customRange": true,
"customRangeValues": [
"string"
]
},
"yAxis": {
"field": "string"
},
"fields": [
{
"label": "string",
"key": "string"
}
],
"field": "string",
"dataSeries": "string"
}
},
"period": [
"now-1",
"now"
],
"series": [
{
"name": "string",
"mode": "string",
"source": "string",
"period": [
"now-1",
"now"
],
"sql": "string",
"query": {
"dataset": "string",
"distinct": true,
"fields": [
{
"field": "string",
"alias": "string",
"format": "string",
"aggregation": {
"func": "string",
"distinct": true,
"args": [
"string"
]
}
}
],
"filters": [
{
"field": "string",
"negation": false,
"operator": "is",
"value": "string"
}
],
"group_by": [
"string"
],
"limit": 20,
"offset": 0,
"order_by": [
{
"direction": "asc",
"field": "string"
}
],
"interval": "1y"
}
}
]
},
"dashboard_id": "uuid"
}
]
}
Другие возможные ответы
Код | Ответ | Описание |
---|---|---|
400 |
Bad Request can’t query dashboard: missing uid header |
Неверный тип параметра запроса, либо отсутствует обязательный параметр Ошибки при получении рабочего стола по ID Не передан заголовок “Pgr-User-ID” |
403 |
Forbidden |
update is allowed only for owner - пользователь с ID = “Pgr-User-ID” не является владельцем рабочего стола, либо админом |
404 |
Not Found |
Редактируемый рабочий стол не найден |
409 |
name_already_used |
Попытка создать объект с существующим уникальным атрибутом |
500 |
Internal Server Error failed to get dashboard |
Другие ошибки при удалении объекта Ошибка при обращении к БД |
Примечание: Текст ошибки не фиксированный, может изменяться в зависимости от фактического ответа получателя запроса.
Пример ответа
Код 400
{ "error": "Bad Request", "error_code": 400 }
Код 403
{ "error": "Forbidden", "error_code": 403 }
Код 404
{ "error": "Not Found", "error_code": 404 }
Код 409
{ "error": "name_already_used", "error_code": 409, "extra": { "fields": [ "name" ] } }
Код 500
{ "error": "Internal Server Error", "error_code": 500 }