Jyong
8150a8fca7
feat(knowledge-fs): rate limit console writes and every service API route
...
The legacy dataset console rate limits every mutating, download, and
retrieval route and the dataset service API limits every request, while
KnowledgeFS only covered uploads and query admission. Apply the knowledge
rate limit to all space-scoped POST/PUT/PATCH/DELETE console routes, the
document downloads, and research/query entrypoints (workspace-level source
previews, staged-upload discards, the deprecated buffered query route, and
the internal stream transport stay exempt). Extract the service API check
into `check_knowledge_rate_limit` and call it from the KnowledgeFS profile
helper so all service routes share the legacy per-workspace limit.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015zw5G5SX3HmVfnZof6YWAc
2026-09-03 11:10:04 -04:00
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
YungLe
3cd1fc098c
feat: allow knowledge base API keys to be scoped to a single dataset ( #37569 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-09-02 10:30:42 +00:00
Byron.wang
c4ea406586
refactor(api): decouple system features and web adapters ( #40772 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-09-01 11:50:52 +00:00
Stephen Zhou
1c6f0a0388
fix(api): restore Service API OpenAPI semantics ( #41274 )
2026-08-26 05:05:36 +00:00
Byron.wang
c1e94f8ee7
refactor(api): consolidate deployment edition handling ( #40142 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-11 07:39:01 +00:00
非法操作
8170a2a5f3
chore: more upload file size for paid user ( #39967 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-08-06 03:23:16 +00:00
Parman Mohammadalizadeh
908dc703ec
chore(api): consolidate chained .where() calls into single calls ( #39819 )
2026-07-30 16:59:50 +00:00
Byron.wang
ab3e4daa95
refactor: explicit DB session propagation across backend paths ( #38559 )
...
Co-authored-by: WH-2099 <wh2099@pm.me>
2026-07-15 06:48:28 +00:00
linhongkuan
d8f3be4bcd
fix(api): isolate side-effect database writes ( #37895 )
...
Co-authored-by: FFXN <31929997+FFXN@users.noreply.github.com>
2026-06-29 06:20:34 +00:00
Stephen Zhou
baf775134e
fix: improve Service API OpenAPI contracts ( #37592 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-06-17 14:25:30 +00:00
非法操作
f5d664887b
chore: backend feature api exclude_vector_space ( #36642 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-05-26 08:50:54 +00:00
99
318a3d0308
refactor(api): tighten login and wrapper typing ( #34447 )
2026-04-02 09:36:58 +00:00
99
8f9dbf269e
chore(api): align Python support with 3.12 ( #34419 )
...
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
2026-04-02 05:07:32 +00:00
Renzo
22dd0aa20c
refactor: select in service API wraps, file_preview, and site controllers ( #34086 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-25 23:01:05 +09:00
Mahmoud Hamdy
b09a75aae0
fix(api): resolve type errors in service API wraps tests ( #33467 )
2026-03-16 01:20:42 +09:00
Vlad D
fa763216d0
fix(api): register knowledge pipeline service API routes ( #32097 )
...
Co-authored-by: Crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: FFXN <31929997+FFXN@users.noreply.github.com>
2026-02-09 17:43:36 +08:00
zyssyz123
2c9430313d
fix: redis for api token ( #31861 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: hj24 <mambahj24@gmail.com>
2026-02-06 16:25:27 +08:00
Asuka Minato
920db69ef2
refactor: if to match ( #31799 )
2026-02-02 18:12:03 +09:00
QuantumGhost
91667e3c1d
feat(api): Implement EventManager error logging and add coverage ( #29204 )
...
- Ensure `EventManager._notify_layers` logs exceptions instead of silently swallowing them
so GraphEngine layer failures surface for debugging
- Introduce unit tests to assert the logger captures the runtime error when collecting events
- Enable the `S110` lint rule to catch `try-except-pass` patterns
- Add proper error logging for existing `try-except-pass` blocks.
2025-12-08 09:40:40 +08:00
longbingljw
4b969bdce3
fix:mysql does not support 'returning' ( #29069 )
2025-12-04 10:14:19 +08:00
Yeuoly
b76e17b25d
feat: introduce trigger functionality ( #27644 )
...
Signed-off-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: Stream <Stream_2@qq.com>
Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: zhsama <torvalds@linux.do>
Co-authored-by: Harry <xh001x@hotmail.com>
Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: yessenia <yessenia.contact@gmail.com>
Co-authored-by: hjlarry <hjlarry@163.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: WTW0313 <twwu@dify.ai>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-12 17:59:37 +08:00
Cursx
87fb9a6b69
fix Version 2.0.0-beta.2: Chat annotations Api Error #25506 ( #27206 )
...
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
2025-11-05 17:37:19 +08:00
-LAN-
2abbc14703
refactor: replace hardcoded user plan strings with CloudPlan enum ( #27675 )
2025-11-03 11:51:09 +08:00
Asuka Minato
cced33d068
use deco to avoid current_user ( #26077 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-16 15:45:51 +09:00
Asuka Minato
1bd621f819
remove .value ( #26633 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-11 09:08:29 +08:00
-LAN-
85cda47c70
feat: knowledge pipeline ( #25360 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: twwu <twwu@dify.ai>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: jyong <718720800@qq.com>
Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com>
Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com>
Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: quicksand <quicksandzn@gmail.com>
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com>
Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: zxhlyh <jasonapring2015@outlook.com>
Co-authored-by: Yongtao Huang <yongtaoh2022@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: nite-knite <nkCoding@gmail.com>
Co-authored-by: Hanqing Zhao <sherry9277@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Harry <xh001x@hotmail.com>
2025-09-18 12:49:10 +08:00
-LAN-
bab4975809
chore: add ast-grep rule to convert Optional[T] to T | None ( #25560 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-15 13:06:33 +08:00
Yeuoly
ec808f3fe8
refactor: centralize default end user session ID constant ( #25416 )
...
This PR refactors the handling of the default end user session ID by centralizing it as an enum in the models module where the `EndUser` model is defined. This improves code organization and makes the relationship between the constant and the model clearer.
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
2025-09-12 10:27:16 +08:00
-LAN-
08dd3f7b50
Fix basedpyright type errors ( #25435 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-10 01:54:26 +08:00
Asuka Minato
38057b1b0e
add typing to all wraps ( #25405 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-09 16:48:33 +08:00
Yeuoly
720ecea737
fix: tenant_id was not specific when retrieval end-user in plugin backwards invocation wraps ( #25377 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-09-09 09:49:35 +08:00
ZalterCitty
4ee49f3550
chore: remove weird account login ( #22247 )
...
Co-authored-by: zhuqingchao <zhuqingchao@xiaomi.com>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
2025-09-08 10:44:36 +08:00
Asuka Minato
f6059ef389
add more typing ( #24949 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-08 10:40:00 +08:00
Will
d33dfee8a3
fix: EndUser is not bound to a Session ( #25010 )
2025-09-02 21:37:21 +08:00
Asuka Minato
d41d4deaac
example enum to StrEnum ( #24877 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-01 15:40:26 +08:00
Bowen Liang
39064197da
chore: cleanup unnecessary mypy suppressions on imports ( #24712 )
2025-08-28 23:17:25 +08:00
Asuka Minato
18dce66443
try flask_restful -> flask_restx ( #24310 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
2025-08-24 13:45:47 +08:00
Asuka Minato
ef51678c73
orm filter -> where ( #22801 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-24 00:57:45 +08:00
Aryan Raj
ce794335e9
Fix/replace datetime patterns with naive utc now ( #22654 )
2025-07-20 11:05:53 +08:00
Ganondorf
55a6b330ec
Add get document detail service api ( #21700 )
...
Co-authored-by: lizb <lizb@sugon.com>
2025-06-30 22:13:56 +08:00
-LAN-
b357eca307
fix: Copy request context and current user in app generators. ( #20240 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
2025-05-27 10:56:23 +08:00
Bowen Liang
8537abfff8
chore: avoid repeated type ignore noqa by adding flask_restful and flask_login in mypy import exclusions ( #19224 )
2025-05-06 11:58:49 +08:00
crazywoola
eb8584613b
fix: Account.query => db.session.query(Account) ( #17667 )
2025-04-09 14:07:32 +08:00
Jasonfish
fd443941a2
feat(improve-api-endpoints): Added Datasets and Annotation APIs ( #12237 )
2025-04-07 10:36:58 +08:00
Jyong
9b2a9260ef
Feat/new saas billing ( #14996 )
2025-03-10 19:50:11 +08:00
Yeuoly
9a417bfc5e
fix: update database query and model definitions ( #14415 )
2025-02-26 18:45:12 +08:00
EricPan
05a0faff6a
fix: app token's last_used_at can't be updated when last_used_at is null ( #12770 )
2025-01-22 11:01:45 +08:00
Jyong
9a6b1dc3a1
Revert "Feat/new saas billing" ( #12673 )
2025-01-13 15:17:43 +08:00
yihong
4e101604c3
fix: ruff check for True if ... else ( #12576 )
...
Signed-off-by: yihong0618 <zouzou0208@gmail.com>
2025-01-13 09:38:48 +08:00