Skip to content

Configuration

Connect SQLite provides several configuration options to customize its behavior.

Options

OptionDefaultDescription
url-SQLite URL (sqlite:./path/to/db.sqlite or sqlite::memory:)
db:memory:Database file path (alternative to url)
client-Existing better-sqlite3 Database instance
table'sessions'Table name for sessions
prefix'sess:'Key prefix for session IDs
ttl86400Default TTL in seconds (1 day)
disableTTLfalseDisable TTL expiration
disableTouchfalseDisable touch updates
serializerJSONCustom serializer with parse/stringify
waltrueEnable WAL mode for better concurrency

Example Configurations

Production Setup

javascript
// config/session.js
module.exports.session = {
  secret: process.env.SESSION_SECRET,
  adapter: '@sailscastshq/connect-sqlite',
  url: 'sqlite:./db/sessions.db',

  // Custom TTL (7 days)
  ttl: 7 * 24 * 60 * 60,

  cookie: {
    secure: true,
    maxAge: 7 * 24 * 60 * 60 * 1000
  }
}

Development Setup

javascript
// config/env/development.js
module.exports.session = {
  adapter: '@sailscastshq/connect-sqlite',
  url: 'sqlite::memory:', // In-memory for fast development

  cookie: {
    secure: false
  }
}

Custom Table Name

javascript
module.exports.session = {
  adapter: '@sailscastshq/connect-sqlite',
  url: 'sqlite:./db/sessions.db',
  table: 'user_sessions', // Custom table name
  prefix: 'myapp:' // Custom prefix
}

WAL Mode

WAL (Write-Ahead Logging) mode is enabled by default for file-based databases. This provides better concurrent read/write performance.

To disable WAL mode:

javascript
module.exports.session = {
  adapter: '@sailscastshq/connect-sqlite',
  url: 'sqlite:./db/sessions.db',
  wal: false
}

TIP

WAL mode is automatically disabled for in-memory databases (:memory:).

Session Cleanup

Expired sessions are automatically pruned:

  • On startup - Cleans up any expired sessions from previous runs
  • Hourly - Runs a background cleanup job every hour

The cleanup job uses setInterval().unref() so it won't prevent your process from exiting.

All open source projects are released under the MIT License.