# 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。