UI: API/MCP-доступ в карточке бота, legacy-ключи в Settings, бот и канал в истории (этап 3)

- ApiScopesEditor — общий редактор скоупов (режим + формы/справочники)
- Bots.tsx: секция «Доступ к API и MCP» при создании и в настройках бота, показ ключа один раз, перевыпуск с подтверждением
- Settings.tsx: управление ключами убрано, read-only список legacy-ключей
- TaskHistory/TaskDetail: иконка бота + бейдж канала MCP/API у записей аудита
- GET /api/bots/:id возвращает apiKey
This commit is contained in:
2026-07-22 15:35:34 +03:00
parent 8cfd49fd9f
commit b3818852df
6 changed files with 438 additions and 282 deletions

View File

@@ -175,6 +175,9 @@ export function registerBotCrudRoutes(app: import("express").Express): void {
return res.status(404).json({ success: false, error: 'Бот не найден' });
}
// Привязанный API-ключ бота (без сырого ключа и keyHash)
const botApiKey = await storage.getApiKeyByBotId(botId, req.organizationId!);
res.json({
success: true,
bot: {
@@ -202,6 +205,9 @@ export function registerBotCrudRoutes(app: import("express").Express): void {
sendSystemPrompt: bot.sendSystemPrompt ?? true,
sendCardInfo: bot.sendCardInfo ?? true,
sendChatHistory: bot.sendChatHistory ?? true,
apiKey: botApiKey
? { id: botApiKey.id, keyPrefix: botApiKey.keyPrefix, scopes: botApiKey.scopes, isActive: botApiKey.isActive, lastUsedAt: botApiKey.lastUsedAt }
: null,
}
});
} catch (error) {