Complete configuration options for nuxt.config.ts.

Basic Configuration

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['nuxt-skew-protection'],

  skewProtection: {
    // Your configuration here
  }
})

Options

enabled: boolean

  • Default: true

Enables or disables the module.

storage: StorageOptions

  • Default: { driver: 'fs', base: 'node_modules/.cache/nuxt-seo/skew-protection' }

Storage configuration for version assets and metadata. Required for production.

nuxt.config.ts
export default defineNuxtConfig({
  skewProtection: {
    storage: {
      driver: 'fs', // or 'redis', 's3', 'cloudflare-kv-binding', etc.
      // Driver-specific options
    }
  }
})

See Storage Configuration for all drivers.

updateStrategy 'polling' | 'sse' | 'ws'

  • Default: Auto-detected based on platform

Strategy for checking for version updates.

See Update Strategies for details.

retentionDays: number

  • Default: 30

How many days to keep old versions before cleanup.

skewProtection: {
  retentionDays: 7 // Keep versions for 7 days
}

maxNumberOfVersions: number

  • Default: 10

Maximum number of versions to retain.

skewProtection: {
  maxNumberOfVersions: 5 // Keep max 5 versions
}

Cleanup happens during build. Oldest versions are removed first.

  • Default: See below

Cookie configuration for storing deployment version.

nuxt.config.ts
export default defineNuxtConfig({
  skewProtection: {
    cookie: {
      name: '__nkpv',
      path: '/',
      sameSite: 'strict',
      maxAge: 60 * 60 * 24 * 60 // 60 days
    }
  }
})

bundlePreviousDeploymentChunks: boolean

  • Default: true

Bundles previous deployment chunks to support users on old versions. Old build assets are stored and served to users who haven't refreshed.

nuxt.config.ts
export default defineNuxtConfig({
  skewProtection: {
    bundlePreviousDeploymentChunks: true
  }
})
Automatically disabled when using CDN URL.

connectionTracking: boolean

  • Default: false

Enables real-time connection tracking. When enabled, the server tracks active SSE/WebSocket connections. Stats are only sent to authorized connections.

nuxt.config.ts
export default defineNuxtConfig({
  skewProtection: {
    connectionTracking: true
  }
})

Use with the useActiveConnections() composable to display live connection stats:

const { total, versions, authorized } = useActiveConnections()
Only works with sse or ws update strategies. Does not support polling or external adapters (Pusher/Ably).
Stats require authorization via the skew:authorize-stats hook. See Live Connection Tracking for setup.

See Live Connection Tracking for usage examples.

routeTracking: boolean

  • Default: false

Tracks which routes users are currently viewing. Requires connectionTracking: true.

nuxt.config.ts
export default defineNuxtConfig({
  skewProtection: {
    connectionTracking: true,
    routeTracking: true
  }
})

When enabled, useActiveConnections() includes a routes property:

const { total, versions, routes } = useActiveConnections()
// routes.value = { "/": 10, "/about": 3, "/blog/post-1": 2 }

See Tracking User Pages for usage examples and targeted invalidation.

ipTracking: boolean

  • Default: false

Tracks IP addresses of connected users. Requires connectionTracking: true.

nuxt.config.ts
export default defineNuxtConfig({
  skewProtection: {
    connectionTracking: true,
    ipTracking: true
  }
})

When enabled, useActiveConnections() includes IP addresses in the connections array:

const { connections } = useActiveConnections()
// connections.value = [{ id: 'abc', version: '...', route: '/', ip: '192.168.1.1' }]
IP tracking requires explicit opt-in due to privacy considerations. IPs are only stored in memory and exposed via the stats API. Ensure your skew:authorize-stats hook properly restricts access.

IP addresses are extracted from headers in this order: cf-connecting-ip (Cloudflare), x-forwarded-for (proxies), x-real-ip (nginx).

debug: boolean

  • Default: false

Enables debug logging.

nuxt.config.ts
export default defineNuxtConfig({
  skewProtection: {
    debug: true
  }
})

Logs version changes, asset operations, module invalidations, and storage operations.

Did this page help you?