justme ccb2c074d6 feat(files): file service owns file domains, quotas and S3 backup
- file domains are created, queried, sized and deleted by the file service
  (POST/GET/DELETE /file/v1/domains), with per-domain quota enforced on write
- /file/v1/options publishes the quota choices; nothing about files lives on
  the host any more
- tickets carry the issuing space and a unique id: a domain only accepts tickets
  from its own space, and read/delete tickets work once (no replaying a counted
  download)
- uploads stay pending until the client confirms them; abandoned ones are swept
  after 24h, and an upload ticket can cancel its own bytes
- backup target is S3 (SigV4 client, no SDK) instead of WebDAV
- CORS allows the methods the browser really uses (POST, DELETE) and exposes Retry-After
2026-10-19 13:38:29 +08:00
2026-10-19 09:56:30 +08:00
2026-10-19 09:56:30 +08:00

WebDrop

零信任的端到端加密暂存与同步:文本、JSON、剪贴板、文件。浏览器内加密,后端节点完全不受信任,只保存和转发密文。

状态

文档是权威来源,代码以文档为准。

部分 状态
协议、API、威胁模型 已定稿(docs/)
test-vectors/ 已完成。由 node:crypto 独立生成,服务端(.NET)和 @webdrop/core(WebCrypto)各自复现
server/ 频道与便捷分享 API 已实现;含独立的可选 WebDrop.Frontend 静态资源模块;NativeAOT 发布为 OCI 镜像
packages/core/ 已完成并验证。168 个测试,含对着真实服务端的端到端
web/ 前端,开发中

文档

文档 内容
docs/threat-model.md 信任边界、攻击者模型、每种模式的保证、元数据泄露、不做的事
docs/e2ee-boundary-comparison.md 当前信任边界、签名授权/事件的目标设计与分阶段路线
docs/protocol.md 密钥派生、令牌、帧格式、加密和 padding、校验算法、保留策略(协议权威文档)
docs/api.md HTTP / WebSocket / SSE 接口、鉴权头、错误码
docs/architecture.md 组件、技术栈、NativeAOT 约束、存储模型、部署、阶段划分
docs/ui-design.md 前端视觉与交互:色彩、形状、blur 约束、页面、状态与诚实提示、动效
docs/frontend.md 前端工程:技术栈、分层、状态模型、传输与重连、性能与可维护性约定
web/AGENTS.md 前端契约:权威顺序、范围、必须遵守与禁止项
packages/core/README.md @webdrop/core 的接口、前端要做和不用做的事、必须注意的几点
server/README.md 服务端的结构、配置、AOT 发布、验证码(Cap)接入
docs/deployment.md Podman Quadlet 自托管部署与 Woodpecker CI
test-vectors/README.md 协议测试向量的生成与使用

核心概念

  • 频道:唯一的顶层概念,一条只追加的帧流,有自己的 id、密钥、设置和账号成员人数上限。
  • 条目:频道里的一项内容(文本、JSON、文件),由若干帧组成,可复制、下载、删除。
  • 成员:频道里的人是用户(账号);设备只是账号的属性,同一账号的多设备只算一人,请求凭账号会话鉴权。频道强制登录,没有未登录访客(便捷分享不受影响)。
  • 所有者 / 成员:所有者持有管理密钥,成员通过频道链接加入。
  • 模式:enc(默认,浏览器端 AES-256-GCM)和 raw(负载原样,服务器可见,用于公开或用户自行加密的内容)。

目录

webdrop-proj/
├─ docs/
├─ test-vectors/    协议测试向量,所有实现共用
├─ packages/core/   @webdrop/core,TS,加解密与帧编解码(网页、将来的 CLI 共用)
├─ server/          .NET 10,NativeAOT;可将 Vite dist 嵌入 WebDrop.Frontend
└─ web/             Vite + React + TypeScript
S
Description
WebDrop encrypted quick sharing and channel sync
Readme
1.5 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 52.2%
C# 37.4%
CSS 5.7%
JavaScript 3.6%
PowerShell 0.5%
Other 0.6%