mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-05 07:26:36 +08:00
feat(cloudflare): add DNS pointing integration
Implement Cloudflare connection management, pointing groups and members, asynchronous A-record reconciliation, node IP triggers, admin APIs, management pages, migrations, tests, and documentation.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
// Copyright 2026 Arctel.net
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package openflare
|
||||
|
||||
import (
|
||||
"github.com/Rain-kl/Wavelet/internal/apps/openflare/apiutil"
|
||||
cf "github.com/Rain-kl/Wavelet/internal/apps/openflare/cloudflare"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func registerCloudflareRoutes(apiGroup *gin.RouterGroup) {
|
||||
route := apiGroup.Group("/cloudflare")
|
||||
route.Use(apiutil.AdminMiddlewares()...)
|
||||
route.GET("/connection", cf.GetConnectionHandler)
|
||||
route.PUT("/connection", cf.SaveConnectionHandler)
|
||||
route.POST("/connection/verify", cf.VerifyConnectionHandler)
|
||||
route.POST("/connection/clear", cf.ClearConnectionHandler)
|
||||
route.GET("/overview", cf.OverviewHandler)
|
||||
route.GET("/domains/available", cf.ListAvailableDomainsHandler)
|
||||
groups := route.Group("/groups")
|
||||
apiutil.RegisterCollection(groups, "GET", cf.ListGroupsHandler)
|
||||
apiutil.RegisterCollection(groups, "POST", cf.CreateGroupHandler)
|
||||
route.GET("/groups/:id", cf.GetGroupHandler)
|
||||
route.POST("/groups/:id/update", cf.UpdateGroupHandler)
|
||||
route.POST("/groups/:id/delete", cf.DeleteGroupHandler)
|
||||
route.POST("/groups/:id/sync", cf.SyncGroupHandler)
|
||||
route.GET("/groups/:id/members", cf.ListMembersHandler)
|
||||
route.POST("/groups/:id/members", cf.CreateMemberHandler)
|
||||
route.POST("/groups/:id/members/:memberId/update", cf.UpdateMemberHandler)
|
||||
route.POST("/groups/:id/members/:memberId/remove", cf.RemoveMemberHandler)
|
||||
route.POST("/groups/:id/members/:memberId/sync", cf.SyncMemberHandler)
|
||||
}
|
||||
@@ -18,6 +18,7 @@ func RegisterV1Routes(apiV1Router *gin.RouterGroup) {
|
||||
registerNodeRoutes(group)
|
||||
registerWAFRoutes(group)
|
||||
registerTLSRoutes(group)
|
||||
registerCloudflareRoutes(group)
|
||||
registerZoneRoutes(group)
|
||||
registerConfigVersionRoutes(group)
|
||||
registerPagesRoutes(group)
|
||||
|
||||
Reference in New Issue
Block a user