34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
# DV-0002:项目与文件系统 – 规格(Spec)
|
||
|
||
- **状态**:Implemented
|
||
- **关联 ADR**:ADR-0001, ADR-0002, ADR-0003, ADR-0006
|
||
|
||
## 目标
|
||
建立「用户→项目→文档/文件夹」三级模型,并以“DB 权限 + FS 内容”实现项目文档的文件级存储与严格隔离。
|
||
|
||
## 范围
|
||
- **In**:项目 CRUD/转移/归档、成员协作、StorageService 路径安全、目录树。
|
||
- **Out**:实时协同编辑。
|
||
|
||
## 用户故事
|
||
> 作为项目成员,我希望按权限访问项目文档,以便协同维护知识库。
|
||
|
||
## 功能需求(FR)
|
||
| ID | 需求 | 验收要点 |
|
||
| --- | --- | --- |
|
||
| FR-2 | 三级模型 + 项目 CRUD/转移 | 创建生成 UUID storage_key 并建磁盘结构 |
|
||
| FR-3 | 文件系统存储 + 路径安全 | get_secure_path 防穿越;隐藏文件/_assets 不进树 |
|
||
| FR-5 | 项目成员协作 | 按 admin/editor/viewer 判定读写 |
|
||
|
||
## 非功能需求(NFR)
|
||
| ID | 需求 |
|
||
| --- | --- |
|
||
| NFR-3 | 所有路径经 get_secure_path 校验 |
|
||
| NFR-4 | 项目访问做 RBAC 校验 |
|
||
| NFR-11 | 索引在文件变更时同步维护 |
|
||
|
||
## 边界与约束
|
||
- 磁盘名用 UUID(storage_key),展示名解耦。
|
||
- 内容不进 DB BLOB。
|
||
|