dify/web/i18n/ru-RU/app-api.json
Jyong 79116d8c4b feat(knowledge-fs): scope dataset API keys by knowledge base type
Legacy knowledge bases (`datasets`) and KnowledgeFS spaces
(`knowledge_fs_control_spaces`) live in different tables, so a dataset API
key binding could only ever name a legacy dataset and the KnowledgeFS service
API never consulted bindings at all: a key scoped to specific knowledge bases
still reached every KnowledgeFS space in the workspace.

- Bindings carry a `resource_type` (`dataset` | `knowledge_fs_space`) and a
  nullable `control_space_id` (migration 9a4e7d1c2b60, existing rows stay
  `dataset`), with a CHECK that exactly one id column matches the type.
- `dataset_api_key_service` exposes the key scope by kind, validates and
  binds KnowledgeFS spaces (tenant-owned, not deleting/deleted), and cleans up
  keys scoped only to a space when its deletion is requested. The orphan-key
  cleanup is now NULL-safe so a space binding keeps a key alive.
- Legacy dataset routes only honour `dataset` bindings; the KnowledgeFS
  authorization service only honours `knowledge_fs_space` bindings and raises
  a scope error that the service API maps to 403 (unknown keys stay 401).
- Console key creation accepts `knowledge_space_ids`; list/create responses
  return them next to `dataset_ids`.
- The web scope picker lists KnowledgeFS spaces alongside legacy datasets
  when KnowledgeFS is enabled and submits the ids by kind; the scope column
  counts both.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015zw5G5SX3HmVfnZof6YWAc
2026-09-03 05:59:39 -04:00

37 lines
2.6 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"actionMsg.deleteConfirmTips": "Это действие необратимо.",
"actionMsg.deleteConfirmTitle": "Удалить этот секретный ключ?",
"actionMsg.ok": "ОК",
"apiKeyModal.addKnowledgeBase": "Добавить базу знаний",
"apiKeyModal.addSubtitle": "Создайте новый API ключ для доступа к API базы знаний.",
"apiKeyModal.addTitle": "Добавить API ключ",
"apiKeyModal.apiSecretKey": "API Ключ",
"apiKeyModal.apiSecretKeyTips": "Чтобы предотвратить злоупотребление API, защитите свой API ключ. Избегайте использования его в виде plain-текста во фронтенд-коде. :)",
"apiKeyModal.createNewSecretKey": "Создать новый секретный ключ",
"apiKeyModal.created": "СОЗДАН",
"apiKeyModal.generateTips": "Храните этот ключ в безопасном и доступном месте.",
"apiKeyModal.knowledgeBaseAccess": "Доступ к базам знаний",
"apiKeyModal.knowledgeSpaceBadge": "KnowledgeFS",
"apiKeyModal.lastUsed": "ПОСЛЕДНЕЕ ИСПОЛЬЗОВАНИЕ",
"apiKeyModal.noKnowledgeBasesSelected": "Базы знаний еще не выбраны.",
"apiKeyModal.pickerKnowledgeSpaces": "Базы знаний KnowledgeFS",
"apiKeyModal.pickerLegacyDatasets": "Устаревшие базы знаний",
"apiKeyModal.scope": "ОБЛАСТЬ",
"apiKeyModal.scopeAllDatasets": "Все базы знаний",
"apiKeyModal.scopeAllDatasetsTip": "Этот ключ может получить доступ ко всем базам знаний в рабочем пространстве.",
"apiKeyModal.scopeCount": "{{count}} баз знаний",
"apiKeyModal.scopeSpecificDatasets": "Определенные базы знаний",
"apiKeyModal.scopeSpecificDatasetsTip": "Этот ключ может получить доступ только к выбранным вами базам знаний.",
"apiKeyModal.searchKnowledgeBases": "Поиск баз знаний",
"apiKeyModal.secretKey": "Секретный ключ",
"apiKeyModal.selectedKnowledgeBases": "Выбранные базы знаний",
"apiKeyModal.selectedKnowledgeBasesCount": "Выбранные базы знаний ({{count}})",
"copied": "Скопировано",
"copy": "Копировать",
"loading": "Загрузка",
"never": "Никогда",
"pause": "Приостановить",
"play": "Запустить",
"playing": "Запущено"
}