mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-02 14:56:38 +08:00
56 lines
3.4 KiB
Markdown
56 lines
3.4 KiB
Markdown
# OpenFlare 后端迁移 — 任务拆分与委派
|
||
|
||
> **状态**:进行中
|
||
> **基建**:Batch 0 已完成(`Wavelet/internal/apps/openflare/compat/` + `legacy/register*.go` + `router.go` 挂载)
|
||
|
||
## 任务隔离规则
|
||
|
||
| 规则 | 说明 |
|
||
|---|---|
|
||
| 文件所有权 | 每个任务 **仅修改** 自己的 `internal/apps/openflare/<module>/`、对应 `legacy/register_<module>.go`、`internal/model/openflare_<module>.go`、goose SQL |
|
||
| 禁止修改 | `v1/user.go`、`v1/admin.go`、`model/users.go`、其他任务的 `register_*.go` |
|
||
| 响应格式 | 旧前端兼容 API 使用 `compat.OK/Fail/Unauthorized`(`{success,message,data}`) |
|
||
| 鉴权 | 管理端 `compat.AdminAuth()` / `compat.RootAuth()`;用户 `compat.UserAuth()` |
|
||
| Logic 层 | `logics.go` 使用 `context.Context`,不依赖 `*gin.Context` |
|
||
| 数据源 | `db.DB(ctx)` 获取 GORM |
|
||
| 质量门禁 | 完成后 `go build ./...` 并通过本模块测试 |
|
||
|
||
## 任务队列
|
||
|
||
| ID | 板块 | 状态 | 负责文件 |
|
||
|---|---|---|---|
|
||
| T-AUTH | 认证/用户/OAuth/Cap | ✅ 完成 | `legacy/register_auth.go`, `openflare/auth/`, `legacy/auth_*.go` |
|
||
| T-OPTION | 状态/公告/Option | ✅ 完成 | `legacy/register_option.go`, `openflare/option/` |
|
||
| T-ORIGIN | 源站 | ✅ 完成 | `legacy/register_origin.go`, `openflare/origin/` |
|
||
| T-APPLYLOG | 应用日志 | ✅ 完成 | `legacy/register_apply_log.go`, `openflare/apply_log/` |
|
||
| T-PROXY | 代理规则 | ✅ 完成 | `legacy/register_proxy_route.go`, `openflare/proxy_route/` |
|
||
| T-NODE | 节点管理 | ✅ 完成 | `legacy/register_node.go`, `openflare/node/` |
|
||
| T-WAF | WAF | ✅ 完成 | `legacy/register_waf.go`, `openflare/waf/` |
|
||
| T-TLS | TLS/证书/域名/DNS | ✅ 完成 | `legacy/register_tls.go`, `openflare/tls/` |
|
||
| T-CFGVER | 配置版本 | ✅ 完成 | `legacy/register_config_version.go`, `openflare/config_version/` |
|
||
| T-AGENT | Agent API + WS | ✅ 完成 | `legacy/register_agent.go`, `openflare/agent/`, `openflare/websocket/` |
|
||
| T-PAGES | Pages 托管 | ✅ 完成 | `legacy/register_pages.go`, `openflare/pages/` |
|
||
| T-RELAY | Relay + Flared | ✅ 完成 | `legacy/register_relay_flared.go`, `openflare/relay/`, `openflare/flared/` |
|
||
| T-OBS | 仪表盘 + 可观测 | ✅ 完成 | `legacy/register_dashboard_obs.go`, `openflare/dashboard/`, `openflare/observability/` |
|
||
| T-MISC | 升级/GeoIP/UptimeKuma | ✅ 完成 | `legacy/register_misc.go`, `openflare/update/`, `openflare/geoip/` |
|
||
|
||
## 集成测试结果(2026-06-19)
|
||
|
||
| 测试包 | 场景 | 结果 |
|
||
|---|---|---|
|
||
| `integration/auth_option_test.go` | 登录/self/option 权限/热重载 | ✅ 5/5 |
|
||
| `integration/core_chain_test.go` | 源站→规则→发布→节点→apply-log | ✅ 6/6 |
|
||
| `integration/security_test.go` | WAF/TLS/域名/DNS | ✅ 7/7 |
|
||
| `integration/agent_protocol_test.go` | Agent/Relay/Flared 协议 | ✅ 5/5 |
|
||
|
||
```bash
|
||
go test ./internal/apps/openflare/... -count=1 # 全部通过
|
||
```
|
||
|
||
**依赖修复(2026-06-19)**:`replace github.com/rain-kl/openflare => ../` 会引入 OpenFlare 根 `go.mod` 的 `gomodule/redigo v2.0.0+incompatible`,与 `gin-contrib/sessions/redistore` 不兼容。已在 `Wavelet/go.mod` 添加 `exclude` 并锁定 `redigo v1.9.3`,`go build ./...` 正常。
|
||
|
||
## 源代码参考
|
||
|
||
- 旧后端:`openflare-server/internal/controller/`、`service/`、`model/`
|
||
- 迁移计划:`docs/plan/20260618-openflare-wavelet-backend-migration.md`
|
||
- Wavelet 规范:`Wavelet/AGENTS.md` |