MCPcopy Create free account
hub / github.com/gotenberg/gotenberg / Provision

Method Provision

pkg/modules/api/api.go:230–364  ·  view source on GitHub ↗

Provision sets the module properties.

(ctx *gotenberg.Context)

Source from the content-addressed store, hash-verified

228
229// Provision sets the module properties.
230func (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 {

Callers

nothing calls this directly

Calls 15

IntEnvFunction · 0.92
StringEnvFunction · 0.92
LoggerFunction · 0.92
NewFileSystemFunction · 0.92
ParsedFlagsMethod · 0.80
MustIntMethod · 0.80
MustStringMethod · 0.80
MustDurationMethod · 0.80
MustDeprecatedStringMethod · 0.80
MustRegexpSliceMethod · 0.80
MustBoolMethod · 0.80

Tested by

no test coverage detected