feat(debug): only build debug data when flag is true (#1167)

* only build debug info when log level is debug

* introduce new flag 'gotenberg-build-debug-data'

* add gotenberg-build-debug-data flag to Makefile

* add new integration test for gotenberg-build-debug-data flag

* update GET /debug (Enabled) test with gotenberg-build-debug-data flag

* reorder GOTENBERG_BUILD_DEBUG_DATA in Makefile

* reorder Build Debug Data Disabled test scenario

---------

Co-authored-by: Hector Zarate <hector@Hectors-MacBook-Pro.local>
This commit is contained in:
Hector Zarate
2025-04-10 13:30:24 +02:00
committed by GitHub
parent 7fe0e05050
commit 1bfe86738f
3 changed files with 25 additions and 2 deletions
+2
View File
@@ -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) \
+5 -2
View File
@@ -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)
+18
View File
@@ -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",