# Реестры

> Инструменты раздела «Реестры»: 30

Подключение: `https://mcp.legalstack.ru/mcp/registry` или в составе общего подключения `https://mcp.legalstack.ru/mcp`.

## Добавить колонку реестра

`add_registry_field` · изменяет данные

Описание для модели: Add a column to a registry.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `field` | объект | да | The new column. |
| `field.label` | string | да | Name of the column shown to people. Длина: 1–300. |
| `field.kind` | string | нет | Kind of the column, text by default. Значения: `Текст`, `Число`, `Дата`, `Выбор`, `Теги`, `Да/Нет`, `Email`, `Телефон`. |
| `field.key` | string | нет | Key of the column in latin letters, made from the label by default. Длина: 1–100. |
| `field.required` | boolean | нет | The column must be filled. |
| `field.options` | массив string | нет | Choices of a select or tags column. Элементов: 1–500. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "field": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "minLength": 1,
          "maxLength": 300,
          "description": "Name of the column shown to people"
        },
        "kind": {
          "type": "string",
          "enum": [
            "Текст",
            "Число",
            "Дата",
            "Выбор",
            "Теги",
            "Да/Нет",
            "Email",
            "Телефон"
          ],
          "description": "Kind of the column, text by default"
        },
        "key": {
          "description": "Key of the column in latin letters, made from the label by default",
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-z][a-z0-9_]*$"
        },
        "required": {
          "description": "The column must be filled",
          "type": "boolean"
        },
        "options": {
          "description": "Choices of a select or tags column",
          "minItems": 1,
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300
          }
        }
      },
      "required": [
        "label"
      ],
      "additionalProperties": false,
      "description": "The new column"
    }
  },
  "required": [
    "registry_id",
    "field"
  ],
  "additionalProperties": false
}
```

</details>

## Добавить запись в реестр

`create_record` · изменяет данные

Описание для модели: Create a record in a registry. Take keys and kinds of columns from get_registry and pass every value at once. Dates go as YYYY-MM-DD. When pending_approval is true the record waits for the user to approve it in the app.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `values` | объект | да | Values of the record under keys of columns. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "values": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "Values of the record under keys of columns"
    }
  },
  "required": [
    "registry_id",
    "values"
  ],
  "additionalProperties": false
}
```

</details>

## Создать реестр

`create_registry` · изменяет данные

Описание для модели: Create a registry with columns.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `name` | string | да | Name of the registry. Длина: 1–300. |
| `description` | string | нет | What the registry keeps. Длина: до 2000. |
| `fields` | массив объектов | да | Columns in the order they are shown. Элементов: 1–200. |
| `fields[].label` | string | да | Name of the column shown to people. Длина: 1–300. |
| `fields[].kind` | string | нет | Kind of the column, text by default. Значения: `Текст`, `Число`, `Дата`, `Выбор`, `Теги`, `Да/Нет`, `Email`, `Телефон`. |
| `fields[].key` | string | нет | Key of the column in latin letters, made from the label by default. Длина: 1–100. |
| `fields[].required` | boolean | нет | The column must be filled. |
| `fields[].options` | массив string | нет | Choices of a select or tags column. Элементов: 1–500. |
| `folder_id` | string | нет | Folder of the registry, the root by default. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Name of the registry"
    },
    "description": {
      "description": "What the registry keeps",
      "type": "string",
      "maxLength": 2000
    },
    "fields": {
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300,
            "description": "Name of the column shown to people"
          },
          "kind": {
            "type": "string",
            "enum": [
              "Текст",
              "Число",
              "Дата",
              "Выбор",
              "Теги",
              "Да/Нет",
              "Email",
              "Телефон"
            ],
            "description": "Kind of the column, text by default"
          },
          "key": {
            "description": "Key of the column in latin letters, made from the label by default",
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[a-z][a-z0-9_]*$"
          },
          "required": {
            "description": "The column must be filled",
            "type": "boolean"
          },
          "options": {
            "description": "Choices of a select or tags column",
            "minItems": 1,
            "maxItems": 500,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            }
          }
        },
        "required": [
          "label"
        ],
        "additionalProperties": false
      },
      "description": "Columns in the order they are shown"
    },
    "folder_id": {
      "description": "Folder of the registry, the root by default",
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    }
  },
  "required": [
    "name",
    "fields"
  ],
  "additionalProperties": false
}
```

</details>

## Создать папку реестров

`create_registry_folder` · изменяет данные

Описание для модели: Create a folder for registries.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `name` | string | да | Name of the folder. Длина: 1–300. |
| `cloud` | string | нет | Cloud the folder is kept in sync with. Значения: `Dropbox`, `Яндекс Диск`. |
| `cloud_path` | string | нет | Folder in the cloud that receives the registries. Длина: 1–2000. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Name of the folder"
    },
    "cloud": {
      "type": "string",
      "enum": [
        "Dropbox",
        "Яндекс Диск"
      ],
      "description": "Cloud the folder is kept in sync with"
    },
    "cloud_path": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "description": "Folder in the cloud that receives the registries"
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false
}
```

</details>

## Создать реестр из таблицы

`create_registry_from_spreadsheet` · изменяет данные

Описание для модели: Create a registry from a spreadsheet and import its rows. Every registry column needs a key, the mapping refers to columns by these keys.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `cloud` | string | нет | Cloud that keeps the spreadsheet. Значения: `Google Диск`, `Dropbox`, `Яндекс Диск`. |
| `file` | string | нет | File id for Google Drive, full path for Dropbox and Yandex Disk. Длина: 1–2000. |
| `path` | string | нет | Path of an XLSX or CSV file in the working folder. Длина: 1–1000. |
| `name` | string | да | Name of the new registry. Длина: 1–300. |
| `fields` | массив объектов | да | Columns of the new registry. Элементов: 1–200. |
| `fields[].label` | string | да | Name of the column shown to people. Длина: 1–300. |
| `fields[].kind` | string | нет | Kind of the column, text by default. Значения: `Текст`, `Число`, `Дата`, `Выбор`, `Теги`, `Да/Нет`, `Email`, `Телефон`. |
| `fields[].key` | string | да | Key of the column in latin letters, made from the label by default. Длина: 1–100. |
| `fields[].required` | boolean | нет | The column must be filled. |
| `fields[].options` | массив string | нет | Choices of a select or tags column. Элементов: 1–500. |
| `columns` | объект | да | Column of the spreadsheet to key of the registry column. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "cloud": {
      "type": "string",
      "enum": [
        "Google Диск",
        "Dropbox",
        "Яндекс Диск"
      ],
      "description": "Cloud that keeps the spreadsheet"
    },
    "file": {
      "description": "File id for Google Drive, full path for Dropbox and Yandex Disk",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "path": {
      "description": "Path of an XLSX or CSV file in the working folder",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Name of the new registry"
    },
    "fields": {
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300,
            "description": "Name of the column shown to people"
          },
          "kind": {
            "type": "string",
            "enum": [
              "Текст",
              "Число",
              "Дата",
              "Выбор",
              "Теги",
              "Да/Нет",
              "Email",
              "Телефон"
            ],
            "description": "Kind of the column, text by default"
          },
          "key": {
            "description": "Key of the column in latin letters, made from the label by default",
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[a-z][a-z0-9_]*$"
          },
          "required": {
            "description": "The column must be filled",
            "type": "boolean"
          },
          "options": {
            "description": "Choices of a select or tags column",
            "minItems": 1,
            "maxItems": 500,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            }
          }
        },
        "required": [
          "label",
          "key"
        ],
        "additionalProperties": false
      },
      "description": "Columns of the new registry"
    },
    "columns": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 100
      },
      "description": "Column of the spreadsheet to key of the registry column"
    }
  },
  "required": [
    "name",
    "fields",
    "columns"
  ],
  "additionalProperties": false
}
```

</details>

## Подключить источник данных реестра

`create_registry_source` · изменяет данные

Описание для модели: Connect a cloud spreadsheet as a data source of a registry. Look at the columns of the spreadsheet with describe_spreadsheet first.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `name` | string | да | Name of the source. Длина: 1–200. |
| `cloud` | string | да | Cloud that keeps the spreadsheet. Значения: `Google Диск`, `Dropbox`, `Яндекс Диск`. |
| `file` | string | да | File id for Google Drive, full path for Dropbox and Yandex Disk. Длина: 1–2000. |
| `columns` | объект | да | Column of the spreadsheet to key of the registry column. |
| `key_column` | string | да | Column of the spreadsheet that identifies a row. Длина: 1–300. |
| `key_field` | string | да | Key of the registry column that keeps that identifier. Длина: 1–100. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Name of the source"
    },
    "cloud": {
      "type": "string",
      "enum": [
        "Google Диск",
        "Dropbox",
        "Яндекс Диск"
      ],
      "description": "Cloud that keeps the spreadsheet"
    },
    "file": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "description": "File id for Google Drive, full path for Dropbox and Yandex Disk"
    },
    "columns": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 100
      },
      "description": "Column of the spreadsheet to key of the registry column"
    },
    "key_column": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Column of the spreadsheet that identifies a row"
    },
    "key_field": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Key of the registry column that keeps that identifier"
    }
  },
  "required": [
    "registry_id",
    "name",
    "cloud",
    "file",
    "columns",
    "key_column",
    "key_field"
  ],
  "additionalProperties": false
}
```

</details>

## Удалить запись реестра

`delete_record` · необратимое действие

Описание для модели: Delete a record of a registry. Cannot be restored.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `record_id` | string | да | Record id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "record_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Record id"
    }
  },
  "required": [
    "registry_id",
    "record_id"
  ],
  "additionalProperties": false
}
```

</details>

## Удалить реестр

`delete_registry` · необратимое действие

Описание для модели: Delete a registry with all its records. Cannot be restored.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    }
  },
  "required": [
    "registry_id"
  ],
  "additionalProperties": false
}
```

</details>

## Удалить колонку реестра

`delete_registry_field` · необратимое действие

Описание для модели: Delete a column of a registry with its values. Values of the column in all records are lost and cannot be restored.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `field_key` | string | да | Key of the column from get_registry. Длина: 1–100. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "field_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Key of the column from get_registry"
    }
  },
  "required": [
    "registry_id",
    "field_key"
  ],
  "additionalProperties": false
}
```

</details>

## Удалить папку реестров

`delete_registry_folder` · необратимое действие

Описание для модели: Delete a registry folder, its registries move to the root.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `folder_id` | string | да | Folder id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "folder_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Folder id"
    }
  },
  "required": [
    "folder_id"
  ],
  "additionalProperties": false
}
```

</details>

## Отключить источник данных реестра

`delete_registry_source` · необратимое действие

Описание для модели: Delete a data source of a registry, its records stay. Cannot be restored.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `source_id` | string | да | Source id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "source_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Source id"
    }
  },
  "required": [
    "source_id"
  ],
  "additionalProperties": false
}
```

</details>

## Колонки таблицы

`describe_spreadsheet` · только чтение

Описание для модели: Describe columns of a spreadsheet file before an import. Use before an import to map the columns. With registry_id returns the mapping saved from earlier imports.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `cloud` | string | нет | Cloud that keeps the spreadsheet. Значения: `Google Диск`, `Dropbox`, `Яндекс Диск`. |
| `file` | string | нет | File id for Google Drive, full path for Dropbox and Yandex Disk. Длина: 1–2000. |
| `path` | string | нет | Path of an XLSX or CSV file in the working folder. Длина: 1–1000. |
| `registry_id` | string | нет | Registry id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "cloud": {
      "type": "string",
      "enum": [
        "Google Диск",
        "Dropbox",
        "Яндекс Диск"
      ],
      "description": "Cloud that keeps the spreadsheet"
    },
    "file": {
      "description": "File id for Google Drive, full path for Dropbox and Yandex Disk",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "path": {
      "description": "Path of an XLSX or CSV file in the working folder",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    }
  },
  "additionalProperties": false
}
```

</details>

## Выгрузить реестр в Excel

`export_registry_file` · изменяет данные · только для агентов платформы

Описание для модели: Export a registry to an XLSX file in the working folder.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    }
  },
  "required": [
    "registry_id"
  ],
  "additionalProperties": false
}
```

</details>

## Выгрузить реестр в облако

`export_registry_to_cloud` · изменяет данные

Описание для модели: Export a registry as an XLSX file to a cloud storage.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `cloud` | string | да | Cloud to put the file to. Значения: `Google Диск`, `Dropbox`, `Яндекс Диск`. |
| `folder` | string | нет | Folder id for Google Drive, folder path for other clouds. Длина: 1–2000. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "cloud": {
      "type": "string",
      "enum": [
        "Google Диск",
        "Dropbox",
        "Яндекс Диск"
      ],
      "description": "Cloud to put the file to"
    },
    "folder": {
      "description": "Folder id for Google Drive, folder path for other clouds",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [
    "registry_id",
    "cloud"
  ],
  "additionalProperties": false
}
```

</details>

## Запись реестра

`get_record` · только чтение

Описание для модели: Get one record of a registry.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `record_id` | string | да | Record id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "record_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Record id"
    }
  },
  "required": [
    "registry_id",
    "record_id"
  ],
  "additionalProperties": false
}
```

</details>

## Устройство реестра

`get_registry` · только чтение

Описание для модели: Get a registry with its columns and notices. Read the columns before creating or changing records, values of a record go under the keys of columns.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    }
  },
  "required": [
    "registry_id"
  ],
  "additionalProperties": false
}
```

</details>

## Загрузить таблицу в реестр

`import_spreadsheet_records` · изменяет данные

Описание для модели: Import rows of a spreadsheet into a registry as records. Columns that are not mapped are skipped. Look at the columns with describe_spreadsheet first.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `cloud` | string | нет | Cloud that keeps the spreadsheet. Значения: `Google Диск`, `Dropbox`, `Яндекс Диск`. |
| `file` | string | нет | File id for Google Drive, full path for Dropbox and Yandex Disk. Длина: 1–2000. |
| `path` | string | нет | Path of an XLSX or CSV file in the working folder. Длина: 1–1000. |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `columns` | объект | да | Column of the spreadsheet to key of the registry column. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "cloud": {
      "type": "string",
      "enum": [
        "Google Диск",
        "Dropbox",
        "Яндекс Диск"
      ],
      "description": "Cloud that keeps the spreadsheet"
    },
    "file": {
      "description": "File id for Google Drive, full path for Dropbox and Yandex Disk",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "path": {
      "description": "Path of an XLSX or CSV file in the working folder",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "columns": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 100
      },
      "description": "Column of the spreadsheet to key of the registry column"
    }
  },
  "required": [
    "registry_id",
    "columns"
  ],
  "additionalProperties": false
}
```

</details>

## Записи реестра

`list_records` · только чтение

Описание для модели: List or search records of a registry, filter and sort. Values of a record go under keys of columns, fields tells the names of the columns. When total is greater than the records returned ask for the next page.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `query` | string | нет | Text to find in any column. Длина: 1–300. |
| `filters` | массив объектов | нет | Conditions on columns. Элементов: 1–20. |
| `filters[].field` | string | да | Key of the column. Длина: 1–100. |
| `filters[].operator` | string | да | Comparison. Значения: `=`, `!=`, `>`, `<`, `contains`. |
| `filters[].value` | string или number или boolean | да | Value to compare with. |
| `filters[].joins` | string | нет | How the condition joins the next one, AND by default. Значения: `AND`, `OR`. |
| `sort_by` | string | нет | Key of the column to sort by. Длина: 1–100. |
| `descending` | boolean | нет | Sort from the greatest value. |
| `page` | integer | нет | Page number from 1. По умолчанию: `1`. Диапазон: 1–10000. |
| `limit` | integer | нет | Maximum number of items to return, 50 by default. По умолчанию: `50`. Диапазон: 1–200. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "query": {
      "description": "Text to find in any column",
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "filters": {
      "description": "Conditions on columns",
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Key of the column"
          },
          "operator": {
            "type": "string",
            "enum": [
              "=",
              "!=",
              ">",
              "<",
              "contains"
            ],
            "description": "Comparison"
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1000
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ],
            "description": "Value to compare with"
          },
          "joins": {
            "description": "How the condition joins the next one, AND by default",
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          }
        },
        "required": [
          "field",
          "operator",
          "value"
        ],
        "additionalProperties": false
      }
    },
    "sort_by": {
      "description": "Key of the column to sort by",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "descending": {
      "description": "Sort from the greatest value",
      "type": "boolean"
    },
    "page": {
      "default": 1,
      "description": "Page number from 1",
      "type": "integer",
      "minimum": 1,
      "maximum": 10000
    },
    "limit": {
      "default": 50,
      "description": "Maximum number of items to return, 50 by default",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "required": [
    "registry_id"
  ],
  "additionalProperties": false
}
```

</details>

## Список реестров

`list_registries` · только чтение

Описание для модели: List registries of the team, optionally within a folder. A registry is a table of records with columns of its own. Columns come with get_registry.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `query` | string | нет | Part of the registry name. Длина: 1–200. |
| `folder_id` | string | нет | Folder from list_registry_folders. Длина: 1–64. |
| `limit` | integer | нет | Maximum number of items to return, 50 by default. По умолчанию: `50`. Диапазон: 1–200. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "query": {
      "description": "Part of the registry name",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "folder_id": {
      "description": "Folder from list_registry_folders",
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "limit": {
      "default": 50,
      "description": "Maximum number of items to return, 50 by default",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "additionalProperties": false
}
```

</details>

## Папки реестров

`list_registry_folders` · только чтение

Описание для модели: List folders that group registries.

**Параметры**

Параметров нет.

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
```

</details>

## Источники данных реестра

`list_registry_sources` · только чтение

Описание для модели: List outside tables that feed a registry. A source is a spreadsheet in a cloud whose rows are pulled into the registry by sync_registry_source.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    }
  },
  "required": [
    "registry_id"
  ],
  "additionalProperties": false
}
```

</details>

## Настроить уведомления реестра

`set_registry_notices` · изменяет данные

Описание для модели: Set Telegram notices of a registry on events and dates. Replaces the whole list of notices, pass every notice that must stay with its id. A notice fires either on a record event or as a reminder before the date in a date column.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `notices` | массив объектов | да | The full new list of notices, empty to remove them all. Элементов: до 50. |
| `notices[].id` | string | нет | Id of a notice to keep, from get_registry. Длина: 1–100. |
| `notices[].name` | string | да | Name of the notice. Длина: 1–200. |
| `notices[].on` | string | нет | Record event that sends the notice. Значения: `Создание записи`, `Изменение записи`, `Удаление записи`. |
| `notices[].date_field` | string | нет | Key of a date column, the notice reminds of that date. Длина: 1–100. |
| `notices[].days_before` | массив integer | нет | Days before the date. Элементов: до 10. |
| `notices[].at` | string | нет | Time of a reminder as HH:MM, 09:00 by default. |
| `notices[].recipient_ids` | массив string | да | Members who receive the notice in Telegram. Элементов: 1–50. |
| `notices[].text` | string | да | Message text, may hold {{registryName}} and {{fields}}. Длина: 1–2000. |
| `notices[].fields` | массив string | нет | Keys of columns listed in the message. Элементов: до 50. |
| `notices[].enabled` | boolean | нет | False keeps the notice switched off. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "notices": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Id of a notice to keep, from get_registry",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Name of the notice"
          },
          "on": {
            "type": "string",
            "enum": [
              "Создание записи",
              "Изменение записи",
              "Удаление записи"
            ],
            "description": "Record event that sends the notice"
          },
          "date_field": {
            "description": "Key of a date column, the notice reminds of that date",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "days_before": {
            "description": "Days before the date",
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 3650
            }
          },
          "at": {
            "description": "Time of a reminder as HH:MM, 09:00 by default",
            "type": "string",
            "pattern": "^\\d{2}:\\d{2}$"
          },
          "recipient_ids": {
            "minItems": 1,
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "description": "Team member id"
            },
            "description": "Members who receive the notice in Telegram"
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "Message text, may hold {{registryName}} and {{fields}}"
          },
          "fields": {
            "description": "Keys of columns listed in the message",
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            }
          },
          "enabled": {
            "description": "False keeps the notice switched off",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "recipient_ids",
          "text"
        ],
        "additionalProperties": false
      },
      "description": "The full new list of notices, empty to remove them all"
    }
  },
  "required": [
    "registry_id",
    "notices"
  ],
  "additionalProperties": false
}
```

</details>

## Синхронизировать записи реестра

`sync_records` · необратимое действие

Описание для модели: Bring records of a registry in line with a list of rows. Rows match records by their key in the source. With remove_missing records absent from the rows are deleted for good.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `rows` | массив объектов | да | Rows of the source. Элементов: 1–5000. |
| `rows[].key` | string | да | Unique key of the row in the source. Длина: 1–300. |
| `rows[].values` | объект | да | Values of the record under keys of columns. |
| `add_new` | boolean | нет | Create records for new rows, on by default. |
| `update_existing` | boolean | нет | Update records of known rows, on by default. |
| `remove_missing` | boolean | нет | Delete records absent from the rows, off by default. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "rows": {
      "minItems": 1,
      "maxItems": 5000,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300,
            "description": "Unique key of the row in the source"
          },
          "values": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "Values of the record under keys of columns"
          }
        },
        "required": [
          "key",
          "values"
        ],
        "additionalProperties": false
      },
      "description": "Rows of the source"
    },
    "add_new": {
      "description": "Create records for new rows, on by default",
      "type": "boolean"
    },
    "update_existing": {
      "description": "Update records of known rows, on by default",
      "type": "boolean"
    },
    "remove_missing": {
      "description": "Delete records absent from the rows, off by default",
      "type": "boolean"
    }
  },
  "required": [
    "registry_id",
    "rows"
  ],
  "additionalProperties": false
}
```

</details>

## Выгрузить папку реестров в облако

`sync_registry_folder` · изменяет данные

Описание для модели: Export every registry of a folder to a cloud as XLSX files. Files in the cloud are created or replaced. The cloud and the path come from the folder settings by default.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `folder_id` | string | да | Folder id. Длина: 1–64. |
| `cloud` | string | нет | Cloud the folder is kept in sync with. Значения: `Dropbox`, `Яндекс Диск`. |
| `cloud_path` | string | нет | Folder in the cloud that receives the registries. Длина: 1–2000. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "folder_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Folder id"
    },
    "cloud": {
      "type": "string",
      "enum": [
        "Dropbox",
        "Яндекс Диск"
      ],
      "description": "Cloud the folder is kept in sync with"
    },
    "cloud_path": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "description": "Folder in the cloud that receives the registries"
    }
  },
  "required": [
    "folder_id"
  ],
  "additionalProperties": false
}
```

</details>

## Обновить реестр из источника

`sync_registry_source` · изменяет данные

Описание для модели: Pull fresh rows from a data source into its registry.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `source_id` | string | да | Source id. Длина: 1–64. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "source_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Source id"
    }
  },
  "required": [
    "source_id"
  ],
  "additionalProperties": false
}
```

</details>

## Изменить запись реестра

`update_record` · изменяет данные

Описание для модели: Change values of a registry record. Pass only the values that change, the rest stay. Dates go as YYYY-MM-DD.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `record_id` | string | да | Record id. Длина: 1–64. |
| `values` | объект | да | New values under keys of columns. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "record_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Record id"
    },
    "values": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "New values under keys of columns"
    }
  },
  "required": [
    "registry_id",
    "record_id",
    "values"
  ],
  "additionalProperties": false
}
```

</details>

## Изменить реестр

`update_registry` · изменяет данные

Описание для модели: Rename a registry, change its description or folder. Columns are changed with add_registry_field, update_registry_field and delete_registry_field.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `name` | string | нет | New name. Длина: 1–300. |
| `description` | string | нет | New description. Длина: 1–2000. |
| `folder_id` | string | нет | Folder to move the registry to. Длина: 1–64. |
| `to_root` | boolean | нет | True moves the registry out of its folder. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "name": {
      "description": "New name",
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "description": {
      "description": "New description",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "folder_id": {
      "description": "Folder to move the registry to",
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "to_root": {
      "description": "True moves the registry out of its folder",
      "type": "boolean"
    }
  },
  "required": [
    "registry_id"
  ],
  "additionalProperties": false
}
```

</details>

## Изменить колонку реестра

`update_registry_field` · изменяет данные

Описание для модели: Rename a registry column or change its kind and choices. The key of the column and values of records stay as they are. A new kind does not convert the values, fix them with update_record when needed.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `registry_id` | string | да | Registry id. Длина: 1–64. |
| `field_key` | string | да | Key of the column from get_registry. Длина: 1–100. |
| `label` | string | нет | Name of the column shown to people. Длина: 1–300. |
| `kind` | string | нет | Kind of the column, text by default. Значения: `Текст`, `Число`, `Дата`, `Выбор`, `Теги`, `Да/Нет`, `Email`, `Телефон`. |
| `required` | boolean | нет | The column must be filled. |
| `options` | массив string | нет | Choices of a select or tags column. Элементов: 1–500. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "registry_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Registry id"
    },
    "field_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Key of the column from get_registry"
    },
    "label": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Name of the column shown to people"
    },
    "kind": {
      "type": "string",
      "enum": [
        "Текст",
        "Число",
        "Дата",
        "Выбор",
        "Теги",
        "Да/Нет",
        "Email",
        "Телефон"
      ],
      "description": "Kind of the column, text by default"
    },
    "required": {
      "description": "The column must be filled",
      "type": "boolean"
    },
    "options": {
      "description": "Choices of a select or tags column",
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 300
      }
    }
  },
  "required": [
    "registry_id",
    "field_key"
  ],
  "additionalProperties": false
}
```

</details>

## Изменить папку реестров

`update_registry_folder` · изменяет данные

Описание для модели: Rename a registry folder or set its cloud sync.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `folder_id` | string | да | Folder id. Длина: 1–64. |
| `name` | string | нет | New name. Длина: 1–300. |
| `cloud` | string | нет | Cloud the folder is kept in sync with. Значения: `Dropbox`, `Яндекс Диск`. |
| `cloud_path` | string | нет | Folder in the cloud that receives the registries. Длина: 1–2000. |
| `stop_sync` | boolean | нет | True switches the cloud sync off. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "folder_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Folder id"
    },
    "name": {
      "description": "New name",
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "cloud": {
      "type": "string",
      "enum": [
        "Dropbox",
        "Яндекс Диск"
      ],
      "description": "Cloud the folder is kept in sync with"
    },
    "cloud_path": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "description": "Folder in the cloud that receives the registries"
    },
    "stop_sync": {
      "description": "True switches the cloud sync off",
      "type": "boolean"
    }
  },
  "required": [
    "folder_id"
  ],
  "additionalProperties": false
}
```

</details>

## Изменить источник данных реестра

`update_registry_source` · изменяет данные

Описание для модели: Rename a registry data source, remap or switch it off.

**Параметры**

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `source_id` | string | да | Source id. Длина: 1–64. |
| `name` | string | нет | New name. Длина: 1–200. |
| `columns` | объект | нет | New full mapping of spreadsheet columns to registry keys. |
| `enabled` | boolean | нет | False switches the source off. |

<details>
<summary>JSON Schema параметров</summary>

```json
{
  "type": "object",
  "properties": {
    "source_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Source id"
    },
    "name": {
      "description": "New name",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "columns": {
      "description": "New full mapping of spreadsheet columns to registry keys",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 100
      }
    },
    "enabled": {
      "description": "False switches the source off",
      "type": "boolean"
    }
  },
  "required": [
    "source_id"
  ],
  "additionalProperties": false
}
```

</details>
