dify/web/app/components
kota-maeda0708 c232375fd2 feat: add visibility control for plugin datasource credentials
Plugin-based datasource credentials (Notion, Jina, Firecrawl, etc.) were
implicitly shared with every workspace member. PR #35468 added the
visibility column, creator tracking and read-side filtering for datasource
providers, but left no way to actually set or change a credential's scope,
so every datasource credential stayed effectively all_team_members.

This completes the datasource side:

Backend:
- add_datasource_api_key_provider / add_datasource_oauth_provider accept
  user_id and visibility; API keys default to all_team_members, OAuth
  defaults to only_me (matching the plugin-credential philosophy)
- new update_datasource_credential_visibility (+ console endpoint) so the
  creator can switch between only_me / all_team_members / partial_members;
  only the creator (or legacy NULL-owner rows) may change the scope
- replace_partial_member_list / clear_partial_member_list helpers on
  CredentialPermissionService (caller owns the transaction)
- list_datasource_credentials returns visibility, user_id, is_editable and
  partial_member_list

Frontend:
- VisibilityModal reusing PermissionSelector, with an empty-partial-members
  guard (the backend rejects an empty list)
- "Who can use" action in the credential operator, gated on is_editable
- scope badges (only me / partial team members) on the credential item

Existing credentials keep working: the visibility column defaults to
all_team_members and legacy rows with a NULL owner are always visible.
2026-06-25 00:00:40 +09:00
..
__tests__ refactor(web): migrate shared localStorage to createLocalStorageState (#37408) 2026-06-19 13:51:45 +00:00
access-rules-editor feat: RBAC (#37107) 2026-06-18 16:35:29 +00:00
app chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
app-sidebar chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
apps fix: add is_cloud_only for templates (#37846) 2026-06-24 08:29:54 +00:00
base chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
billing chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
custom feat: RBAC (#37107) 2026-06-18 16:35:29 +00:00
datasets chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
develop chore(knip): add mdx support clean unused code (#37882) 2026-06-24 12:30:11 +00:00
devtools fix(web): defer react-scan loader (#36920) 2026-06-02 03:34:55 +00:00
explore fix: banner has ui problem in small screen (#37879) 2026-06-24 11:19:33 +00:00
goto-anything refactor: adapt docs links for product prefixes (#37565) 2026-06-23 03:24:29 +00:00
header feat: add visibility control for plugin datasource credentials 2026-06-25 00:00:40 +09:00
integrations chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
main-nav fix: add is_cloud_only for templates (#37846) 2026-06-24 08:29:54 +00:00
next-route-state chore(web): clean up unused production code (#37854) 2026-06-24 07:10:17 +00:00
plugins chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
provider chore: drop pwa with serwist (#32838) 2026-03-04 17:35:35 +08:00
rag-pipeline chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
share/text-generation chore(web): clean up unused production code (#37854) 2026-06-24 07:10:17 +00:00
signin refactor(web): migrate shared localStorage to createLocalStorageState (#37408) 2026-06-19 13:51:45 +00:00
snippet-list feat: RBAC (#37107) 2026-06-18 16:35:29 +00:00
snippets chore(web): clean up unused production code (#37854) 2026-06-24 07:10:17 +00:00
tools chore(web): clean up unused production code (#37854) 2026-06-24 07:10:17 +00:00
workflow chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
workflow-app chore(web): remove unused frontend code (#37866) 2026-06-24 09:25:52 +00:00
create-app-attribution-bootstrap.tsx chore(web): remove select-auto in body (#36554) 2026-05-25 02:22:39 +00:00
education-verify-action-recorder.tsx refactor(web): migrate shared localStorage to createLocalStorageState (#37408) 2026-06-19 13:51:45 +00:00
full-screen-loading.tsx feat(web): refine onboarding UI (#37433) 2026-06-15 08:47:15 +00:00
oauth-registration-analytics.tsx fix(web): attach Amplitude user ID before firing registration event (#37091) 2026-06-05 06:31:27 +00:00