diff --git a/Makefile b/Makefile index 91bf0e30..c094892d 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ build: ## Build the Gotenberg's Docker image -f $(DOCKERFILE) $(DOCKER_BUILD_CONTEXT) GOTENBERG_GRACEFUL_SHUTDOWN_DURATION=30s +GOTENBERG_BUILD_DEBUG_DATA=true API_PORT=3000 API_PORT_FROM_ENV= API_BIND_IP= @@ -91,6 +92,7 @@ run: ## Start a Gotenberg container $(DOCKER_REGISTRY)/$(DOCKER_REPOSITORY):$(GOTENBERG_VERSION) \ gotenberg \ --gotenberg-graceful-shutdown-duration=$(GOTENBERG_GRACEFUL_SHUTDOWN_DURATION) \ + --gotenberg-build-debug-data=$(GOTENBERG_BUILD_DEBUG_DATA) \ --api-port=$(API_PORT) \ --api-port-from-env=$(API_PORT_FROM_ENV) \ --api-bind-ip=$(API_BIND_IP) \ diff --git a/cmd/gotenberg.go b/cmd/gotenberg.go index b687974f..5e456a5f 100644 --- a/cmd/gotenberg.go +++ b/cmd/gotenberg.go @@ -41,6 +41,7 @@ func Run() { // Create the root FlagSet and adds the modules flags to it. fs := flag.NewFlagSet("gotenberg", flag.ExitOnError) fs.Duration("gotenberg-graceful-shutdown-duration", time.Duration(30)*time.Second, "Set the graceful shutdown duration") + fs.Bool("gotenberg-build-debug-data", true, "Set if build data is needed") descriptors := gotenberg.GetModuleDescriptors() var modsInfo string @@ -137,8 +138,10 @@ func Run() { }(l.(gotenberg.SystemLogger)) } - // Build the debug data. - gotenberg.BuildDebug(ctx) + if parsedFlags.MustBool("gotenberg-build-debug-data") { + // Build the debug data. + gotenberg.BuildDebug(ctx) + } quit := make(chan os.Signal, 1) diff --git a/test/integration/features/debug.feature b/test/integration/features/debug.feature index a68e5fe7..78a9cdba 100644 --- a/test/integration/features/debug.feature +++ b/test/integration/features/debug.feature @@ -5,6 +5,23 @@ Feature: /debug When I make a "GET" request to Gotenberg at the "/debug" endpoint Then the response status code should be 404 + Scenario: GET /debug (Build Debug Data Disabled) + Given I have a Gotenberg container with the following environment variable(s): + | GOTENBERG_BUILD_DEBUG_DATA | false | + When I make a "GET" request to Gotenberg at the "/debug" endpoint + Then the response status code should be 200 + Then the response header "Content-Type" should be "application/json" + Then the response body should match JSON: + """ + { + "version": "", + "architecture": "", + "modules": null, + "modules_additional_data": null, + "flags": null + } + """ + Scenario: GET /debug (Enabled) Given I have a Gotenberg container with the following environment variable(s): | API_ENABLE_DEBUG_ROUTE | true | @@ -86,6 +103,7 @@ Feature: /debug "chromium-proxy-server": "", "chromium-restart-after": "10", "chromium-start-timeout": "20s", + "gotenberg-build-debug-data": "true", "gotenberg-graceful-shutdown-duration": "30s", "libreoffice-auto-start": "false", "libreoffice-disable-routes": "false",