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

Создание группы активов

Запрос

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

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

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

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

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

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

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

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

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

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

Параметр Тип Обязательность Описание
trace_id string Required Идентификатор трассировки действия пользователя для аудита
name string Required Название группы активов
network_ranges Array<string> Optional Список подсетей
domain string Optional Домен
itsm_synced boolean Optional Признак синхронизации с системой управления ИТ-услугами
regex string Optional Регулярное выражение
subject_id string Optional Идентификатор субъекта
object_id string Optional Идентификатор обьекта
is_kii boolean Optional Призкак принадлежности к обьктам критической инфраструктуры
is_fincert boolean Optional Признак вхождения в систему информационного обмена между участниками финансового рынка
responsible_person string Optional Имя отвественного пользователя
technical_specialist string Optional Технический специалист
system_id string Optional Идентификатор системы
responsible_group_id string Optional Идентификатор отвественной группы
edited_by string Optional Идентификатор пользователя, внесшего изменения
_relations object<relations> Optional Словарь идентификаторов связанных объектов
Модель данных _relations
Параметр Тип данных Обязательность Описание
groups Array<string> Optional Идентификаторы связанных групп пользователей
rule_sets Array<string> Optional Идентификаторы связанных наборов правил
service_assets Array<string> Optional Идентификаторы связанных активов
software_compliance_checks Array<string> Optional Идентификаторы связанных проверок соотвествия ПО
Пример тела запроса

{
  "trace_id": "uuid",
  "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": {
    "groups": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "rule_sets": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "service_assets": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "software_compliance_checks": [
      "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": "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",
  "software_compliance_checks": [
    {
      "service_asset_group_id": "89c15508-7cc6-40d3-94c1-0f63c26cac7d",
      "compliant": true,
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z"
    }
  ],
  "responsible_group": {
    "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"
    ]
  },
  "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"
      ]
    }
  ],
  "service_assets": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "type": "Host",
      "name": "Актив",
      "description": "Описание актива",
      "coordinates": "--- []",
      "active": true,
      "scan_id": "9a59f0f5-5572-476d-a7fc-c960ef43a5af",
      "value": 3,
      "client_note": "string",
      "internal_note": "string",
      "location": "string",
      "network_exposure": 3,
      "responsible_person": "string",
      "technical_specialist": "string",
      "responsible_group_id": "2d40d7ca-3218-4132-89ef-42e29379a567",
      "edited_by": "9501acb5-3be0-4719-a60e-dfa79624666c"
    }
  ],
  "rule_sets": [
    {
      "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
    }
  ],
  "_relations": {
    "groups": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "rule_sets": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "service_assets": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "software_compliance_checks": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ]
  },
  "service_asset_ids": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "service_asset_ids_count": 0,
  "responsible_group_name": "string",
  "group_ids": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "rule_set_ids": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ],
  "user_groups": [
    {
      "id": "uuid",
      "name": "Test group"
    }
  ],
  "performed_at": "string"
}

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

Код Ответ Описание
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
}