Skip to main content
Version: next

JATOS Configuration

JATOS properties can be configured in three different ways:

  1. Config file (jatos.conf)
  2. Command-line arguments
  3. Environment variables (only for some properties)

The config file is located in the JATOS folder under ./conf and is named jatos.conf. It uses the HOCON format.
Remember to always restart JATOS after making any changes to a config file.

Command-line argument names are usually the same as in the config file, but prefixed with -D (except JVM arguments, which use -J). For example: jatos.urlBasePath and -Djatos.urlBasePath.

Command-line arguments can be appended to JATOS' loader.sh start command. For example, to set jatos.urlBasePath and jatos.tmpPath:

./loader.sh start -Djatos.urlBasePath="/mybasepath/" -Djatos.tmpPath="/my/tmp/dir"

JVM Arguments

JVM arguments (for the Java Virtual Machine) are special since they are not directly intended for JATOS but for the JVM running JATOS.
They can only be specified via command-line arguments and must be prefixed with -J.

A commonly used JVM argument is -Xmx, which limits JATOS's memory usage (specifically, the JVM's maximum heap memory).
It must be written as -J-Xmx, e.g., to allow 4GB memory: -J-Xmx4G.


HTTP Config

Address and Port

By default, JATOS binds to all locally available IP addresses (including 127.0.0.1) on port 9000.
Usually, JATOS is installed together with a reverse proxy (e.g., Nginx or Apache), but if you don't want to use a proxy, you must set up the hostname or IP address and port: jatos.http.address and jatos.http.port.

Config file example:

jatos.http.address = 1.2.3.4
jatos.http.port = 80

Command-line example:

-Djatos.http.address=1.2.3.4 -Djatos.http.port=80

Server Idle Timeout

The idle timeout for an open connection, after which it will be closed.
Set to null or infinite to disable the timeout (not recommended for security reasons). Default is 75 seconds.

Config file:

play.server.http.idleTimeout = 100s

Command-line:

-Dplay.server.http.idleTimeout=100s

Request Timeout

How long a request can take before timing out. Set to null or infinite to disable. Default is infinite.

Config file:

play.server.akka.requestTimeout = 100s

Command-line:

-Dplay.server.akka.requestTimeout=100s

URL Base Path

JATOS can be configured to use a base path with jatos.urlBasePath. For example, if your host is www.example.org and JATOS runs under mybasepath, all URLs start with www.example.org/mybasepath/.

The path must always start and end with a "/".
If you add a base path, adjust all absolute paths to study assets in your HTML and JavaScript files, or use relative paths (recommended).

Config file:

jatos.urlBasePath = "/mybasepath/"

Command-line:

-Djatos.urlBasePath="/mybasepath/"

Environment variable:

JATOS_URL_BASE_PATH="/mybasepath/"

Embedding in frames or iframes

The X-Frame-Options header controls whether a JATOS study can be embedded in an iframe/frame.
Possible values are DENY, SAMEORIGIN, or null (allow everywhere). Default is SAMEORIGIN. The CSP directive 'frame-ancestors' is not currently supported by JATOS.

Config file:

play.filters.headers.frameOptions = null

Command-line:

-Dplay.filters.headers.frameOptions=null

Trusted Certificates

You can add multiple certificates, e.g., for encrypted LDAP. type can be PKCS12, JKS, or PEM.

Config file:

play.ws.ssl.trustManager.stores = [ { type = "PEM", path = "conf/certs/ca.pem" } ]

Study Assets Root Path

The study assets root folder is where all study HTML, JavaScript files, etc., are stored.
By default, it is in the JATOS folder and named study_assets_root, except in Docker, where it is under /opt/jatos_data/study_assets_root.

Config file:

jatos.studyAssetsRootPath = "/path/to/my/assets/root/folder"

Command-line:

-Djatos.studyAssetsRootPath="/path/to/my/assets/root/folder"

Environment variable:

JATOS_STUDY_ASSETS_ROOT_PATH="/path/to/my/assets/root/folder"

Temporary Directory Path

JATOS uses a directory to temporarily store files (e.g., during study import).
By default, the system's temp directory is used (on Linux/Unix: /tmp, on Windows: c:\temp). In Docker, it's /opt/jatos_data/tmp.

Config file:

jatos.tmpPath = "/my/tmp/dir"

Command-line:

-Djatos.tmpPath="/my/tmp/dir"

Environment variable:

JATOS_TMP_PATH="/my/tmp/dir"

Application Logs

The application log records messages from the JATOS application. Logs are rotated daily, with a history of up to 30 days.

Do not confuse application logs with study logs.

Application Logs Path

By default, logs are in the JATOS folder under ./logs.

Config file:

jatos.logs.path = "/my/dir/logs"

Command-line:

-Djatos.logs.path="/my/dir/logs"

Environment variable:

JATOS_LOGS_PATH="/my/dir/logs"

Application Logs Filename

Default filename is application (without suffix).

Config file:

jatos.logs.filename = "myFilename"

Command-line:

-Djatos.logs.filename="myFilename"

Environment variable:

JATOS_LOGS_FILENAME="myFilename"

Application Logs Appender

Can be ASYNCSTDOUT or ASYNCFILE (default). Use ASYNCSTDOUT to log to stdout instead of a file.

Config file:

jatos.logs.appender = ASYNCSTDOUT

Command-line:

-Djatos.logs.appender=ASYNCSTDOUT

Environment variable:

JATOS_LOGS_APPENDER=ASYNCSTDOUT

Study Logs

Each study in JATOS has its own study log (more info).
Among other things, it calculates hashes of result data, which can be CPU-intensive. On smaller machines, it may be better to disable it.

Do not confuse study logs with application logs.

Enable/Disable Study Logging

Enabled by default.

Config file:

jatos.studyLogs.enabled = false

Command-line:

-Djatos.studyLogs.enabled=false

Path to Study Logs

By default, study logs are stored in the JATOS folder under ./study_logs.

Config file:

jatos.studyLogs.path = "/path/to/my/jatos_study_logs"

Command-line:

-Djatos.studyLogs.path="/path/to/my/jatos_study_logs"

Environment variable:

JATOS_STUDY_LOGS_PATH="/path/to/my/jatos_study_logs"

File Extensions

Study Archive

Specifies the file suffix of JATOS study archives. The default is jzip.

Config file:

jatos.studyArchive.suffix = "zip"

Command-line:

-Djatos.studyArchive.suffix="zip"

Results Archive

Specifies the file suffix of JATOS results archives. The default suffix is zip (was jrzip older JATOS versions).

Config file:

jatos.resultsArchive.suffix = "xyz"

Command-line:

-Djatos.resultsArchive.suffix="xyz"

Study Members

Allow all users on a JATOS instance to be added at once as members of a study. Useful in small setups (e.g., lab installations). Default is false.

Config file:

jatos.studyMembers.allowAddAllUsers = true

Command-line:

-Djatos.studyMembers.allowAddAllUsers=true

Results Pagination

Maximum number of results fetched from the DB at once. Default is 10.

Config file:

jatos.maxResultsDbQuerySize = 5

Command-line:

-Djatos.maxResultsDbQuerySize=5

Result Data

Maximum size of the result data for one component run. Default is 5 MB. If the maximum size is reached in a study run the "quota reached" flag is set in the study and/or component result.

Config file:

jatos.resultData.maxSize = 10MB

Command-line:

-Djatos.resultData.maxSize=10MB

Result File Uploading

During study runs, it is possible to upload files to JATOS (usually with results). This is an alternative to result data stored in the database. You can also download previously uploaded files during a study run.

Enable/Disable Result File Uploading

Default is true (enabled).

Config file:

jatos.resultUploads.enabled = false

Command-line:

-Djatos.resultUploads.enabled=false

Path to Result Files

By default, uploaded result files are stored in the JATOS folder under ./result_uploads.

Config file:

jatos.resultUploads.path = "/path/to/my/jatos_result_uploads"

Command-line:

-Djatos.resultUploads.path="/path/to/my/jatos_result_uploads"

Environment variable:

JATOS_RESULT_UPLOADS_PATH="/path/to/my/jatos_result_uploads"

Max File Size

Maximum file size per uploaded file. Default is 30MB.

Config file:

jatos.resultUploads.maxFileSize = 100MB

Command-line:

-Djatos.resultUploads.maxFileSize=100MB

Environment variable:

JATOS_RESULT_UPLOADS_MAX_FILE_SIZE=100MB

All Files Size Limit per Study Run

Maximum total size of all files uploaded during one study run. Default is 50MB. If the maximum size is reached in a study run the "quota reached" flag is set in the study result.

Config file:

jatos.resultUploads.limitPerStudyRun = 100MB

Command-line:

-Djatos.resultUploads.limitPerStudyRun=100MB

Environment variable:

JATOS_RESULT_UPLOADS_LIMIT_PER_STUDY_RUN=100MB

Superuser

The Superuser role allows a user to access ANY study on this JATOS as if they were a member, including accessing result data and deleting the study. Useful in small setups or when a dedicated person manages studies. Default is false.

If set to true, an Admin can grant the Superuser role to any user.

Config file:

jatos.user.role.allowSuperuser = true

Command-line:

-Djatos.user.role.allowSuperuser=true

LDAP Authentication

Currently, LDAP users must be added manually in JATOS' User manager (with the LDAP switch enabled). Only authentication is done via LDAP.

If your LDAP server uses encryption, add your certificate to JATOS' trusted certificates using play.ws.ssl.trustManager.stores (only possible in a config file).
For example, if your certificate is at /jatos/conf/certs/ca.pem:

play.ws.ssl.trustManager.stores = [
{ type = "PEM", path = "/jatos/conf/certs/ca.pem" }
{ path: ${java.home}/lib/security/cacerts, password = "changeit" }
]

The first line adds your certificate (type can be PKCS12, JKS, or PEM). The second line adds Java's default keystore. Its default password is "changeit" (do not change it).

LDAP URL

Specifies the LDAP server URL. Not set or empty disables LDAP authentication. Default is empty ("").

Config file:

jatos.user.authentication.ldap.url = "ldap://my.ldap.org:389"

Command-line:

-Djatos.user.authentication.ldap.url="ldap://my.ldap.org:389"

LDAP User Attribute Origin

Defines the LDAP user attribute name, e.g., 'uid' or 'cn'. Default is 'uid'.

Config file:

jatos.user.authentication.ldap.userAttribute = "cn"

Command-line:

-Djatos.user.authentication.ldap.userAttribute="cn"

LDAP Base DN

Specifies the base DN (distinguished name). Can be a single DN string or a list of DNs in brackets. Not set or empty disables LDAP authentication. Default is empty ("").

Config file:

jatos.user.authentication.ldap.basedn = "dc=example,dc=com"

or as a list:

jatos.user.authentication.ldap.basedn = ["ou=students,dc=example,dc=com", "ou=scientists,dc=example,dc=com"]

Command-line:

-Djatos.user.authentication.ldap.basedn="dc=example,dc=com"

or as a list:

-Djatos.user.authentication.ldap.basedn.0=ou=students,dc=example,dc=com
-Djatos.user.authentication.ldap.basedn.1=ou=scientists,dc=example,dc=com

LDAP Admin DN and Password

Specifies a DN and password for an (optional) admin user with rights to search for other users. Some LDAP servers require this if binding directly to a uid is not possible. Not set or empty means no admin user is needed. Default is empty ("").

Config file:

jatos.user.authentication.ldap.admin.dn = "cn=read-only-admin,dc=example,dc=com"
jatos.user.authentication.ldap.admin.password = "mypassword"

Command-line:

-Djatos.user.authentication.ldap.admin.dn="cn=read-only-admin,dc=example,dc=com"
-Djatos.user.authentication.ldap.admin.password="mypassword"

LDAP Timeout

Time in milliseconds JATOS waits for a response from your LDAP server. Default is 5000 ms.

Config file:

jatos.user.authentication.ldap.timeout = 10000

Command-line:

-Djatos.user.authentication.ldap.timeout=10000

Google Sign-In

JATOS users can be authenticated by Google Sign-In. Not set or empty disables Google authentication. Default is empty ("").

Specifies the Google API client ID.

Config file:

jatos.user.authentication.oauth.googleClientId = "1234567890-abc123abc123.apps.googleusercontent.com"

Command-line:

-Djatos.user.authentication.oauth.googleClientId="1234567890-abc123abc123.apps.googleusercontent.com"

OpenID Connect (OIDC) Authentication

JATOS users can be authenticated by OIDC sign-in, e.g., with Keycloak.

OIDC Discovery URL

Specifies the OIDC provider's discovery URL (usually ends in .well-known/openid-configuration).

Config file:

jatos.user.authentication.oidc.discoveryUrl = "http://myOidcProvider/.well-known/openid-configuration"

Command-line:

-Djatos.user.authentication.oidc.discoveryUrl="http://myOidcProvider/.well-known/openid-configuration"

OIDC Client ID

Specifies the OIDC client ID. Not set or empty disables OIDC authentication. Default is empty ("").

Config file:

jatos.user.authentication.oidc.clientId = "myClientId"

Command-line:

-Djatos.user.authentication.oidc.clientId="myClientId"

OIDC Client Secret

Specifies the OIDC client secret. Optional; can be left empty ("").

Config file:

jatos.user.authentication.oidc.clientSecret = "myClientSecret"

Command-line:

-Djatos.user.authentication.oidc.clientSecret="myClientSecret"

OIDC Scope

Specifies your OIDC scope. Default is ["openid"].

Config file:

jatos.user.authentication.oidc.scope = ["your", "scopes"]

Command-line:

-Djatos.user.authentication.oidc.scope.0=your
-Djatos.user.authentication.oidc.scope.1=scopes

OIDC Username Origin

Specifies where the username for the user in JATOS should be taken from. Can be "subject" or "email". Default is "subject".

Config file:

jatos.user.authentication.oidc.usernameFrom = "email"

Command-line:

-Djatos.user.authentication.oidc.usernameFrom="email"

OIDC ID Token Signing Algorithm

Specifies the OIDC ID token signing algorithm. Default is RS256.

Config file:

jatos.user.authentication.oidc.idTokenSigningAlgorithm = "ES512"

Command-line:

-Djatos.user.authentication.oidc.idTokenSigningAlgorithm="ES512"

OIDC Sign-In Button Text

Specifies the text of the OIDC sign-in button on the login page. Default is Sign in with OIDC.

Config file:

jatos.user.authentication.oidc.signInButtonText = "Sign in with ABC university"

Command-line:

-Djatos.user.authentication.oidc.signInButtonText="Sign in with ABC university"

Specifies the URL of a logo to use instead of the standard OIDC logo. Default is the OIDC logo.

Config file:

jatos.user.authentication.oidc.signInButtonLogoUrl = "http://somedomain/logo.svg"

Command-line:

-Djatos.user.authentication.oidc.signInButtonLogoUrl="http://somedomain/logo.svg"

OIDC Success Feedback

Specifies the text of a message shown after a successful sign-in. If left empty (""), no message is shown. Default is "".

Config file:

jatos.user.authentication.oidc.successFeedback = "You successfully signed in with ABC university"

Command-line:

-Djatos.user.authentication.oidc.successFeedback="You successfully signed in with ABC university"

ORCID Authentication

JATOS users can be authenticated by ORCID sign-in. Internally, ORCID uses OpenID Connect.

ORCID Client ID

Config file:

jatos.user.authentication.orcid.clientId = "APP-ABCDEFGHIJKLMNOP"

Command-line:

-Djatos.user.authentication.orcid.clientId="APP-ABCDEFGHIJKLMNOP"

ORCID Client Secret

Config file:

jatos.user.authentication.orcid.clientSecret = "1234abcd-12ab-12ab-12ab-123456abcdef"

Command-line:

-Djatos.user.authentication.orcid.clientSecret="1234abcd-12ab-12ab-12ab-123456abcdef"

ORCID OIDC Scope

Default is ["openid"].

Config file:

jatos.user.authentication.orcid.scope = ["your", "scopes"]

Command-line:

-Djatos.user.authentication.orcid.scope.0=your
-Djatos.user.authentication.orcid.scope.1=scopes

ORCID Username Origin

Specifies where the username for the user in JATOS should be taken from. Can be "subject" or "email". Default is "subject".

Config file:

jatos.user.authentication.orcid.usernameFrom = "email"

Command-line:

-Djatos.user.authentication.orcid.usernameFrom="email"

SURF SRAM (sram.surf.nl) Authentication

JATOS users can be authenticated by SURF SRAM sign-in. Internally, SURF SRAM uses OpenID Connect.

SURF SRAM Client ID

Config file:

jatos.user.authentication.sram.clientId = "APP-ABCDEFGHIJKLMNOP"

Command-line:

-Djatos.user.authentication.sram.clientId="APP-ABCDEFGHIJKLMNOP"

SURF SRAM Client Secret

Config file:

jatos.user.authentication.sram.clientSecret = "1234abcd1234abcd1234abcd1234abcd"

Command-line:

-Djatos.user.authentication.sram.clientSecret="1234abcd1234abcd1234abcd1234abcd"

SURF SRAM OIDC Scope

Default is ["openid", "profile", "email", "voperson_external_id"].

Config file:

jatos.user.authentication.sram.scope = ["your", "scopes"]

Command-line:

-Djatos.user.authentication.sram.scope.0=your
-Djatos.user.authentication.sram.scope.1=scopes

SURF SRAM Username Origin

Specifies where the username for the user in JATOS should be taken from. The username is defined by either SRAM's "subject", "email", or "eduperson_principal_name". Default is "eduperson_principal_name".

Config file:

jatos.user.authentication.sram.usernameFrom = "subject"

Command-line:

-Djatos.user.authentication.sram.usernameFrom="subject"

SURFconext (surfconext.nl) Authentication

JATOS users can be authenticated by SURFconext sign-in. Internally, SURFconext uses OpenID Connect.

SURFconext Discovery URL

Config file:

jatos.user.authentication.conext.discoveryUrl = "http://myOidcProvider/.well-known/openid-configuration"

Command-line:

-Djatos.user.authentication.conext.discoveryUrl="http://myOidcProvider/.well-known/openid-configuration"

SURFconext Client ID

Config file:

jatos.user.authentication.conext.clientId = "APP-ABCDEFGHIJKLMNOP"

Command-line:

-Djatos.user.authentication.conext.clientId="APP-ABCDEFGHIJKLMNOP"

SURFconext Client Secret

Config file:

jatos.user.authentication.conext.clientSecret = "1234abcd-12ab-12ab-12ab-123456abcdef"

Command-line:

-Djatos.user.authentication.conext.clientSecret="1234abcd-12ab-12ab-12ab-123456abcdef"

SURFconext OIDC Scope

Default is ["openid"].

Note: SURFconext does not use scopes to request claims (also see the documentation). Claims are configured per service entity in the Service Provider Dashboard. For JATOS to function, enable the claims "name", "email", and "eduperson_principal_name". If the SURFconext username origin is set to a value other than the default of "eduperson_principal_name", then the "eduperson_principal_name" claim may be disabled.

Config file:

jatos.user.authentication.conext.scope = ["your", "scopes"]

Command-line:

-Djatos.user.authentication.conext.scope.0=your
-Djatos.user.authentication.conext.scope.1=scopes

SURFconext Username Origin

Specifies where the username for the user in JATOS should be taken from. The username is defined by either SURFconext's "subject", "email", or "eduperson_principal_name". Default is "eduperson_principal_name".

Note that SURFconext's subject can be of two types: transient or persistent (also see the documentation). If the SURFconext username origin is set to "subject", then the service entity's subject type must be set to persistent in the Service Provider Dashboard.

Config file:

jatos.user.authentication.conext.usernameFrom = "subject"

Command-line:

-Djatos.user.authentication.conext.usernameFrom="subject"

User Password Restrictions

By default, JATOS enforces only a minimum length of 7 characters. You can increase restrictions as needed.

Password Length

Config file:

jatos.user.password.length = 8

Command-line:

-Djatos.user.password.length=8

Password Strength

Possible values:

  • 0: No restrictions (default)
  • 1: At least one Latin letter and one number
  • 2: At least one Latin letter, one number, and one special character (out of #?!@$%^&*-)
  • 3: At least one uppercase Latin letter, one lowercase Latin letter, one number, and one special character (out of #?!@$%^&*-)

Config file:

jatos.user.password.strength = 3

Command-line:

-Djatos.user.password.strength=3

Database

See JATOS with MySQL.

Old-style properties beginning with db.default are deprecated; use jatos.db* properties instead.

Database URL

Config file:

jatos.db.url = "jdbc:mysql://127.0.0.1:3306/jatos?characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"

Command-line:

-Djatos.db.url="jdbc:mysql://127.0.0.1:3306/jatos?characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"

Environment variable:

JATOS_DB_URL="jdbc:mysql://127.0.0.1:3306/jatos?characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"

Username and Password

Config file:

jatos.db.username = "myusername"
jatos.db.password = "mypassword"

Command-line:

-Djatos.db.username="myusername" -Djatos.db.password="mypassword"

Environment variable:

JATOS_DB_USERNAME="myusername"
JATOS_DB_PASSWORD="mypassword"

Database Driver

For modern MySQL or MariaDB, use com.mysql.cj.jdbc.Driver.

Config file:

jatos.db.driver = "com.mysql.cj.jdbc.Driver"

Command-line:

-Djatos.db.driver="com.mysql.cj.jdbc.Driver"

Environment variable:

JATOS_DB_DRIVER="com.mysql.cj.jdbc.Driver"

Database Connection Pool Size

Specifies the number of database connections. This setting should be configured in conjunction with jatos.threadPool.size. The default is 100.

Config file:

jatos.db.connectionPool.size = 140

Command-line:

-Djatos.db.connectionPool.size=140

Environment variable:

JATOS_DB_CONNECTIONPOOL_SIZE=140

JATOS Thread Pool Size

The size of the thread pool used by JATOS. The default is 150. This setting should be configured in conjunction with jatos.db.connectionPool.size. As a rule of thumb, jatos.threadPool.size can be set to 1.5 * jatos.db.connectionPool.size.

Config file:

jatos.threadPool.size = 210

Command-line:

-Djatos.threadPool.size=210

Environment variable:

JATOS_THREADPOOL_SIZE=210

Multi-Node Mode

If you intend to run JATOS on multiple machines in parallel (a cluster), set this property to true. Default is false.

Config file:

jatos.multiNode = true

Command-line:

-Djatos.multiNode=true

User Session Configuration

Timeout

User session timeout in minutes. Default is 1440 minutes (1 day).

Config file:

jatos.userSession.timeout = 180

Command-line:

-Djatos.userSession.timeout=180

Inactivity Timeout

User session timeout after inactivity, in minutes. Default is 60 minutes.

Config file:

jatos.userSession.inactivity = 120

Command-line:

-Djatos.userSession.inactivity=120

Secure Session

Restrict user access to HTTPS. Default is false.

Config file:

play.http.session.secure = true

Command-line:

-Dplay.http.session.secure=true

JATOS ID Cookies

Secure ID Cookies

Restrict participant access to HTTPS by setting the ID cookie's secure attribute. Default is false.

Config file:

jatos.idCookies.secure = true

Command-line:

-Djatos.idCookies.secure=true

SameSite Attribute

Defines the ID cookie's SameSite attribute. Possible values: Lax, Strict, null (not set), and None. Setting to Strict makes the use of external recruiting tools (like Prolific) impossible. Default is None.

Config file:

jatos.idCookies.sameSite = "Lax"

Command-line:

-Djatos.idCookies.sameSite="Lax"

Maximum number of ID cookies per browser (limits parallel study runs in the same browser). Default is 10. Must be at least 1. More than 20 may cause a 'HTTP header too large' error.

Config file:

jatos.idCookies.limit = 20

Command-line:

-Djatos.idCookies.limit=20

PID File Location

Defines the location of the PID file.

Config file:

play.pidfile.path = "/var/run/jatos.pid"

Command-line:

-Dplay.pidfile.path="/var/run/jatos.pid"

Home Page

Welcome Message

Specifies a URL for JATOS to fetch static HTML, which will be shown on the home page instead of the default welcome message (more info). If left empty, the default message is shown.

Config file:

jatos.brandingUrl = "https://mydomain.com/foobar-university-welcome-page.html"

Command-line:

-Djatos.brandingUrl="https://mydomain.com/foobar-university-welcome-page.html"

'Terms of Use' Info Box

Specifies a URL link to the 'terms of use' to be shown in an info box on the home page. If left empty, the info box is not shown.

Config file:

jatos.termsOfUseUrl = "https://mydomain.com/my-terms-of-use.html"

Command-line:

-Djatos.termsOfUseUrl="https://mydomain.com/my-terms-of-use.html"

Study Manager Page

Enable/disable columns in the study manager table. Sometimes calculating these columns takes too long due to a slow database or file system.

Config file:

jatos.studyAdmin.showStudyAssetsSize = false # Default is true
jatos.studyAdmin.showResultDataSize = true # Default is false
jatos.studyAdmin.showResultFileSize = true # Default is false

Command-line:

-Djatos.studyAdmin.showStudyAssetsSize=false # Default is true
-Djatos.studyAdmin.showResultDataSize=true # Default is false
-Djatos.studyAdmin.showResultFileSize=true # Default is false

JATOS API

Enable

Enable or disable the JATOS API. Default is enabled (true).

Config file:

jatos.api.allowed = false

Command-line:

-Djatos.api.allowed=false

Enable API Token Generation via API

Is it allowed to generate new tokens via the API. This setting does not apply to tokens created via the GUI. Default is enabled (true).

Config file:

jatos.api.tokens.apiGeneration.allowed = false

Command-line:

-Djatos.api.tokens.apiGeneration.allowed=false

Token Expiration

The duration for which a token generated via the API remains valid after its creation. This setting does not apply to tokens created via the GUI. Default is 3600 seconds.

Config file:

jatos.api.tokens.apiGeneration.expiresAfter = 86400 # One day

Command-line:

-Djatos.api.tokens.apiGeneration.expiresAfter=86400

Last seen date threshold

Last seen date is updated only if its current value is older than this threshold (in seconds). This helps reduce unnecessary database writes during frequent study result updates. Default is 30 seconds.

Config file:

jatos.studyResult.lastSeenDate.updateThreshold = 60

Command-line:

-Djatos.studyResult.lastSeenDate.updateThreshold=60

OpenAI API

Enable

Is it allowed to use the OpenAI proxy during study runs. Default is disabled (false).

Config file:

jatos.openai.allowed = true

Command-line:

-Djatos.openai.allowed=true

OpenAI API key

Config file:

jatos.openai.apiKey = "my-openai-key"

Command-line:

-Djatos.openai.apiKey="my-openai-key"

Base path

Base path for OpenAI API requests. Use this to restrict which API endpoints are accessible, helping to prevent unauthorized usage. For example, setting this to /v1/chat/completions limits usage strictly to the Chat API. Default is /v1/ (allows all endpoints).

Config file:

jatos.openai.urlBasePath = "/v1/responses"

Command-line:

-Djatos.openai.urlBasePath="/v1/responses"

Quota per study run

The maximum number of OpenAI API calls allowed per study run. Set to -1 for unlimited calls. Default is 10.

Config file:

jatos.openai.callLimit = 100

Command-line:

-Djatos.openai.callLimit=100

Timeout

Timeout waiting for an OpenAI response. How long in seconds should the proxy wait for a response from OpenAI API. Default is 180.

Config file:

jatos.openai.timeout = 90

Command-line:

-Djatos.openai.timeout=90