mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-09 09:06:36 +08:00
refactor(backend): rename OpenFlare directory to lowercase openflare
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# OpenFlare 下游树
|
||||
|
||||
本目录占据上游 `backend/downstream/` 的位置,存放 OpenFlare 的全部业务,
|
||||
按功能职责拆为 **4 个插件 + 1 个共享层**。上游目录
|
||||
(`backend/{core,pkg,plugins}`)通过 `git fetch wavelet && git merge wavelet/main`
|
||||
吸收(第一次接线已 merge `wavelet/feat/cordis-alignment`,待该分支合入上游 main
|
||||
后改走 `wavelet/main`)。本目录、`frontend/` 与 `backend/cmd` 由本仓库持有。
|
||||
合并前请 `git config include.path ../.gitconfig`(或 worktree 安全写法
|
||||
`git config include.path "$(git rev-parse --show-toplevel)/.gitconfig"`),
|
||||
以启用 `.gitattributes` 的 `merge=ours`。
|
||||
|
||||
```
|
||||
backend/openflare/
|
||||
├── plugins/
|
||||
│ ├── server/ # 控制面插件:站点/区域/Cloudflare/Pages/WAF/节点/回源/健康/配置版本
|
||||
│ │ ├── openflare/ admin/ oauth/ user/ upload/ cap/ config/ health/ # 业务域
|
||||
│ │ ├── repository/ model/ infra/ shared/ pkg/ # 支撑层
|
||||
│ │ └── router/ platform/ listener/ integration/ testhelper/ # 装配与接线
|
||||
│ ├── agent/ # 边缘 nginx/WAF 代理守护进程插件
|
||||
│ ├── relay/ # frps 中继守护进程插件
|
||||
│ └── flared/ # frpc 隧道客户端守护进程插件
|
||||
└── share/ # 插件间共享资源(见 share/README.md)
|
||||
```
|
||||
|
||||
装配根在 `backend/cmd`(与上游同构):`main.go` + `cmd/*.go` 为 server 的
|
||||
api/worker/schedule/all profile 入口,`cmd/{agent,relay,flared}/main.go` 为三个
|
||||
守护进程入口。
|
||||
|
||||
## 依赖规则
|
||||
|
||||
1. `plugins/<A>` 与 `plugins/<B>` 之间禁止互相 import;需要协作时走 `core/contracts`
|
||||
或 `ctx.Events()`。
|
||||
2. 插件只允许 import 本插件内部包、`Wavelet/core`、`Wavelet/core/contracts`、
|
||||
`Wavelet/pkg` 与 `Wavelet/openflare/share`。
|
||||
3. `share/` 禁止 import 任何插件实现与下游业务包。
|
||||
4. 表单一所有者:`of_*` 全部由 `server` 插件建表与读写;`w_*` 由上游平台插件拥有,
|
||||
下游只能经契约或事件访问。
|
||||
|
||||
## 收敛路线
|
||||
|
||||
- 已完成:`agent`/`relay`/`flared` 各有 `plugin.go` 实现 `core.Plugin` + `core.Driver`
|
||||
(`DriverTypeAgent`/`DriverTypeRelay`/`DriverTypeFlared`),入口 `backend/cmd/{agent,relay,flared}/main.go`
|
||||
已改为 `core.NewApp(core.WithProfile(...))` + `app.Run()` 装配,`-config` 旗标、
|
||||
默认路径、退出码与启动日志保持原样;JSON 配置由各插件 `Apply` 自行加载。
|
||||
- 已完成:`server/plugin.go` 实现 `core.Plugin`,`Apply` 以 `ctx.Router().Group(api_prefix)`
|
||||
声明根级与 `/v1` 全部路由;`router.Serve` 已删除,装配根改为
|
||||
`core.App` + `driver_http.New(WithEngine(router.BuildEngine()))`,监听与优雅退出归内核。
|
||||
路由保真由 `plugin_parity_test.go` 对拍 `baseline/routes-engine.txt`(256 条方法+路径)保证。
|
||||
- 待办:`platform/bootstrap` 的任务、设置与迁移注册迁入 `Apply`;各业务域按插件标准
|
||||
分层规范收敛到 `handler/ service/ repository/ model/ errs/ migrations/`(模式 2);
|
||||
引擎级中间件、NoRoute 前端兜底与白名单生效三项能力回流上游后,去掉
|
||||
`BuildEngine` 交给 `WithEngine` 这一例外。
|
||||
Reference in New Issue
Block a user