文档和侧栏里的隔离单元叫工作空间。早期文案叫「域」,指的是同一件事。数据库和接口字段仍是 domain_id,那是实现名,不是给新用户看的概念。
工作空间是最顶层的逻辑边界,用来:
一篇文档通过 domain_id 归属到某一个工作空间。
| 类型 | 谁可以进入 | 文档 permission 档位 | 用途 |
|---|---|---|---|
| public(公开) | 任何人(含未登录访客) | 仅 public_read(3)、public_write(4) | 开放协作,默认工作空间 |
| restricted(受限) | 成员与创建者为完整入口;只被某篇文档邀请的访客是受限入口(能看相关文档,不能凭此在工作空间里任意新建) | 仅 domain_read(1)、domain_write(2) | 团队知识库 |
| private(个人) | 仅创建者(domain_id 等于该访客的 visitor_id) | 0~4 全部档位 | 私人笔记本 |
类型会约束里面的文档能选哪些 permission:公开工作空间不允许 private 档,受限工作空间不允许 public 档。
每篇文档有一个 permission(0~4),定义谁能读、谁能写(前提是对方已经能碰到这篇文档):
| 数值 | 名称 | 谁可读 | 谁可写 |
|---|---|---|---|
| 0 | private | 仅 owner | 仅 owner |
| 1 | domain_read | 工作空间成员 | 仅 owner |
| 2 | domain_write | 工作空间成员 | 工作空间成员 |
| 3 | public_read | 任何人 | 仅 owner |
| 4 | public_write | 任何人 | 任何人 |
domain_read / domain_write 是字段名,界面上对应「工作空间内可读 / 可编辑」。
| 类型 | 允许的文档 permission | 说明 |
|---|---|---|
| public | 仅 public_read(3)、public_write(4) | 公开工作空间里不能出现「仅成员」或「仅 owner」的文档 |
| restricted | 仅 domain_read(1)、domain_write(2) | 文档不暴露给成员以外的人;外人要看,靠 邀请 |
| private | 全部 0~4 | 不设上限;个人工作空间里的文档也可以设成 public_write(4) 对外公开 |
| 类型 | 新建文档默认 permission |
|---|---|
| private | private(0) |
| restricted | domain_read(1) |
| public | public_read(3) |
在五级权限之上,还有 邀请:文档创建者可以给任意一篇文档加人(read / edit),不受当前档位限制。
详见 文档级邀请。
domain_id 等于该访客的 visitor_iddomain_members 维护多人private(0)侧栏树、工作空间里的列表会按「能不能进这个工作空间」过滤。若某人拿着文档 ID 直链,读权限主要由文档档位 + 邀请决定。例如受限工作空间里一篇 domain_read 文档,非成员不可读(除非被邀请)。需要更强保密时,用 private(0)。
~/.mdocs/files/docs/{domain_id}/),查询用 domain_id 过滤。把文档挪到另一个工作空间,要改库并移动文件操作说明(创建受限工作空间、维护成员、套用模板):见 受限工作空间成员与名单模板。
行为以 mdocs 应用代码与 SQLite schema 为准;随版本迭代本页会跟进。