Skip to content

feat(audit): add security audit logging to backend management APIs - #4055

Merged
WMC001 merged 7 commits into
developfrom
dc/feat-security-log-1008
Oct 10, 2026
Merged

WMC001 merged 7 commits into
developfrom
dc/feat-security-log-1008

Conversation

@charmingchi1

@charmingchi1 charmingchi1 commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

背景

平台管理类接口(模型、Agent、MCP、技能、配置、文件、知识库等)此前缺少统一的安全审计记录,安全事件发生后无法回溯"谁在什么时间对什么资源做了什么操作"。本 PR 依据安全审计需求,为后端管理接口补齐 SEC_AUDIT 安全审计事件。

审计实现

统一通过 services/audit_service.py 的 record_security_event() 记录事件,写入 audit.security logger([SEC_AUDIT] 前缀),每条事件包含:

  • 操作人(user_id)与租户(tenant_id)
  • 操作类型(action,如 model_batch_import、tenant_model_batch_import 等)
  • 请求上下文:客户端 IP、User-Agent(截断至 200 字符)
  • 操作详情:接口关键标识字段(模型名、base_url 等)

安全与稳定性约束

  • 凭据不入日志:白名单机制(如 _AUDIT_SAFE_MODEL_KEYS)仅复制非凭据字段,api_key / access_token 等敏感值永远不会进入审计日志
  • 配置值脱敏:config_sync / memory_config 等配置接口不记录敏感配置值
  • 防日志膨胀:新增 AUDIT_DETAIL_LIST_LIMIT = 20,批量操作详情列表超限自动截断,仅保留计数

覆盖接口

模块 文件
模型管理 model_managment_app.py(单条/批量导入,批量记录 models_count + 白名单字段)
Agent agent_app.py、agent_repository_app.py
MCP mcp_management_app.py、remote_mcp_app.py
技能 skill_app.py
配置 config_sync_app.py、memory_config_app.py(敏感配置值脱敏)
其他 file_management_app.py、tool_config_app.py、vectordatabase_app.py

测试

  • 11 个测试文件新增约 1000 行用例,逐接口断言审计事件的 user_id / tenant_id / action / details 正确性
  • 验证敏感字段(api_key、配置值)不出现在审计详情中
  • 验证详情列表超过 20 条时被截断
20261009-165828 853-2 20261009-165828 853-1 20261009-165828 853-3 20261009-165828 853-4 20261009-165828 853-5

charmingchi1 and others added 6 commits October 8, 2026 18:41
实现了模型创建、更新、删除、批量操作等接口的安全审计日志功能,过滤了敏感凭证信息,确保审计日志安全合规。新增了审计安全字段过滤工具函数,补充了对应的测试用例验证审计日志的正确性和安全性。
为agent和agent_repository相关的API接口添加安全审计事件记录,包括代理更新、图标上传、删除、导出、导入、版本发布/回滚/更新/删除等操作,同时补充对应的测试用例验证审计日志的正确性,确保敏感数据不被记录。
为tool、mcp、remote_mcp、skill模块的所有关键增删改接口添加安全审计日志,记录操作人、资源信息等关键字段,同时避免记录敏感信息如凭证、密钥等。新增对应的测试用例验证审计日志的正确性,确保敏感数据不会被泄露。
在多个服务端点添加安全审计日志,记录关键操作信息
同时统一审计详情列表的长度限制为20,防止日志被恶意payload撑爆
为 config_sync_app 和 memory_config_app 的配置操作接口添加安全审计事件记录,记录操作人、租户、操作类型和相关字段信息,同时更新测试用例验证审计日志的正确性,确保敏感配置值不被记录。
@charmingchi1 charmingchi1 added the ai-assisted PR authored or co-authored with AI assistance label Oct 9, 2026
@charmingchi1 charmingchi1 changed the title Dc/feat security log 1008 feat(audit): add security audit logging to backend management APIs Oct 9, 2026
为测试用例中的 upload_files 调用添加 http_request=None 参数,避免测试时可能出现的未定义错误
@codecov

codecov Bot commented Oct 9, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.18033% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
backend/apps/remote_mcp_app.py 90.90% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@charmingchi1
charmingchi1 marked this pull request as ready for review October 9, 2026 09:12
@WMC001
WMC001 merged commit afa4565 into develop Oct 10, 2026
13 checks passed
JasonW404 added a commit that referenced this pull request Oct 10, 2026
* feat(audit): add security audit logging to backend management APIs (#4055)

* feat: 为模型管理接口添加安全审计日志记录

实现了模型创建、更新、删除、批量操作等接口的安全审计日志功能,过滤了敏感凭证信息,确保审计日志安全合规。新增了审计安全字段过滤工具函数,补充了对应的测试用例验证审计日志的正确性和安全性。

* feat: 为多个接口添加安全审计日志记录

为agent和agent_repository相关的API接口添加安全审计事件记录,包括代理更新、图标上传、删除、导出、导入、版本发布/回滚/更新/删除等操作,同时补充对应的测试用例验证审计日志的正确性,确保敏感数据不被记录。

* feat: 为MCP和技能相关接口添加上下文安全审计日志

为tool、mcp、remote_mcp、skill模块的所有关键增删改接口添加安全审计日志,记录操作人、资源信息等关键字段,同时避免记录敏感信息如凭证、密钥等。新增对应的测试用例验证审计日志的正确性,确保敏感数据不会被泄露。

* feat: 添加安全审计日志并限制审计详情列表长度

在多个服务端点添加安全审计日志,记录关键操作信息
同时统一审计详情列表的长度限制为20,防止日志被恶意payload撑爆

* feat: 为配置相关接口添加安全审计日志记录

为 config_sync_app 和 memory_config_app 的配置操作接口添加安全审计事件记录,记录操作人、租户、操作类型和相关字段信息,同时更新测试用例验证审计日志的正确性,确保敏感配置值不被记录。

* test: 为上传测试用例添加 http_request 参数默认值

为测试用例中的 upload_files 调用添加 http_request=None 参数,避免测试时可能出现的未定义错误

* chore: bootstrap semantic repair stream fix draft

* fix(agent): commit accepted streamed code action repairs

* test(agent): verify repaired streams in deployed runtime and browser

* test(agent): clarify deployed repair assertion failures

---------

Co-authored-by: charmingchi1 <71816192+charmingchi1@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-assisted PR authored or co-authored with AI assistance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants