Configuration
Complete configuration options for nuxt.config.ts.
Basic Configuration
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.
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.
cookie: CookieOptions
- Default: See below
Cookie configuration for storing deployment version.
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.
export default defineNuxtConfig({
skewProtection: {
bundlePreviousDeploymentChunks: true
}
})
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.
export default defineNuxtConfig({
skewProtection: {
connectionTracking: true
}
})
Use with the useActiveConnections() composable to display live connection stats:
const { total, versions, authorized } = useActiveConnections()
sse or ws update strategies. Does not support polling or external adapters (Pusher/Ably).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.
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.
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' }]
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.
export default defineNuxtConfig({
skewProtection: {
debug: true
}
})
Logs version changes, asset operations, module invalidations, and storage operations.