Provision sets the module properties.
(ctx *gotenberg.Context)
| 228 | |
| 229 | // Provision sets the module properties. |
| 230 | func (a *Api) Provision(ctx *gotenberg.Context) error { |
| 231 | flags := ctx.ParsedFlags() |
| 232 | a.port = flags.MustInt("api-port") |
| 233 | a.bindIp = flags.MustString("api-bind-ip") |
| 234 | a.tlsCertFile = flags.MustString("api-tls-cert-file") |
| 235 | a.tlsKeyFile = flags.MustString("api-tls-key-file") |
| 236 | a.startTimeout = flags.MustDuration("api-start-timeout") |
| 237 | a.timeout = flags.MustDuration("api-timeout") |
| 238 | a.bodyLimit = flags.MustHumanReadableBytes("api-body-limit") |
| 239 | a.rootPath = flags.MustString("api-root-path") |
| 240 | a.correlationIdHeader = flags.MustDeprecatedString("api-trace-header", "api-correlation-id-header") |
| 241 | a.downloadFromCfg = downloadFromConfig{ |
| 242 | allowList: flags.MustRegexpSlice("api-download-from-allow-list"), |
| 243 | denyList: flags.MustRegexpSlice("api-download-from-deny-list"), |
| 244 | denyPrivateIPs: flags.MustBool("api-download-from-deny-private-ips"), |
| 245 | denyPublicIPs: flags.MustBool("api-download-from-deny-public-ips"), |
| 246 | maxRetry: flags.MustInt("api-download-from-max-retry"), |
| 247 | disable: flags.MustBool("api-disable-download-from"), |
| 248 | } |
| 249 | a.disableHealthCheckRouteTelemetry = flags.MustDeprecatedBool("api-disable-health-check-logging", "api-disable-health-check-route-telemetry") |
| 250 | a.disableRootRouteTelemetry = flags.MustBool("api-disable-root-route-telemetry") |
| 251 | a.disableDebugRouteTelemetry = flags.MustBool("api-disable-debug-route-telemetry") |
| 252 | a.disableVersionRouteTelemetry = flags.MustBool("api-disable-version-route-telemetry") |
| 253 | a.enableDebugRoute = flags.MustBool("api-enable-debug-route") |
| 254 | |
| 255 | // Port from env? |
| 256 | portEnvVar := flags.MustString("api-port-from-env") |
| 257 | if portEnvVar != "" { |
| 258 | port, err := gotenberg.IntEnv(portEnvVar) |
| 259 | if err != nil { |
| 260 | return fmt.Errorf("get API port from env: %w", err) |
| 261 | } |
| 262 | a.port = port |
| 263 | } |
| 264 | |
| 265 | // Enable basic auth? |
| 266 | enableBasicAuth := flags.MustBool("api-enable-basic-auth") |
| 267 | if enableBasicAuth { |
| 268 | basicAuthUsername, err := gotenberg.StringEnv("GOTENBERG_API_BASIC_AUTH_USERNAME") |
| 269 | if err != nil { |
| 270 | return fmt.Errorf("get basic auth username from env: %w", err) |
| 271 | } |
| 272 | basicAuthPassword, err := gotenberg.StringEnv("GOTENBERG_API_BASIC_AUTH_PASSWORD") |
| 273 | if err != nil { |
| 274 | return fmt.Errorf("get basic auth password from env: %w", err) |
| 275 | } |
| 276 | a.basicAuthUsername = basicAuthUsername |
| 277 | a.basicAuthPassword = basicAuthPassword |
| 278 | } |
| 279 | |
| 280 | // Get routes from modules. |
| 281 | mods, err := ctx.Modules(new(Router)) |
| 282 | if err != nil { |
| 283 | return fmt.Errorf("get routers: %w", err) |
| 284 | } |
| 285 | |
| 286 | routers := make([]Router, len(mods)) |
| 287 | for i, router := range mods { |
nothing calls this directly
no test coverage detected