# Kra 管理后台

## 范围

Kra 管理后台由 Kratos 应用承载生命周期，Gin 提供兼容管理端的 HTTP 路由。后端按 `service -> biz -> data` 分层，前端位于 `web/`。

保留的业务模块：

- 初始化、认证、用户和个人中心
- 角色、菜单、API、Casbin 和按钮权限
- 部门、岗位和数据范围
- 字典、字典项和系统参数
- 安全策略、系统配置和 API Token
- Excel 导入导出与版本管理
- 操作日志、登录日志、数据访问日志、错误日志和文件日志
- 定时任务、SSE、媒体上传和附件分类
- 公告管理与邮件发送

不包含代码生成、智能辅助、模块安装发布、客户示例和测试页面。

## 目录

| 目录 | 职责 |
|---|---|
| `internal/server` | Gin 路由、中间件和 Kratos transport 生命周期 |
| `internal/service` | HTTP DTO 与领域对象转换、用例编排 |
| `internal/biz` | 领域对象、业务规则和仓储接口 |
| `internal/data` | GORM、MySQL、Redis 和本地文件存储实现 |
| `web` | Vue 3 管理端 |

## 兼容约定

- HTTP 响应为 `{code, data, msg}`，成功码为 `0`。
- JWT 接受 `x-token` Header 和同名 Cookie。
- 初始化创建后台数据表、管理员、菜单，并从 Gin 路由同步 API 权限数据。
- 超级管理员角色 `888` 保留全权限旁路，其他角色由 Casbin 控制。
- SMTP 配置位于 `admin.email`；未配置时错误邮件告警保持关闭。
- 媒体文件默认使用本地 `uploads/file` 存储。

## 验证

```bash
go generate ./cmd
go test ./...
go vet ./...
go build ./...

cd web
pnpm install
pnpm run lint
pnpm run build
```
