mirror of
https://github.com/langgenius/dify.git
synced 2026-09-05 16:55:14 +08:00
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 |
||
|---|---|---|
| .. | ||
| agent-v-2.json | ||
| app-annotation.json | ||
| app-api.json | ||
| app-debug.json | ||
| app-log.json | ||
| app-overview.json | ||
| app.json | ||
| billing.json | ||
| common.json | ||
| custom.json | ||
| dataset-creation.json | ||
| dataset-documents.json | ||
| dataset-hit-testing.json | ||
| dataset-pipeline.json | ||
| dataset-settings.json | ||
| dataset.json | ||
| deployments.json | ||
| device-flow.json | ||
| education.json | ||
| explore.json | ||
| knowledge-space.json | ||
| layout.json | ||
| login.json | ||
| oauth.json | ||
| permission-keys.json | ||
| permission.json | ||
| pipeline.json | ||
| plugin-tags.json | ||
| plugin-trigger.json | ||
| plugin.json | ||
| register.json | ||
| run-log.json | ||
| share.json | ||
| skill.json | ||
| snippet.json | ||
| time.json | ||
| tools.json | ||
| workflow.json | ||