API-ключи привязаны к ботам 1:1 (этап 1)

- Миграция 0064: organization_api_keys.bot_id (unique partial), task_audit_log.bot_id, file_uploads.bot_id
- POST/PUT /api/bots: apiAccess {enabled, mode, formIds, tableIds} — ключ создаётся/обновляется/деактивируется вместе с ботом, сырой ключ показывается один раз
- POST /api/bots/:id/api-key/regenerate; GET /api/bots возвращает apiKey summary
This commit is contained in:
2026-07-22 14:42:32 +03:00
parent 1fae441a09
commit 68153caef2
5 changed files with 187 additions and 4 deletions

View File

@@ -0,0 +1,17 @@
-- Привязка API-ключей к ботам (1:1) и атрибуция действий ботов.
-- organization_api_keys.bot_id — ключ выдан боту; NULL — обычные/legacy-ключи (их может быть много).
-- task_audit_log.bot_id и file_uploads.bot_id — атрибуция действий, выполненных по ключу бота.
ALTER TABLE organization_api_keys
ADD COLUMN IF NOT EXISTS bot_id int REFERENCES bots(id);
-- Один ключ на бота (частичный индекс: NULL не ограничивается)
CREATE UNIQUE INDEX IF NOT EXISTS organization_api_keys_bot_id_unique
ON organization_api_keys (bot_id)
WHERE bot_id IS NOT NULL;
ALTER TABLE task_audit_log
ADD COLUMN IF NOT EXISTS bot_id int;
ALTER TABLE file_uploads
ADD COLUMN IF NOT EXISTS bot_id int;