Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ yansongda-application/

## ANTI-PATTERNS (THIS PROJECT)

- 不要在日志中记录完整请求/响应头,尤其是 `Authorization` 头
- 日志记录完整 headers 和 body(含 Authorization),此为预期行为
- 不要硬编码生产密钥、Token、密码;配置通过 `config.toml` 或 `APP__*` 环境变量注入。
- 不要在 Rust 生产代码中随意使用 `.unwrap()` / `.unwrap_err()` / `.expect()`(启动期 fail-fast 除外)。
- 不要引入 ORM;数据库层统一使用 `sqlx` + 原生 SQL。
Expand All @@ -76,7 +76,7 @@ yansongda-application/
## UNIQUE STYLES

- **多包管理器并存**:后端 cargo,微信主小程序 Deno,TOTP 小程序 Deno,华为 ohpm。
- **Rust workspace 使用较新的工具链特性**,依赖使用 `~` 约束。
- **Rust workspace 使用较新的工具链特性**,依赖使用默认 caret 语义(`version = "x.y.z"`)约束。
- **无 ORM 的数据库层**:通过自定义宏(`query_optional!` / `insert!` / `update!` / `delete!`)统一记录 SQL、耗时和参数。
- **微信/华为前端共享同一后端**,但登录方式不同:微信用 `wx.login` code,华为用 HuaweiID authorizationCode。
- **后端无 JWT**:access_token / refresh_token 均为 opaque UUID v7,数据库验证。
Expand Down Expand Up @@ -109,5 +109,5 @@ deno task typecheck
- `application-rs/AGENTS.md` 中已修正:移除不存在的 `application-macro/` 目录;CI 不运行 `cargo test`。
- `wechat/miniprogram/yansongda/` 已迁移到 Deno,锁文件为 `deno.lock`。
- 华为 `build-profile.json5` 包含本地签名证书路径与明文密码,仅用于本地开发,禁止用于生产。
- 后端 `middleware.rs` 与 `application-util/src/http.rs` 当前会记录完整 headers,后续需脱敏 `Authorization` 等敏感头
- 后端 `middleware.rs` 与 `application-util/src/http.rs` 记录完整 headers(含 Authorization),此为预期行为
- 三个前端均无实际业务测试;Rust 后端仅有少量单元测试,CI 不执行测试。
4 changes: 2 additions & 2 deletions application-rs/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ response.rs Response<D>、ApiErr、Scribe 实现
- 禁止在生成代码中使用 `.unwrap()` / `.unwrap_err()` / `.expect()`;启动期 fail-fast 除外,统一使用 `Error` 枚举 + `?` 传播。
- 禁止使用 `lazy_static!`;全局静态变量使用 `std::sync::LazyLock`。
- 禁止引入 ORM;数据库层统一使用原生 SQL + `sqlx::query_as` / `sqlx::query`。
- 禁止在日志中记录完整 headers body,尤其是 `Authorization` 头和第三方 API 响应中的密钥/token
- 日志记录完整 headers body(含 Authorization),此为预期行为
- 禁止提交 `config.toml`、`*.private.*`、密钥、Token、生产连接串。
- 禁止 `#[allow(dead_code)]` 不加注释;若确需保留,需说明理由和清理计划。

Expand All @@ -155,5 +155,5 @@ response.rs Response<D>、ApiErr、Scribe 实现
## NOTES

- `application-macro/` 目录已不存在,本文件已移除该条目。
- `middleware.rs` 与 `application-util/src/http.rs` 当前会记录完整 headers,后续需脱敏 `Authorization` 等敏感头
- `middleware.rs` 与 `application-util/src/http.rs` 记录完整 headers(含 Authorization),此为预期行为
- 测试覆盖率低,CI 仅执行 `cargo check` / `cargo fmt` / `cargo clippy`,不执行 `cargo test`。
Loading