46 lines
6.2 KiB
Markdown
46 lines
6.2 KiB
Markdown
---
|
||
name: shd-airbase-manage
|
||
description: Use when the user asks to inspect, query, create or change saved AirBase dashboards, or explicitly asks to create or change schema, records, cells, AI-computed field runs, field access, external table links, public table access or imports. Do not use for ordinary record queries, data audits, Omni device actions, or global System Base operations.
|
||
metadata: modules=airbase
|
||
---
|
||
|
||
# Управление AirBase
|
||
|
||
Используй инструменты AirBase MCP и выбранную пользователем проектную базу. Перед изменением прочитай схему нужной таблицы и точные записи. Не угадывай ID, коды полей, ссылки между записями и допустимые значения. Для дашбордов и AI-полей найди подходящий сценарий через shd_prompt_search и отрендери его через shd_prompt_get.
|
||
|
||
## Записи и ячейки
|
||
|
||
- Для одиночной ячейки используй `shd_airbase_update_cell`; для нескольких ячеек — `shd_airbase_bulk_update_cells` с полным списком `record_id`, `field_id` и новых `value`.
|
||
- Для создания и обновления записей проверяй значения через `shd_airbase_validate_records`. Для массового создания или upsert сначала запускай соответствующий инструмент с `dry_run=true`, разбирай конфликты, затем выполняй запись только в рамках запроса пользователя.
|
||
- Массовое изменение ячеек не имеет dry-run. До вызова сверь каждую целевую запись и ячейку с текущими данными и запросом пользователя.
|
||
- Не удаляй записи, поля или таблицы и не отсоединяй внешнюю таблицу без явного запроса и требуемого `confirm=true`.
|
||
|
||
## Схема и доступ
|
||
|
||
- Для действий схемы используй `shd_airbase_action` и передавай конкретное действие, параметры и payload из прочитанной схемы. Проверяй зависимости поля через `field-usages` перед потенциально ломающим изменением.
|
||
- Для правил доступа к полю сначала прочитай `get-field-access-policy`; сохраняй только явно запрошенные `default_level` и правила.
|
||
- Подключай внешнюю таблицу только по предоставленному пользователем `source_url`. Перед отключением уточни конкретную таблицу и используй подтверждение.
|
||
- Для доступа клиентов по публичной ссылке сначала прочитай текущие настройки; режим `selected` должен содержать только перечисленные пользователем таблицы.
|
||
|
||
## Сохранённые дашборды
|
||
|
||
- Для текущего контекста используй shd_resources_search и shd_resources_get или прочитай shd://airbases/{base_public_id}/dashboards; затем открой точную конфигурацию через shd_airbase_dashboard_get.
|
||
- Перед сборкой дашборда прочитай shd_airbase_dashboard_widget_catalog. Для данных используй shd_airbase_dashboard_query и учитывай ограниченную выдачу и пагинацию.
|
||
- Создавай и изменяй дашборды только по явному запросу. Сохраняй не затронутые виджеты и фильтры. Удаляй только точно названный дашборд и передавай confirm=true.
|
||
- PDF возвращается в base64. Передавай реальные значения из shd_airbase_dashboard_query и тип/размеры из конфигурации точного дашборда; каждому виджету нужны type, width_units и height_units. Не выдумывай результаты.
|
||
|
||
## AI-поля
|
||
|
||
- Перед preview или запуском прочитай конфигурацию точного поля и доступные поля-источники.
|
||
- shd_airbase_ai_field_preview вызывает AI-провайдера и может расходовать лимит организации, но не записывает значения в AirBase.
|
||
- shd_airbase_ai_field_start ставит в очередь запись вычисленных значений. Запускай только по явному запросу пользователя и только с одним точным scope: view_id либо record_ids, не обоими. Проверяй результат через shd_airbase_ai_field_status; отменяй только этот run и только по просьбе.
|
||
- Сообщай о завершении только по конечному статусу сервера.
|
||
|
||
## Импорт и вложения
|
||
|
||
- Перед CSV/TSV импортом всегда используй preview и сверяй целевую таблицу, поля и количество строк.
|
||
- Для скачивания или миниатюры передавай attachment `src`, а также `record_id` и `field_id`, чтобы сервер проверил доступ к вложению.
|
||
- Не используй AirBase-инструменты для Omni или System Base.
|
||
|
||
После записи кратко сообщи, какие сущности изменены и какие серверные значения вернулись. Отделяй ответ API от предположений и не заявляй, что данные изменены, если инструмент вернул ошибку или не подтвердил сохранение.
|