Commit Graph
12 Commits
Author SHA1 Message Date
weiyuqing 6e2a53ad20 整理 NAS 部署目录并归档迁移工具
更新 Compose 和部署更新脚本以使用新的状态、凭据及日历目录布局;新增目录迁移、诊断和历史清理工具及本机演练测试,并记录 NAS 迁移与清理结果。
2026-10-17 22:32:58 +08:00
weiyuqing 1af63ff83a docs: record successful NAS backend and web summary8 deployment 2026-10-17 15:27:53 +08:00
weiyuqing ccec135fad docs: record completed query optimization validation and review 2026-10-17 15:08:26 +08:00
weiyuqing ecbd485700 deploy: normalize release metadata and check route metadata only 2026-10-17 14:54:27 +08:00
weiyuqing 1c05825b6a deploy: accept exact OCI index or config identity from offline image 2026-10-17 14:42:56 +08:00
weiyuqing c076bbc0d6 qa: validate server queries and prepare offline backend web update 2026-10-17 14:41:45 +08:00
weiyuqing 497fd1c1b0 记录已批准的后端汇总与分页实施计划 2026-10-17 13:39:46 +08:00
weiyuqing 8546ba23ff 保存 NAS 健康系统 UI7 代码与本机维护基线 2026-10-17 13:29:12 +08:00
binglua addd2849cc chore: remove docs unrelated to running the project
- Remove docs/PROJECT_DOCUMENTATION.md (internal refactoring spec)
  and docs/QR_LOGIN.md (implementation walkthrough); protocol
  reference lives in source comments (adapters/, api.py)
- Keep docs/PRIVACY.md (data-flow audit backing the no-upload claim)
- Update README/CHANGELOG links accordingly
2026-09-03 22:56:56 +08:00
binglua 45f1d2e701 fix(privacy): zero third-party requests from browser (v0.2.2)
- Remove Google Fonts links from web dashboard and testpage: opening
  the page no longer sends requests (IP/UA) to Google; system font
  stack renders identically, works offline and loads faster in CN
- Override default python-httpx User-Agent with a browser UA on all
  Xiaomi requests (matches cookie-based login origin, removes script
  fingerprint)
- PRIVACY.md: document zero-CDN frontend and minimal outbound headers
2026-09-03 22:47:34 +08:00
binglua a47a8470f8 feat(security): privacy hardening + data export (v0.2.1)
- CORS: default localhost-only origins (was *, allowed any webpage
  to read local health data cross-site); env override MI_FITNESS_CORS_ORIGINS
- Host header allowlist middleware on FastAPI and Flask (DNS-rebinding
  protection); auto-configured for non-loopback binds via CLI
- Move API key passTokens from SQLite plaintext to system keyring,
  with automatic migration on startup and cleanup for revoked keys
- Disable uvicorn access log by default (query params out of terminals)
- New GET /api/export: JSON/CSV export of local data (offline, Excel BOM)
- Add docs/PRIVACY.md: full data-flow audit, outbound endpoint inventory,
  threat model, self-verification steps
- 6 new tests (host allowlist, keyring roundtrip, CSV)
2026-09-03 22:43:15 +08:00
binglua 2dd32f1ee6 feat: REST API with API keys, QR login, and web dashboard (v0.2.0)
- REST API (FastAPI): all data endpoints, sync (foreground/background),
  coverage stats, interactive docs at /docs
- API key system: exchange Xiaomi credentials for mif_sk_* keys
  (multi-account contexts, last-used tracking, prefix revocation);
  static key via MI_FITNESS_API_KEY, admin endpoints via MI_FITNESS_ADMIN_KEY
- QR code login: reverse-engineered Xiaomi universal QR flow
  (sid=xiaomiio), auto-issues API key after scan confirmation
- Built-in web dashboard (Flask): visual console for all endpoints,
  key management, QR login; reverse proxy with server-side key relay
- Standalone testpage/ console (python app.py, no install needed)
- Fix: pin mcp<2 (SDK 2.x removed Server.list_tools, broke startup)
- CI: install [all,dev] extras; docs: full technical documentation
  and QR login implementation guide
2026-09-03 22:28:31 +08:00