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

Поиск табличных списков

Запрос

Тип Метод
POST /value_stores/search

Описание: При выполнении запроса будут возвращены найденные табличные списки с учётом заданных фильтров.

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

POST
http://127.0.0.1/cruddy/v2/value_stores/search

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

Параметр Тип данных Обязательность Описание
include_fields Array<string> Required Список полей для выборки.
Если модель содержит поля, не указанные в запросе, они будут отсутствовать в ответе
exclude_fields Array<string> Required Список полей для удаления из выборки.
Если модель содержит поля, указанные в запросе, они будут отсутствовать в ответе
filters Array<filters> Required Список фильтров по полям модели
ordering Array<ordering> Required Настройки сортировки
virtual_search object<virtual_search> Required Поле для поиска по подстроке по всем строковым полям модели и настройка строгого поиска
relations Array<string> Required Список связей для выборки. Список доступных связей отображается в ответе запроса на получение метаданных - “/_meta”
limit integer Required Лимит выдачи найденных объектов
offset integer Required Отступ от начала результата поиска в базе
_relations Array<string> Optional Перечисление связанных сущностей идентификаторы которых нужно вернуть в ответе в поле _relations
Array of filters
Параметр Тип данных Обязательность Описание
field string Required Название поля модели
value object Required Значение для фильтрации
filter_type string Required В зависимости от этого значения определяется допустимые значения в поле value. Допустимые значения:
- equal -> строка|число, проверяет равенство значений
- substr -> строка, проверяет вхождение подстроки
- intersection -> массив (тип элемента зависит от типа поля), проверяет вхождение значения поля в переданный массив
- range -> массив (тип элемента зависит от типа поля), проверяет вхождение значения поля в переданный диапазон
- related -> строка или массив строк (uuid), проверят связанность с моделью по идентификатору
если value: [], проверяет наличие или отсутствие связанных сущностей
- exists -> значение отсутствует, проверяется равенство колонки с null
negation boolean Optional Флаг использования отрицания при проверке фильтра
Array of ordering
Параметр Тип Обязательность Описание / Допустимые значения
field string Required Поле модели выбранное для сортировки
direction string Required Направление сортировки. Допустимые значения:
- asc
- desc
Параметр Тип Обязательность Описание / Допустимые значения
value string Required Значение выбранное для поиска
strict boolean Required Опция, включающая строгий поиск. Возможные значения:
- true - строгий поиск включена;
- false - строгий поиск выключен.
Пример тела запроса

{
  "include_fields": [
    "string"
  ],
  "exclude_fields": [
    "string"
  ],
  "filters": [
    {
      "field": "string",
      "value": [
        "name",
        [
          "value1",
          "value2"
        ]
      ],
      "filter_type": "equal",
      "negation": false
    }
  ],
  "ordering": [
    {
      "field": "string",
      "direction": "asc"
    }
  ],
  "virtual_search": {
    "value": "string",
    "strict": false
  },
  "relations": [
    "service_asset_findings",
    "logmule_go_rules",
    "user"
  ],
  "limit": 20,
  "offset": 0,
  "_relations": [
    "string"
  ]
}

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

Статус код: 200 – успешный ответ.

Формат: JSON.

Параметры ответа:

Параметр Тип данных Описание
items Array<KeyValueStore> Список найденных табличных списков
total integer Количество найденных табличных списков
Пример ответа

{
  "items": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "name": "uuid",
      "description": "string",
      "values_scheme": [
        {
          "name": "field",
          "type": "int",
          "is_key": false
        }
      ],
      "is_large": true,
      "mask_values": true,
      "type": "pg",
      "version": 1,
      "source": "",
      "scheme": "vstore",
      "db_name": "vs_111dfca1defc11faa11dc11f1d11fd11",
      "user": "",
      "password": "",
      "store_count": 10,
      "content": null,
      "tollerId": "string",
      "_relations": {
        "logmule_go_rules": [
          "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        ]
      },
      "logmule_go_rules": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "created_at": "2023-12-20T00:00:01.652259Z",
        "updated_at": "2023-12-20T00:00:01.652259Z",
        "name": "string",
        "frontend_data": {
          "alert": {
            "id": "uuid",
            "trace_id": "uuid",
            "name": "string",
            "create_incident": true,
            "assign_to_customer": true,
            "risk_level": 5.35,
            "asset_ip": "string",
            "asset_hostname": "string",
            "asset_fqdn": "string",
            "asset_mac": "string",
            "first_and_last_logs": false,
            "trim_logs": 1,
            "template": "string",
            "mitre": ""
          },
          "grouper": {
            "id": "uuid",
            "trace_id": "uuid",
            "name": "string",
            "grouped_by": [
              "string"
            ],
            "aggregated_by": [
              "string"
            ],
            "grouped_time_field": "string",
            "grouped_time_type": "2023-12-20T00:00:01.652259Z",
            "detection_windows": 5,
            "detection_windows_unit": "ms",
            "aggregate_count": 1,
            "aggregate_unique": true
          },
          "actions": [
            {
              "TTL": "string",
              "key": {
                "_default": {
                  "type": "value",
                  "value": "string"
                }
              },
              "type": "store-set",
              "store": "string",
              "value": "string",
              "column": "string"
            }
          ],
          "conditions": [
            {
              "type": "compare-condition",
              "id": "uuid",
              "parentId": null,
              "negation": false,
              "compareFn": "eq",
              "expressions": [
                {
                  "type": "logline-get",
                  "value": "string"
                }
              ]
            }
          ],
          "version": 2
        },
        "test_data": [
          {}
        ],
        "settings": {
          "function_metrics": false,
          "is_constructor": false,
          "max_alerts": 1,
          "max_alerts_per_second": 1,
          "max_rule_memory_mb": 1
        },
        "active": true,
        "reload": true,
        "finding_id": "uuid",
        "description": "string",
        "lua": "string",
        "is_retro": false,
        "is_system": true,
        "stats": {
          "result_count": 1,
          "error_count": 0
        },
        "is_error": 0,
        "running_at": "2023-12-20T00:00:01.652259Z"
      }
    }
  ],
  "total": 1
}

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

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

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

Пример ответа
Код 400

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

Код 500

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