Security Plugins
The Security class provides factory methods for registering common security-related Fastify plugins. Pass them to app.security().
Usage
main.ts TypeScript
import { Security } from '@abrahambass/nova';
await app.security([
Security.cors(),
Security.helmet(),
Security.rateLimit(),
Security.compress(),
]); Available Plugins
Security.cors(options?)
Registers @fastify/cors for cross-origin resource sharing.
| Default | Value |
|---|---|
origin | true (reflect request origin) |
credentials | true |
Example TypeScript
Security.cors({
origin: ['https://myapp.com', 'https://admin.myapp.com'],
methods: ['GET', 'POST', 'PUT', 'DELETE'],
credentials: true,
}) Security.helmet(options?)
Registers @fastify/helmet for security headers (XSS protection, HSTS, etc.).
| Default | Value |
|---|---|
global | true |
Security.rateLimit(options?)
Registers @fastify/rate-limit to prevent abuse.
| Default | Value |
|---|---|
max | 100 requests per window |
timeWindow | '1 minute' |
Example TypeScript
Security.rateLimit({
max: 50,
timeWindow: '30 seconds',
}) Security.cookies(options?)
Registers @fastify/cookie for cookie parsing and setting.
Security.csrf(options?)
Registers @fastify/csrf-protection for cross-site request forgery protection.
Security.compress(options?)
Registers @fastify/compress for response compression (gzip, brotli).
| Default | Value |
|---|---|
global | true |
Security.staticFiles(options?)
Registers @fastify/static for serving static files from a directory.
Example TypeScript
import path from 'path';
Security.staticFiles({
root: path.join(__dirname, 'public'),
prefix: '/public/',
}) Plugin Summary
| Method | Underlying Plugin | Options Required |
|---|---|---|
Security.cors() | @fastify/cors | Optional |
Security.helmet() | @fastify/helmet | Optional |
Security.rateLimit() | @fastify/rate-limit | Optional |
Security.cookies() | @fastify/cookie | Optional |
Security.csrf() | @fastify/csrf-protection | Optional |
Security.compress() | @fastify/compress | Optional |
Security.staticFiles() | @fastify/static | Optional |