Перейти к содержанию

Обновление рабочего стола

Запрос

Тип Метод
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
}