diff --git a/src/main/groovy/io/seqera/wave/controller/ServiceInfoController.groovy b/src/main/groovy/io/seqera/wave/controller/ServiceInfoController.groovy index 71cc1de41..367120a7b 100644 --- a/src/main/groovy/io/seqera/wave/controller/ServiceInfoController.groovy +++ b/src/main/groovy/io/seqera/wave/controller/ServiceInfoController.groovy @@ -50,6 +50,11 @@ class ServiceInfoController { HttpResponse.ok(new ServiceInfoResponse(info)) } + @Get('/ping') + HttpResponse ping() { + HttpResponse.ok() + } + @Get("/") HttpResponse landing() { return landingUrl diff --git a/src/main/groovy/io/seqera/wave/filter/RateLimiterFilter.groovy b/src/main/groovy/io/seqera/wave/filter/RateLimiterFilter.groovy index 55c790324..59a3a1d96 100644 --- a/src/main/groovy/io/seqera/wave/filter/RateLimiterFilter.groovy +++ b/src/main/groovy/io/seqera/wave/filter/RateLimiterFilter.groovy @@ -99,6 +99,11 @@ class RateLimiterFilter implements HttpServerFilter { } private Publisher> limit0(HttpRequest request, ServerFilterChain chain) { + if( request.path.startsWith('/ping') ) { + // ignore rate limit for ping endpoint + return chain.proceed(request) + } + final key = getKey(request); final limiter = getLimiter(key);