fengling-auth-service/.planning/codebase/STACK.md
movingsam 2a60caae80 docs(architecture): 添加系统架构分析文档
- 描述整体基于ASP.NET Core的分层架构与领域驱动设计
- 详细说明表现层、视图模型层、配置层和基础设施层职责
- 介绍用户认证、OAuth2授权码与令牌颁发的数据流过程
- 抽象说明用户与租户、声明和授权实体设计
- 说明应用启动入口和关键HTTP端点
- 列出错误处理策略和跨领域关注点(日志、追踪、安全)

docs(concerns): 新增代码库问题与关注点分析文档

- 汇总并详述安全漏洞如配置文件泄露、Cookie策略不当
- 记录技术债务包括缺乏单元测试、依赖注入不统一等
- 罗列性能问题和具体代码缺陷
- 给出优先级明确的修复建议和改进措施
- 涵盖架构设计问题和依赖兼容性风险
- 说明测试覆盖缺口及高风险未测试区域

docs(conventions): 新增编码约定与规范文档

- 明确文件、类、方法、变量等命名规则
- 规范代码风格包括命名空间、主构造函数使用
- 制定日志记录、审计日志和依赖注入的标准
- 规定控制器路由、异步模式和错误处理方式
- 说明DTO命名及特性使用规范
- 描述配置管理、注释规范及常用代码注释样例

docs(integrations): 添加外部系统集成文档

- 介绍数据库连接和PostgreSQL客户端库版本
- 描述身份认证与授权服务及默认用户信息
- 说明可观测性方案及OpenTelemetry组件
- 涵盖容器化部署相关Docker与Kubernetes配置
- 说明CI/CD流水线触发条件与构建流程
- 列出环境变量需求和主要API端点
- 强调生产环境密钥管理与安全存储机制
2026-03-01 11:28:44 +08:00

3.4 KiB
Raw Permalink Blame History

技术栈

分析日期: 2026-02-28

语言

主要:

  • C# 12 - 项目使用最新的 C# 语言特性
  • .NET 10.0 - 目标框架版本

运行时:

  • ASP.NET Core 10.0 - 用于构建 Web 应用程序和 API

运行时环境

框架:

  • .NET 10.0 - 当前稳定版本
  • ASP.NET Core - Web 框架

包管理:

  • NuGet - .NET 包管理器
  • Fengling.Platform.Infrastructure - 1.0.0 版本,内部平台基础设施包
  • NetCorePal.Extensions - 3.2.1 版本,一系列扩展库

核心框架

身份认证与授权:

  • OpenIddict 7.2.0 - OAuth2/OpenID Connect 实现
    • OpenIddict.AspNetCore - OpenIddict 的 ASP.NET Core 集成
    • OpenIddict.EntityFrameworkCore - OpenIddict 的 EF Core 存储
    • OpenIddict.Quartz - OpenIddict 的 Quartz.NET 集成(用于后台任务)

数据访问:

  • Entity Framework Core 10.0.3 - ORM 框架
    • Microsoft.EntityFrameworkCore - 核心 EF Core 包
    • Microsoft.EntityFrameworkCore.Design - EF Core 设计时工具
    • Npgsql.EntityFrameworkCore.PostgreSQL - PostgreSQL 提供程序(已注释)
    • Microsoft.EntityFrameworkCore.InMemory - 内存数据库(用于测试)

用户与角色管理:

  • ASP.NET Core Identity 10.0.3 - 用户身份管理系统

Web API

  • Swashbuckle.AspNetCore 10.1.4 - Swagger/OpenAPI 文档生成

健康检查:

  • AspNetCore.HealthChecks.Npgsql 9.0.0 - PostgreSQL 健康检查
  • Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore 10.0.3 - EF Core 健康检查

日志与观测

日志:

  • Serilog - 结构化日志框架
    • Serilog.AspNetCore 10.0.0 - Serilog 的 ASP.NET Core 集成
    • Serilog.Sinks.Console 6.1.1 - 控制台输出接收器

分布式追踪:

  • OpenTelemetry 1.15.0 - 可观测性标准
    • OpenTelemetry - 核心包
    • OpenTelemetry.Extensions.Hosting - Host 集成
    • OpenTelemetry.Instrumentation.AspNetCore - ASP.NET Core instrumentation
    • OpenTelemetry.Instrumentation.Http - HTTP 客户端 instrumentation
    • OpenTelemetry.Exporter.OpenTelemetryProtocol - OTLP 导出器

业务逻辑

CQRS 与中介者:

  • MediatR 12.5.0 - 中介者模式实现

领域驱动设计支持:

  • NetCorePal.Extensions.Domain.Abstractions - 领域抽象
  • NetCorePal.Extensions.Primitives - 基础类型扩展
  • NetCorePal.Extensions.Repository.EntityFrameworkCore - 仓储模式实现
  • NetCorePal.Extensions.Repository.EntityFrameworkCore.Snowflake - 雪花算法 ID 生成

配置

环境配置:

  • appsettings.json - 基础配置
  • appsettings.Development.json - 开发环境配置
  • appsettings.Testing.json - 测试环境配置

关键配置项:

{
  "ConnectionStrings": {
    "DefaultConnection": "Host=81.68.223.70;Port=15432;Database=fengling_auth;..."
  },
  "Jwt": {
    "Issuer": "http://localhost:5132",
    "Audience": "fengling-api",
    "Secret": "..."
  },
  "OpenIddict": {
    "Issuer": "http://localhost:5132",
    "Audience": "fengling-api"
  }
}

Docker 配置:

  • 基础镜像:mcr.microsoft.com/dotnet/aspnet:10.0
  • 构建镜像:mcr.microsoft.com/dotnet/sdk:10.0
  • 暴露端口80

项目结构

解决方案:

  • Fengling.AuthService.slnx - 现代解决方案格式

项目文件:

  • src/Fengling.AuthService.csproj - 主项目文件
  • Directory.Packages.props - 集中化包版本管理

技术栈分析2026-02-28