Skip to content

Latest commit

 

History

History
56 lines (43 loc) · 5.67 KB

File metadata and controls

56 lines (43 loc) · 5.67 KB

服务端验收与联调

更新:2026-09-26。服务端已上线指定账号联调环境;客户端完成后继续逐项验证完整同步。

本地已执行

验证 证据与结果
构建 从公开 GitHub 仓库重新克隆后 release 构建通过;fmt、Clippy、16 项 Rust 测试通过,依赖由锁文件固定
认证 src/auth.rs 测试真实 HTTP 上游交互:应用凭据、固定版本、numeric ID、应用不匹配、过期、上游故障与重定向拒绝
HTTP 与隔离 tests/http_contract.rs:空库、往返、版本绑定、304、改名、同名不同 ID、回执隔离、注销和过期
写入语义 幂等先于 CAS、不同请求拒绝复用;旧密码代次、nonce 重用、盐变更、删除墓碑和显式重建
输入与资源 重复/未知字段、错误类型/版本/UUID/base64、密码字段、Origin/MIME、前置条件、体积上限、最大完整密文和超限拒绝
原子性 tests/store_contract.rs:两连接创建竞争、回执写入失败回滚全部状态、重启持久化、uint64 上限、滑动窗口限流与清理
密码学 tests/crypto_vectors.rs 和 scripts/interop_vectors.py:双实现完整向量、中文/NFC/组合字符、AAD 篡改/调序、错密码、截断标签、nonce/填充长度;RFC 9106 官方向量
OpenAPI scripts/check_contract.py:13 份实际响应及合同声明响应头通过 schema,包含所有库状态
真实进程 scripts/smoke_local.py:真实 TCP HTTP、丢弃响应后查回执与重试、重启持久化、注销、日志敏感值检查
TLS scripts/check_nginx.py:配置校验、真实 TLS 转发、认证、413 JSON、UUID、no-store/HSTS,以及首页、许可证、源码和提交号入口
灾备 tests/test_backup.py:一致性备份排除会话、过期清理、在线数据不变
依赖 Cargo audit 对锁定依赖扫描通过;许可清单见仓库根目录

本机验证环境为 macOS arm64。公开提交 04188a0b8140f0ac86e93f283eadb6200c313180 的 GitHub Actions 检查 全部通过:Linux、macOS、Windows 三平台的格式、Clippy、16 项 Rust 测试、OpenAPI 与 Python 加密互操作;Linux 额外执行正式构建、真实进程、TLS、备份与依赖扫描,最低 Rust 1.88 检查也通过。Windows 合同读取曾因默认编码失败,已明确使用 UTF-8,并由这次检查验证修复。

固定向量证明服务器测试层面的跨平台、双密码学实现互通,不代替两台真实应用设备联调;事务故障注入不等于完成真实服务器断电或硬件故障演练。

已执行的服务器部署检查

2026-09-26,北京时间;运行源码为 40b519ae15ee5029578f377ff8baa8f25833e692,二进制 SHA-256 为 7afa287dbe3d1309b7804b2bc03f187fde4bebb83535beb2818e677fe7a8912a。

该运行提交的 Linux/macOS/Windows 与最低 Rust 版本检查 已全部通过。

项目 已确认结果
本机编译与测试 Ubuntu 22.04 原生 release 构建和 16 项 Rust 测试通过;真实 HTTPS、丢响应重试、重启持久化及备份测试通过
公网入口 https://apic.openless.top:9443 首页与能力接口返回 200,证书链与主机名验证通过,no-store/HSTS 正常
身份边界 现有 OpenLess OAuth 应用凭据经 GitHub 核验;未认证读库与无效 GitHub 令牌均返回结构化 401
开源交付 /revision 与运行提交一致,许可证与源码归档可从公网下载;归档不含生产配置或数据库
运行与权限 独立用户运行,systemd 主服务和两个定时器已启用;配置/数据库 0600,备份目录 0700;首次备份与清理退出码 0
内部接口 只监听 127.0.0.1:8788;公网直连 HTTP 探测超时;防火墙只新增允许 9443/tcp
既有服务 官网返回 200;官网、市场和原 8787 服务的代理配置摘要保持不变
当前数据 数据库完整性检查通过,没有用户快照;没有为了测试上传或删除用户数据

当前仅允许 appergb(numeric ID 192432815)进行联调。真实账号令牌交换、客户端加密上传/下载、跨设备恢复及以下验收项仍待客户端完成后执行。

部署后的逐项顺序

  1. 基础服务:域名/TLS、能力、重启、权限、外网无法访问 8787、代理覆盖伪造头、备份和清理 timer。
  2. 真实身份:复用 OpenLess OAuth Device Flow、其他 App 令牌拒绝、numeric ID、测试名单、900 秒过期、注销。仅使用临时测试账号。
  3. 首次创建:empty revision=0;本地加密完整测试快照,上传后按版本下载并解密验证。
  4. 重试与竞争:丢响应后只提交一次;两个独立客户端基于同一版本写入只有一个成功,另一方保留变化。
  5. 改密码:新盐/key ID 和快照原子替换,旧设备写入拒绝,新密码能解密。
  6. 删除:在线密文立即不可读,旧离线设备不能复活备份,最新墓碑版本上的新 create 可重建。
  7. 限额与失败:最大快照、超额、错误哈希、限流、GitHub 不可用、进程重启均不破坏已有数据。
  8. 灾备:隔离环境验证恢复与版本/墓碑核对;定时清理和供应商快照不超过公开的 7 天。

之后再进入应用 A01–A13:默认关闭与首次提示、完整导出和排除项、凭据/文件恢复失败、崩溃恢复、三方合并、Windows/macOS 差异。它们属于 1-app/,本次没有修改应用。项目许可证已确认为 AGPL-3.0-only;公开启用还需需求指定的独立安全审查。