|
|
be3cef2e0d
|
feat: MarkBase 三层架构设计
架构设计:
- Admin Layer: 系统管理 (admin.sqlite)
* system_config - 系统配置
* users - 用户管理
* groups - 群组管理
* permissions - 权限管理
* audit_logs - 审计日志
- Group Layer: 群组管理 (group_{id}.sqlite)
* group_config - 群组配置
* group_members - 群组成员
* group_files - 群组文件
* group_permissions - 群组权限
* group_shares - 群组共享
- User Layer: 用户数据 ({username}.sqlite)
* user_config - 用户配置
* user_files - 用户文件
* user_bookmarks - 用户书签
* search_history - 搜索历史
* video_marks - 视频标记
目录结构:
data/
├── admin/admin.sqlite
├── groups/group_{id}.sqlite
└── users/{username}.sqlite
权限模型:
- Admin: 系统管理
- Group Owner: 群组管理
- Group Member: 群组访问
- User: 个人数据
文档:
- MARKBASE_THREE_LAYER_ARCHITECTURE.md - 完整架构设计
- THREE_LAYER_IMPLEMENTATION_GUIDE.md - 实施指南
脚本:
- init_three_layer_db.sh - 数据库初始化
- check_three_layer.sh - 架构检查
预计工作量: 3-5 天
优先级: 高
|
2026-10-12 15:08:48 +08:00 |
|
|
|
08584ecc87
|
docs: 确认用户数据库隔离问题
问题发现:
- Momentry Studio 硬编码 demo.sqlite
- 违反'一用户一数据库'设计原则
- 所有用户共享同一数据库
检查结果:
- Momentry Studio: 只有 1 个 demo.sqlite ❌
- MarkBase Core: 3 个用户数据库 ✅
修复方案:
1. 方案 1: 函数参数传递 (推荐)
- db_path(username) 动态生成路径
- 所有数据库函数添加 username 参数
2. 方案 2: 环境变量 (折中)
- MOMENTRY_CURRENT_USER 环境变量
- db_path() 读取环境变量
3. 方案 3: 全局状态 (Tauri State)
- 线程安全的状态管理
- 集中管理用户状态
受影响功能:
- 搜索历史
- 书签
- 视频标记
- 用户认证 (例外,保持共享)
工作量: 2-3 天
优先级: 高 (影响数据隔离)
文档:
- docs/USER_DATABASE_ISOLATION_FIX.md - 详细修复方案
- scripts/check_user_isolation.sh - 检查脚本
|
2026-10-12 14:50:34 +08:00 |
|
|
|
9248340308
|
feat: 添加数据库依赖检查脚本
功能:
- SQLite 数据库检查
- PostgreSQL 服务检查
- Qdrant 服务检查
- MongoDB 服务检查
检查项目:
- 数据库文件是否存在
- 服务是否运行
- 数据库/集合是否存在
- 必需服务状态总结
用法:
./scripts/check_db_dependencies.sh
|
2026-10-12 14:45:07 +08:00 |
|