env('DB_CONNECTION', 'pgsql'), /* |-------------------------------------------------------------------------- | Database Connections |-------------------------------------------------------------------------- */ 'connections' => [ 'pgsql' => [ 'driver' => 'pgsql', 'url' => env('DB_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '5432'), 'database' => env('DB_DATABASE', 'wasl'), 'username' => env('DB_USERNAME', 'wasl'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '', 'prefix_indexes' => true, 'search_path' => 'public', 'sslmode' => env('DB_SSL_MODE', 'prefer'), 'sslcert' => env('DB_SSL_CERT'), 'sslkey' => env('DB_SSL_KEY'), 'sslrootcert' => env('DB_SSL_ROOT_CERT'), 'schema' => 'public', 'engine' => null, ], 'testing' => [ 'driver' => 'pgsql', 'host' => env('DB_TEST_HOST', '127.0.0.1'), 'port' => env('DB_TEST_PORT', '5432'), 'database' => env('DB_TEST_DATABASE', 'wasl_testing'), 'username' => env('DB_TEST_USERNAME', 'wasl'), 'password' => env('DB_TEST_PASSWORD', ''), 'charset' => 'utf8', 'search_path' => 'public', ], ], /* |-------------------------------------------------------------------------- | Migration Repository Table |-------------------------------------------------------------------------- */ 'migrations' => [ 'table' => 'migrations', 'update_date_on_publish' => true, ], /* |-------------------------------------------------------------------------- | Redis Databases / Connection | Separate logical DBs isolate concerns: cache, queue, idempotency, | throttling, sessions — so a flush of one never impacts the others. |-------------------------------------------------------------------------- */ 'redis' => [ 'client' => env('REDIS_CLIENT', 'predis'), 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), 'prefix' => env('REDIS_PREFIX', 'wasl_'), 'persistent' => env('REDIS_PERSISTENT', false), ], 'default' => [ 'url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_DB', '0'), ], 'cache' => [ 'url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_CACHE_DB', '1'), ], // Separate DB for idempotency keys (short TTL) 'idempotency' => [ 'url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_IDEMPOTENCY_DB', '2'), ], // Separate DB for rate limiting / throttling 'throttle' => [ 'url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_THROTTLE_DB', '3'), ], ], ];