Поиск табличных списков
Запрос
Тип | Метод |
---|---|
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 |
Object VirtualSearch
Параметр | Тип | Обязательность | Описание / Допустимые значения |
---|---|---|---|
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 }