Configuration Parameters for HEAVY.AI Web Server

View as Markdown

Following are the parameters for runtime settings on HeavyAI Web Server. The parameter syntax provides both the implied value and the default value as appropriate. Optional arguments are in square brackets, while implied and default values are in parentheses.

FlagDescriptionDefault
additional-file-upload-extensions <string>Denote additional file extensions for uploads. Has no effect if --enable-upload-extension-check is not set.
allow-any-origin

Allows for a CORS exception to the same-origin policy. Required to be true if Immerse is hosted on a different domain or subdomain hosting heavy_web_server and heavydb.

Allowing any origin is a less secure mode than what heavy_web_server requires by default.

--allow-any-origin = false
-b | backend-url <string>URL to http-port on heavydb. Change to avoid collisions with other services.http://localhost:6278
-B | binary-backend-url <string>URL to http-binary-port on heavydb.http://localhost:6276
cert stringCertificate file for HTTPS. Change for testing and debugging.cert.pem
-c | config <string>Path to HeavyDB configuration file. Change for testing and debugging.
-d | data <string>Path to HeavyDB data directory. Change for testing and debugging.data
data-catalog <string>Path to data catalog directory.n/a
docs stringPath to documentation directory. Change if you move your documentation files to another directory.docs
enable-binary-thriftUse the binary thrift protocol.TRUE[1]
enable-browser-logs [=arg]

Enable access to current log files via web browser. Only super users (while logged in) can access log files.

Log files are available at http[s]://host:port/logs/log_name.

The web server log files:
ACCESS - http[s]://host:port/logs/access
ALL - http[s]://host:port/logs/all


HeavyDB log files:
INFO - http[s]://host:port/logs/info
WARNING - http[s]://host:port/logs/warning
ERROR - http[s]://host:port/logs/

FALSE[0]
enable-cert-verificationTLS certificate verification is a security measure that can be disabled for the cases of TLS certificates not issued by a trusted certificate authority. If using a locally or unofficially generated TLS certificate to secure the connection between heavydb and heavy_web_server, this parameter must be set to false. heavy_web_server expects a trusted certificate authority by default.--enable-cert-verification = true
enable-cross-domain [=arg]Enable frontend cross-domain authentication. Cross-domain session cookies require the SameSite = None; Secure headers. Can only be used with HTTPS domains; requires enable-https to be true.FALSE[0]
enable-httpsEnable HTTPS support. Change to enable secure HTTP.
enable-https-authenticationEnable PKI authentication.
enable-https-redirect [=arg]

Enable a new port that heavy_web_server listens on for incoming HTTP requests. When received, it returns a redirect response to the HTTPS port and protocol, so that browsers are immediately and transparently redirected. Use to provide an HEAVY.AI front end that can run on both the HTTP protocol (http://my-heavyai-frontend.com) on default HTTP port 80, and on the primary HTTPS protocol (https://my-heavyai-frontend.com) on default https port 443, and have requests to the HTTP protocol automatically redirected to HTTPS. Without this, requests to HTTP fail. Assuming heavy_web_server can attach to ports below 1024, the configuration would be:
enable-https-redirect = TRUE
http-to-https-redirect-port = 80

FALSE[0]
enable-non-kernel-time-query-interruptEnable non-kernel-time query interrupt.TRUE[1]
enable-runtime-query-interruptEnbale runtime query interrupt.TRUE[1]
enable-upload-extension-checkDisables restrictive file extension upload check.
encryption-key-file-path <string>Path to the file containing the credential payload cipher key. Key must be 256 bits in length.
-f | frontend stringPath to frontend directory. Change if you move the location of your frontend UI files.frontend
http-to-https-redirect-port = arg

Configures the http (incoming) port used by enable-https-redirect. The port option specifies the redirect port number. Use to provide an HEAVY.AI front end that can run on both the HTTP protocol (http://my-heavyai-frontend.com) on default HTTP port 80, and on the primary HTTPS protocol (https://my-heavyai-frontend.com) on default https port 443, and have requests to the HTTP protocol automatically redirected to HTTPS. Without this, requests to HTTP fail. Assuming heavy_web_server can attach to ports below 1024, the configuration would be: enable-https-redirect = TRUE
http-to-https-redirect-port = 80

6280
idle-session-duration = argIdle session default, in minutes.60
jupyter-prefix-string <string>Jupyter Hub base_url for Jupyter integration./jupyter
jupyter-url-string <string>URL for Jupyter integration.
-j |jwt-key-file

Path to a key file for client session encryption.

The file is expected to be a PEM-formatted ( .pem ) certificate file containing the unencrypted private key in PKCS #1, PCKS #8, or ASN.1 DER form.

Example PEM file creation using OpenSSL.

Required only if using a high-availability server configuration or another server configuration that requires an instance of Immerse to talk to multiple heavy_web_server instances.

Each heavy_web_server instance needs to use the same encryption key to encrypt and decrypt client session information which is used for session persistence (“sessionization”) in Immerse.

key <string>Key file for HTTPS. Change for testing and debugging.key.pem
max-tls-versionRefers to the version of TLS encryption used to secure web protocol connections. Specifies a maximum TLS version.
min-tls-versionRefers to the version of TLS encryption used to secure web protocol connections. Specifies a minimum TLS version.--min-tls-version = VersionTLS12
peer-cert <string>Peer CA certificate PKI authentication.peercert.pem
-p | port intFrontend server port. Change to avoid collisions with other services.6273
-r | read-onlyEnable read-only mode. Prevent changes to the data.
secure-acao-uriIf set, ensures that all Access-Allow-Origin headers are set to the value provided.
servers-json <string>Path to servers.json. Change for testing and debugging.
session-id-header <string>Session ID header.immersesid
ssl-cert <string>SSL validated public certificate.sslcert.pem
ssl-private-key <string>SSL private key file.sslprivate.key
strip-x-headers <strings>List of custom X http request headers to be removed from incoming requests. Use --strip-x-headers=""to allow all X headers through.[X-HeavyDB-Username]
timeout duration

Maximum request duration in #h#m#s format. For example 0h30m0s represents a duration of 30 minutes. Controls the maximum duration of individual HTTP requests. Used to manage resource exhaustion caused by improperly closed connections.

This also limits the execution time of queries made over the Thrift HTTP transport. Increase the duration if queries are expected to take longer than the default duration of one hour; for example, if you COPY FROM a large file when using heavysql with the HTTP transport.

1h0m0s
tls-cipher-suites <strings>

Refers to the combination of algorithms used in TLS encryption to secure web protocol connections.

All available TLS cipher suites compatible with HTTP/2:

  • TLS_RSA_WITH_RC4_128_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_
    GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_
    GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_
    GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_256_
    GCM_SHA384
  • TLS_ECDHE_RSA_WITH_CHACHA20_
    POLY1305
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_
    POLY1305
  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_FALLBACK_SCSV

    <code></code>

    Limit security vulnerabilities by specifying the allowed TLS ciphers in the encryption used to secure web protocol connections.

The following cipher suites are accepted by default:

  • TLS_ECDHE_RSA_WITH_AES_128_
    GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_
    GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_
    GCM_SHA384
  • TLS_RSA_WITH_AES_256_GCM_
    SHA384
tls-curves <strings>

Refers to the types of Elliptic Curve Cryptography (ECC) used in TLS encryption to secure web protocol connections.

All available TLS elliptic Curve IDs:

  • secp256r1 (Curve ID P256)
  • CurveP256 (Curve ID P256)
  • secp384r1 (Curve ID P384)
  • CurveP384 (Curve ID P384)
  • secp521r1 (Curve ID P521)
  • CurveP521 (Curve ID P521)
  • x25519 (Curve ID X25519)
  • X25519 (Curve ID X25519)

    Limit security vulnerabilities by specifying the allowed TLS cipher suites in the encryption used to secure web protocol connections.

The following TLS curves are accepted by default:

  • CurveP521
  • CurveP384
  • CurveP256
tmpdir stringPath for temporary file storage. Used as a staging location for file uploads. Consider locating this directory on the same file system as the HEAVY.AI data directory. If not specified on the command line, heavyai_web_server recognizes the standard TMPDIR environment variable as well as a specific HEAVYAI_TMPDIR environment variable, the latter of which takes precedence. If you use neither the command-line argument nor one of the environment variables, the default, /tmp/ is used./tmp
ultra-secure-modeEnables secure mode that sets Access-Allow-Origin headers to --secure-acao-uriand sets security headers like X-Frame-Options, Content-Security-Policy, and Strict-Transport-Security.
-v | verboseEnable verbose logging. Adds log messages for debugging purposes.
versionReturn version.