GareArc
f729bc87a2
feat(inner_api): add endpoint to invalidate plugin model providers cache
...
Enterprise installs plugins into a workspace by talking to the plugin
daemon directly, so Dify never learns that a tenant's cached model
provider list is stale and serves it for the full 24h TTL.
Expose the existing PluginService.invalidate_plugin_model_providers_cache
over the inner API so enterprise can drop the cache for the tenants it
just changed. Batching is left to the caller.
2026-07-23 20:51:52 -07:00
GareArc
6b8937f3e1
Merge remote-tracking branch 'origin/gareth/esq1-170-rbac-for-agent' into gareth/esq1-170-rbac-for-agent
2026-07-22 22:50:36 -07:00
GareArc
d673cc96ae
fix(agent): drop agent.manage gate from workflow copy-from-roster
2026-07-22 22:50:14 -07:00
Xiyuan Chen and GitHub
9e74520b50
Merge branch 'main' into gareth/esq1-170-rbac-for-agent
2026-07-22 22:01:46 -07:00
GareArc
c56b46a318
fix(agent): gate creators platform publish for agent apps
2026-07-22 21:58:28 -07:00
GareArc
d16d2d1efa
Merge remote-tracking branch 'origin/gareth/esq1-170-rbac-for-agent' into gareth/esq1-170-rbac-for-agent
2026-07-22 21:32:30 -07:00
GareArc
91126a5fda
fix(agent): stack agent.manage onto agent app management and import paths
...
Roster composer writes keep their app_edit / snippets gate and require
workspace agent.manage in addition, instead of replacing it. Generic app
management routes (update/delete/copy/export/name/icon/site/site-enable/
api-enable/api-keys) enforce agent.manage when the target is a roster
Agent App and reject hidden workflow-only backing apps outright, which
stay usable only through the Agent runtime surfaces. Importing an Agent
DSL requires agent.manage and the denial surfaces as 403 instead of a
generic failed import.
2026-07-22 21:31:56 -07:00
GareArc
8482167f1c
fix(agent): authorize workflow-only agents against their parent workflow app
...
The RBAC resource resolver returned the hidden runtime backing app for
workflow-only agents, which never receives a resource access policy, so
per-resource overrides on the parent workflow app were ignored. Resolve
agent_id to the policy-owning agent.app_id instead and keep
backing_app_id strictly runtime-only.
2026-07-22 21:31:43 -07:00
yyh and GitHub
6cd10f5e04
Merge branch 'main' into gareth/esq1-170-rbac-for-agent
2026-07-23 12:07:51 +08:00
2b8e40af32
fix(auth): validate account before accepting invitations ( #39438 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-23 03:56:32 +00:00
45711eb6dd
chore(api): cloud use presigned download url on api site ( #39436 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-23 03:34:49 +00:00
GareArc
1b5fbb2142
Merge remote-tracking branch 'origin/main' into gareth/esq1-170-rbac-for-agent
2026-07-22 20:24:53 -07:00
GareArc
09d7e44bd1
fix(agent): gate roster composer writes with agent.manage
...
Require agent.manage on the composer endpoints that create or write shared
roster/normal drafts (copy-from-roster, save-to-roster, and the agent
composer PUT) for both app and snippet variants, leaving the local node and
snippet draft saves on their existing edit permissions. Hide the Make Copy
and Save to Roster controls when the user cannot manage agents.
2026-07-22 19:49:05 -07:00
bd8f0104d6
feat(dataset): expose New RAG KnowledgeFS contracts ( #39314 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-23 01:48:36 +00:00
34a5ca191b
feat(dataset): add New Knowledge list and empty state ( #39300 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-22 12:00:50 +00:00
0f9fffb7a2
fix(agent): isolate build and preview chat conversations ( #39405 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-22 09:17:55 +00:00
acb5ee29e1
test(e2e): validate generated console contracts ( #39400 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-22 07:48:37 +00:00
林玮 (Jade Lin) and GitHub
a3654d6a7d
fix(oauth): reauth after accepting invitation ( #39366 )
2026-07-22 05:59:04 +00:00
05a25943e7
fix(e2e): align fixtures with generated contracts ( #39394 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-22 05:09:23 +00:00
GareArc
ac87341d69
Merge remote-tracking branch 'origin/main' into gareth/esq1-170-rbac-for-agent
...
# Conflicts:
# api/services/enterprise/rbac_service.py
2026-07-21 03:02:11 -07:00
GareArc
75cb8ea408
refactor(api): reuse the roster service's agent resolution for RBAC checks
...
The app-scoped RBAC gate hand-rolled a query to turn an agent_id into the id
of the App backing it, duplicating AgentRosterService.runtime_backing_app_id.
Worse, it filtered on id and tenant only, so the auth check accepted archived
Agents and sources the runtime resolver rejects -- a weaker notion of a valid
Agent than the layer it guards.
Add peek_runtime_backing_app_id, a read-only counterpart to
get_agent_runtime_app_model that never materializes the hidden backing App,
and share the eligibility filter between the two so they cannot drift.
The tenant filter was also untested: deleting it left all 50 tests passing,
since the specs stubbed the db module wholesale. Assert the resolver is called
with the caller's tenant instead, and cover the precedence and read-only
guarantees against the service directly.
2026-07-21 01:34:16 -07:00
GareArc
edbaaeae23
fix(api): resolve agent routes to their backing app for app-scoped RBAC
2026-07-21 00:22:24 -07:00
yyh and GitHub
861831f176
fix(api): keep workflow log archives owner-admin only ( #39338 )
2026-07-21 04:31:14 +00:00
shakti and GitHub
6a338654fb
fix: return 400 instead of 500 when file field is missing in audio-to-text endpoints ( #39303 ) ( #39322 )
2026-07-21 02:19:24 +00:00
ef0115d340
chore: when dataset permission is not all team, update rbac config to… ( #39227 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-20 12:59:29 +00:00
GareArc
e606156580
Merge branch 'main' into gareth/esq1-170-rbac-for-agent
2026-07-20 03:47:12 -07:00
1bd5254ea7
test: use SQLite sessions in unit misc ( #39123 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-20 10:38:46 +00:00
GareArc
181f58ed9c
Merge branch 'main' into gareth/esq1-170-rbac-for-agent
2026-07-20 02:31:18 -07:00
cb64446fa3
feat(web): add step-by-step tour shell ( #38785 )
...
Co-authored-by: hjlarry <hjlarry@163.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
2026-07-20 09:23:25 +00:00
43d725a1ce
feat(dataset): proxy KnowledgeFS Console requests ( #39158 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-20 08:10:06 +00:00
f93a5b95c6
fix(api, web): scope trial app file uploads to the app tenant ( #39149 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-20 07:00:45 +00:00
6022939bf0
fix: prevent hidden-tab collaboration leader from saving stale drafts ( #38997 )
...
Co-authored-by: hjlarry <hjlarry@163.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
2026-07-20 06:58:01 +00:00
GareArc
3e8b14f8e0
feat(api): require agent.manage on module-exclusive agent endpoints
2026-07-19 23:07:21 -07:00
cb41fb3e76
fix(api): serialize trial workflow conversation variables ( #39038 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-16 02:57:06 +00:00
wangxiaolei and GitHub
7dfd84472f
fix: fix miss create rbac binding ( #39023 )
2026-07-16 02:25:42 +00:00
85cc183501
feat: improve ai-credits display ( #38589 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-16 01:51:46 +00:00
79662d49af
fix(agent): aggregate monitor sources by workflow app ( #39021 )
...
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
2026-07-15 14:08:57 +00:00
73c3048599
fix(agent): preserve DSL asset placeholders and count draft references ( #39015 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-15 11:49:11 +00:00
WH-2099 and GitHub
6a511da325
fix(api): bind scoped lookups to nested owner refs ( #38470 )
2026-07-15 09:31:09 +00:00
Xin Zhang and GitHub
120c38bad8
feat(enterprise): reject member invites that would exceed licensed seats ( #38995 )
2026-07-15 07:59:16 +00:00
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
林玮 (Jade Lin) and GitHub
edca982b1e
fix(api): harden trial apps access for recommended apps ( #38970 )
2026-07-15 06:04:07 +00:00
wangxiaolei and GitHub
b3386192cc
chore: workflow comment remove rbac check ( #38978 )
2026-07-15 06:01:38 +00:00
f86bfb2a31
feat(agent): support new Agent DSL import and export ( #38849 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-15 02:02:14 +00:00
非法操作 and GitHub
38aec8b506
chore: chatflow api should check workflow_id and sandbox plan ( #38892 )
2026-07-15 02:01:53 +00:00
c278148c8f
feat: when knowledge permission is all team need update rbac setttings ( #38911 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-14 09:07:33 +00:00
f09d2b191f
feat: archive logs export ( #38207 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-14 08:25:37 +00:00
82ff93cbdd
feat(oauth): preserve redirect_url through OAuth state for post-login… ( #38900 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-14 08:23:39 +00:00
28a036066a
feat(enterprise): enforce licensed seats cap at account creation ( #38883 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-14 06:51:19 +00:00
509a8b1452
fix: align member invitation state and errors ( #38885 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-14 03:05:44 +00:00