feat: prepare ARR for controlled public deployment

This commit is contained in:
Wyndham ARR
2026-07-29 16:38:05 +08:00
commit a701de9f0e
271 changed files with 48472 additions and 0 deletions

50
README.md Normal file
View File

@@ -0,0 +1,50 @@
# Wyndham ARR
ARR 是一套受控的 Opera 日报处理与经营数据应用。当前可部署链路为:
```text
业务页面上传 XML
-> ARR 写入私有 OSS 并登记任务
-> ARR 调用 SuperAgent Open API
-> SuperAgent 读取 OSS XML 并执行确定性日报 Skill
-> SuperAgent 调用 ARR MCP 的 arr_submit_processing_result
-> ARR 独立复验源 XML 后事务落库
-> 日报历史、月度投影和渠道看板从数据库读取
```
## 公网部署
仓库提供 Docker Compose + Caddy 部署入口。该入口显式使用
`--enable-processing` 打开 XML 上传处理,并使用 `--secure-cookies`、HTTPS、
Web Basic Auth 和 MCP Bearer 保护公网服务。
完整步骤见 [`deploy/README.md`](deploy/README.md)。部署后必须确认:
- `GET /api/health``database_ready=true`
- `GET /api/health``processing_ready=true`
- MCP 未认证请求返回 `401`
- 认证后的 MCP 工具发现只返回 `arr_submit_processing_result`
应用源码默认仍为 fail-closed直接运行 `python -m arr_web.run` 不会自动开启上传处理。
## 主要入口
- `arr_web`:上传、任务历史、月度数据与渠道看板 Web/API
- `arr_mcp`SuperAgent 结构化处理结果的单工具 MCP 入库网关;
- `arr-opera-daily-ingest`Opera XML 的确定性日报处理 Skill
- `database`PostgreSQL 15+ schema、增量迁移和 MCP 契约;
- `tests`:单元、契约和无隐私合成链路测试。
## 当前能力边界
- XML 上传、私有 OSS 保存、SuperAgent 任务发起和 MCP 直接落库代码已接线;
- 正式公网环境仍需部署者注入数据库、OSS、SuperAgent 和 MCP Secret并完成一次无隐私 XML 竖切验收;
- “日报落库后自动触发月报”与月报 `TOTAL PRICE` 指定公式仍未实现,本部署配置不会开启月报/公司报表写入端点,也不会把远端 Agent `success` 误报为数据库已提交。
## 本地测试
```bash
python3 -m unittest discover -s tests -v
```
项目不会从仓库内自动加载 `.env`。真实凭据、业务 XML/XLSX、数据库文件、运行输出和虚拟环境均不得提交。