api: expose metrics without auth (#1410)

This commit is contained in:
YotaHamada 2025-11-12 10:19:53 +09:00 committed by GitHub
parent db32c6640a
commit e569995e48
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 0 deletions

View File

@ -145,6 +145,7 @@ func (a *API) ConfigureRoutes(ctx context.Context, r chi.Router, baseURL string)
Creds: map[string]string{authConfig.Basic.Username: authConfig.Basic.Password},
PublicPaths: []string{
pathutil.BuildPublicEndpointPath(basePath, "api/v2/health"),
pathutil.BuildPublicEndpointPath(basePath, "api/v2/metrics"),
},
}

View File

@ -0,0 +1,24 @@
package api_test
import (
"net/http"
"testing"
"github.com/dagu-org/dagu/internal/common/config"
"github.com/dagu-org/dagu/internal/test"
"github.com/stretchr/testify/require"
)
func TestMetrics_BypassesAuth(t *testing.T) {
server := test.SetupServer(t, test.WithConfigMutator(func(cfg *config.Config) {
cfg.Server.Auth.Basic.Username = "admin"
cfg.Server.Auth.Basic.Password = "secret"
}))
resp := server.Client().Get("/api/v2/metrics").ExpectStatus(http.StatusOK).Send(t)
require.Contains(t, resp.Response.Header().Get("Content-Type"), "text/plain")
require.NotEmpty(t, resp.Body)
server.Client().Get("/api/v2/dag-runs").ExpectStatus(http.StatusUnauthorized).Send(t)
}