mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-28 05:46:36 +08:00
refactor(backend): rename OpenFlare directory to lowercase openflare
This commit is contained in:
+1
-1
@@ -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
@@ -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/
|
||||
|
||||
@@ -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
@@ -22,7 +22,7 @@
|
||||
|
||||
## 合并上游
|
||||
|
||||
`.gitattributes` 对 `backend/OpenFlare/`、`frontend/` 等路径使用 `merge=ours`。该驱动不会自动生效,请在仓库根目录执行一次:
|
||||
`.gitattributes` 对 `backend/openflare/`、`frontend/` 等路径使用 `merge=ours`。该驱动不会自动生效,请在仓库根目录执行一次:
|
||||
|
||||
```bash
|
||||
git config include.path ../.gitconfig
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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 子进程收敛预留的退出窗口。
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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_*` 由上游平台插件拥有,
|
||||
下游只能经契约或事件访问。
|
||||
+6
-6
@@ -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"
|
||||
)
|
||||
|
||||
+5
-5
@@ -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 {
|
||||
+2
-2
@@ -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 (
|
||||
+3
-3
@@ -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) {
|
||||
+1
-1
@@ -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
|
||||
+1
-1
@@ -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
|
||||
+7
-7
@@ -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.
|
||||
+1
-1
@@ -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.
|
||||
+2
-2
@@ -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)
|
||||
+1
-1
@@ -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() {
|
||||
+5
-5
@@ -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.
|
||||
+3
-3
@@ -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 {
|
||||
+1
-1
@@ -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.
|
||||
+1
-1
@@ -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 |
+1
-1
@@ -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
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
package nginx
|
||||
|
||||
import (
|
||||
"Wavelet/OpenFlare/plugins/agent/protocol"
|
||||
"Wavelet/openflare/plugins/agent/protocol"
|
||||
)
|
||||
|
||||
const openRestySWRuntimeLua = `local _M = {}
|
||||
+1
-1
@@ -6,7 +6,7 @@ package nginx
|
||||
import (
|
||||
_ "embed"
|
||||
|
||||
"Wavelet/OpenFlare/plugins/agent/protocol"
|
||||
"Wavelet/openflare/plugins/agent/protocol"
|
||||
)
|
||||
|
||||
//go:embed waf_runtime.lua
|
||||
+4
-4
@@ -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
|
||||
+1
-1
@@ -10,7 +10,7 @@ import (
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"Wavelet/OpenFlare/plugins/agent/config"
|
||||
"Wavelet/openflare/plugins/agent/config"
|
||||
)
|
||||
|
||||
const openRestyObservabilityPath = "/openflare/observability"
|
||||
+1
-1
@@ -9,7 +9,7 @@ import (
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"Wavelet/OpenFlare/plugins/agent/config"
|
||||
"Wavelet/openflare/plugins/agent/config"
|
||||
)
|
||||
|
||||
func TestCollectEdgeHealth(t *testing.T) {
|
||||
+3
-3
@@ -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 {
|
||||
+2
-2
@@ -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
-11
@@ -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"
|
||||
)
|
||||
|
||||
+1
-1
@@ -8,8 +8,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"Wavelet/OpenFlare/plugins/agent/config"
|
||||
"Wavelet/core"
|
||||
"Wavelet/openflare/plugins/agent/config"
|
||||
)
|
||||
|
||||
func TestPluginIdentity(t *testing.T) {
|
||||
+1
-1
@@ -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]
|
||||
+1
-1
@@ -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.
|
||||
+1
-1
@@ -14,7 +14,7 @@ import (
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"Wavelet/OpenFlare/plugins/agent/protocol"
|
||||
"Wavelet/openflare/plugins/agent/protocol"
|
||||
)
|
||||
|
||||
const observabilityBufferWindowSeconds = 60
|
||||
+1
-1
@@ -9,7 +9,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"Wavelet/OpenFlare/plugins/agent/protocol"
|
||||
"Wavelet/openflare/plugins/agent/protocol"
|
||||
)
|
||||
|
||||
func TestObservabilityBufferStoreUpsertReplayAndAck(t *testing.T) {
|
||||
+3
-3
@@ -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 (
|
||||
+2
-2
@@ -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) {
|
||||
+4
-4
@@ -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.
|
||||
+4
-4
@@ -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 {
|
||||
+3
-3
@@ -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 {
|
||||
+2
-2
@@ -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.
|
||||
+2
-2
@@ -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.
|
||||
+1
-1
@@ -12,7 +12,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
edgeconfig "Wavelet/OpenFlare/share/edge/config"
|
||||
edgeconfig "Wavelet/openflare/share/edge/config"
|
||||
)
|
||||
|
||||
const (
|
||||
+7
-7
@@ -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
|
||||
+2
-2
@@ -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"
|
||||
)
|
||||
|
||||
+2
-2
@@ -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
|
||||
+7
-7
@@ -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.
|
||||
+2
-2
@@ -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.
|
||||
+7
-7
@@ -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"
|
||||
)
|
||||
|
||||
+4
-4
@@ -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.
|
||||
+2
-2
@@ -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.
|
||||
+1
-1
@@ -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.
|
||||
+2
-2
@@ -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 (
|
||||
+1
-1
@@ -20,7 +20,7 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
service "Wavelet/OpenFlare/share/protocol"
|
||||
service "Wavelet/openflare/share/protocol"
|
||||
)
|
||||
|
||||
const (
|
||||
+1
-1
@@ -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
|
||||
+9
-9
@@ -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
Reference in New Issue
Block a user