feat: add internal cluster admin endpoints
This commit is contained in:
+10
-1
@@ -19,8 +19,10 @@ import (
|
||||
"proxui/backend/internal/auth"
|
||||
"proxui/backend/internal/authorization"
|
||||
"proxui/backend/internal/cluster"
|
||||
"proxui/backend/internal/clusteradmin"
|
||||
"proxui/backend/internal/encryption"
|
||||
"proxui/backend/internal/membership"
|
||||
"proxui/backend/internal/operator"
|
||||
"proxui/backend/internal/profile"
|
||||
"proxui/backend/internal/rbac"
|
||||
)
|
||||
@@ -62,7 +64,8 @@ func main() {
|
||||
membershipMiddleware := membership.NewMiddleware(membership.NewRepository(db), logger)
|
||||
authorizationMiddleware := authorization.NewMiddleware()
|
||||
clusterRepository := cluster.NewRepository(db, tokenCipher)
|
||||
_ = clusterRepository
|
||||
clusterAdminHandler := clusteradmin.NewHandler(clusterRepository)
|
||||
operatorMiddleware := operator.NewMiddleware(cfg.OperatorToken)
|
||||
|
||||
mux := http.NewServeMux()
|
||||
mux.HandleFunc("GET /healthz", func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -91,6 +94,12 @@ func main() {
|
||||
),
|
||||
),
|
||||
)
|
||||
clusterManageChain := func(handler http.HandlerFunc) http.Handler {
|
||||
return operatorMiddleware.RequireOperator(authorizationMiddleware.Require(rbac.ActionClusterManage, handler))
|
||||
}
|
||||
mux.Handle("POST /internal/clusters", clusterManageChain(clusterAdminHandler.CreateCluster))
|
||||
mux.Handle("PUT /internal/clusters/{clusterID}", clusterManageChain(clusterAdminHandler.UpdateCluster))
|
||||
mux.Handle("PATCH /internal/clusters/{clusterID}/status", clusterManageChain(clusterAdminHandler.SetClusterStatus))
|
||||
|
||||
server := &http.Server{
|
||||
Addr: cfg.BackendAddr,
|
||||
|
||||
Reference in New Issue
Block a user