Атрибуция от бота в MCP/REST + REST API по ключу (этап 2)

- MCP: getActor (владелец ключа + бот), аудит changedByName=бот/label ключа, botId, metadata.source='mcp'; аудит для update_task/update_task_status
- sendTaskMessage: botId (messageType 'bot'), починен путь isBotToken без req.user
- authenticateTokenOrApiKey: JWT или X-Api-Key с белым списком endpoint'ов (/api/upload, messages, field-values, create task), проверки скоупов, аудит source='api'
- Лимиты файлов через env: UPLOAD_IMAGE_MAX_MB=25, UPLOAD_DOC_MAX_MB=100, UPLOAD_MAX_MB=100
- MCP upload-инструменты: параметр fileUrl для привязки уже загруженного файла; новый инструмент get_api_guide
This commit is contained in:
2026-07-22 15:18:04 +03:00
parent 68153caef2
commit 8cfd49fd9f
13 changed files with 720 additions and 246 deletions

View File

@@ -130,3 +130,15 @@ DATABASE_URL=postgresql://user:password@host/dbname?sslmode=require
# DOC_WORKER_URL=http://document-worker:3000
# For local development without Docker, you can point to an external service:
# DOC_WORKER_URL=http://localhost:3000
# =============================================
# File upload limits (optional, in megabytes)
# =============================================
# Per-type limits (extension-based, enforced after upload):
# UPLOAD_IMAGE_MAX_MB=25
# UPLOAD_DOC_MAX_MB=100
# Hard cap for the multipart parser (multer fileSize):
# UPLOAD_MAX_MB=100
# Bot login token TTL (access / refresh) — см. этап bot API keys:
# JWT_BOT_LOGIN_EXPIRES=30d
# JWT_BOT_LOGIN_REFRESH_EXPIRES=90d