Commit Graph

78 Commits

Author SHA1 Message Date
913a235e5c docs: 更新 AGENTS.md 和 IMPROVEMENTS.md,记录已知兼容性问题
AGENTS.md:
- 添加已知兼容性问题章节
  - actix-ratelimit 0.3.1 与 actix-web 4.x 不兼容
  - actix-web-prom 与当前架构不兼容
- 添加路由配置结构说明(App 配置顺序、middleware 应用方式)
- 添加路由优先级说明

IMPROVEMENTS.md:
- 2.1 缺少请求频率限制:标记 ⚠️,记录兼容性问题及备选方案
- 6.1 缺少性能指标收集:标记 ⚠️,记录兼容性问题及备选方案
- 修正无日志聚合的 checkbox 状态
2026-04-15 11:29:20 +08:00
e8990f7771 fix: 隐藏内部错误信息,防止敏感数据泄露
- 移除 ErrorResponse.errmsg 中的 e.to_string() 调用
- 将详细的内部错误信息改为 None,用户看不到内部详情
- 错误详情仍然记录到 JSON 日志,供开发者排查
- 健康检查端点也使用友好的错误信息
- 更新 IMPROVEMENTS.md 标记 1.3 完成

影响范围:
- src/main.rs: login handler (2处)
- src/main.rs: health_check handler (1处)
2026-04-15 11:11:16 +08:00
6b871ca4d6 refactor: 整理路由配置,分离公开接口与受保护接口
- 登录和天气详情接口移至公开区域
- 其他接口统一在 web::scope("") 下受 JWT middleware 保护
- 静态文件和健康检查移至最后
- 为 actix-ratelimit 兼容性问题做准备(当前无法在 actix-web 4.x 使用)

注意:Rate Limiting 功能暂未实现(actix-ratelimit 与 actix-web 4.x 不兼容)
2026-04-15 11:05:21 +08:00
338871796a feat: 添加 /health 健康检查端点
- 新增 GET /health 端点,公开无需认证
- 检查 PostgreSQL 数据库连接状态
- 健康时返回: {"status": "healthy", "database": "connected"}
- 不健康时返回 HTTP 503 + {"status": "unhealthy", "database": "disconnected", "error": "..."}
- 失败时记录错误到 JSON 日志
- 用于负载均衡器、Kubernetes、1Panel 健康探针
- 更新 IMPROVEMENTS.md 标记 6.3 完成
2026-04-15 10:49:15 +08:00
741d6acff1 feat: 升级日志系统为 tracing 结构化日志
- 替换 env_logger 为 tracing + tracing-subscriber
- 统一使用 tracing::{debug, error, info, warn} 日志宏
- 消除所有 eprintln!/println 调用
- 添加 JSON 格式日志输出便于 ELK Stack 收集
- 添加文件日志轮转(每天一个新文件 ./logs/rust-backend-{date}.log)
- 日志等级过滤:rust_backend=info, actix_web=info, sqlx=warn
- 更新 IMPROVEMENTS.md 标记 6.1 日志系统两项完成
2026-04-15 10:39:30 +08:00
98ef90b01e docs(backend): 完善 IMPROVEMENTS.md - 添加环境区分机制解决方案 2026-04-14 11:28:41 +08:00
ce34896525 fix: 修复calculatedwindspeed字段命名不匹配问题
- 后端serde添加alias以接受camelCase、snake_case和原始数据库字段名
- 前端移除调试日志
- 修复afterbody.js中引用calculatedwindspeed→calculatedWindSpeed
2026-04-14 10:55:56 +08:00
6d2824589c feat: 添加用户信息存储功能
- 添加 avatar_url 和 nickname 字段到 users 表
- 修改 get_user_by_id 查询包含新字段
- 添加 save_user_profile API
- 优化 deploy.sh 默认使用 release 模式
2026-03-26 14:28:46 +08:00
fcf358f990 fix: 修复 const 变量赋值错误
htmlString 使用 const 声明但后续尝试用 += 修改
改为 let 声明允许修改
2026-03-26 10:47:46 +08:00
954ae1c0a4 docs: 更新 AGENTS.md 添加用户信息 API 和 SQL 保留字注意事项 2026-03-26 09:18:08 +08:00
ef8fac7ec2 添加systemd service文件,更新部署脚本格式
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-25 17:26:44 +08:00
fe514ebfc4 fix: 修复 desc 保留关键字导致的 SQL 语法错误
desc 是 PostgreSQL 保留关键字,需要加双引号转义
2026-03-25 17:15:17 +08:00
34f698ded2 feat: 添加获取当前用户信息 API
新增 GET /api/user/profile 接口
- 返回用户付费状态和管理员标识
- 计算付费是否有效(考虑过期时间)
2026-03-25 16:08:39 +08:00
30d726c3d1 优化 afterbody.js:修复变量遮蔽、移除死代码、提取 slice 常量 2026-03-25 13:27:49 +08:00
fe407d77f8 优化 index.html 结构:添加 meta 标签、修复 footer 位置、清理死代码 2026-03-25 13:22:26 +08:00
74c72d9d2f 添加集成测试框架,更新 .gitignore
- 添加 tests/integration_test.rs 测试框架
- .gitignore 排除 .sisyphus/ 工作区目录
2026-03-25 13:18:25 +08:00
c37a7a5f36 更新项目文档,添加 AGENTS.md
- 删除旧的 prompt.md API 文档
- 添加 AGENTS.md 项目文档,包含技术栈、项目结构、API 接口、认证流程等
2026-03-25 13:18:09 +08:00
fa34e6597f 添加管理员API端点
- .env 添加 FREE_USER_DATA_LIMIT 配置
- 新增 GET /api/admin/users/{id} 管理员获取用户信息
- 新增 PUT /api/admin/users/{id}/payment 更新用户付费状态
- post_weather_data 集成 JWT 认证,使用 claims.user_id
- 管理员接口通过数据库查询验证 is_admin
2026-03-25 13:17:53 +08:00
484146aba9 支付系统核心:配额限制与用户付费状态管理
- 添加 tokio 依赖用于异步测试
- 启用 User 结构体,添加 is_paid/is_admin/paid_expires_at 字段
- 添加 UpdatePaymentRequest 请求体
- insert_weather_data 集成配额检查逻辑
- 新增 get_user_by_id、count_user_weather_data、update_user_payment_status
- 添加 payment_fields 数据库迁移脚本
2026-03-25 13:17:36 +08:00
63b6d5df8f 修改了前端显示的代码 2026-01-08 14:42:59 +08:00
67c3be3c9e 在数据库中添加了Version字段,并修改前端,不再使用指定的Version 2026-01-08 14:12:34 +08:00
7d7c0b251f 更新了deploy的方法 2025-10-21 10:07:46 +08:00
f7450bce7f 修改了服务只监听本地端口 2025-10-21 10:07:32 +08:00
9e76976a56 修改了端口 2025-10-21 09:28:42 +08:00
a99fb905ec 修改了point_height以支持可选值 2025-10-18 10:21:59 +08:00
edf6200acd 修改了不规范的temp_token返回 2025-10-17 23:59:49 +08:00
b088b353b4 修改了前端展示的公式 2025-10-17 22:56:12 +08:00
9ff20c16c3 删除了多余的info 2025-10-17 22:51:49 +08:00
bd60a72e68 修改了convertedwindspeed为float 2025-10-17 19:39:12 +08:00
e294c00c0b 修改了部分代码位置 2025-10-17 16:30:24 +08:00
8cc5c6d0ed 修改了部分bug 2025-10-17 16:25:44 +08:00
3709b4c426 添加了正确的katex方法 2025-10-17 15:51:29 +08:00
7d4f27feff 添加了正确的katex方法 2025-10-17 15:50:59 +08:00
5e5d6c4c76 修改了fonts位置,并添加了新的font 2025-10-17 15:30:15 +08:00
e76c039432 添加了新的log提示 2025-10-17 15:29:10 +08:00
c8aaa4d17c 修改了相关公式 2025-10-17 15:03:12 +08:00
e19d6af2fa 将println都修改为了info,
eprintln修改为了error,
将部分debug信息输出修改为了debug
2025-10-17 12:11:07 +08:00
ebe4e69222 根据前端上传数据的修改,修正了相关代码 2025-10-17 12:07:52 +08:00
7143064a09 更新了https功能,将原有的服务从http迁移到了https中 2025-09-30 17:26:56 +08:00
7fa1ae6301 使用了logger来进行后端的消息记录 2025-09-30 15:59:15 +08:00
9880124c87 在weather_data表中添加了一个字段 2025-09-29 16:02:50 +08:00
8c92834e3b 修改了下载的模板 2025-09-29 13:35:28 +08:00
ea64c436b6 可以在使用temp_token的情况下使浏览器和微信小程序前端都能获取到正确的数据 2025-09-29 11:56:08 +08:00
56844a537f 可以正常使用get_weather_details获取前端指定的数据了 2025-09-29 11:20:21 +08:00
8cc75be7cd 删除了我不需要的代码,并修改了version 的显示逻辑 2025-09-28 16:24:38 +08:00
892cface67 将静态资源移动到标准位置 2025-09-28 15:00:53 +08:00
2a1847e314 添加了下载的模板 2025-09-28 14:52:09 +08:00
58a0b6858a 修改了错误的数据库方法 2025-09-28 14:28:16 +08:00
bf560ccd8c 修改错误的weatherdata类型 2025-09-28 09:33:28 +08:00
1ac9db3f84 移除了不需要的方法 2025-09-27 18:41:19 +08:00