ryan
26a1e71a27
feat(storage): implement Redis distributed lock and cache invalidation broadcasting
...
- Add Redis distributed lock in Execute of MigrationHandler to prevent concurrent storage migrations.
- Define storage:config_invalidation Redis pub/sub channel to broadcast cache invalidation events.
- Implement background pub/sub listener on all nodes to evict config memory cache concurrently.
- Add integration tests for distributed locking and invalidation propagation using miniredis.
2026-06-13 15:31:39 +08:00
ryan
acd430836f
feat(upload): implement parallel storage migration and integrity check
...
- Parallelize storage migration using `errgroup` with a concurrency limit of 10.
- Perform post-copy SHA-256 data integrity validation to prevent silent data corruption.
- Add test case verifying migration with both incorrect and correct hashes.
2026-06-13 15:31:39 +08:00
ryan
9a18bea324
feat(storage): add dynamic storage config and migration
...
Move storage backend configuration from startup YAML to system_config-backed runtime configuration. Add local, S3-compatible, R2, MinIO, OSS, and WebDAV backend support.
Add a storage migration async task using the existing task dispatch framework. Migration target config is carried in task payload, and maintenance mode is derived from task execution state.
Split upload file management and storage operations, add the admin storage configuration tab, and update migrations and Swagger docs.
2026-06-13 15:31:38 +08:00
ryan
04280a7b11
feat(upload): refactor file management with statistics and multi-tab layout
2026-06-13 12:32:42 +08:00
ryan
7b379863b4
fix(upload): restrict cross-user private file access (UPLOAD-1)
...
- Add access_mode column to w_uploads table (0 = private, 1 = public) and initialize data in a single migration script
- Enforce strict ownership check for private files during download
- Allow public files to follow whitelisted public-access rules
- Default access_mode to public for avatars and private for generic uploads
- Update frontend service to support optional accessMode parameter
2026-06-13 10:13:41 +08:00
ryan
46760d4286
缓存处理修补
2026-06-11 19:07:22 +08:00
ryan
5915b31519
图片预热任务
2026-06-11 17:49:08 +08:00
ryan
f14875a8de
图片缓存不过期
2026-06-11 15:57:31 +08:00
ryan
1eef5336e3
修复文件管理页面分页问题
2026-06-11 15:52:35 +08:00
ryan
533f783268
质量优化
2026-06-11 15:36:46 +08:00
ryan
6b93320404
接口参数调整
2026-06-11 15:32:44 +08:00
ryan
ad97ca7df1
图片压缩调用缓存
2026-06-11 15:23:15 +08:00
ryan
e8e0326879
图片压缩
2026-06-11 14:58:17 +08:00
ryan
eb9f6023f0
文件管理权限控制
2026-06-11 14:17:36 +08:00
ryan
5e0de01c4b
文件管理权限控制
2026-06-11 14:09:32 +08:00
ryan
3023d47eec
解耦任务框架与业务任务
2026-06-11 08:52:44 +08:00
ryan
57944398e6
质量优化
2026-06-10 13:50:58 +08:00
ryan
d05acd804f
精简
2026-06-10 11:33:33 +08:00
ryan
1c76c7158a
质量优化
2026-06-09 20:38:14 +08:00
ryan
673061265c
质量优化
2026-06-09 20:28:05 +08:00
ryan
c6eea8111d
fix(revive): rename unused parameters to _ for lint compliance
2026-06-09 15:03:13 +08:00
ryan
e06f76436e
refactor: extract magic numbers to named constants for mnd lint compliance
2026-06-09 13:44:29 +08:00
ryan
b05d26c9c6
docs: add package and exported symbol comments for revive lint compliance
2026-06-09 13:42:06 +08:00
ryan
4ac9857fe8
代码质量优化
2026-06-09 12:28:12 +08:00
ryan
cd3d0c9f82
重构
2026-06-08 20:38:17 +08:00
ryan
d99bd5231a
安全加固
2026-06-08 20:38:17 +08:00
ryan
85f91b1ed7
更新 license .github
2026-06-08 20:38:17 +08:00
ryan
e3ef6c9d27
修改路径
2026-06-08 20:38:17 +08:00
ryan
9d0f9f0576
user
2026-06-08 20:37:40 +08:00
ryan
4b72419a96
去除默认OIDC
2026-06-08 20:37:40 +08:00
ryan
589ae08318
async task framework
2026-06-08 20:37:40 +08:00
ryan
70a13dc107
upload+accessKey
2026-06-08 20:37:40 +08:00
ryan
360a26f109
oauth
2026-06-08 20:34:28 +08:00
ryan
48d414e197
裁剪
...
swagger
移除 merchant
swagger
改造首页内容为通用后台管理系统定位
- 修改首页标题从 'LINUX DO Credit' 改为 'Modern Platform'
- 更新副标题为 '为二次开发而生'
- 更新首页描述为通用平台的特点
- 更新首页特性标签为 '开箱即用、高度可扩展、工业级基建'
- 修改展示卡片为技术栈和二次开发相关
- 更新开发者示例代码为通用的注册和 API Key 获取示例
- 更新页脚品牌名为 'Modern Platform'
- 调整页脚导航链接为通用平台相关内容
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
去除遗留
裁剪
移除 /api/v1/user/pay-key 相关代码
- 删除后端 UpdatePayKey 处理器函数和 UpdatePayKeyRequest 结构体
- 删除 User 模型中的 PayKey 字段
- 删除 User.VerifyPayKey 方法
- 删除 EncryptPayKeyFailed 错误常量
- 删除 /api/v1/user/pay-key PUT 路由
- 删除 OAuth 返回中的 IsPayKey 字段
- 删除前端 UserService.updatePayKey 方法
- 删除前端所有支付密钥 UI 和逻辑
- 更新相关的导出和注释
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
去除遗留
api 修正
系统配置
前端裁剪
后端裁剪
init
2026-06-08 20:34:28 +08:00
ryan
8a782525de
压缩历史至 95081aff
2026-06-08 20:34:27 +08:00