DataProvider writes defaults on first startup inside the plugin data folder.
config.yml: global backend toggles + ORM settingsdatabases/mysql.ymldatabases/mongodb.ymldatabases/redis.ymldatabases/redis_messaging.yml
Each backend file supports named sections (default, analytics, etc.).
Use the same identifier in code when calling registerDatabase*.
orm.schema_mode: Hibernate schema mode (for examplevalidate,update)databases.mysql.enableddatabases.mongodb.enableddatabases.redis.enableddatabases.redis_messaging.enabled
Example:
orm:
schema_mode: validate
databases:
mysql:
enabled: true
mongodb:
enabled: false
redis:
enabled: true
redis_messaging:
enabled: truehost,port,database,username,passwordssl_moderequire_secure_transportallow_public_key_retrievalpool_sizemin_idlequeue_capacityconnection_timeout_msvalidation_timeout_msidle_timeout_msmax_lifetime_msleak_detection_threshold_msconnect_timeout_mssocket_timeout_msquery_timeout_secondsdefault_fetch_sizecache_prepared_statementsprepared_statement_cache_sizeprepared_statement_cache_sql_limit
host,port,database,username,passwordauthSource(note exact casing)require_secure_transporttls.enabledtls.allow_invalid_hostnames(must remainfalse; startup fails otherwise)tls.trust_all_certificates(must remainfalse; startup fails otherwise)tls.trust_store_path(optional JKS/PKCS12 path for private CA/self-managed trust)tls.trust_store_password(optional trust store password)tls.trust_store_type(optional, defaults to JVMKeyStore.getDefaultType())pool_sizequeue_capacitymax_connection_pool_sizemin_connection_pool_sizeconnect_timeout_mssocket_timeout_msserver_selection_timeout_ms
host,port,user,password,databaserequire_secure_transporttls.enabledtls.verify_hostname(must remaintrue; startup fails otherwise)tls.trust_all_certificates(must remainfalse; startup fails otherwise)tls.trust_store_path(optional JKS/PKCS12 path for private CA/self-managed trust)tls.trust_store_password(optional trust store password)tls.trust_store_type(optional, defaults to JVMKeyStore.getDefaultType())pool.connectionspool.threadspool.min_idlepool.max_idlepool.test_on_borrowpool.test_while_idlepool.queue_capacityconnection_timeout_mssocket_timeout_msscan_countsecurity.max_scan_results
- Same network + TLS fields as Redis key-value
pool.connectionspool.threadspool.min_idlepool.max_idlepool.test_on_borrowpool.test_while_idlepool.queue_capacitypool.max_subscriptionsconnection_timeout_mssocket_timeout_mssecurity.max_payload_charssecurity.max_queued_messages_per_handler(per-subscriber queue cap to isolate slow handlers)
- Identifier mismatch between code and config section names
- Enabling TLS flags without server-side TLS support
- Setting insecure TLS flags (
trust_all_certificates,allow_invalid_hostnames, orverify_hostname=false) which now fail startup in 2.0 - Using
queue_capacityat the root ofredis.ymlinstead ofpool.queue_capacity
- Use
defaultfor single-backend setups. - Use explicit identifiers (for example
rw,ro,analytics) for multi-backend setups. - Validate trust store configuration in staging before production rollout.
- Never commit production credentials.
- During plugin shutdown across many classes/scopes, pair cleanup with
unregisterAllDatabasesForPlugin().