Configuration Reference
This page contains a full list of all configuration properties available in Para.
| Property key & Description | Default Value | Type |
|---|---|---|
para.app_nameThe formal name of the web application. | para | String |
para.root_secret_overrideOverrides the secret key for the root Para app app:para once, upon first initialization. | | String |
para.context_path requires restartThe context path (subpath) of the web application, defaults to the root path /. | | String |
para.port requires restartThe network port of this Para server. Port number should be a number above 1024. | 8080 | Integer |
para.dao requires restartSelects the DAO implementation at runtime. Can be AWSDynamoDAO, MongoDBDAO, CassandraDAO, etc. Each implementation has its own configuration properties. | H2DAO | String |
para.search requires restartSelects the Search implementation at runtime. Can be LuceneSearch, ElasticSearch, etc. | LuceneSearch | String |
para.cache requires restartSelects the Cache implementation at runtime. Can be one of CaffeineSearch, HazelcastCache. | CaffeineSearch | String |
para.q requires restartSelects the Queue implementation at runtime. Can be one of LocalQueue, AWSQueue. | LocalQueue | String |
para.fs requires restartSelects the FileStore implementation at runtime. Can be one of LocalFileStore, AWSFileStore. | LocalFileStore | String |
para.emailerSelects the Emailer implementation at runtime. Can be one of AWSEmailer, JavaMailEmailer, NoopEmailer. | NoopEmailer | String |
para.search_enabledEnable/disable full-text search functionality. | true | Boolean |
para.cache_enabledEnable/disable object caching. Enabled in production mode by default. | false | Boolean |
para.webhooks_enabledEnable/disable webhooks functionality using Webhook objects. Requires a queue. | false | Boolean |
para.api_enabledEnable/disable the Para RESTful API. | false | Boolean |
para.plugins_api_enabledEnable/disable the plugins management API at /v1/_plugins. | true | Boolean |
para.cluster_nameThe name of the Para cluster. Used by some of the plugins to isolate deployments. | para-prod | String |
para.admin_identThe identifier of the first administrator (can be email or social login ID). | | String |
para.worker_idNode number, 1 to 128. Used mainly for ID generation.Each instance of Para should have a unique worker id. | 1 | String |
para.executor_threadsThe number of threads to use for the ExecutorService thread pool. | 2 | Integer |
para.executor_service_enabledEnable/disable the asyncronous exectution of task through the executor service. | true | Boolean |
para.max_failed_webhook_attemptsThe number of maximum failed webhook delivery attemts. Webhooks with too many failed deliveries will be disabled automatically. | 10 | Integer |
para.reindex_batch_sizeControls the number of documents to reindex in a single batch. By default is equal to page size for reading the docs from DB. | 100 | Integer |
para.sync_index_with_dbEnable/disable the data synchronization between database and search index. | true | Boolean |
para.read_from_indexEnable/disable reading data from search index instead of database. Used for data recovery. | false | Boolean |
para.max_datatypes_per_appMaximum number of data types which can be defined in each Para app. | 256 | Integer |
para.max_entity_size_bytesMaximum size (in bytes) of incoming JSON payload entities in requests to the API. | 1048576 | Integer |
para.health.check_intervalThe health check interval, in seconds. | 60 | Integer |
para.health_check_enabledEnable/disable the health check functionality in Para. | true | Boolean |
Basic Authentication
Section titled “Basic Authentication”| Property key & Description | Default Value | Type |
|---|---|---|
para.fb_app_idFacebook OAuth2 app ID. | | String |
para.fb_secretFacebook app secret key. | | String |
para.gp_app_idGoogle OAuth2 app ID. | | String |
para.gp_secretGoogle app secret key. | | String |
para.in_app_idLinkedIn OAuth2 app ID. | | String |
para.in_secretLinkedIn app secret key. | | String |
para.tw_app_idTwitter OAuth app ID. | | String |
para.tw_secretTwitter app secret key. | | String |
para.gh_app_idGitHub OAuth2 app ID. | | String |
para.gh_secretGitHub app secret key. | | String |
para.ms_app_idMicrosoft OAuth2 app ID. | | String |
para.ms_secretMicrosoft app secret key. | | String |
para.ms_tenant_idMicrosoft OAuth2 tenant ID. | common | String |
para.az_app_idAmazon OAuth2 app ID. | | String |
para.az_secretAmazon app secret key. | | String |
para.sl_app_idSlack OAuth2 app ID. | | String |
para.sl_secretSlack app secret key. | | String |
para.mm_app_idMattermost OAuth2 app ID. | | String |
para.mm_secretMattermost app secret key. | | String |
Security
Section titled “Security”| Property key & Description | Default Value | Type |
|---|---|---|
para.cors_enabled requires restartEnable/disable the CORS filter. It adds CORS headers to API responses. | true | Boolean |
para.security.csrf_protection requires restartEnable/disable CSRF protection which checks for valid CSRF tokens in write requests. | true | Boolean |
para.security.csrf_protection_with_spa requires restartEnable/disable CSRF protection with single-page application mode enabled. | true | Boolean |
para.auth_cookieThe name of the authorization cookie. | para-auth | String |
para.request_expires_afterExpiration period for signed API request, in seconds. | 900 | Integer |
para.jwt_expires_afterExpiration period for JWTs (access token), in seconds. | 86400 | Integer |
para.jwt_refresh_intervalJWT refresh interval, after which a new token is issued, in seconds. | 3600 | Integer |
para.id_token_expires_afterExpiration period for short-lived ID tokens, in seconds. | 60 | Integer |
para.session_timeoutExpiration period for the login session, in seconds. | 86400 | Integer |
para.min_password_lengthThe minimum length of user passwords. | 8 | Integer |
para.pass_reset_timeoutThe time window in which passwords can be reset, in seconds. After that the token in the email expires. | 1800 | Integer |
para.max_pass_matching_attemtsThe maximum number of passord matching attempts for user accounts per time unit. After that the account is locked and user cannot login until the lock has expired. | 20 | Integer |
para.pass_matching_lock_period_hoursThe time to force a user to wait until they can try to log back in, in hours. | 1 | Integer |
para.returnto_cookieThe name of the cookie used to remember which URL the user requested and will be redirected to after login. | para-returnto | String |
para.support_emailThe email of the webmaster/support team. Para will send emails to this email. | [email protected] | String |
para.security.allow_unverified_emailsEnable/disable email verification after the initial user registration. Users with unverified emails won’t be able to sign in, unless they use a social login provider. | false | Boolean |
para.security.ignoredA list of ignored paths which will not require authentication before accessing. A list of paths like this ["/{path1}", "/{path2}/**", ...]. | | ConfigList |
para.security.signinThe path to the login page. | /signin | String |
para.security.signin_successThe default page to send users to when they login. | / | String |
para.security.signin_failureThe default page to send users to when login fails. | /signin?error | String |
para.security.signoutThe path to the logout page. | /signout | String |
para.security.signout_successThe default page to send users to when they logout. | /signin | String |
para.security.access_deniedThe path to redirect to when 403 code is returned. | /403 | String |
para.security.returntoThe path to return to when an authentication request succeeds. | returnto | String |
River & Queue
Section titled “River & Queue”| Property key & Description | Default Value | Type |
|---|---|---|
para.default_queue_nameThe name of the queue used by Para. | para-default | String |
para.queue_link_enabledEnable/disable polling the queue for message. This controls the ‘river’ feature in Para. | false | Boolean |
para.queue.polling_sleep_seconds | 60 | Integer |
para.queue.polling_interval_secondsThe polling interval of the Para river, in seconds. Polls queue for messages. | 10 | Integer |
para.river.max_indexing_retriesThe maximum number of attempts at reading an object from database and indexing it, when the operation was received from the queue. | 5 | Integer |
para.indexing_sync_interval_secThe time interval between the sending of each batch of index synchronization messages to the queue, in seconds. | 10 | Integer |
Metrics
Section titled “Metrics”| Property key & Description | Default Value | Type |
|---|---|---|
para.metrics_enabledEnable/disable the built-in metrics around CRUD methods. | true | Boolean |
para.metrics.logging_rateThe rate at which the metrics logger will write to file, in seconds. | 60 | Integer |
para.metrics.graphite.hostThe URL of the Graphite host to push metrics to. | | String |
para.metrics.graphite.portThe port number of the Graphite server. | 2003 | Integer |
para.metrics.graphite.prefix_system | | String |
para.metrics.graphite.prefix_appsThe prefix to apply to metric names, e.g. com.erudika.para.{{INSTANCE_ID}}. | | String |
para.metrics.graphite.periodThe period for how often to push system metrics in seconds. Disabled by default. | 0 | Integer |
para.metrics.jmx_enabledEnable/disable JMX reporting for all metrics. | false | Boolean |
LDAP Authentication
Section titled “LDAP Authentication”| Property key & Description | Default Value | Type |
|---|---|---|
para.security.ldap.password_paramLDAP password parameter name. | password | String |
para.security.ldap.username_paramLDAP username parameter name. | username | String |
File Storage
Section titled “File Storage”| Property key & Description | Default Value | Type |
|---|---|---|
para.s3.bucketThe S3 bucket where files will be stored by FileStore implementations. | org.paraio.us-east-1 | String |
para.s3.max_filesize_mbMaximum file size for files uploaded to S3, in megabytes. | 10 | Integer |
para.localstorage.folderThe local folder for file storage, when LocalFileStore is used. | | String |
para.localstorage.max_filesize_mbMaximum file size for files stored locally, in megabytes. | 10 | Integer |
Para Client
Section titled “Para Client”| Property key & Description | Default Value | Type |
|---|---|---|
para.client.ssl_protocolsSSL protocols allowed for a successul connection. | TLSv1.3 | String |
para.client.ssl_keystoreThe SSL key store location. This contains the certificates used by the Para client. | | String |
para.client.ssl_keystore_passwordThe SSL key store password. | | String |
para.client.ssl_truststoreThe SSL trust store location. This contains the certificates and CAs which the client trusts. | | String |
para.user_agent_id_enabledEnable/disable User-Agent header in Para client. | true | Boolean |
Elasticsearch Search
Section titled “Elasticsearch Search”| Property key & Description | Default Value | Type |
|---|---|---|
para.es.flavorEleasticsearch flavor - either elasticsearch or opensearch. | elasticsearch | String |
para.es.shardsThe number of shards per index. Used when creating the root app index. | 2 | Integer |
para.es.shards_for_child_appsThe number of shards per index for a child apps. | 1 | Integer |
para.es.replicasThe number of copies to store of the root index. | 0 | Integer |
para.es.replicas_for_child_appsThe number of copies to store of each child app index. | 0 | Integer |
para.es.use_nested_custom_fieldsSwitches between normal indexing and indexing with nested key/value objects for custom properties. When this is false (normal mode), Para objects will be indexed without modification but this could lead to a field mapping explosion and crash the ES cluster. | false | Boolean |
para.es.async_enabledEnable/disable asynchronous operations when indexing/unindexing. | false | Boolean |
para.es.bulk.flush_immediatelyEanble/disable immediately flushing the requests in BulkProcessor, concurrently (in another thread). | true | Boolean |
para.es.restclient_schemeThe scheme to use when connecting to the Elasticsearch server - http or https. | http | String |
para.es.restclient_hostThe ES server hostname. | localhost | String |
para.es.restclient_portThe ES server port number. | 9200 | Integer |
para.es.sign_requests_to_awsEnable/disable request signing using the AWS V4 algorithm. For use with Amazon OpenSearch. | false | Boolean |
para.es.restclient_context_pathThe context path where ES is deployed, if any. | | String |
para.es.auto_expand_replicasAutomatically make a replica copy of the index to the number of nodes specified. | 0-1 | String |
para.es.root_index_sharing_enabledEnable/disable root index sharing by child apps configured with isSharingIndex = true. | false | Boolean |
para.es.track_total_hitsMakes ES track the actual number of hits, even if they are more than the 10000. | true | Boolean |
para.es.aws_regionThe AWS region where ES is deployed. Used for calculating request signatures. | eu-west-1 | String |
para.es.basic_auth_loginThe username to use for authentication with ES. | | String |
para.es.basic_auth_passwordThe password to use for authentication with ES. | | String |
para.es.bulk.size_limit_mbBulkProcessor flush threshold, in megabytes. | 5 | Integer |
para.es.bulk.action_limitBulkProcessor flush threshold in terms of batch size. | 1000 | Integer |
para.es.bulk.concurrent_requestsBulkProcessor number of concurrent requests (0 means synchronous execution). | 1 | Integer |
para.es.bulk.flush_interval_msBulkProcessor flush interval, in milliseconds. | 5000 | Integer |
para.es.bulk.backoff_initial_delay_msBulkProcessor inital backoff delay, in milliseconds. | 50 | Integer |
para.es.bulk.max_num_retriesBulkProcessor number of retries. | 8 | Integer |
para.es.proxy_enabledEnable/disable the Elasticsearch proxy endpoint. | false | Boolean |
para.es.proxy_pathThe path to the ES proxy endpoint. | _elasticsearch | String |
para.es.proxy_reindexing_enabledEnable/disable rebuilding indices through the Elasticsearch proxy endpoint. | false | Boolean |
Lucene Search
Section titled “Lucene Search”| Property key & Description | Default Value | Type |
|---|---|---|
para.lucene.dirThe data folder where Lucene stores its indexes. | ./ | String |
MongoDB DAO
Section titled “MongoDB DAO”| Property key & Description | Default Value | Type |
|---|---|---|
para.mongodb.uriThe MongoDB URI string - verrides host, port, user and password if set. | | String |
para.mongodb.databaseThe database name that Para will use. The database should exist before starting Para. | para | String |
para.mongodb.hostThe hostname of the MongoDB server. | localhost | String |
para.mongodb.portThe MongoDB server port. | 27017 | Integer |
para.mongodb.userThe username with access to the MongoDB database. | | String |
para.mongodb.passwordThe MongoDB user’s password. | | String |
para.mongodb.ssl_enabledEnable/disable the SSL/TLS transport layer. | false | Boolean |
para.mongodb.ssl_allow_allAllows a connection to any host over SSL by ignoring the certificate validation. | false | Boolean |
SQL DAO
Section titled “SQL DAO”| Property key & Description | Default Value | Type |
|---|---|---|
para.db.hostnameThe hostname of the H2 server. Setting this will enable H2’s “server mode” and start a TCP server. | | String |
para.db.dirThe data directory for storing H2 databases. | ./data | String |
para.db.userThe username with access to the H2 database. | para | String |
para.db.tcpServerParameters for the H2 TCP server. | | String |
para.sql.urlThe server URL to connect to, without the jdbc: prefix. | | String |
para.sql.driverThe fully-qualified class name for your SQL driver. | | String |
para.sql.userThe username with access to the database. | user | String |
para.sql.passwordThe database user’s password. | secret | String |
Cassandra DAO
Section titled “Cassandra DAO”| Property key & Description | Default Value | Type |
|---|---|---|
para.cassandra.hostsComma-separated Cassandra server hosts (contact points). | localhost | String |
para.cassandra.keyspaceThe name of the Cassandra keyspace to use. | para | String |
para.cassandra.userThe Cassandra username with access to the database. | | String |
para.cassandra.passwordThe password for the Cassandra user. | | String |
para.cassandra.portThe Cassandra server port to connect to. | 9042 | Integer |
para.cassandra.replication_factorReplication factor for the Cassandra keyspace. | 1 | Integer |
para.cassandra.ssl_enabledEnable/disable the SSL/TLS transport in Cassandra client. | false | Boolean |
para.cassandra.ssl_protocolsThe protocols allowed for successful connection to Cassandra cluster. | TLSv1.3 | String |
para.cassandra.ssl_keystoreCassandra client key store, containing the certificates to use. | | String |
para.cassandra.ssl_keystore_passwordPassword for the Cassandra client key store. | | String |
para.cassandra.ssl_truststoreCassandra client trust store, containing trusted certificates and CAs. | | String |
para.cassandra.ssl_truststore_passwordPassword for the Cassandra trust store. | | String |
AWS DynamoDB DAO
Section titled “AWS DynamoDB DAO”| Property key & Description | Default Value | Type |
|---|---|---|
para.dynamodb.sse_enabledEnable/disable SSE (encryption-at-rest) using own KMS, instead of AWS-owned CMK for all newly created DynamoDB tables. | false | Boolean |
para.dynamodb.replica_regionsToggles global table settings for the specified regions. | | String |
para.dynamodb.backups_enabledEnable/disable point-in-time backups in DynamoDB. | false | Boolean |
para.dynamodb.provisioned_mode_enabledEnable/disable provisioned billing as an alternative to on-demand billing in DynamoDB. | false | Boolean |
para.dynamodb.max_read_capacityThe maximum read capacity when creating a table with provisioned mode enabled. | 10 | Integer |
para.dynamodb.max_write_capacityThe maximum write capacity when creating a table with provisioned mode enabled. | | Integer |
Caffeine Cache
Section titled “Caffeine Cache”| Property key & Description | Default Value | Type |
|---|---|---|
para.caffeine.evict_after_minutesIdle time before an unused object expires from the Caffeine cache. Access resets this timeout. | 10 | Integer |
para.caffeine.cache_sizeMaximum size for the Caffeine cache map. | 10000 | Integer |
Hazelcast Cache
Section titled “Hazelcast Cache”| Property key & Description | Default Value | Type |
|---|---|---|
para.hc.async_enabledEnable/disable asynchronous operations in the Hazelcast client. | true | Boolean |
para.hc.ttl_secondsTime-to-live value (how long the objects stay cached) for cached objects, in seconds. | 3600 | Integer |
para.hc.ec2_discovery_enabledEnable/disable EC2 auto-discovery feature when deploying to AWS. | true | Boolean |
para.hc.aws_access_keyThe AWS access key to use if EC2 auto-discovery is enabled in Hazelcast. | | String |
para.hc.aws_secret_keyThe AWS secret key to use if EC2 auto-discovery is enabled in Hazelcast. | | String |
para.hc.aws_regionThe AWS region to use if EC2 auto-discovery is enabled in Hazelcast. | | String |
para.hc.discovery_groupEC2 security group for cloud discovery of Hazelcast nodes. | hazelcast | String |
para.hc.max_sizeMaximum number of objects to keep in Hazelcast cache. | 5000 | Integer |
para.hc.eviction_policyHazelcast cache eviction policy - LRU or LFU. | LRU | String |
Miscellaneous
Section titled “Miscellaneous”| Property key & Description | Default Value | Type |
|---|---|---|
para.max_items_per_pageMaximum results per page - limits the number of items to show in search results. | 30 | Integer |
para.max_pagesPagination limit - sets the highest page number possible. | 1000 | Integer |
para.max_page_limitPagination limit - sets the maximum value for the limit request parameter, when it is used. | 256 | Integer |
para.access_log_enabledEnable/disable the Para access log. | true | Boolean |
para.shared_table_nameThe name of the shared database table, used by shared apps. | 0 | String |
para.fail_on_write_errorsEnable/disable throwing an exception when a write operation fails with errors. | true | Boolean |
para.import_batch_sizeThe maximum number of objects to import, in each batch, when restoring data from backup. | 100 | Integer |
para.gzip_enabledEnable/disable the GZIP filter for compressing API response entities. | false | Boolean |
para.debug_request_signaturesEnable/disable debuging info for each AWS V4 request signature. | false | Boolean |
para.vote_expires_afterVote expiration timeout, in seconds. Users can vote again on the same content after this period has elapsed. Default is 30 days. | 2592000 | Integer |
para.vote_locked_afterVote locking period, in seconds. Vote cannot be changed after this period has elapsed. Default is 30 sec. | 30 | Integer |
para.plugin_folderThe folder from which Para will load its JAR plugin files. | lib/ | String |
para.prepend_shared_appids_with_spaceFor internal use only! Prepends appid fields with a space for all shared apps. | false | Boolean |
para.print_versionEnable/disable version number printing in Para logs. | true | Boolean |
para.print_logoEnable/disable printing the Para ASCII logo on startup. | true | Boolean |
para.markdown_soft_breakSets the Markdown soft break character. | <br/> | String |
para.markdown_allowed_follow_domainsA whitelist of domains, links to which will be allowed to be followed by web crawlers (comma-separated list). | | String |
para.aws_ses_regionAWS region to use in the AWSEmailer implementation. | eu-west-1 | String |
para.pidfile_enabledEnable/disable PID file generation on startup. | true | Boolean |
para.default_separatorString separator - default is colon :. | : | String |
para.default_encodingDefault character encoding - UTF-8. | UTF-8 | String |
para.landing_page_enabledEnable/disable the landing page when opening the server address in the browser. | true | Boolean |
para.mcp_server_modeEnable/disable the MCP server. Possible values: off, r - read-only, rw - full access. | off | String |