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

Создание задачи

Запрос

Тип Метод
POST /report_tasks/create

Описание: При выполнении запроса будет создана периодическая задача генерации отчета. Объекты связанных сущностей игнорируются в теле запроса. Метод изменяет поле task_id указанного отчета.

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

POST

http://127.0.0.1/cruddy/v2/report_tasks/create

Тело запроса:

Параметр Тип данных Обязательность Описание
interval string Required Интервал генерации отчета в формате cron
instance string Required Идентификатор инстанса, на котором должна быть выполнена генерация отчета, в формате uuid
report_id string Required Идентификатор отчета для генерации в формате uuid
Пример тела запроса

{
  "interval": "* 0 1 1 1",
  "instance": "868cf2e9-bd6d-4bac-96ba-2b08120d8cf9",
  "report_id": "5ed7905a-4735-4cf7-b1ab-521e066fb971"
}

Успешный ответ

Статус код: 201 – успешное добавление.

Формат: JSON

Тело ответа: модель периодической задачи генерации отчетов.

Пример ответа

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created_at": "2023-12-20T00:00:01.652259Z",
  "updated_at": "2023-12-20T00:00:01.652259Z",
  "interval": "* 0 1 1 1",
  "instance": "868cf2e9-bd6d-4bac-96ba-2b08120d8cf9",
  "report_id": "5ed7905a-4735-4cf7-b1ab-521e066fb971",
  "report": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "created_at": "2023-12-20T00:00:01.652259Z",
    "updated_at": "2023-12-20T00:00:01.652259Z",
    "name": "string",
    "config": {
      "pages": [
        [
          {}
        ]
      ]
    },
    "settings": {
      "general": {
        "period": [
          "2019-08-24T14:15:22Z"
        ],
        "name_mask": "string"
      },
      "header": {
        "show": true,
        "text": "string",
        "show_on_all_pages": true,
        "color": "string",
        "text_align": "right",
        "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAA...",
        "fit": "fit",
        "image_align": "string"
      },
      "footer": {
        "show": true,
        "show_on_first_page": true,
        "text": "string",
        "color": "string",
        "show_date": true,
        "show_page_number": true,
        "text_align": "right",
        "date_align": "string",
        "page_number_align": "string",
        "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAA...",
        "fit": "fit",
        "image_align": "string"
      },
      "style": {
        "font": "OpenSans-ExtraBoldItalic"
      }
    },
    "is_system": false,
    "category": {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "name": "string",
      "parent_id": "string"
    },
    "dashboard": {
      "id": "uuid",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "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",
          "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"
        }
      ]
    },
    "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"
      }
    ],
    "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"
        ]
      }
    ],
    "task": {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "interval": "* 0 1 1 1",
      "instance": "868cf2e9-bd6d-4bac-96ba-2b08120d8cf9"
    }
  }
}

Другие возможные ответы

Код Ответ Описание
400 1. Bad Request
2. missing uid header
3. Pgr-User-Id should be uuid format
4. missing report id
5. report id should be uuid format
6. missing instance for report generate task
7. instance id should be uuid format
8. missing mandatory field: interval
9. invalid interval format
1. Неверный тип параметра запроса, либо отсутствует обязательный параметр
2. Не передан заголовок Pgr-User-ID
3. Недопустимый формат Pgr-User-ID
4. Не передан ID отчета
5. Недопустимый формат ID отчета
6. Не передан ID инстанса
7. Недопустимый формат ID инстанса
8. Поле interval не может быть пустым
9. Недопустимый формат интервала
404 report not found Отчет с переданным ID не найден
500 Internal Server Error Другие ошибки при удалении объектов

Примечание: Текст ошибки не фиксированный, может изменяться в зависимости от фактического ответа получателя запроса.

Пример ответа

Код 400

{
  "error": "Bad Request",
  "error_code": 400
}

Код 404

{
  "error": "Not Found",
  "error_code": 404
}

Код 500

{
  "error": "Internal Server Error",
  "error_code": 500
}