dify/api/controllers/console/datasets
yungle246 a79bc7d074 feat(api): mask secret tokens in api-key list responses (reveal-once)
Previously the console api-key list returned every key's full plaintext
token, so anyone with console access could retrieve the secret of an
already-created key (via the copy button or the raw API response). This
is contrary to the reveal-once norm.

- List endpoints (app keys, workspace dataset keys, per-dataset keys) now
  return a masked token (prefix + last 4); the full secret is only ever
  returned by the create endpoint, at creation time.
- Frontend secret-key modal displays the masked token as-is and drops the
  copy affordance for existing keys (copying a masked value is pointless).

Applies to both app and dataset keys since they share the modal and the
ApiKeyItem response model.
2026-06-25 14:21:38 +09:00
..
rag_pipeline chore: add ENTERPRISE_RBAC_API_URL check and update permission key (#37777) 2026-06-23 03:26:06 +00:00
data_source.py feat: RBAC (#37107) 2026-06-18 16:35:29 +00:00
datasets_document.py feat: RBAC (#37107) 2026-06-18 16:35:29 +00:00
datasets_segments.py feat: RBAC (#37107) 2026-06-18 16:35:29 +00:00
datasets.py feat(api): mask secret tokens in api-key list responses (reveal-once) 2026-06-25 14:21:38 +09:00
error.py feat: knowledge pipeline (#25360) 2025-09-18 12:49:10 +08:00
external.py refactor: pass session into hit testing service (#37785) 2026-06-23 06:21:38 +00:00
hit_testing_base.py refactor: pass session into hit testing service (#37785) 2026-06-23 06:21:38 +00:00
hit_testing.py feat: RBAC (#37107) 2026-06-18 16:35:29 +00:00
metadata.py feat: RBAC (#37107) 2026-06-18 16:35:29 +00:00
website.py refactor: fix OpenAPI contract generation schemas (#37387) 2026-06-12 14:25:53 +00:00
wraps.py chore(api): align Python support with 3.12 (#34419) 2026-04-02 05:07:32 +00:00