- Enable default overwrite installation policy for overlapping skills - Support deep recursive GitHub trees discovery mechanism to resolve #58 - Refactor internal architecture to fully decouple stateless helper logic - READMEs and docs synced (v0.3.0)
5.0 KiB
5.0 KiB
Domain Whitelist Configuration Implementation Summary
Status: ✅ Complete
Date: 2026-03-08
Version: 0.2.2
功能概述
已为 OpenWebUI Skills Manager Tool 添加了一套完整的主域名白名单 (Primary Domain Whitelist) 安全机制,允许管理员通过简单的主域名清单来控制技能 URL 下载权限。
核心改动
1. 工具代码更新 (openwebui_skills_manager.py)
Valve 参数简化
-
TRUSTED_DOMAINS 默认值从繁复列表简化为主域名清单:
# 改前: "github.com,raw.githubusercontent.com,huggingface.co,huggingface.space" # 改后: "github.com,huggingface.co"
参数描述优化
-
更新了
ENABLE_DOMAIN_WHITELIST和TRUSTED_DOMAINS的描述文案 -
明确说明支持子域名自动匹配:
URLs with domains matching or containing these primary domains (including subdomains) are allowed
域名验证逻辑
- 代码已支持两种匹配规则:
- 完全匹配: URL 域名 == 主域名
- 子域名匹配: URL 域名 =
*.{主域名}
2. README 文档更新
英文版 (README.md)
- 更新配置表格,添加新 Valve 参数说明
- 新增指向 Domain Whitelist Guide 的链接
中文版 (README_CN.md)
- 对应更新中文配置表格
- 使用对应的中文描述
3. 新增文档集合
| 文件 | 用途 | 行数 |
|---|---|---|
docs/DOMAIN_WHITELIST.md |
详细英文指南,涵盖配置、规则、示例、最佳实践 | 149 |
docs/DOMAIN_WHITELIST_CN.md |
中文对应版本 | 149 |
docs/DOMAIN_WHITELIST_QUICKREF.md |
快速参考卡,包含常见配置、故障排除、测试方法 | 153 |
docs/test_domain_validation.py |
可执行测试脚本,验证域名匹配逻辑 | 215 |
4. 测试脚本 (test_domain_validation.py)
可独立运行的 Python 脚本,演示 3 个常用场景 + 边界情况:
场景 1: GitHub 域名只
- ✓ github.com、api.github.com、gist.github.com
- ✗ raw.githubusercontent.com
场景 2: GitHub + GitHub Raw
- ✓ github.com、raw.githubusercontent.com、api.github.com
- ✗ cdn.jsdelivr.net
场景 3: 多源白名单
- ✓ github.com、huggingface.co、anthropic.com(及所有子域名)
- ✗ bitbucket.org
边界情况:
- ✓ 不同大小写处理(大小写无关)
- ✓ 深层子域名(如 api.v2.github.com)
- ✓ 非法协议拒绝(ftp、file)
用户收益
简化配置
# 改前(复杂)
TRUSTED_DOMAINS = "github.com,raw.githubusercontent.com,huggingface.co,huggingface.space"
# 改后(简洁)
TRUSTED_DOMAINS = "github.com,huggingface.co" # 子域名自动支持
自动子域名覆盖
添加 github.com 自动覆盖:
- github.com ✓
- api.github.com ✓
- gist.github.com ✓
- (任何 *.github.com) ✓
安全防护加强
- 域名白名单 ✓
- IP 地址阻止 ✓
- 协议限制 ✓
- 超时保护 ✓
文档质量
| 文档类型 | 覆盖范围 |
|---|---|
| 详细指南 | 配置说明、匹配规则、使用示例、最佳实践、技术细节 |
| 快速参考 | TL;DR 表格、常见配置、故障排除、调试方法 |
| 可执行测试 | 4 个场景 + 4 个边界情况,共 12 个测试用例,全部通过 ✓ |
部署检查清单
- 工具代码修改完成(Valve 参数更新)
- 工具代码语法检查通过
- README 英文版更新
- README 中文版更新
- 详细指南英文版创建(DOMAIN_WHITELIST.md)
- 详细指南中文版创建(DOMAIN_WHITELIST_CN.md)
- 快速参考卡创建(DOMAIN_WHITELIST_QUICKREF.md)
- 测试脚本创建 + 所有用例通过
- 文档内容一致性验证
验证结果
✓ 语法检查: openwebui_skills_manager.py ... PASS
✓ 语法检查: test_domain_validation.py ... PASS
✓ 功能测试: 12/12 用例通过
场景 1 (GitHub Only): 4/4 ✓
场景 2 (GitHub + Raw): 2/2 ✓
场景 3 (多源白名单): 5/5 ✓
边界情况: 4/4 ✓
下一步建议
-
版本更新
更新 openwebui_skills_manager.py 中的版本号(当前 0.2.2)并同步到:- README.md
- README_CN.md
- 相关文档
-
使用示例补充
在 README 中新增"配置示例"部分,展示常见场景配置 -
集成测试
将test_domain_validation.py添加到 CI/CD 流程 -
官方文档同步
如有官方文档网站,同步以下内容:- Domain Whitelist Guide
- Configuration Reference
相关文件清单:
plugins/tools/openwebui-skills-manager/openwebui_skills_manager.py(修改)plugins/tools/openwebui-skills-manager/README.md(修改)plugins/tools/openwebui-skills-manager/README_CN.md(修改)plugins/tools/openwebui-skills-manager/docs/DOMAIN_WHITELIST.md(新建)plugins/tools/openwebui-skills-manager/docs/DOMAIN_WHITELIST_CN.md(新建)plugins/tools/openwebui-skills-manager/docs/DOMAIN_WHITELIST_QUICKREF.md(新建)plugins/tools/openwebui-skills-manager/docs/test_domain_validation.py(新建)