feat: searxng.toml 支持 auth_basic/auth_bearer 认证配置

- common.py: resolve_auth_basic/bearer 新增 config_value 参数,优先级 CLI > file > config > env
- search.py: main() 从 load_config() 读取 auth_basic/auth_bearer;修复 --config 指定文件中 instance 字段不被解析的问题
- LICENSE: 补齐 MIT 协议文件
- tests: +21 测试覆盖配置文件认证优先级链与 main() 集成(309→330)
- docs: SKILL.md/README.md 同步更新认证配置说明与安全提醒
This commit is contained in:
2026-08-01 18:01:32 +08:00
parent f983a9377e
commit dea899143d
6 changed files with 338 additions and 16 deletions
+13 -5
View File
@@ -112,9 +112,9 @@ pip install requests beautifulsoup4
### 配置实例
AI Agent 无需每次传入实例 URL,支持三种配置方式(优先级从高到低)
AI Agent 无需每次传入实例 URL 和认证信息,支持通过配置文件一次性设置
1. **CLI 参数**`-i https://your-instance`
1. **CLI 参数**`-i https://your-instance`(最高优先级)
2. **环境变量**`export SEARXNG_INSTANCE="https://your-instance"`
3. **配置文件**`./searxng.toml``~/.config/searxng-cli/searxng.toml`
@@ -122,8 +122,15 @@ AI Agent 无需每次传入实例 URL,支持三种配置方式(优先级从
# searxng.toml
[searxng]
instance = "https://your-searxng.example.com"
# 私有实例认证(可选,二选一):
auth_basic = "user:password" # Basic 认证
# auth_bearer = "sk-token-123" # Bearer Token(与 auth_basic 同时设置时 bearer 优先)
```
**认证优先级**(从高到低):`--auth-*` CLI 参数 > `--auth-*-file` 文件 > `searxng.toml` 配置 > 环境变量
> **安全提醒**:配置文件中的明文密码有泄露风险。生产环境推荐使用 `--auth-basic-file ~/.searxng_auth` 或环境变量。
## 参数参考
### search.py — 网络搜索
@@ -234,7 +241,8 @@ python scripts/fetch.py -u https://example.com \
**网络**
- 代理支持(`--proxy`
- 认证(Bearer/Basic,支持文件和环境变量,避免 shell 历史泄露
- 认证(Bearer/Basic,支持 CLI/文件/配置文件/环境变量四级优先级
- `searxng.toml` 配置 `auth_basic` / `auth_bearer` 字段,AI Agent 一次配置即可
- 凭证文件权限警告(POSIX
**工程**
@@ -243,7 +251,7 @@ python scripts/fetch.py -u https://example.com \
- 结构化错误码(`E_NETWORK` / `E_AUTH` / `E_RATE_LIMIT` 等)
- JSON Lines 流式输出(`--stream`
- 进度事件(`--progress`JSON Lines 到 stderr
- 309 个单元+集成测试
- 330 个单元+集成测试
## 跨 Agent 兼容性
@@ -271,7 +279,7 @@ pip install pytest
pytest -q
```
309 个测试覆盖:缓存操作、认证解析、域名过滤、Markdown 转换、搜索逻辑、集成流程、日志配置、HTML 回退、自动抓取、健康检查、输出格式化、实例解析、并行搜索、CLI 端到端、错误码分类、流式输出、进度事件。
330 个测试覆盖:缓存操作、认证解析、域名过滤、Markdown 转换、搜索逻辑、集成流程、日志配置、HTML 回退、自动抓取、健康检查、输出格式化、实例解析、并行搜索、CLI 端到端、错误码分类、流式输出、进度事件、配置文件认证
## 项目结构