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

Создание табличного списка

Запрос

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

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

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

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

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

Параметр Тип Обязательность Описание
name string Required Название табличного списка
description string Optional Описание табличного списка
is_large boolean Required Флаг: используется ли хранилище под большой объем данных
values_scheme Array<ValueScheme> Optional Схема значений хранилища (Json как строка)
type string Required Тип БД хранилища (на данный момент поддерживается только postgresql - “pg”)
ValueScheme
Параметр Тип Обязательность Описание
name string Required Название поля табличного списка
type string Required Тип поля табличного списка. Допустимые значения:
- string
- int
- bigint
- double
- ip_address
- cidr
is_key boolean Optional Флаг, используется ли данное поле в ключе табличного списка
Пример тела запроса

{
  "name": "uuid",
  "description": "string",
  "is_large": true,
  "values_scheme": [
    {
      "name": "field",
      "type": "int",
      "is_key": false
    }
  ],
  "type": "pg"
}

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

Статус код: 201 - успешное создание табличного списка.

Формат: JSON.

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

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

{
  "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"
  }
}

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

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