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

Создание набора правил соответствия ПО

Запрос

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

Описание: При выполнении запроса будет создан набор правил соответствия ПО с заданными параметрами.

Позволяет также управлять связями многие ко многим с другими моделями через поле _relations.

Ключами в поле _relations могут быть названия полей моделей ссылающиеся на другие. Например если у модели связь с моделью правил корреляции и в нем хранится актив связанного правила то это поле можно использовать при управлении данной связью

Управление работает следующим образом:

  • Если поля в активе _relations отсутствуют зависимости не обновляются
  • Если поле зависимости указано и в значении не пустой список идентификаторов, то связи модели приводятся к описанному состоянию
  • Если поле зависимости указано и в значении пустой список то все связи удаляются

Например следующий запрос:

{
  "name": "Test",
  ...
  "_relations": {
    "rules": [] // - очистит все связи с правилами
    // "rules": ["uuid1", "uuid2"] // - создаст связь с 2 правилами
    // "rules": ["uuid1"] // - оставит связь только с первым правилом
  }
}
Пример запроса

POST
http://127.0.0.1/cruddy/v2/rule_sets/create

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

Параметр Тип данных Обязательность Описание
trace_id string Required Идентификатор трассировки действия пользователя для аудиа
name string Required Уникальное название набора правил соответствия
create_service_asset_findings boolean Required Флаг создания инцидентов
_relations object Optional Словарь описывающий связанные модели через идентификаторы
_relations{rules} Array<string> Optional Массив ID правил соответствия ПО
_relations{service_asset_groups} Array<string> Optional Массив ID групп активов
Пример тела запроса

{
  "trace_id": "uuid",
  "name": "New rule set",
  "create_service_asset_findings": false,
  "_relations": {
    "rules": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "service_asset_groups": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ]
  }
}

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

Статус код: 201 - успешное создание набора правил соответствия ПО.

Формат: JSON.

Тело ответа: модель созданного набора правил.

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

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created_at": "2023-12-20T00:00:01.652259Z",
  "updated_at": "2023-12-20T00:00:01.652259Z",
  "name": "New rule set",
  "create_service_asset_findings": false,
  "rules": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "created_at": "2023-12-20T00:00:01.652259Z",
    "updated_at": "2023-12-20T00:00:01.652259Z",
    "name": "test-rule",
    "query": "(adobe & photoshop) | (gnu & gimp)",
    "blacklist_entry": false
  },
  "service_asset_groups": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "created_at": "2023-12-20T00:00:01.652259Z",
    "updated_at": "2023-12-20T00:00:01.652259Z",
    "name": "string",
    "network_ranges": [],
    "domain": "string",
    "itsm_synced": false,
    "regex": "string",
    "subject_id": "string",
    "object_id": "string",
    "is_kii": false,
    "is_fincert": false,
    "responsible_person": "string",
    "technical_specialist": "string",
    "system_id": "string",
    "responsible_group_id": "2d40d7ca-3218-4132-89ef-42e29379a567",
    "edited_by": "9501acb5-3be0-4719-a60e-dfa79624666c"
  },
  "_relations": {
    "rules": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "service_asset_groups": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ]
  }
}

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

Код Ответ Описание
400 Bad Request Неверный тип параметра запроса, либо отсутствует обязательный параметр
409 name_already_used Попытка создать объект с существующим уникальным атрибутом
500 Internal Server Error Другие ошибки при создании объекта

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

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

Код 400

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

Код 409

{
  "error": "name_already_used",
  "error_code": 409,
  "extra": {
    "fields": [
      "name"
    ]
  }
}

Код 500

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