公共 Pulse 索引中心 — 桌面端提交到公共索引的任务 JSON 合并仓库。
- H5 市场入口: https://pulse.oyweek.com/
- 桌面端 L2 Raw CDN fallback (本仓库): https://raw.githubusercontent.com/alexoyx/pulse-index/main/api/index.json
- 桌面端下载: https://download.oyweek.com/
- Pulse_Examples/ : 官方样例任务 JSON(手动更新)
- outbox/ : 桌面端发 PR 写入,文件名 = {pulse_id}.json,merge 后被构建扫入
- inbox_taken/ : 服务器端对已承接任务写占位,构建时覆盖 status = taken
桌面端点击「提交到公共索引…」 → main.js 调 GitHub v3 API 开 PR → owner merge 到 main → 服务器 Alinux 3 systemd timer 每 5 分钟(*:0/5)执行 /usr/bin/node /opt/oyweek-pulse/build-pulse-index.js → 合并 Pulse_Examples + outbox → 按 pulse_id 去重(outbox 优先)→ HMAC-SHA256 防篡改校验 → 原子 tmp rename 写出到 /srv/oyweek/pulse/api/index.json
canonical JSON 键排序 + salt=oyweek-pulse-v1。桌面端写 publisher_sig = sha256:,构建端 crypto.timingSafeEqual 严格校验。
H5 卡片点「导入到 OYweek」→ 唤起 oyweek://pulse/{pulse_id},未安装弹毛玻璃下载 Modal。桌面端 app.setAsDefaultProtocolClient(oyweek) 注册协议,pulse:deeplink IPC 自动切 Pulse Tab + 紫色高亮滚动定位。