merge: fix(openflare) align admin permission model with Wavelet

Merge dmux-2026-06-19-110554; resolve changelog conflict keeping /api/v1/d/*
path migration and new AdminMiddlewares permission model.
This commit is contained in:
ryan
2026-06-19 11:14:30 +08:00
16 changed files with 208 additions and 51 deletions
@@ -11,7 +11,7 @@ import (
func registerApplyLogRoutes(apiGroup *gin.RouterGroup) {
applyLogRoute := apiGroup.Group("/apply-logs")
applyLogRoute.Use(apiutil.AdminRequired())
applyLogRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(applyLogRoute, "GET", apply_log.GetApplyLogs)
applyLogRoute.POST("/cleanup", apply_log.CleanupApplyLogs)
@@ -11,7 +11,7 @@ import (
func registerConfigVersionRoutes(apiGroup *gin.RouterGroup) {
configVersionGroup := apiGroup.Group("/config-versions")
configVersionGroup.Use(apiutil.AdminRequired())
configVersionGroup.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(configVersionGroup, "GET", config_version.ListConfigVersionsHandler)
configVersionGroup.GET("/active", config_version.GetActiveConfigVersionHandler)
@@ -11,7 +11,7 @@ import (
func registerDashboardRoutes(apiGroup *gin.RouterGroup) {
dashboardRoute := apiGroup.Group("/dashboard")
dashboardRoute.Use(apiutil.AdminRequired())
dashboardRoute.Use(apiutil.AdminMiddlewares()...)
{
dashboardRoute.GET("/overview", dashboard.GetOverviewHandler)
}
@@ -11,7 +11,7 @@ import (
func registerNodeRoutes(apiGroup *gin.RouterGroup) {
nodeRoute := apiGroup.Group("/nodes")
nodeRoute.Use(apiutil.AdminRequired())
nodeRoute.Use(apiutil.AdminMiddlewares()...)
{
nodeRoute.GET("/bootstrap-token", node.GetBootstrapTokenHandler)
nodeRoute.POST("/bootstrap-token/rotate", node.RotateBootstrapTokenHandler)
@@ -11,7 +11,7 @@ import (
func registerObservabilityRoutes(apiGroup *gin.RouterGroup) {
accessLogRoute := apiGroup.Group("/access-logs")
accessLogRoute.Use(apiutil.AdminRequired())
accessLogRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(accessLogRoute, "GET", observability.GetAccessLogsHandler)
accessLogRoute.GET("/folds", observability.GetFoldedAccessLogsHandler)
@@ -15,7 +15,7 @@ func registerOptionRoutes(apiGroup *gin.RouterGroup) {
apiGroup.GET("/about", option.GetAboutHandler)
optionRoute := apiGroup.Group("/option")
optionRoute.Use(apiutil.AdminRequired())
optionRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(optionRoute, "GET", option.ListOptionsHandler)
optionRoute.POST("/update", option.UpdateOptionHandler)
@@ -25,7 +25,7 @@ func registerOptionRoutes(apiGroup *gin.RouterGroup) {
}
uptimeKumaRoute := apiGroup.Group("/uptimekuma")
uptimeKumaRoute.Use(apiutil.AdminRequired())
uptimeKumaRoute.Use(apiutil.AdminMiddlewares()...)
{
uptimeKumaRoute.POST("/sync", option.SyncUptimeKumaHandler)
}
@@ -11,7 +11,7 @@ import (
func registerOriginRoutes(apiGroup *gin.RouterGroup) {
originRoute := apiGroup.Group("/origins")
originRoute.Use(apiutil.AdminRequired())
originRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(originRoute, "GET", origin.GetOrigins)
originRoute.GET("/:id", origin.GetOrigin)
@@ -11,7 +11,7 @@ import (
func registerPagesRoutes(apiGroup *gin.RouterGroup) {
pagesRoute := apiGroup.Group("/pages")
pagesRoute.Use(apiutil.AdminRequired())
pagesRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(pagesRoute, "GET", pages.ListProjectsHandler)
pagesRoute.GET("/:id", pages.GetProjectHandler)
@@ -11,7 +11,7 @@ import (
func registerProxyRouteRoutes(apiGroup *gin.RouterGroup) {
proxyRouteGroup := apiGroup.Group("/proxy-routes")
proxyRouteGroup.Use(apiutil.AdminRequired())
proxyRouteGroup.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(proxyRouteGroup, "GET", proxy_route.GetProxyRoutes)
proxyRouteGroup.GET("/:id", proxy_route.GetProxyRouteHandler)
@@ -11,7 +11,7 @@ import (
func registerTLSRoutes(apiGroup *gin.RouterGroup) {
managedDomainRoute := apiGroup.Group("/managed-domains")
managedDomainRoute.Use(apiutil.AdminRequired())
managedDomainRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(managedDomainRoute, "GET", tls.GetManagedDomains)
managedDomainRoute.GET("/match", tls.MatchManagedDomainCertificateHandler)
@@ -21,7 +21,7 @@ func registerTLSRoutes(apiGroup *gin.RouterGroup) {
}
tlsCertificateRoute := apiGroup.Group("/tls-certificates")
tlsCertificateRoute.Use(apiutil.AdminRequired())
tlsCertificateRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(tlsCertificateRoute, "GET", tls.GetCertificates)
tlsCertificateRoute.GET("/:id", tls.GetCertificateDetail)
@@ -37,13 +37,13 @@ func registerTLSRoutes(apiGroup *gin.RouterGroup) {
}
acmeAccountRoute := apiGroup.Group("/acme-accounts")
acmeAccountRoute.Use(apiutil.AdminRequired())
acmeAccountRoute.Use(apiutil.AdminMiddlewares()...)
{
acmeAccountRoute.GET("/default", tls.GetDefaultAcmeAccountHandler)
}
dnsAccountRoute := apiGroup.Group("/dns-accounts")
dnsAccountRoute.Use(apiutil.AdminRequired())
dnsAccountRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(dnsAccountRoute, "GET", tls.GetDNSAccounts)
apiutil.RegisterCollection(dnsAccountRoute, "POST", tls.CreateDNSAccountHandler)
@@ -11,7 +11,7 @@ import (
func registerUpdateRoutes(apiGroup *gin.RouterGroup) {
updateRoute := apiGroup.Group("/update")
updateRoute.Use(apiutil.AdminRequired())
updateRoute.Use(apiutil.AdminMiddlewares()...)
{
updateRoute.GET("/latest-release", update.GetLatestReleaseHandler)
updateRoute.GET("/logs/ws", update.StreamServerUpgradeLogsHandler)
@@ -11,7 +11,7 @@ import (
func registerWAFRoutes(apiGroup *gin.RouterGroup) {
wafRoute := apiGroup.Group("/waf")
wafRoute.Use(apiutil.AdminRequired())
wafRoute.Use(apiutil.AdminMiddlewares()...)
{
wafRoute.GET("/ip-groups", waf.ListIPGroupsHandler)
wafRoute.GET("/ip-groups/:id", waf.GetIPGroupHandler)