Reference guide for all supported configuration options in the CData Arc arc.properties file for the embedded Jetty web server.
This reference guide covers all supported configuration options in CData Arc‘s arc.properties file. This file is used in the embedded Jetty web server.To add any of these options to your Arc application, use a text editor to open the arc.properties file (located in the installation directory), then add the appropriate syntax. You can find examples of each option below.
The following options are available in any Arc .properties files you have in your implementation.
You can provide variables in the configuration options, but you must keep these considerations in mind:
You can use variables for property values, but you cannot use them in property names.
Variable names are case-sensitive.
System properties take precedence over environment variables. If a variable is not found in the system property or the environment variable, it defaults to an empty string.
Variables cannot be nested. For instance, cdata.warPath=${cdata.prefix${cdata.arc}}/webapp is not allowed.
The following example uses variables in configuration options to perform the following:
Defines the connection string to the backend database that is used by Arc.cdata.app.db=jdbc:cdata:mysql:server=localhost;port=3306;database=mysql;user=MyUserName;password=MyPassword
Defines a separate directory for message data (the files and payloads that flow through connectors). When set, Arc writes message files to this directory instead of the application directory. Configuration data (such as connector settings, profiles, and certificates) always remains in the application directory. See Configure the Message Directory for full details.cdata.app.messageDirectory=/mnt/message-data/arc
Defines the base URL path at which a web application is deployed. It acts as a prefix for all the URLs handled by the web application.cdata.contextPath=/myappFor example, if the application is hosted at www.mydomain.com, this ensures the receiving endpoint is http://www.mydomain.com/myapp/pub/Receive.rsb.
Specifies the path to an AES key file that contains a random character string, or a PFX (PKCS#12) certificate file, to use as the master key. The master key encrypts the encryption key that encrypts sensitive data such as passwords and secrets in Arc. Only required if you want to use your own key or store the key in a non-default location.cdata.encryption.key=file:///var/opt/mykeys/mysecret.keyAlternatively, if you are using an AES key, you can use the APP_KEY environment variable to supply the file path to the key file.
Defines the password for a PFX file that is being used for the master key (set using cdata.encryption.key).cdata.encryption.key.password=MyS3curePa55w0rdAlternatively, you can use an environment variable (for example, ENCRYPTION_KEY_PASSWORD) to store the password, and reference it here.cdata.encryption.key.password=${ENCRYPTION_KEY_PASSWORD}
Boolean option that controls whether Federal Information Processing Standards (FIPS) mode is enabled. FIPS is a set of security standards developed by the United States federal government for use in computer systems to ensure security, interoperability, and data integrity.cdata.fips.enabled=true
Lets you provide custom headers as concatenated string key-value pairs in the following format: key:value.When variables are included, the string is split at the first occurrence of a variable, and the variable is replaced. Only values can use variables.cdata.http.customHeaders=Product-Version:[${ARC_ISSUER} 2025];/api.rsc,Product-Issuer:${ARC_ISSUER}
Boolean option that controls whether GZIP compression is enabled for HTTP responses. When enabled, Jetty automatically compresses responses to reduce bandwidth usage, which improves performance for clients that support GZIP.cdata.http.gzipEnabled=true
Sets the host/IP address that Jetty’s HTTP server should bind to. This determines which network interfaces the server listens on for incoming HTTP requests.cdata.http.host=192.168.0.27
Controls the idle timeout for HTTP and TLS connections. This setting determines how long Jetty waits (in milliseconds) for activity on a connection before closing it.cdata.http.idleTimeout=60000
Defines the maximum allowed size (in bytes) for HTTP form submissions (such as application/x-www-form-urlencoded and multipart/form-data requests). It limits the amount of data that can be processed in form submissions, including file uploads via forms.cdata.http.maxFormSize=2000000
Boolean option that determines whether Jetty is running behind a reverse proxy or load balancer. When enabled, Jetty properly handles proxied requests, including headers like X-Forwarded-For and X-Forwarded-Proto.
When true, Jetty trusts X-Forwarded-* headers from the proxy.
When false, Jetty ignores those headers and assumes direct client connections.
This ensures proper client IP detection, HTTPS redirection, and host resolution when running behind a proxy.cdata.http.proxyMode=true
Sets the maximum size (in bytes) of the HTTP request line and all request headers combined. The default is 8192. If a request exceeds this limit, Jetty rejects it with a 414 URI Too Long or 431 Request Header Fields Too Large error.Increase this value if your clients send long URLs (for example, OData requests with large $filter expressions) or large headers. Because the request line and headers share the same limit, a long URL leaves less room for headers.The value must be a whole number.cdata.http.requestHeaderSize=32768
Defines initialization parameters for the servlet. These parameters are concatenated string key-value pairs that are accessed by the servlet or filter at runtime. They must be set in a comma-delimited string in the following format: key:value.When variables are included, the string is split at the first occurrence of a variable, and the variable is replaced. Only values can use variables.cdata.initParameters=ARCCLOUD_SERVICE_DEFINITION_PATH:${cdata.home}/service.json,APP_LOGS:${cdata.logdb}
This is interpreted as cdata.loginService.ldap.*. These properties are used to configure Lightweight Directory Access Protocol (LDAP) authentication in Jetty, which allows users to authenticate against an LDAP server. A number of properties are supported. At a minimum, the following are required when you use LDAP with the embedded Jetty server:
Boolean that determines whether LDAP authentication is enabled in Jetty. This property is typically used to enable or disable the entire LDAP-based login service, based on your configuration needs.cdata.loginService.ldap.enabled=true
Boolean that controls whether Jetty logs HTTP requests to an access log. When enabled, Jetty records details of incoming requests, such as client IP, request method, response status, and response time.cdata.requestLog.enabled=true
Specifies the type of keystore Jetty should use for TLS/SSL certificates. A keystore contains the private key and SSL certificate necessary for Jetty to establish secure HTTPS connections.Common types include JKS, PKCS12, BKS and PEM.cdata.tls.keyStoreType=PEM
Specifies the port number that Jetty uses for TLS (HTTPS) connections. This is the secure alternative to cdata.http.port, which is used for plain HTTP traffic.cdata.tls.port=443
Boolean that controls whether Jetty enforces hostname verification during Server Name Indication (SNI) processing in TLS/SSL connections.cdata.tls.sniHostCheck=true