Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
4007ddb
docs(amsg): 单用户 Cloudflare Worker 模式设计稿
Tosd0 Jul 1, 2026
0ed7e99
docs(amsg): 按 Codex review 修订单用户设计稿
Tosd0 Jul 1, 2026
3c3841d
docs(amsg): 单用户 CF Worker 实现计划(12 任务,TDD)
Tosd0 Jul 1, 2026
6d820b9
docs(amsg): 设计稿标注 constant-time 比较的可移植写法
Tosd0 Jul 1, 2026
8a7ab2f
test(amsg): 加 D1 兼容 shim(better-sqlite3)供 adapter 测试
Tosd0 Jul 1, 2026
e0cc4e6
feat(amsg): D1 用的 SQLite 方言 schema 常量
Tosd0 Jul 1, 2026
9cd0587
feat(amsg): D1 (SQLite) adapter 实现 DbAdapter 全部方法
Tosd0 Jul 1, 2026
a07d9af
feat(amsg): 可移植 constant-time 比较(Node + Worker 通用)
Tosd0 Jul 1, 2026
3d5b128
feat(amsg): 单用户 context manager(接口同构,复用现有 handler)
Tosd0 Jul 1, 2026
aaf53ce
feat(amsg): 单用户幂等建表路由
Tosd0 Jul 1, 2026
ebfd361
feat(amsg): createSingleUserServer 组装单用户 handlers
Tosd0 Jul 1, 2026
5cfd2ac
refactor(amsg): 抽出 runScheduledTick,HTTP handler 与 CF cron 共用
Tosd0 Jul 1, 2026
732e91f
feat(amsg): 移植 instant 的 Web Crypto Web Push,供 CF Worker 用
Tosd0 Jul 1, 2026
bee3635
feat(amsg): CF Worker 工厂(fetch 路由 + scheduled cron)
Tosd0 Jul 1, 2026
1cc1b56
docs(amsg): 单用户 CF Worker 示例(worker + wrangler + schema + README)
Tosd0 Jul 1, 2026
ae22406
feat(amsg-client): 单用户 serverToken,给 amsg-server 端点带共享密钥
Tosd0 Jul 1, 2026
19c264c
chore(amsg): 单用户 Cloudflare + client serverToken 的 changeset
Tosd0 Jul 1, 2026
a5d6863
test(amsg): 单用户全端点鉴权回归守卫(配 serverToken 时均需 X-Client-Token)
Tosd0 Jul 1, 2026
e4232a6
chore(amsg): 进入 changesets 预发布模式(next),本次走 @next 测试版
Tosd0 Jul 1, 2026
08e0018
fix(amsg): 回应评审 — 定时推送 TTL 默认 4 周、路由去尾斜杠、D1 更新列白名单
Tosd0 Jul 1, 2026
7d38ca0
fix(amsg): 加 /cloudflare 子路径入口,D1-only Worker 打包不再拖 pg/neon/web-push
Tosd0 Jul 1, 2026
b7a0bec
feat(amsg): 单用户 Worker 加 opt-in CORS(默认同源,配 cors.origin 才放行跨源)
Tosd0 Jul 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/amsg-client-server-token.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@rei-standard/amsg-client": minor
---

新增可选 `serverToken`:配置后,client 会在 amsg-server 端点(schedule / messages / update / cancel / user-key / init)的请求上带 `X-Client-Token` 共享密钥,用于单用户部署的访问校验。instant 路径不受影响,仍使用 `instantClientToken`。
7 changes: 7 additions & 0 deletions .changeset/amsg-server-single-user-cloudflare.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@rei-standard/amsg-server": minor
---

新增单用户模式:可在单个 Cloudflare Worker 上运行,定时消息存 D1、定时投递由 CF Cron Trigger 触发,无需多租户注册表 / Blob / tenant token。新增导出 `createSingleUserServer`、`createSingleUserCloudflareWorker`、`createD1Adapter`、`runScheduledTick`、`createWebCryptoWebPush`(Worker 上可用的纯 Web Crypto Web Push)。可选 `serverToken` 共享密钥,配置后所有 amsg-server 端点校验 `X-Client-Token`。

Worker 从子路径入口 `@rei-standard/amsg-server/cloudflare` 导入:该入口只含单用户 + D1 + Web Crypto 推送那条路径,不牵扯 pg / neon / web-push,只装了 D1 的环境也能打包通过。可跑通的示例见 `examples/cloudflare-single-user/`。
13 changes: 13 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"mode": "pre",
"tag": "next",
"initialVersions": {
"rei-standard-examples": "2.0.1",
"@rei-standard/amsg-client": "2.8.0",
"@rei-standard/amsg-instant": "0.10.0",
"@rei-standard/amsg-server": "2.5.3",
"@rei-standard/amsg-shared": "0.3.0",
"@rei-standard/amsg-sw": "2.3.2"
},
"changesets": []
}
Loading
Loading