refactor(server): group OpenFlare domains into bounded contexts

Drop the openflare/ and router/v1 nesting. Product code lives under site, fleet, pages, waf, tls, cloudflare, observability, dashboard and option; HTTP wiring is httpapi. Shared model/repository stay the kernel.
This commit is contained in:
ryan
2026-08-30 17:31:15 +08:00
parent f14e9591e0
commit f064237081
273 changed files with 261 additions and 355 deletions
@@ -11,8 +11,8 @@ import (
"strings"
"time"
"Wavelet/OpenFlare/plugins/server/credential"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/credential"
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/pkg/logger"
@@ -8,10 +8,10 @@ import (
"errors"
"testing"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/credential"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/credential"
"Wavelet/OpenFlare/plugins/server/repository"
db "Wavelet/plugins/infra/database"
"github.com/glebarez/sqlite"
"gorm.io/gorm"
@@ -7,7 +7,7 @@ import (
"errors"
"net/http"
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/pkg/response"
"github.com/gin-gonic/gin"
@@ -9,9 +9,9 @@ import (
"strings"
"testing"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/pkg/response"
db "Wavelet/plugins/infra/database"
"github.com/gin-gonic/gin"
)
@@ -12,9 +12,9 @@ import (
"io"
"strings"
"Wavelet/OpenFlare/plugins/server/task"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/task"
"gorm.io/gorm"
)
@@ -8,8 +8,8 @@ import (
"strings"
"time"
ofws "Wavelet/OpenFlare/plugins/server/fleet/websocket"
"Wavelet/OpenFlare/plugins/server/model"
ofws "Wavelet/OpenFlare/plugins/server/openflare/websocket"
)
const (
@@ -11,7 +11,7 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/observability"
"Wavelet/OpenFlare/plugins/server/observability"
)
// Summary is the dashboard node summary section.
@@ -11,8 +11,8 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/testhelper"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/model"
db "Wavelet/plugins/infra/database"
"github.com/glebarez/sqlite"
"github.com/stretchr/testify/assert"
@@ -6,7 +6,7 @@ package dashboard
import (
"net/http"
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/pkg/response"
"github.com/gin-gonic/gin"
@@ -11,7 +11,7 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/openflare/pages"
"Wavelet/OpenFlare/plugins/server/pages"
openrestyrender "Wavelet/OpenFlare/share/render/openresty"
"gorm.io/gorm"
@@ -11,8 +11,8 @@ import (
"strings"
"time"
ofgeoip "Wavelet/OpenFlare/plugins/server/geoip"
"Wavelet/OpenFlare/plugins/server/model"
ofgeoip "Wavelet/OpenFlare/plugins/server/openflare/geoip"
"Wavelet/OpenFlare/plugins/server/repository"
)
@@ -8,8 +8,8 @@ import (
"net"
"testing"
ofgeoip "Wavelet/OpenFlare/plugins/server/geoip"
"Wavelet/OpenFlare/plugins/server/model"
ofgeoip "Wavelet/OpenFlare/plugins/server/openflare/geoip"
pkggeoip "Wavelet/OpenFlare/share/geoip"
)
@@ -9,12 +9,12 @@ import (
"strings"
"time"
cf "Wavelet/OpenFlare/plugins/server/openflare/cloudflare"
cf "Wavelet/OpenFlare/plugins/server/cloudflare"
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/fleet/node"
ofgeoip "Wavelet/OpenFlare/plugins/server/geoip"
"Wavelet/OpenFlare/plugins/server/model"
ofgeoip "Wavelet/OpenFlare/plugins/server/openflare/geoip"
"Wavelet/OpenFlare/plugins/server/openflare/node"
"Wavelet/pkg/logger"
)
@@ -11,11 +11,11 @@ import (
"testing"
"time"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/testhelper"
"Wavelet/pkg/response"
db "Wavelet/plugins/infra/database"
"github.com/gin-gonic/gin"
"github.com/glebarez/sqlite"
@@ -7,9 +7,9 @@ import (
"net/http"
"strconv"
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/openflare/pages"
"Wavelet/OpenFlare/plugins/server/openflare/websocket"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/OpenFlare/plugins/server/fleet/websocket"
"Wavelet/OpenFlare/plugins/server/pages"
"Wavelet/OpenFlare/share/protocol"
"Wavelet/pkg/response"
@@ -12,9 +12,9 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/share/protocol"
db "Wavelet/plugins/infra/database"
"github.com/glebarez/sqlite"
"github.com/stretchr/testify/assert"
@@ -10,7 +10,7 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
ofws "Wavelet/OpenFlare/plugins/server/openflare/websocket"
ofws "Wavelet/OpenFlare/plugins/server/fleet/websocket"
)
// HandleWSStatus processes an agent websocket status payload (replaces HTTP heartbeat in WS mode).
@@ -1,8 +1,8 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
// Package openflare implements openflare configuration, service orchestration, and background tasks.
package openflare
// Package fleet contains shared edge-fleet task metadata used by plugin registration.
package fleet
import (
"context"
@@ -10,12 +10,12 @@ import (
"sync"
"time"
"Wavelet/OpenFlare/plugins/server/task"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/tasks"
"Wavelet/OpenFlare/plugins/server/openflare/uptimekuma"
"Wavelet/OpenFlare/plugins/server/openflare/waf"
"Wavelet/OpenFlare/plugins/server/option/uptimekuma"
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/task"
"Wavelet/OpenFlare/plugins/server/tls"
"Wavelet/OpenFlare/plugins/server/waf"
)
const (
@@ -103,7 +103,7 @@ type SSLRenewHandler struct{}
// Execute runs SSL certificate renewal for all due certificates.
func (h *SSLRenewHandler) Execute(ctx context.Context, _ []byte) (*task.TaskResult, error) {
task.AppendLog(ctx, "开始扫描待续期证书")
if err := tasks.RunSSLRenewJob(ctx); err != nil {
if err := tls.RunSSLRenewJob(ctx); err != nil {
task.AppendLog(ctx, "SSL 自动续期失败: %v", err)
return nil, err
}
@@ -1,15 +1,15 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package fleet
import (
"context"
"testing"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/repository"
db "Wavelet/plugins/infra/database"
"github.com/glebarez/sqlite"
"github.com/stretchr/testify/assert"
@@ -12,8 +12,8 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/fleet/relay"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/relay"
)
const (
@@ -12,8 +12,8 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
"gorm.io/gorm"
)
@@ -6,7 +6,7 @@ package flared
import (
"strings"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
"Wavelet/pkg/response"
@@ -11,9 +11,9 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/pkg/response"
db "Wavelet/plugins/infra/database"
"github.com/gin-gonic/gin"
"github.com/glebarez/sqlite"
@@ -9,7 +9,7 @@ import (
"strings"
"time"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
"go.uber.org/zap"
)
@@ -9,9 +9,9 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
db "Wavelet/plugins/infra/database"
"github.com/glebarez/sqlite"
"github.com/stretchr/testify/assert"
@@ -6,9 +6,9 @@ package flared
import (
"net/http"
"Wavelet/OpenFlare/plugins/server/apiutil"
ofws "Wavelet/OpenFlare/plugins/server/fleet/websocket"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
ofws "Wavelet/OpenFlare/plugins/server/openflare/websocket"
"Wavelet/pkg/response"
"github.com/gin-gonic/gin"
@@ -10,11 +10,11 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
ofnode "Wavelet/OpenFlare/plugins/server/fleet/node"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
ofnode "Wavelet/OpenFlare/plugins/server/openflare/node"
"Wavelet/OpenFlare/plugins/server/testhelper"
db "Wavelet/plugins/infra/database"
"github.com/gin-gonic/gin"
"github.com/glebarez/sqlite"
@@ -10,11 +10,11 @@ import (
"net/http/httptest"
"testing"
"Wavelet/OpenFlare/plugins/server/runtimeconfig"
"Wavelet/pkg/idgen"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/runtimeconfig"
"Wavelet/OpenFlare/plugins/server/testhelper"
"Wavelet/pkg/idgen"
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
@@ -9,10 +9,10 @@ import (
"testing"
"time"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
"Wavelet/OpenFlare/plugins/server/testhelper"
db "Wavelet/plugins/infra/database"
"github.com/gin-gonic/gin"
"github.com/glebarez/sqlite"
@@ -12,7 +12,7 @@ import (
"testing"
"Wavelet/OpenFlare/plugins/server"
ofrouter "Wavelet/OpenFlare/plugins/server/router/v1/openflare"
ofrouter "Wavelet/OpenFlare/plugins/server/httpapi"
"Wavelet/OpenFlare/plugins/server/testhelper"
"Wavelet/core"
"Wavelet/core/contracts"
@@ -16,10 +16,10 @@ import (
"testing"
"time"
"Wavelet/OpenFlare/plugins/server/runtimeconfig"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/runtimeconfig"
"Wavelet/OpenFlare/plugins/server/testhelper"
db "Wavelet/plugins/infra/database"
"github.com/gin-gonic/gin"
"github.com/glebarez/sqlite"
@@ -18,8 +18,8 @@ import (
"strings"
"time"
ofws "Wavelet/OpenFlare/plugins/server/fleet/websocket"
"Wavelet/OpenFlare/plugins/server/model"
ofws "Wavelet/OpenFlare/plugins/server/openflare/websocket"
)
const (
@@ -10,10 +10,10 @@ import (
"strings"
"time"
cf "Wavelet/OpenFlare/plugins/server/cloudflare"
ofws "Wavelet/OpenFlare/plugins/server/fleet/websocket"
"Wavelet/OpenFlare/plugins/server/model"
cf "Wavelet/OpenFlare/plugins/server/openflare/cloudflare"
"Wavelet/OpenFlare/plugins/server/openflare/observability"
ofws "Wavelet/OpenFlare/plugins/server/openflare/websocket"
"Wavelet/OpenFlare/plugins/server/observability"
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/pkg/logger"
@@ -11,11 +11,11 @@ import (
"testing"
"time"
db "Wavelet/plugins/infra/database"
cf "Wavelet/OpenFlare/plugins/server/cloudflare"
"Wavelet/OpenFlare/plugins/server/model"
cf "Wavelet/OpenFlare/plugins/server/openflare/cloudflare"
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/testhelper"
db "Wavelet/plugins/infra/database"
"github.com/glebarez/sqlite"
"github.com/stretchr/testify/assert"
@@ -9,7 +9,7 @@ import (
"io"
"net/http"
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/pkg/response"
"github.com/gin-gonic/gin"
@@ -10,9 +10,9 @@ import (
"strings"
"time"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
ofgeoip "Wavelet/OpenFlare/plugins/server/geoip"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
ofgeoip "Wavelet/OpenFlare/plugins/server/openflare/geoip"
"Wavelet/OpenFlare/plugins/server/repository"
)
@@ -12,9 +12,9 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/testhelper"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
db "Wavelet/plugins/infra/database"
"github.com/glebarez/sqlite"
"github.com/stretchr/testify/assert"
@@ -6,7 +6,7 @@ package relay
import (
"strings"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
"Wavelet/pkg/response"
@@ -11,9 +11,9 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/pkg/response"
db "Wavelet/plugins/infra/database"
"github.com/gin-gonic/gin"
"github.com/glebarez/sqlite"
@@ -9,8 +9,8 @@ import (
"Wavelet/OpenFlare/plugins/server/repository"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/agent"
"go.uber.org/zap"
)
@@ -6,9 +6,9 @@ package relay
import (
"net/http"
"Wavelet/OpenFlare/plugins/server/apiutil"
ofws "Wavelet/OpenFlare/plugins/server/fleet/websocket"
"Wavelet/OpenFlare/plugins/server/model"
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
ofws "Wavelet/OpenFlare/plugins/server/openflare/websocket"
"Wavelet/pkg/response"
"github.com/gin-gonic/gin"
@@ -11,8 +11,8 @@ import (
"strings"
"sync"
geodata "Wavelet/OpenFlare/plugins/server/geoip/data"
"Wavelet/OpenFlare/plugins/server/model"
geodata "Wavelet/OpenFlare/plugins/server/openflare/geoip/data"
"Wavelet/OpenFlare/plugins/server/repository"
pkggeoip "Wavelet/OpenFlare/share/geoip"
"Wavelet/pkg/logger"
@@ -7,9 +7,9 @@ import (
"context"
"testing"
db "Wavelet/plugins/infra/database"
"Wavelet/OpenFlare/plugins/server/model"
pkggeoip "Wavelet/OpenFlare/share/geoip"
db "Wavelet/plugins/infra/database"
"github.com/glebarez/sqlite"
"gorm.io/gorm"
@@ -4,7 +4,7 @@
// Package openflare registers OpenFlare HTTP routes.
// Management console APIs are mounted via RegisterV1Routes under /api/v1/d.
// Agent/Relay/Tunnel protocol routes are mounted via RegisterRoutes under /api/v1.
package openflare
package httpapi
import (
"Wavelet/core"
@@ -1,10 +1,10 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/agent"
"Wavelet/OpenFlare/plugins/server/fleet/agent"
"Wavelet/core"
)
@@ -1,11 +1,11 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/openflare/apply_log"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/OpenFlare/plugins/server/site/apply_log"
"Wavelet/core"
"Wavelet/core/contracts"
)
@@ -1,11 +1,11 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
cf "Wavelet/OpenFlare/plugins/server/openflare/cloudflare"
"Wavelet/OpenFlare/plugins/server/apiutil"
cf "Wavelet/OpenFlare/plugins/server/cloudflare"
"Wavelet/core"
"Wavelet/core/contracts"
)
@@ -1,11 +1,11 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/openflare/config_version"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/OpenFlare/plugins/server/site/config_version"
"Wavelet/core"
"Wavelet/core/contracts"
)
@@ -1,11 +1,11 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/openflare/dashboard"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/OpenFlare/plugins/server/dashboard"
"Wavelet/core"
"Wavelet/core/contracts"
)
@@ -1,11 +1,11 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/openflare/node"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/OpenFlare/plugins/server/fleet/node"
"Wavelet/core"
"Wavelet/core/contracts"
)
@@ -1,11 +1,11 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/openflare/observability"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/OpenFlare/plugins/server/observability"
"Wavelet/core"
"Wavelet/core/contracts"
)
@@ -1,11 +1,11 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/openflare/option"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/OpenFlare/plugins/server/option"
"Wavelet/core"
"Wavelet/core/contracts"
)
@@ -1,11 +1,11 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/openflare/origin"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/OpenFlare/plugins/server/site/origin"
"Wavelet/core"
"Wavelet/core/contracts"
)
@@ -1,11 +1,11 @@
// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
package openflare
package httpapi
import (
"Wavelet/OpenFlare/plugins/server/openflare/apiutil"
"Wavelet/OpenFlare/plugins/server/openflare/pages"
"Wavelet/OpenFlare/plugins/server/apiutil"
"Wavelet/OpenFlare/plugins/server/pages"
"Wavelet/core"
"Wavelet/core/contracts"
)

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