mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-07-02 00:17:40 +08:00
304 lines
11 KiB
Gherkin
304 lines
11 KiB
Gherkin
@debug
|
|
Feature: /debug
|
|
|
|
Scenario: GET /debug (Disabled)
|
|
Given I have a default Gotenberg container
|
|
When I make a "GET" request to Gotenberg at the "/debug" endpoint
|
|
Then the response status code should be 404
|
|
|
|
Scenario: GET /debug (Enabled)
|
|
Given I have a Gotenberg container with the following environment variable(s):
|
|
| API_ENABLE_DEBUG_ROUTE | true |
|
|
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": "{version}",
|
|
"timezone": "UTC",
|
|
"architecture": "ignore",
|
|
"modules": [
|
|
"api",
|
|
"chromium",
|
|
"exiftool",
|
|
"libreoffice",
|
|
"libreoffice-api",
|
|
"libreoffice-pdfengine",
|
|
"pdfcpu",
|
|
"pdfengines",
|
|
"pdftk",
|
|
"prometheus",
|
|
"qpdf",
|
|
"webhook"
|
|
],
|
|
"modules_additional_data": {
|
|
"chromium": {
|
|
"version": "ignore"
|
|
},
|
|
"exiftool": {
|
|
"version": "ignore"
|
|
},
|
|
"libreoffice-api": {
|
|
"version": "ignore"
|
|
},
|
|
"pdfcpu": {
|
|
"version": "ignore"
|
|
},
|
|
"pdftk": {
|
|
"version": "ignore"
|
|
},
|
|
"qpdf": {
|
|
"version": "ignore"
|
|
}
|
|
},
|
|
"flags": {
|
|
"api-bind-ip": "",
|
|
"api-body-limit": "",
|
|
"api-correlation-id-header": "Gotenberg-Trace",
|
|
"api-disable-download-from": "false",
|
|
"api-disable-health-check-logging": "false",
|
|
"api-disable-health-check-route-telemetry": "false",
|
|
"api-download-from-allow-list": "[]",
|
|
"api-download-from-deny-list": "[]",
|
|
"api-download-from-max-retry": "4",
|
|
"api-enable-basic-auth": "false",
|
|
"api-enable-debug-route": "true",
|
|
"api-port": "3000",
|
|
"api-port-from-env": "",
|
|
"api-root-path": "/",
|
|
"api-start-timeout": "30s",
|
|
"api-timeout": "30s",
|
|
"api-tls-cert-file": "",
|
|
"api-tls-key-file": "",
|
|
"api-trace-header": "Gotenberg-Trace",
|
|
"chromium-allow-file-access-from-files": "false",
|
|
"chromium-allow-insecure-localhost": "false",
|
|
"chromium-allow-list": "[]",
|
|
"chromium-auto-start": "false",
|
|
"chromium-clear-cache": "false",
|
|
"chromium-clear-cookies": "false",
|
|
"chromium-deny-list": "[^file:(?!//\\/tmp/).*]",
|
|
"chromium-disable-javascript": "false",
|
|
"chromium-disable-routes": "false",
|
|
"chromium-disable-web-security": "false",
|
|
"chromium-host-resolver-rules": "",
|
|
"chromium-ignore-certificate-errors": "false",
|
|
"chromium-incognito": "false",
|
|
"chromium-max-concurrency": "6",
|
|
"chromium-max-queue-size": "0",
|
|
"chromium-proxy-server": "",
|
|
"chromium-restart-after": "100",
|
|
"chromium-start-timeout": "20s",
|
|
"gotenberg-build-debug-data": "true",
|
|
"gotenberg-graceful-shutdown-duration": "30s",
|
|
"libreoffice-auto-start": "false",
|
|
"libreoffice-disable-routes": "false",
|
|
"libreoffice-max-queue-size": "0",
|
|
"libreoffice-restart-after": "10",
|
|
"libreoffice-start-timeout": "20s",
|
|
"log-enable-gcp-fields": "false",
|
|
"log-fields-prefix": "",
|
|
"log-format": "auto",
|
|
"log-level": "info",
|
|
"log-std-enable-gcp-fields": "false",
|
|
"log-std-format": "auto",
|
|
"pdfengines-convert-engines": "[libreoffice-pdfengine]",
|
|
"pdfengines-disable-routes": "false",
|
|
"pdfengines-engines": "[]",
|
|
"pdfengines-flatten-engines": "[qpdf]",
|
|
"pdfengines-merge-engines": "[qpdf,pdfcpu,pdftk]",
|
|
"pdfengines-read-bookmarks-engines": "[pdfcpu]",
|
|
"pdfengines-read-metadata-engines": "[exiftool]",
|
|
"pdfengines-split-engines": "[pdfcpu,qpdf,pdftk]",
|
|
"pdfengines-write-bookmarks-engines": "[pdfcpu]",
|
|
"pdfengines-write-metadata-engines": "[exiftool]",
|
|
"prometheus-collect-interval": "1s",
|
|
"prometheus-disable-collect": "false",
|
|
"prometheus-disable-route-logging": "false",
|
|
"prometheus-namespace": "gotenberg",
|
|
"prometheus-metrics-path": "/prometheus/metrics",
|
|
"webhook-allow-list": "[]",
|
|
"webhook-client-timeout": "30s",
|
|
"webhook-deny-list": "[]",
|
|
"webhook-disable": "false",
|
|
"webhook-error-allow-list": "[]",
|
|
"webhook-error-deny-list": "[]",
|
|
"webhook-max-retry": "4",
|
|
"webhook-retry-max-wait": "30s",
|
|
"webhook-retry-min-wait": "1s"
|
|
}
|
|
}
|
|
"""
|
|
|
|
Scenario: GET /debug (Environment based timezone)
|
|
Given I have a Gotenberg container with the following environment variable(s):
|
|
| API_ENABLE_DEBUG_ROUTE | true |
|
|
| TZ | America/New_York |
|
|
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": "{version}",
|
|
"timezone": "America/New_York",
|
|
"architecture": "ignore",
|
|
"modules": [
|
|
"api",
|
|
"chromium",
|
|
"exiftool",
|
|
"libreoffice",
|
|
"libreoffice-api",
|
|
"libreoffice-pdfengine",
|
|
"pdfcpu",
|
|
"pdfengines",
|
|
"pdftk",
|
|
"prometheus",
|
|
"qpdf",
|
|
"webhook"
|
|
],
|
|
"modules_additional_data": {
|
|
"chromium": {
|
|
"version": "ignore"
|
|
},
|
|
"exiftool": {
|
|
"version": "ignore"
|
|
},
|
|
"libreoffice-api": {
|
|
"version": "ignore"
|
|
},
|
|
"pdfcpu": {
|
|
"version": "ignore"
|
|
},
|
|
"pdftk": {
|
|
"version": "ignore"
|
|
},
|
|
"qpdf": {
|
|
"version": "ignore"
|
|
}
|
|
},
|
|
"flags": {
|
|
"api-bind-ip": "",
|
|
"api-body-limit": "",
|
|
"api-correlation-id-header": "Gotenberg-Trace",
|
|
"api-disable-download-from": "false",
|
|
"api-disable-health-check-logging": "false",
|
|
"api-disable-health-check-route-telemetry": "false",
|
|
"api-download-from-allow-list": "[]",
|
|
"api-download-from-deny-list": "[]",
|
|
"api-download-from-max-retry": "4",
|
|
"api-enable-basic-auth": "false",
|
|
"api-enable-debug-route": "true",
|
|
"api-port": "3000",
|
|
"api-port-from-env": "",
|
|
"api-root-path": "/",
|
|
"api-start-timeout": "30s",
|
|
"api-timeout": "30s",
|
|
"api-tls-cert-file": "",
|
|
"api-tls-key-file": "",
|
|
"api-trace-header": "Gotenberg-Trace",
|
|
"chromium-allow-file-access-from-files": "false",
|
|
"chromium-allow-insecure-localhost": "false",
|
|
"chromium-allow-list": "[]",
|
|
"chromium-auto-start": "false",
|
|
"chromium-clear-cache": "false",
|
|
"chromium-clear-cookies": "false",
|
|
"chromium-deny-list": "[^file:(?!//\\/tmp/).*]",
|
|
"chromium-disable-javascript": "false",
|
|
"chromium-disable-routes": "false",
|
|
"chromium-disable-web-security": "false",
|
|
"chromium-host-resolver-rules": "",
|
|
"chromium-ignore-certificate-errors": "false",
|
|
"chromium-incognito": "false",
|
|
"chromium-max-queue-size": "0",
|
|
"chromium-max-concurrency": "6",
|
|
"chromium-proxy-server": "",
|
|
"chromium-restart-after": "100",
|
|
"chromium-start-timeout": "20s",
|
|
"gotenberg-build-debug-data": "true",
|
|
"gotenberg-graceful-shutdown-duration": "30s",
|
|
"libreoffice-auto-start": "false",
|
|
"libreoffice-disable-routes": "false",
|
|
"libreoffice-max-queue-size": "0",
|
|
"libreoffice-restart-after": "10",
|
|
"libreoffice-start-timeout": "20s",
|
|
"log-enable-gcp-fields": "false",
|
|
"log-fields-prefix": "",
|
|
"log-format": "auto",
|
|
"log-level": "info",
|
|
"log-std-enable-gcp-fields": "false",
|
|
"log-std-format": "auto",
|
|
"pdfengines-convert-engines": "[libreoffice-pdfengine]",
|
|
"pdfengines-disable-routes": "false",
|
|
"pdfengines-engines": "[]",
|
|
"pdfengines-flatten-engines": "[qpdf]",
|
|
"pdfengines-merge-engines": "[qpdf,pdfcpu,pdftk]",
|
|
"pdfengines-read-bookmarks-engines": "[pdfcpu]",
|
|
"pdfengines-read-metadata-engines": "[exiftool]",
|
|
"pdfengines-split-engines": "[pdfcpu,qpdf,pdftk]",
|
|
"pdfengines-write-bookmarks-engines": "[pdfcpu]",
|
|
"pdfengines-write-metadata-engines": "[exiftool]",
|
|
"prometheus-collect-interval": "1s",
|
|
"prometheus-disable-collect": "false",
|
|
"prometheus-disable-route-logging": "false",
|
|
"prometheus-namespace": "gotenberg",
|
|
"prometheus-metrics-path": "/prometheus/metrics",
|
|
"webhook-allow-list": "[]",
|
|
"webhook-client-timeout": "30s",
|
|
"webhook-deny-list": "[]",
|
|
"webhook-disable": "false",
|
|
"webhook-error-allow-list": "[]",
|
|
"webhook-error-deny-list": "[]",
|
|
"webhook-max-retry": "4",
|
|
"webhook-retry-max-wait": "30s",
|
|
"webhook-retry-min-wait": "1s"
|
|
}
|
|
}
|
|
"""
|
|
|
|
Scenario: GET /debug (No Debug Data)
|
|
Given I have a Gotenberg container with the following environment variable(s):
|
|
| GOTENBERG_BUILD_DEBUG_DATA | false |
|
|
| API_ENABLE_DEBUG_ROUTE | true |
|
|
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": "",
|
|
"timezone": "",
|
|
"architecture": "",
|
|
"modules": null,
|
|
"modules_additional_data": null,
|
|
"flags": null
|
|
}
|
|
"""
|
|
|
|
Scenario: GET /debug (Gotenberg Trace)
|
|
Given I have a Gotenberg container with the following environment variable(s):
|
|
| API_ENABLE_DEBUG_ROUTE | true |
|
|
When I make a "GET" request to Gotenberg at the "/debug" endpoint with the following header(s):
|
|
| Gotenberg-Trace | debug |
|
|
Then the response status code should be 200
|
|
Then the response header "Gotenberg-Trace" should be "debug"
|
|
Then the Gotenberg container should log the following entries:
|
|
| "correlation_id":"debug" |
|
|
|
|
Scenario: GET /debug (Basic Auth)
|
|
Given I have a Gotenberg container with the following environment variable(s):
|
|
| API_ENABLE_DEBUG_ROUTE | true |
|
|
| API_ENABLE_BASIC_AUTH | true |
|
|
| GOTENBERG_API_BASIC_AUTH_USERNAME | foo |
|
|
| GOTENBERG_API_BASIC_AUTH_PASSWORD | bar |
|
|
When I make a "GET" request to Gotenberg at the "/debug" endpoint
|
|
Then the response status code should be 401
|
|
|
|
Scenario: GET /foo/debug (Root Path)
|
|
Given I have a Gotenberg container with the following environment variable(s):
|
|
| API_ENABLE_DEBUG_ROUTE | true |
|
|
| API_ROOT_PATH | /foo/ |
|
|
When I make a "GET" request to Gotenberg at the "/foo/debug" endpoint
|
|
Then the response status code should be 200
|