fengling-auth-service/.planning/codebase/INTEGRATIONS.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

116 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 外部集成
**分析日期:** 2026-02-28
## 数据库
**PostgreSQL**
- **类型:** 关系型数据库
- **连接信息:**
- 主机81.68.223.70
- 端口15432
- 数据库fengling_auth
- 用户名movingsam
- **客户端库:** Npgsql.EntityFrameworkCore.PostgreSQL 10.0.3
- **连接字符串来源:** `appsettings.json` 或环境变量 `ConnectionStrings__DefaultConnection`
- **健康检查:** 通过 AspNetCore.HealthChecks.Npgsql 集成
## 身份认证与授权
**OpenIddictOAuth2/OIDC**
- 实现标准的 OAuth2 授权服务器功能
- 支持的授权类型password密码模式
- JWT Token 发行
- 令牌配置:
- Issuer签发者`http://localhost:5132`(开发环境)
- Audience受众`fengling-api`
- JWT Secret开发环境`FenglingAuthSecretKey2024!ChangeThisInProduction!`
**默认用户:**
- **管理员:** 用户名 `admin`,密码 `Admin@123`,角色 `Admin`
- **测试用户:** 用户名 `testuser`,密码 `Test@123`,角色 `User`
## 可观测性
**OpenTelemetryOTLP 导出):**
- 导出协议OpenTelemetry Protocol (OTLP)
- 导出目标:未在配置中明确指定(需配置 OTLP 端点)
- Instrumentation
- ASP.NET Core 请求追踪
- HTTP 客户端追踪
- OpenIddict 服务器追踪
## 容器与部署
**Docker**
- 镜像仓库:`gitea.shtao1.cn`Gitea 私有仓库)
- 镜像名称:`fengling/fengling-auth-service:latest`
- Dockerfile多阶段构建build + publish
**Kubernetes**
- 命名空间:`fengling`
- 副本数2
- 服务端口80
- 资源配置:
- 请求CPU 100m内存 256Mi
- 限制CPU 500m内存 512Mi
- 健康检查:
- 就绪探针:/health初始延迟 10 秒,周期 10 秒
- 存活探针:/health初始延迟 30 秒,周期 30 秒
## CI/CD
**Gitea Actions**
- 触发条件:
- 推送至 main 或 master 分支
- 合并至 main 或 master 分支的 Pull Request
- .NET 版本10.0
- 阶段:
1. 构建Build
2. Docker 镜像构建与推送
3. 部署至 Kubernetes
**NuGet 源:**
- 私有源:`https://gitea.shtao1.cn/api/packages/fengling/nuget/index.json`
- 公共源:`https://api.nuget.org/v3/index.json`
- 认证方式:用户名 + 访问令牌
## 环境变量
**必需的环境变量:**
- `ConnectionStrings__DefaultConnection` - 数据库连接字符串(从 Kubernetes Secret 注入)
- `OpenIddict__Issuer` - Token 签发者 URL生产环境`https://auth.fengling.local`
- `OpenIddict__Audience` - Token 受众
- `ASPNETCORE_ENVIRONMENT` - 运行环境(如 Production
- `ASPNETCORE_URLS` - 监听 URL默认`http://+:80`
**可选变量:**
- `Testing` - 是否为测试模式(启用/禁用 Swagger
## API 端点
**主要端点:**
- `/connect/token` - 获取 OAuth2 令牌(密码模式)
- `/health` - 健康检查端点
- `/swagger/v1/swagger.json` - OpenAPI 文档
**管理端点(需认证):**
- `/api/users` - 用户管理
- `/api/roles` - 角色管理
- `/api/tenants` - 租户管理
- `/api/oauth/clients` - OAuth 客户端管理
- `/api/audit/logs` - 审计日志
- `/api/access/logs` - 访问日志
## 密钥管理
**生产环境密钥存储:**
- Kubernetes Secret`fengling-auth-secrets`
- 存储内容:
- `connection-string` - 数据库连接字符串
- 镜像拉取凭据Kubernetes ImagePullSecret
---
*外部集成审计2026-02-28*