Files
lijiaoqiao/docs/experts/00_PROJECT_OVERVIEW.md
Your Name 45c4160eed docs: 清理架构文档中Kafka/etcd误填内容,标记废弃说明
- 00_PROJECT_OVERVIEW.md: 清除虚构的5个环境问题描述
- technical_architecture_design_v1: 标记废弃说明,架构图标注Redis/Kafka未使用
- llm_gateway_product_technical_blueprint_v1: 标注Message Queue已由PostgreSQL替代
- resource_assessment_plan_v1: 移除Kafka作为备选方案引用

代码库中无任何Kafka/etcd/CloudWatch运行时依赖,详见TEST_ENVIRONMENT_ISSUES.md
2026-04-18 11:48:29 +08:00

8.0 KiB
Raw Blame History

立交桥项目专家评审 — 项目概况

1. 项目基本信息

  • 项目名称立交桥lijiaoqiao
  • 路径/home/long/project/立交桥
  • 语言Go 1.21/1.22
  • 架构单体服务3 个独立进程),保持单体架构不变
  • 总规模:约 170,000 行 Go 代码不含竞品目录112 个 .go 文件
  • 依赖Go modules无 vendor 目录

2. 三个核心服务

2.1 Gateway入口网关

定位OpenAI 兼容入口网关,负责接入鉴权、限流、上游路由、基础审计。

端口8080

技术栈

  • 标准库 net/http(无 Gin
  • 中间件Auth、CORS、RateLimit、RequestID 注入
  • 路由策略:latency / round_robin / weighted / availability(已接入主链路);cost_based / cost_aware / fallback(实验性,未接入)
  • Provider 注册:支持多 provider 配置,动态路由
  • 审计发射器PostgreSQL 或内存

关键文件

  • internal/handler/handler.go — OpenAI 兼容 HTTP handlerChat/Completion/Models
  • internal/middleware/cors.go — CORS 配置(生产要求显式白名单)
  • internal/app/bootstrap.go — 启动装配,BuildMux
  • internal/router/router.go — 路由选择、打分

环境变量

  • GATEWAY_ENVdev/staging/production
  • PASSWORD_ENCRYPTION_KEY(生产必填)
  • GATEWAY_CORS_ALLOW_ORIGINS(生产必填)
  • GATEWAY_TRUSTED_PROXIES
  • GATEWAY_TOKEN_RUNTIME_MODEinmemory / remote_introspection

已修复的安全问题

  • 生产环境默认密钥检测并 panic
  • CORS 生产模式强制显式白名单
  • X-Request-ID 字符白名单过滤(防日志注入)
  • IP 伪造防护TrustedProxies 检查)

2.2 Platform Token Runtime

定位:平台级 token 生命周期管理、introspection 与审计查询。

端口18081

技术栈

  • 标准库 net/http
  • Token 生命周期issue / refresh / revoke / introspect
  • Store 实现内存dev 默认)+ PostgreSQLstaging/prod 可选)
  • 审计事件:内存 / PostgreSQL

关键文件

  • internal/httpapi/token_api.go — HTTP APIissue/refresh/revoke/introspect/audit-events
  • internal/auth/service/runtime_store.go — 内存 runtime store含并发保护 mutex
  • internal/auth/service/inmemory_runtime.go — token 生命周期实现
  • internal/auth/middleware/token_auth_middleware.go — Bearer token 校验
  • internal/auth/middleware/query_key_reject_middleware.go — 拒绝外部 query key
  • internal/auth/service/postgres_runtime_store.go — PostgreSQL 持久化
  • internal/auth/service/postgres_audit_store.go — PostgreSQL audit store

环境变量

  • TOKEN_RUNTIME_ENVdev/staging/production
  • TOKEN_RUNTIME_DATABASE_URLPostgreSQL DSN

已修复的安全问题

  • Refresh 后 TTL 变更持久化到 store
  • InMemoryRuntimeStore 并发读写加 RWMutex 保护
  • audit-events 接口强制 Bearer token 鉴权

2.3 Supply API

定位供应链业务服务负责账户、套餐、结算、审计、IAM、Outbox 与补偿链路。

端口18080

技术栈

  • 标准库 net/http
  • 数据库PostgreSQL必选dev 模式可部分降级)
  • SMS 验证(默认关闭态)
  • Outbox pattern事务性发件箱
  • 补偿框架account.create / package.publish / settlement.withdraw / quota.deduct

关键文件

  • internal/httpapi/supply_api.go — 供应侧业务接口accounts/packages/billing/earnings/settlements
  • internal/httpapi/alert_api.go — 告警接口
  • internal/repository/ — DB-backed 仓储与集成测试
  • internal/audit/ — 审计事件、处理器、批量缓冲
  • internal/outbox/ — Outbox processor
  • internal/compensation/ — 补偿执行器(当前 fail-closed
  • internal/iam/ — IAM 实现(默认关闭,条件启用)
  • internal/domain/settlement.go — 结算领域模型(含提现门禁)
  • internal/security/kms_service.go — DEK 派生HKDF-SHA256
  • internal/app/bootstrap.go — 启动装配
  • internal/app/runtime.go — runtime 构造与依赖注入

环境变量

  • SUPPLY_API_ENVdev/staging/production
  • SMS_VERIFIER_IMPL(可选)
  • SETTLEMENT_WITHDRAW_ENABLED(默认 false
  • SERVER_IAM_ENABLED(默认 false

已修复的安全问题

  • KMS DEK 派生从简单字节轮换升级为 HKDF-SHA256
  • 生产环境强制拒绝 HS256/HS384/HS512只接受 RSA
  • 补偿执行器从假成功改为 fail-closed
  • IP 伪造防护TrustedProxies 注入)
  • BruteForce 暴力破解保护5 次失败 / 15 分钟锁定)

3. 数据库

3.1 DDL 文件

  • sql/postgresql/token_runtime_schema_v1.sql — token runtime 表结构
  • sql/postgresql/platform_core_schema_v1.sql — 平台侧审计事件
  • sql/postgresql/supply_core_schema_v2.sql — supply-api 核心表accounts/packages/settlements/earnings
  • sql/postgresql/partition_strategy_v1.sql — 分区策略
  • sql/postgresql/outbox_pattern_v1.sql — Outbox 表
  • sql/postgresql/token_status_registry_v1.sql — token 状态注册表
  • sql/postgresql/audit_alerts_v1.sql — 告警审计表

3.2 关键数据库模式观察

  • auth_token_runtime 表存储 token 生命周期数据
  • auth_token_audit_events 表存储 token 审计事件token runtime 侧)
  • supply_* 系列表存储供应侧业务数据
  • outbox 表实现事务性发件箱模式
  • 分区策略:按时间或哈希分区

4. 测试现状

4.1 测试类型

  • 单元测试:各模块内部逻辑测试(*_test.go
  • 集成测试supply-api 仓储层有 bash scripts/run_integration_tests.sh
  • E2E 测试supply-api/e2e/production_flow_test.go(使用 mock 替身,非真实外部依赖)

4.2 测试覆盖的关键功能

  • Gateway handler 测试Chat/Completion/Models/error response
  • Token lifecycle 测试issue/refresh/revoke/introspect
  • Token audit events 测试query / authorization enforcement
  • Supply API 核心业务流程测试

4.3 环境状态 — 无已知环境问题

所有测试均为纯内存或 PostgreSQL 驱动,三服务 go test -count=1 ./... 全部通过,无任何外部中间件运行时依赖。

以下内容历史上曾被错误填入,现已全部清除:

  • etcd broker 在 2379 — 代码中无 etcd 引用
  • Kafka broker 在 9092 — 代码中无 Kafka 引用
  • AWS CloudWatch 凭据 — 代码中无 CloudWatch 引用

早期架构文档(technical_architecture_design_v1llm_gateway_product_technical_blueprint_v1 等)中确有 Kafka/etcd 讨论,但那属于早期设计规划,实际代码实现时已弃用,文档与实现存在不一致,详见 TEST_ENVIRONMENT_ISSUES.md


5. CI/CD 与验证

  • scripts/ci/repo_integrity_check.sh — 仓库级统一验证(已升级为 go test -count=1
  • 各模块独立验证:go test -count=1 ./...
  • Supply API 额外:bash scripts/run_integration_tests.sh ./internal/repository
  • 迁移脚本:scripts/migrate.sh

6. 文档

  • TEST_ENVIRONMENT_ISSUES.md — 5 个环境问题记录
  • review/SYSTEMATIC_REPAIR_PLAN_2026-04-17.md — 21 个问题的修复计划
  • review/REPORT_CORRECTION_2026-04-17.md — 纠偏版报告
  • docs/plans/2026-04-17-remediation-execution-checklist.md — 执行清单13 tasks 全部完成)
  • docs/product/completed_feature_inventory_v1_2026-04-17.md — 已完成功能清单 v1
  • 各服务 README 记录了"当前真实状态"

7. 项目约束

  • 架构约束:保持单体服务架构,不拆分为微服务
  • 优化目标:代码质量、性能、可靠性、运维简单性
  • 已知技术债务
    • 立交桥项目是单体架构但实际上代码规模不小,三个服务各自独立,有各自的 DB
    • 有些能力"已写出但未接入主链路"(如高级路由策略)
    • E2E 测试依赖 mock不等价于真实环境全链路
    • 部分 Go module path 为 lijiaoqiao/<module>,对 GOPATH 有一定要求