refactor(backend): rename OpenFlare directory to lowercase openflare

This commit is contained in:
ryan
2026-08-30 17:43:23 +08:00
parent 06d5fedbfc
commit c93ff6674f
543 changed files with 819 additions and 819 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
* -text
backend/OpenFlare/** merge=ours
backend/openflare/** merge=ours
frontend/** merge=ours
docs/changelog/** merge=ours
docs/superpowers/** merge=ours
+1 -1
View File
@@ -93,4 +93,4 @@ backend/plugins/**/uploads/
backend/plugins/**/dist/
backend/core/**/dist/
backend/pkg/**/uploads/
/backend/OpenFlare/plugins/server/upload/filesrv/uploads/
/backend/openflare/plugins/server/upload/filesrv/uploads/
+6 -6
View File
@@ -87,15 +87,15 @@ Strong success criteria let you loop independently. Weak criteria ("make it work
- 触碰框架目录 `backend/{core,pkg,plugins}` 前,先判断能力归属:
- **通用能力**(与 OpenFlare 业务无关、任何下游都用得上)→ 必须同步在 **Wavelet 上游**完成修改,
本仓库通过 `git fetch wavelet && git merge wavelet/main` 取得,不得长期持有本地补丁。
- **非通用能力**(OpenFlare 业务特有)→ 在自己的插件内(`backend/OpenFlare/plugins/<name>/`)实现,
- **非通用能力**(OpenFlare 业务特有)→ 在自己的插件内(`backend/openflare/plugins/<name>/`)实现,
或新建一个下游插件,禁止塞进上游目录。
- 开发下游功能优先**复用上游已有能力**(`core/contracts`、`backend/plugins/*`、`backend/pkg/*`);
发现上游已提供而下游仍保留本地副本的,删除本地副本改为复用,或把差量回流上游。
- 上游暂缺而确属通用能力时,可先在本仓库实现并登记到 `backend/OpenFlare/upstream-patches.md`
- 上游暂缺而确属通用能力时,可先在本仓库实现并登记到 `backend/openflare/upstream-patches.md`
(merge 上游后请确认补丁仍在),回流 Wavelet 后删除登记并重新 merge。
- 禁止删除 `frontend/node_modules`。
- `backend/pkg/util/` 保持纯净:禁止导入 Gin、GORM、sessions 等 HTTP/Web/DB 框架(会话选项在 `backend/OpenFlare/plugins/server/oauth/session.go`)。
- `backend/pkg/util/` 保持纯净:禁止导入 Gin、GORM、sessions 等 HTTP/Web/DB 框架(会话选项在 `backend/openflare/plugins/server/oauth/session.go`)。
- 测试临时目录只用 `t.TempDir()`,禁止硬编码相对路径写源码树。
- HTTP 路由只由插件在 `Apply` 中经 `ctx.Router()` 声明;`router.BuildEngine()` 只挂引擎级中间件与前端 SPA 兜底,禁止进程级初始化(如 `SyncEvents`、`InitLogWriter`)。
- API 变更后:`make swagger`;开发完成:`make code-check`;提交前:`make format`。
@@ -104,9 +104,9 @@ Strong success criteria let you loop independently. Weak criteria ("make it work
- **分层**:`apps → repository → model`,`repository → infra/persistence`;禁止 `model → repository`。
- `model`:实体、表名、配置 key、查询 DTO、无 IO 规则。禁止 `db.DB` / Redis / CH;禁止 `import repository`。GORM hook 仅可 mutate 自身字段,禁止在 hook 内再查 DB/缓存。
- `repository`:唯一持久化入口。apps/logics 禁止为业务 CRUD 直调 `db.DB`(管理端 SQL 控制台、infra 内部等例外保留)。禁止新增 `model.Get/List/Create/...` 类数据访问 API。
- 日志/分析表(节点访问日志、用户访问日志、可观测时序)走 `backend/OpenFlare/plugins/server/kernel/repository/logstore`,禁止 apps 直连 `repository/analytics` 或 `db.ChConn`/`db.ChDB`。判定与接入步骤见 `logstore` skill。
- 跨模块集成(任务 Handler、推送事件、域监听、完成钩子)禁止 `init()` 注册;经 `backend/OpenFlare/plugins/server/platform/bootstrap` 在 `backend/cmd` 入口显式装配。
- 核心业务(如 `oauth`、`user`)禁止直接 import push/custom_events;经 `backend/OpenFlare/plugins/server/listener` 发域事件,push 在 bootstrap 订阅。
- 日志/分析表(节点访问日志、用户访问日志、可观测时序)走 `backend/openflare/plugins/server/kernel/repository/logstore`,禁止 apps 直连 `repository/analytics` 或 `db.ChConn`/`db.ChDB`。判定与接入步骤见 `logstore` skill。
- 跨模块集成(任务 Handler、推送事件、域监听、完成钩子)禁止 `init()` 注册;经 `backend/openflare/plugins/server/platform/bootstrap` 在 `backend/cmd` 入口显式装配。
- 核心业务(如 `oauth`、`user`)禁止直接 import push/custom_events;经 `backend/openflare/plugins/server/listener` 发域事件,push 在 bootstrap 订阅。
- 依赖任务/推送注册的测试须显式 `bootstrap.RegisterTasks()` / `RegisterPushDomainEvents()` 等,不依赖 `init()`。
- API 错误必须 `response.Abort*` + `ErrorHandlerMiddleware`;禁止 Handler 直接 `c.JSON(..., response.Err(...))` 或用 HTTP 200 表示失败。
+1 -1
View File
@@ -22,7 +22,7 @@
## 合并上游
`.gitattributes` 对 `backend/OpenFlare/`、`frontend/` 等路径使用 `merge=ours`。该驱动不会自动生效,请在仓库根目录执行一次:
`.gitattributes` 对 `backend/openflare/`、`frontend/` 等路径使用 `merge=ours`。该驱动不会自动生效,请在仓库根目录执行一次:
```bash
git config include.path ../.gitconfig
+4 -4
View File
@@ -41,7 +41,7 @@ build-embedded:
code-check:
@echo "==> Architecture guards..."
@command -v rg >/dev/null 2>&1 || { echo 'error: rg (ripgrep) is required for architecture guards' >&2; exit 1; }
@if rg -n 'db\.DB\(|db\.Redis' backend/OpenFlare/plugins/server/model --glob '*.go' -g '!*_test.go' ; then \
@if rg -n 'db\.DB\(|db\.Redis' backend/openflare/plugins/server/kernel/model --glob '*.go' -g '!*_test.go' ; then \
echo 'error: internal/model must not access db.DB or db.Redis (non-test code)' >&2; \
exit 1; \
fi
@@ -58,21 +58,21 @@ build-backend:
build-agent:
@echo "==> Building agent version=$(VERSION)..."
cd backend && go build \
-ldflags "-s -w -X '$(MODULE)/OpenFlare/plugins/agent/config.Version=$(VERSION)'" \
-ldflags "-s -w -X '$(MODULE)/openflare/plugins/agent/config.Version=$(VERSION)'" \
-o ../bin/openflare-agent \
cmd/agent/main.go
build-relay:
@echo "==> Building relay version=$(VERSION)..."
cd backend && go build \
-ldflags "-s -w -X '$(MODULE)/OpenFlare/plugins/relay/config.Version=$(VERSION)'" \
-ldflags "-s -w -X '$(MODULE)/openflare/plugins/relay/config.Version=$(VERSION)'" \
-o ../bin/openflare-relay \
cmd/relay/main.go
build-flared:
@echo "==> Building flared version=$(VERSION)..."
cd backend && go build \
-ldflags "-s -w -X '$(MODULE)/OpenFlare/plugins/flared/config.Version=$(VERSION)'" \
-ldflags "-s -w -X '$(MODULE)/openflare/plugins/flared/config.Version=$(VERSION)'" \
-o ../bin/flared \
cmd/flared/main.go
+2 -2
View File
@@ -10,9 +10,9 @@ import (
"os"
"time"
agentplugin "Wavelet/OpenFlare/plugins/agent"
"Wavelet/OpenFlare/plugins/agent/logging"
"Wavelet/core"
agentplugin "Wavelet/openflare/plugins/agent"
"Wavelet/openflare/plugins/agent/logging"
)
// shutdownTimeout 为 openresty 收敛与在途配置同步预留的退出窗口。
+2 -2
View File
@@ -4,10 +4,10 @@
package cmd
import (
ofserver "Wavelet/OpenFlare/plugins/server"
"Wavelet/OpenFlare/plugins/server/migrate"
"Wavelet/core"
"Wavelet/core/contracts"
ofserver "Wavelet/openflare/plugins/server"
"Wavelet/openflare/plugins/server/migrate"
"Wavelet/plugins/domain/admin"
"Wavelet/plugins/domain/auth"
"Wavelet/plugins/domain/cap"
+2 -2
View File
@@ -10,9 +10,9 @@ import (
"os"
"time"
flaredplugin "Wavelet/OpenFlare/plugins/flared"
edgelogging "Wavelet/OpenFlare/share/edge/logging"
"Wavelet/core"
flaredplugin "Wavelet/openflare/plugins/flared"
edgelogging "Wavelet/openflare/share/edge/logging"
)
// shutdownTimeout 为 frpc 子进程收敛预留的退出窗口。
+2 -2
View File
@@ -10,9 +10,9 @@ import (
"os"
"time"
relayplugin "Wavelet/OpenFlare/plugins/relay"
edgelogging "Wavelet/OpenFlare/share/edge/logging"
"Wavelet/core"
relayplugin "Wavelet/openflare/plugins/relay"
edgelogging "Wavelet/openflare/share/edge/logging"
)
// shutdownTimeout 为 frps 子进程收敛预留的退出窗口。
+23 -23
View File
@@ -4652,7 +4652,7 @@ const docTemplate = `{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.PagesDeploymentHashResponse"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.PagesDeploymentHashResponse"
}
}
}
@@ -4756,7 +4756,7 @@ const docTemplate = `{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.PagesProjectLatestHashResponse"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.PagesProjectLatestHashResponse"
}
}
}
@@ -14974,7 +14974,7 @@ const docTemplate = `{
}
},
"definitions": {
"Wavelet_OpenFlare_share_protocol.ActiveConfigMeta": {
"Wavelet_openflare_share_protocol.ActiveConfigMeta": {
"type": "object",
"properties": {
"checksum": {
@@ -14985,27 +14985,27 @@ const docTemplate = `{
}
}
},
"Wavelet_OpenFlare_share_protocol.BufferedObservabilityRecord": {
"Wavelet_openflare_share_protocol.BufferedObservabilityRecord": {
"type": "object",
"properties": {
"access_logs": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeAccessLog"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeAccessLog"
}
},
"captured_at_unix": {
"type": "integer"
},
"edge_health": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeEdgeHealth"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeEdgeHealth"
},
"host_metrics": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeMetricSnapshot"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeMetricSnapshot"
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeAccessLog": {
"Wavelet_openflare_share_protocol.NodeAccessLog": {
"type": "object",
"properties": {
"bytes_sent": {
@@ -15044,7 +15044,7 @@ const docTemplate = `{
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeEdgeHealth": {
"Wavelet_openflare_share_protocol.NodeEdgeHealth": {
"type": "object",
"properties": {
"captured_at_unix": {
@@ -15061,7 +15061,7 @@ const docTemplate = `{
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeHealthEvent": {
"Wavelet_openflare_share_protocol.NodeHealthEvent": {
"type": "object",
"properties": {
"event_type": {
@@ -15084,7 +15084,7 @@ const docTemplate = `{
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeMetricSnapshot": {
"Wavelet_openflare_share_protocol.NodeMetricSnapshot": {
"type": "object",
"properties": {
"captured_at_unix": {
@@ -15113,7 +15113,7 @@ const docTemplate = `{
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeSystemProfile": {
"Wavelet_openflare_share_protocol.NodeSystemProfile": {
"type": "object",
"properties": {
"architecture": {
@@ -15151,7 +15151,7 @@ const docTemplate = `{
}
}
},
"Wavelet_OpenFlare_share_protocol.PagesDeploymentHashResponse": {
"Wavelet_openflare_share_protocol.PagesDeploymentHashResponse": {
"type": "object",
"properties": {
"deployment_id": {
@@ -15162,7 +15162,7 @@ const docTemplate = `{
}
}
},
"Wavelet_OpenFlare_share_protocol.PagesProjectLatestHashResponse": {
"Wavelet_openflare_share_protocol.PagesProjectLatestHashResponse": {
"type": "object",
"properties": {
"deployment_id": {
@@ -15185,7 +15185,7 @@ const docTemplate = `{
}
}
},
"Wavelet_OpenFlare_share_protocol.WAFIPGroup": {
"Wavelet_openflare_share_protocol.WAFIPGroup": {
"type": "object",
"properties": {
"checksum": {
@@ -15451,20 +15451,20 @@ const docTemplate = `{
"access_logs": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeAccessLog"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeAccessLog"
}
},
"buffered": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.BufferedObservabilityRecord"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.BufferedObservabilityRecord"
}
},
"current_version": {
"type": "string"
},
"edge_health": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeEdgeHealth"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeEdgeHealth"
},
"ext_version": {
"type": "string"
@@ -15472,11 +15472,11 @@ const docTemplate = `{
"health_events": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeHealthEvent"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeHealthEvent"
}
},
"host_metrics": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeMetricSnapshot"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeMetricSnapshot"
},
"ip": {
"type": "string"
@@ -15497,7 +15497,7 @@ const docTemplate = `{
"type": "string"
},
"profile": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeSystemProfile"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeSystemProfile"
},
"schema_version": {
"type": "integer"
@@ -15616,7 +15616,7 @@ const docTemplate = `{
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.WAFIPGroup"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.WAFIPGroup"
}
}
}
@@ -16553,7 +16553,7 @@ const docTemplate = `{
"type": "object",
"properties": {
"active_config": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.ActiveConfigMeta"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.ActiveConfigMeta"
},
"tunnel_settings": {
"$ref": "#/definitions/protocol.RelaySettings"
+23 -23
View File
@@ -4645,7 +4645,7 @@
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.PagesDeploymentHashResponse"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.PagesDeploymentHashResponse"
}
}
}
@@ -4749,7 +4749,7 @@
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.PagesProjectLatestHashResponse"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.PagesProjectLatestHashResponse"
}
}
}
@@ -14967,7 +14967,7 @@
}
},
"definitions": {
"Wavelet_OpenFlare_share_protocol.ActiveConfigMeta": {
"Wavelet_openflare_share_protocol.ActiveConfigMeta": {
"type": "object",
"properties": {
"checksum": {
@@ -14978,27 +14978,27 @@
}
}
},
"Wavelet_OpenFlare_share_protocol.BufferedObservabilityRecord": {
"Wavelet_openflare_share_protocol.BufferedObservabilityRecord": {
"type": "object",
"properties": {
"access_logs": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeAccessLog"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeAccessLog"
}
},
"captured_at_unix": {
"type": "integer"
},
"edge_health": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeEdgeHealth"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeEdgeHealth"
},
"host_metrics": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeMetricSnapshot"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeMetricSnapshot"
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeAccessLog": {
"Wavelet_openflare_share_protocol.NodeAccessLog": {
"type": "object",
"properties": {
"bytes_sent": {
@@ -15037,7 +15037,7 @@
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeEdgeHealth": {
"Wavelet_openflare_share_protocol.NodeEdgeHealth": {
"type": "object",
"properties": {
"captured_at_unix": {
@@ -15054,7 +15054,7 @@
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeHealthEvent": {
"Wavelet_openflare_share_protocol.NodeHealthEvent": {
"type": "object",
"properties": {
"event_type": {
@@ -15077,7 +15077,7 @@
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeMetricSnapshot": {
"Wavelet_openflare_share_protocol.NodeMetricSnapshot": {
"type": "object",
"properties": {
"captured_at_unix": {
@@ -15106,7 +15106,7 @@
}
}
},
"Wavelet_OpenFlare_share_protocol.NodeSystemProfile": {
"Wavelet_openflare_share_protocol.NodeSystemProfile": {
"type": "object",
"properties": {
"architecture": {
@@ -15144,7 +15144,7 @@
}
}
},
"Wavelet_OpenFlare_share_protocol.PagesDeploymentHashResponse": {
"Wavelet_openflare_share_protocol.PagesDeploymentHashResponse": {
"type": "object",
"properties": {
"deployment_id": {
@@ -15155,7 +15155,7 @@
}
}
},
"Wavelet_OpenFlare_share_protocol.PagesProjectLatestHashResponse": {
"Wavelet_openflare_share_protocol.PagesProjectLatestHashResponse": {
"type": "object",
"properties": {
"deployment_id": {
@@ -15178,7 +15178,7 @@
}
}
},
"Wavelet_OpenFlare_share_protocol.WAFIPGroup": {
"Wavelet_openflare_share_protocol.WAFIPGroup": {
"type": "object",
"properties": {
"checksum": {
@@ -15444,20 +15444,20 @@
"access_logs": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeAccessLog"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeAccessLog"
}
},
"buffered": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.BufferedObservabilityRecord"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.BufferedObservabilityRecord"
}
},
"current_version": {
"type": "string"
},
"edge_health": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeEdgeHealth"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeEdgeHealth"
},
"ext_version": {
"type": "string"
@@ -15465,11 +15465,11 @@
"health_events": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeHealthEvent"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeHealthEvent"
}
},
"host_metrics": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeMetricSnapshot"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeMetricSnapshot"
},
"ip": {
"type": "string"
@@ -15490,7 +15490,7 @@
"type": "string"
},
"profile": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.NodeSystemProfile"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.NodeSystemProfile"
},
"schema_version": {
"type": "integer"
@@ -15609,7 +15609,7 @@
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.WAFIPGroup"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.WAFIPGroup"
}
}
}
@@ -16546,7 +16546,7 @@
"type": "object",
"properties": {
"active_config": {
"$ref": "#/definitions/Wavelet_OpenFlare_share_protocol.ActiveConfigMeta"
"$ref": "#/definitions/Wavelet_openflare_share_protocol.ActiveConfigMeta"
},
"tunnel_settings": {
"$ref": "#/definitions/protocol.RelaySettings"
+23 -23
View File
@@ -1,26 +1,26 @@
basePath: /
definitions:
Wavelet_OpenFlare_share_protocol.ActiveConfigMeta:
Wavelet_openflare_share_protocol.ActiveConfigMeta:
properties:
checksum:
type: string
version:
type: string
type: object
Wavelet_OpenFlare_share_protocol.BufferedObservabilityRecord:
Wavelet_openflare_share_protocol.BufferedObservabilityRecord:
properties:
access_logs:
items:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.NodeAccessLog'
$ref: '#/definitions/Wavelet_openflare_share_protocol.NodeAccessLog'
type: array
captured_at_unix:
type: integer
edge_health:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.NodeEdgeHealth'
$ref: '#/definitions/Wavelet_openflare_share_protocol.NodeEdgeHealth'
host_metrics:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.NodeMetricSnapshot'
$ref: '#/definitions/Wavelet_openflare_share_protocol.NodeMetricSnapshot'
type: object
Wavelet_OpenFlare_share_protocol.NodeAccessLog:
Wavelet_openflare_share_protocol.NodeAccessLog:
properties:
bytes_sent:
description: body bytes = 已提供数据
@@ -47,7 +47,7 @@ definitions:
user_agent:
type: string
type: object
Wavelet_OpenFlare_share_protocol.NodeEdgeHealth:
Wavelet_openflare_share_protocol.NodeEdgeHealth:
properties:
captured_at_unix:
type: integer
@@ -58,7 +58,7 @@ definitions:
status:
type: string
type: object
Wavelet_OpenFlare_share_protocol.NodeHealthEvent:
Wavelet_openflare_share_protocol.NodeHealthEvent:
properties:
event_type:
type: string
@@ -73,7 +73,7 @@ definitions:
triggered_at_unix:
type: integer
type: object
Wavelet_OpenFlare_share_protocol.NodeMetricSnapshot:
Wavelet_openflare_share_protocol.NodeMetricSnapshot:
properties:
captured_at_unix:
type: integer
@@ -92,7 +92,7 @@ definitions:
storage_used_bytes:
type: integer
type: object
Wavelet_OpenFlare_share_protocol.NodeSystemProfile:
Wavelet_openflare_share_protocol.NodeSystemProfile:
properties:
architecture:
type: string
@@ -117,14 +117,14 @@ definitions:
uptime_seconds:
type: integer
type: object
Wavelet_OpenFlare_share_protocol.PagesDeploymentHashResponse:
Wavelet_openflare_share_protocol.PagesDeploymentHashResponse:
properties:
deployment_id:
type: integer
hash:
type: string
type: object
Wavelet_OpenFlare_share_protocol.PagesProjectLatestHashResponse:
Wavelet_openflare_share_protocol.PagesProjectLatestHashResponse:
properties:
deployment_id:
type: integer
@@ -139,7 +139,7 @@ definitions:
total_size:
type: integer
type: object
Wavelet_OpenFlare_share_protocol.WAFIPGroup:
Wavelet_openflare_share_protocol.WAFIPGroup:
properties:
checksum:
type: string
@@ -314,24 +314,24 @@ definitions:
properties:
access_logs:
items:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.NodeAccessLog'
$ref: '#/definitions/Wavelet_openflare_share_protocol.NodeAccessLog'
type: array
buffered:
items:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.BufferedObservabilityRecord'
$ref: '#/definitions/Wavelet_openflare_share_protocol.BufferedObservabilityRecord'
type: array
current_version:
type: string
edge_health:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.NodeEdgeHealth'
$ref: '#/definitions/Wavelet_openflare_share_protocol.NodeEdgeHealth'
ext_version:
type: string
health_events:
items:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.NodeHealthEvent'
$ref: '#/definitions/Wavelet_openflare_share_protocol.NodeHealthEvent'
type: array
host_metrics:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.NodeMetricSnapshot'
$ref: '#/definitions/Wavelet_openflare_share_protocol.NodeMetricSnapshot'
ip:
type: string
last_error:
@@ -345,7 +345,7 @@ definitions:
openresty_status:
type: string
profile:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.NodeSystemProfile'
$ref: '#/definitions/Wavelet_openflare_share_protocol.NodeSystemProfile'
schema_version:
type: integer
version:
@@ -422,7 +422,7 @@ definitions:
properties:
groups:
items:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.WAFIPGroup'
$ref: '#/definitions/Wavelet_openflare_share_protocol.WAFIPGroup'
type: array
type: object
apply_log.CleanupInput:
@@ -1037,7 +1037,7 @@ definitions:
flared.HeartbeatResponse:
properties:
active_config:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.ActiveConfigMeta'
$ref: '#/definitions/Wavelet_openflare_share_protocol.ActiveConfigMeta'
tunnel_settings:
$ref: '#/definitions/protocol.RelaySettings'
type: object
@@ -7054,7 +7054,7 @@ paths:
- $ref: '#/definitions/response.Any'
- properties:
data:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.PagesDeploymentHashResponse'
$ref: '#/definitions/Wavelet_openflare_share_protocol.PagesDeploymentHashResponse'
type: object
"400":
description: 参数错误
@@ -7117,7 +7117,7 @@ paths:
- $ref: '#/definitions/response.Any'
- properties:
data:
$ref: '#/definitions/Wavelet_OpenFlare_share_protocol.PagesProjectLatestHashResponse'
$ref: '#/definitions/Wavelet_openflare_share_protocol.PagesProjectLatestHashResponse'
type: object
"400":
description: 参数错误
@@ -10,7 +10,7 @@
以启用 `.gitattributes` 的 `merge=ours`。
```
backend/OpenFlare/
backend/openflare/
├── plugins/
│ ├── server/ # 控制面插件:站点/区域/Cloudflare/Pages/WAF/节点/回源/健康/配置版本
│ │ ├── openflare/ admin/ oauth/ user/ upload/ cap/ config/ health/ # 业务域
@@ -31,7 +31,7 @@ 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`。
`Wavelet/pkg` 与 `Wavelet/openflare/share`。
3. `share/` 禁止 import 任何插件实现与下游业务包。
4. 表单一所有者:`of_*` 全部由 `server` 插件建表与读写;`w_*` 由上游平台插件拥有,
下游只能经契约或事件访问。
@@ -12,12 +12,12 @@ import (
"strings"
"time"
"Wavelet/OpenFlare/plugins/agent/config"
agentheartbeat "Wavelet/OpenFlare/plugins/agent/heartbeat"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/OpenFlare/plugins/agent/wsclient"
edgeheartbeat "Wavelet/OpenFlare/share/edge/heartbeat"
"Wavelet/openflare/plugins/agent/config"
agentheartbeat "Wavelet/openflare/plugins/agent/heartbeat"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
"Wavelet/openflare/plugins/agent/wsclient"
edgeheartbeat "Wavelet/openflare/share/edge/heartbeat"
"Wavelet/pkg/util"
)
@@ -13,11 +13,11 @@ import (
"testing"
"time"
"Wavelet/OpenFlare/plugins/agent/config"
agentheartbeat "Wavelet/OpenFlare/plugins/agent/heartbeat"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/OpenFlare/plugins/agent/updater"
"Wavelet/openflare/plugins/agent/config"
agentheartbeat "Wavelet/openflare/plugins/agent/heartbeat"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
"Wavelet/openflare/plugins/agent/updater"
)
func withHeartbeatCycle(runner *Runner, observabilityBuffer *state.ObservabilityBufferStore) *Runner {
@@ -15,8 +15,8 @@ import (
"strings"
"time"
"Wavelet/OpenFlare/share/edge/nodeip"
"Wavelet/OpenFlare/share/ofutil"
"Wavelet/openflare/share/edge/nodeip"
"Wavelet/openflare/share/ofutil"
)
const (
@@ -13,9 +13,9 @@ import (
"testing"
"time"
"Wavelet/OpenFlare/share/edge/nodeip"
"Wavelet/OpenFlare/share/geoip"
"Wavelet/OpenFlare/share/geoip/iputil"
"Wavelet/openflare/share/edge/nodeip"
"Wavelet/openflare/share/geoip"
"Wavelet/openflare/share/geoip/iputil"
)
func TestLoadDefaultsToManagedBinaryPaths(t *testing.T) {
@@ -3,7 +3,7 @@
package config
import edgeconfig "Wavelet/OpenFlare/share/edge/config"
import edgeconfig "Wavelet/openflare/share/edge/config"
// MillisecondDuration is an alias for the edge config millisecond-precision duration type.
type MillisecondDuration = edgeconfig.MillisecondDuration
@@ -13,7 +13,7 @@ import (
"path/filepath"
"time"
"Wavelet/OpenFlare/share/geoip"
"Wavelet/openflare/share/geoip"
)
// Updater periodically downloads a fresh GeoIP MMDB file and seeds missing
@@ -11,13 +11,13 @@ import (
"strings"
"time"
"Wavelet/OpenFlare/plugins/agent/config"
"Wavelet/OpenFlare/plugins/agent/observability"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/OpenFlare/plugins/agent/updater"
edgeheartbeat "Wavelet/OpenFlare/share/edge/heartbeat"
"Wavelet/OpenFlare/share/edge/nodeip"
"Wavelet/openflare/plugins/agent/config"
"Wavelet/openflare/plugins/agent/observability"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
"Wavelet/openflare/plugins/agent/updater"
edgeheartbeat "Wavelet/openflare/share/edge/heartbeat"
"Wavelet/openflare/share/edge/nodeip"
)
// SyncService is the interface used by Cycle to sync active configuration and WAF IP groups.
@@ -6,7 +6,7 @@ package heartbeat
import (
"context"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/protocol"
)
// RemoteClient is the interface that abstracts the remote API calls performed by Service.
@@ -13,8 +13,8 @@ import (
"net/http"
"time"
"Wavelet/OpenFlare/plugins/agent/protocol"
edgehttp "Wavelet/OpenFlare/share/edge/httpclient"
"Wavelet/openflare/plugins/agent/protocol"
edgehttp "Wavelet/openflare/share/edge/httpclient"
)
const pagesControlResponseMaxBytes = int64(64 * 1024)
@@ -4,7 +4,7 @@
// Package logging configures structured logging for the agent process.
package logging
import edgelogging "Wavelet/OpenFlare/share/edge/logging"
import edgelogging "Wavelet/openflare/share/edge/logging"
// Setup initialises structured logging for the agent process.
func Setup() {
@@ -26,12 +26,12 @@ import (
"sync"
"time"
"Wavelet/OpenFlare/share/ofutil"
sharedprotocol "Wavelet/OpenFlare/share/protocol"
openrestyrender "Wavelet/OpenFlare/share/render/openresty"
"Wavelet/openflare/share/ofutil"
sharedprotocol "Wavelet/openflare/share/protocol"
openrestyrender "Wavelet/openflare/share/render/openresty"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/runtimeuser"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/runtimeuser"
)
// RuntimeConfigDirPlaceholder is substituted into generated configs at apply time.
@@ -16,9 +16,9 @@ import (
"strings"
"testing"
"Wavelet/OpenFlare/plugins/agent/protocol"
sharedprotocol "Wavelet/OpenFlare/share/protocol"
openrestyrender "Wavelet/OpenFlare/share/render/openresty"
"Wavelet/openflare/plugins/agent/protocol"
sharedprotocol "Wavelet/openflare/share/protocol"
openrestyrender "Wavelet/openflare/share/render/openresty"
)
type runCall struct {
@@ -3,7 +3,7 @@
package nginx
import "Wavelet/OpenFlare/plugins/agent/protocol"
import "Wavelet/openflare/plugins/agent/protocol"
// Local OpenResty observability endpoint (target model):
// GET /openflare/observability returns instantaneous health/connections only.
@@ -8,7 +8,7 @@ import (
"path/filepath"
"strings"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/protocol"
)
//go:embed pow_static

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

@@ -4,7 +4,7 @@
package nginx
import (
"Wavelet/OpenFlare/plugins/agent/runtimeuser"
"Wavelet/openflare/plugins/agent/runtimeuser"
)
// OpenFlareRuntimeUser is the shared OS account for the agent process and
@@ -4,7 +4,7 @@
package nginx
import (
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/protocol"
)
const openRestySWRuntimeLua = `local _M = {}
@@ -6,7 +6,7 @@ package nginx
import (
_ "embed"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/protocol"
)
//go:embed waf_runtime.lua
@@ -13,10 +13,10 @@ import (
"strings"
"time"
"Wavelet/OpenFlare/plugins/agent/config"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
edgeobs "Wavelet/OpenFlare/share/edge/observability"
"Wavelet/openflare/plugins/agent/config"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
edgeobs "Wavelet/openflare/share/edge/observability"
)
const nodeHealthEventInitialCapacity = 2
@@ -10,7 +10,7 @@ import (
"net/http"
"time"
"Wavelet/OpenFlare/plugins/agent/config"
"Wavelet/openflare/plugins/agent/config"
)
const openRestyObservabilityPath = "/openflare/observability"
@@ -9,7 +9,7 @@ import (
"net/http/httptest"
"testing"
"Wavelet/OpenFlare/plugins/agent/config"
"Wavelet/openflare/plugins/agent/config"
)
func TestCollectEdgeHealth(t *testing.T) {
@@ -15,9 +15,9 @@ import (
"strings"
"time"
"Wavelet/OpenFlare/plugins/agent/config"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/openflare/plugins/agent/config"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
)
type accessLogRecord struct {
@@ -9,8 +9,8 @@ import (
"strings"
"testing"
"Wavelet/OpenFlare/plugins/agent/config"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/openflare/plugins/agent/config"
"Wavelet/openflare/plugins/agent/state"
)
func TestCollectAccessLogsReturnsFactsOnly(t *testing.T) {
@@ -11,18 +11,18 @@ import (
"fmt"
"log/slog"
"Wavelet/OpenFlare/plugins/agent/agent"
"Wavelet/OpenFlare/plugins/agent/config"
"Wavelet/OpenFlare/plugins/agent/geoipupdate"
"Wavelet/OpenFlare/plugins/agent/heartbeat"
"Wavelet/OpenFlare/plugins/agent/httpclient"
"Wavelet/OpenFlare/plugins/agent/nginx"
"Wavelet/OpenFlare/plugins/agent/runtimeuser"
"Wavelet/OpenFlare/plugins/agent/state"
syncservice "Wavelet/OpenFlare/plugins/agent/sync"
"Wavelet/OpenFlare/plugins/agent/updater"
"Wavelet/OpenFlare/plugins/agent/wsclient"
"Wavelet/core"
"Wavelet/openflare/plugins/agent/agent"
"Wavelet/openflare/plugins/agent/config"
"Wavelet/openflare/plugins/agent/geoipupdate"
"Wavelet/openflare/plugins/agent/heartbeat"
"Wavelet/openflare/plugins/agent/httpclient"
"Wavelet/openflare/plugins/agent/nginx"
"Wavelet/openflare/plugins/agent/runtimeuser"
"Wavelet/openflare/plugins/agent/state"
syncservice "Wavelet/openflare/plugins/agent/sync"
"Wavelet/openflare/plugins/agent/updater"
"Wavelet/openflare/plugins/agent/wsclient"
"Wavelet/pkg/util"
)
@@ -8,8 +8,8 @@ import (
"testing"
"time"
"Wavelet/OpenFlare/plugins/agent/config"
"Wavelet/core"
"Wavelet/openflare/plugins/agent/config"
)
func TestPluginIdentity(t *testing.T) {
@@ -4,7 +4,7 @@
// Package protocol defines type aliases and constants for the agent protocol.
package protocol
import pkgprotocol "Wavelet/OpenFlare/share/protocol"
import pkgprotocol "Wavelet/openflare/share/protocol"
// APIResponse is an alias for pkgprotocol.APIResponse.
type APIResponse[T any] = pkgprotocol.APIResponse[T]
@@ -15,7 +15,7 @@ import (
"strconv"
"strings"
openrestyrender "Wavelet/OpenFlare/share/render/openresty"
openrestyrender "Wavelet/openflare/share/render/openresty"
)
// Name is the dedicated service account shared by the agent and OpenResty workers.
@@ -14,7 +14,7 @@ import (
"strings"
"sync"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/protocol"
)
const observabilityBufferWindowSeconds = 60
@@ -9,7 +9,7 @@ import (
"strings"
"testing"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/protocol"
)
func TestObservabilityBufferStoreUpsertReplayAndAck(t *testing.T) {
@@ -18,9 +18,9 @@ import (
"strconv"
"strings"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/OpenFlare/share/pagesarchive"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
"Wavelet/openflare/share/pagesarchive"
)
const (
@@ -11,8 +11,8 @@ import (
"strings"
"testing"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
)
func TestEnsurePagesProjectRejectsMetadataBeyondAgentCapsBeforeDownload(t *testing.T) {
@@ -17,11 +17,11 @@ import (
"strings"
"sync"
openrestyrender "Wavelet/OpenFlare/share/render/openresty"
openrestyrender "Wavelet/openflare/share/render/openresty"
"Wavelet/OpenFlare/plugins/agent/nginx"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/openflare/plugins/agent/nginx"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
)
// Apply result constants indicate the outcome reported back to the server.
@@ -17,10 +17,10 @@ import (
"testing"
"time"
"Wavelet/OpenFlare/plugins/agent/nginx"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/OpenFlare/share/pagesarchive"
"Wavelet/openflare/plugins/agent/nginx"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
"Wavelet/openflare/share/pagesarchive"
)
type fakeExecutor struct {
@@ -8,9 +8,9 @@ import (
"log/slog"
"strings"
"Wavelet/OpenFlare/plugins/agent/nginx"
"Wavelet/OpenFlare/plugins/agent/protocol"
"Wavelet/OpenFlare/plugins/agent/state"
"Wavelet/openflare/plugins/agent/nginx"
"Wavelet/openflare/plugins/agent/protocol"
"Wavelet/openflare/plugins/agent/state"
)
func syncMode(startup bool) string {
@@ -5,8 +5,8 @@
package updater
import (
"Wavelet/OpenFlare/plugins/agent/config"
edgeupdater "Wavelet/OpenFlare/share/edge/updater"
"Wavelet/openflare/plugins/agent/config"
edgeupdater "Wavelet/openflare/share/edge/updater"
)
// Service is an alias for the edge updater service type used by the agent.
@@ -8,8 +8,8 @@ import (
"context"
"time"
"Wavelet/OpenFlare/plugins/agent/protocol"
edgews "Wavelet/OpenFlare/share/edge/wsclient"
"Wavelet/openflare/plugins/agent/protocol"
edgews "Wavelet/openflare/share/edge/wsclient"
)
// WSMessage is an alias for the WebSocket message type.
@@ -12,7 +12,7 @@ import (
"strings"
"time"
edgeconfig "Wavelet/OpenFlare/share/edge/config"
edgeconfig "Wavelet/openflare/share/edge/config"
)
const (
@@ -8,13 +8,13 @@ import (
"context"
"log/slog"
"Wavelet/OpenFlare/plugins/flared/config"
"Wavelet/OpenFlare/plugins/flared/frpc"
"Wavelet/OpenFlare/plugins/flared/heartbeat"
"Wavelet/OpenFlare/plugins/flared/httpclient"
"Wavelet/OpenFlare/plugins/flared/sync"
"Wavelet/OpenFlare/plugins/flared/wsclient"
edgerunner "Wavelet/OpenFlare/share/edge/runner"
"Wavelet/openflare/plugins/flared/config"
"Wavelet/openflare/plugins/flared/frpc"
"Wavelet/openflare/plugins/flared/heartbeat"
"Wavelet/openflare/plugins/flared/httpclient"
"Wavelet/openflare/plugins/flared/sync"
"Wavelet/openflare/plugins/flared/wsclient"
edgerunner "Wavelet/openflare/share/edge/runner"
)
// Runner is the top-level orchestrator for the flared agent. It wires together
@@ -20,8 +20,8 @@ import (
"syscall"
"time"
"Wavelet/OpenFlare/plugins/flared/config"
service "Wavelet/OpenFlare/share/protocol"
"Wavelet/openflare/plugins/flared/config"
service "Wavelet/openflare/share/protocol"
"Wavelet/pkg/util"
)
@@ -14,8 +14,8 @@ import (
"testing"
"time"
"Wavelet/OpenFlare/plugins/flared/config"
service "Wavelet/OpenFlare/share/protocol"
"Wavelet/openflare/plugins/flared/config"
service "Wavelet/openflare/share/protocol"
)
// Helper to write control file for the dummy script
@@ -8,13 +8,13 @@ import (
"context"
"log/slog"
"Wavelet/OpenFlare/plugins/flared/config"
"Wavelet/OpenFlare/plugins/flared/frpc"
"Wavelet/OpenFlare/plugins/flared/httpclient"
"Wavelet/OpenFlare/plugins/flared/updater"
edgeheartbeat "Wavelet/OpenFlare/share/edge/heartbeat"
"Wavelet/OpenFlare/share/edge/nodeip"
service "Wavelet/OpenFlare/share/protocol"
"Wavelet/openflare/plugins/flared/config"
"Wavelet/openflare/plugins/flared/frpc"
"Wavelet/openflare/plugins/flared/httpclient"
"Wavelet/openflare/plugins/flared/updater"
edgeheartbeat "Wavelet/openflare/share/edge/heartbeat"
"Wavelet/openflare/share/edge/nodeip"
service "Wavelet/openflare/share/protocol"
)
// Service sends periodic heartbeat payloads and applies tunnel settings from responses.
@@ -8,8 +8,8 @@ import (
"context"
"time"
edgehttp "Wavelet/OpenFlare/share/edge/httpclient"
service "Wavelet/OpenFlare/share/protocol"
edgehttp "Wavelet/openflare/share/edge/httpclient"
service "Wavelet/openflare/share/protocol"
)
// APIResponse is an alias for service.APIResponse.
@@ -11,14 +11,14 @@ import (
"fmt"
"log/slog"
"Wavelet/OpenFlare/plugins/flared/config"
flaredrunner "Wavelet/OpenFlare/plugins/flared/flared"
"Wavelet/OpenFlare/plugins/flared/frpc"
"Wavelet/OpenFlare/plugins/flared/heartbeat"
"Wavelet/OpenFlare/plugins/flared/httpclient"
"Wavelet/OpenFlare/plugins/flared/sync"
"Wavelet/OpenFlare/plugins/flared/wsclient"
"Wavelet/core"
"Wavelet/openflare/plugins/flared/config"
flaredrunner "Wavelet/openflare/plugins/flared/flared"
"Wavelet/openflare/plugins/flared/frpc"
"Wavelet/openflare/plugins/flared/heartbeat"
"Wavelet/openflare/plugins/flared/httpclient"
"Wavelet/openflare/plugins/flared/sync"
"Wavelet/openflare/plugins/flared/wsclient"
"Wavelet/pkg/util"
)
@@ -9,10 +9,10 @@ import (
"log/slog"
"time"
"Wavelet/OpenFlare/plugins/flared/config"
"Wavelet/OpenFlare/plugins/flared/frpc"
"Wavelet/OpenFlare/plugins/flared/httpclient"
service "Wavelet/OpenFlare/share/protocol"
"Wavelet/openflare/plugins/flared/config"
"Wavelet/openflare/plugins/flared/frpc"
"Wavelet/openflare/plugins/flared/httpclient"
service "Wavelet/openflare/share/protocol"
)
// Service synchronizes tunnel configuration from the control plane to the local frpc manager.
@@ -5,8 +5,8 @@
package updater
import (
"Wavelet/OpenFlare/plugins/flared/config"
edgeupdater "Wavelet/OpenFlare/share/edge/updater"
"Wavelet/openflare/plugins/flared/config"
edgeupdater "Wavelet/openflare/share/edge/updater"
)
// Service is an alias for the edge updater Service.
@@ -8,7 +8,7 @@ import (
"context"
"time"
edgews "Wavelet/OpenFlare/share/edge/wsclient"
edgews "Wavelet/openflare/share/edge/wsclient"
)
// WSMessage is a WebSocket message exchanged with the control plane.
@@ -12,8 +12,8 @@ import (
"strings"
"time"
edgeconfig "Wavelet/OpenFlare/share/edge/config"
"Wavelet/OpenFlare/share/edge/nodeip"
edgeconfig "Wavelet/openflare/share/edge/config"
"Wavelet/openflare/share/edge/nodeip"
)
const (
@@ -20,7 +20,7 @@ import (
"syscall"
"time"
service "Wavelet/OpenFlare/share/protocol"
service "Wavelet/openflare/share/protocol"
)
const (
@@ -14,7 +14,7 @@ import (
"testing"
"time"
service "Wavelet/OpenFlare/share/protocol"
service "Wavelet/openflare/share/protocol"
)
// Helper to write control file for the dummy script
@@ -8,15 +8,15 @@ import (
"context"
"log/slog"
"Wavelet/OpenFlare/plugins/relay/config"
"Wavelet/OpenFlare/plugins/relay/frps"
"Wavelet/OpenFlare/plugins/relay/httpclient"
"Wavelet/OpenFlare/plugins/relay/observability"
"Wavelet/OpenFlare/plugins/relay/state"
"Wavelet/OpenFlare/plugins/relay/updater"
edgeheartbeat "Wavelet/OpenFlare/share/edge/heartbeat"
"Wavelet/OpenFlare/share/edge/nodeip"
service "Wavelet/OpenFlare/share/protocol"
"Wavelet/openflare/plugins/relay/config"
"Wavelet/openflare/plugins/relay/frps"
"Wavelet/openflare/plugins/relay/httpclient"
"Wavelet/openflare/plugins/relay/observability"
"Wavelet/openflare/plugins/relay/state"
"Wavelet/openflare/plugins/relay/updater"
edgeheartbeat "Wavelet/openflare/share/edge/heartbeat"
"Wavelet/openflare/share/edge/nodeip"
service "Wavelet/openflare/share/protocol"
)
// Service sends periodic heartbeat payloads to the server, updates the frps

Some files were not shown because too many files have changed in this diff Show More