mirror of
https://github.com/ferdzo/fs.git
synced 2026-04-05 01:36:25 +00:00
wire admin API feature flag
This commit is contained in:
10
api/api.go
10
api/api.go
@@ -33,6 +33,7 @@ type Handler struct {
|
|||||||
logger *slog.Logger
|
logger *slog.Logger
|
||||||
logConfig logging.Config
|
logConfig logging.Config
|
||||||
authSvc *auth.Service
|
authSvc *auth.Service
|
||||||
|
adminAPI bool
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -47,7 +48,7 @@ const (
|
|||||||
serverMaxConnections = 1024
|
serverMaxConnections = 1024
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewHandler(svc *service.ObjectService, logger *slog.Logger, logConfig logging.Config, authSvc *auth.Service) *Handler {
|
func NewHandler(svc *service.ObjectService, logger *slog.Logger, logConfig logging.Config, authSvc *auth.Service, adminAPI bool) *Handler {
|
||||||
r := chi.NewRouter()
|
r := chi.NewRouter()
|
||||||
r.Use(middleware.RequestID)
|
r.Use(middleware.RequestID)
|
||||||
r.Use(middleware.Recoverer)
|
r.Use(middleware.Recoverer)
|
||||||
@@ -61,6 +62,7 @@ func NewHandler(svc *service.ObjectService, logger *slog.Logger, logConfig loggi
|
|||||||
logger: logger,
|
logger: logger,
|
||||||
logConfig: logConfig,
|
logConfig: logConfig,
|
||||||
authSvc: authSvc,
|
authSvc: authSvc,
|
||||||
|
adminAPI: adminAPI,
|
||||||
}
|
}
|
||||||
return h
|
return h
|
||||||
}
|
}
|
||||||
@@ -74,6 +76,9 @@ func (h *Handler) setupRoutes() {
|
|||||||
h.router.Get("/metrics", h.handleMetrics)
|
h.router.Get("/metrics", h.handleMetrics)
|
||||||
h.router.Head("/metrics", h.handleMetrics)
|
h.router.Head("/metrics", h.handleMetrics)
|
||||||
h.router.Get("/", h.handleGetBuckets)
|
h.router.Get("/", h.handleGetBuckets)
|
||||||
|
if h.adminAPI {
|
||||||
|
h.registerAdminRoutes()
|
||||||
|
}
|
||||||
|
|
||||||
h.router.Get("/{bucket}/", h.handleGetBucket)
|
h.router.Get("/{bucket}/", h.handleGetBucket)
|
||||||
h.router.Get("/{bucket}", h.handleGetBucket)
|
h.router.Get("/{bucket}", h.handleGetBucket)
|
||||||
@@ -93,6 +98,9 @@ func (h *Handler) setupRoutes() {
|
|||||||
h.router.Delete("/{bucket}/*", h.handleDeleteObject)
|
h.router.Delete("/{bucket}/*", h.handleDeleteObject)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *Handler) registerAdminRoutes() {
|
||||||
|
}
|
||||||
|
|
||||||
func (h *Handler) handleHealth(w http.ResponseWriter, r *http.Request) {
|
func (h *Handler) handleHealth(w http.ResponseWriter, r *http.Request) {
|
||||||
if _, err := h.svc.ListBuckets(); err != nil {
|
if _, err := h.svc.ListBuckets(); err != nil {
|
||||||
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
|
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
|
||||||
|
|||||||
3
main.go
3
main.go
@@ -39,6 +39,7 @@ func main() {
|
|||||||
"multipart_retention_hours", int(config.MultipartCleanupRetention/time.Hour),
|
"multipart_retention_hours", int(config.MultipartCleanupRetention/time.Hour),
|
||||||
"auth_enabled", authConfig.Enabled,
|
"auth_enabled", authConfig.Enabled,
|
||||||
"auth_region", authConfig.Region,
|
"auth_region", authConfig.Region,
|
||||||
|
"admin_api_enabled", config.AdminAPIEnabled,
|
||||||
)
|
)
|
||||||
|
|
||||||
if err := os.MkdirAll(config.DataPath, 0o755); err != nil {
|
if err := os.MkdirAll(config.DataPath, 0o755); err != nil {
|
||||||
@@ -72,7 +73,7 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
handler := api.NewHandler(objectService, logger, logConfig, authService)
|
handler := api.NewHandler(objectService, logger, logConfig, authService, config.AdminAPIEnabled)
|
||||||
addr := config.Address + ":" + strconv.Itoa(config.Port)
|
addr := config.Address + ":" + strconv.Itoa(config.Port)
|
||||||
|
|
||||||
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
|
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ type Config struct {
|
|||||||
AuthBootstrapAccessKey string
|
AuthBootstrapAccessKey string
|
||||||
AuthBootstrapSecretKey string
|
AuthBootstrapSecretKey string
|
||||||
AuthBootstrapPolicy string
|
AuthBootstrapPolicy string
|
||||||
|
AdminAPIEnabled bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewConfig() *Config {
|
func NewConfig() *Config {
|
||||||
@@ -55,6 +56,7 @@ func NewConfig() *Config {
|
|||||||
AuthBootstrapAccessKey: strings.TrimSpace(os.Getenv("AUTH_BOOTSTRAP_ACCESS_KEY")),
|
AuthBootstrapAccessKey: strings.TrimSpace(os.Getenv("AUTH_BOOTSTRAP_ACCESS_KEY")),
|
||||||
AuthBootstrapSecretKey: strings.TrimSpace(os.Getenv("AUTH_BOOTSTRAP_SECRET_KEY")),
|
AuthBootstrapSecretKey: strings.TrimSpace(os.Getenv("AUTH_BOOTSTRAP_SECRET_KEY")),
|
||||||
AuthBootstrapPolicy: strings.TrimSpace(os.Getenv("AUTH_BOOTSTRAP_POLICY")),
|
AuthBootstrapPolicy: strings.TrimSpace(os.Getenv("AUTH_BOOTSTRAP_POLICY")),
|
||||||
|
AdminAPIEnabled: envBool("ADMIN_API_ENABLED", true),
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.LogFormat != "json" && config.LogFormat != "text" {
|
if config.LogFormat != "json" && config.LogFormat != "text" {
|
||||||
|
|||||||
Reference in New Issue
Block a user