Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions snippets/nuxt/server/utils/ProxiesConfig.js

This file was deleted.

6 changes: 3 additions & 3 deletions snippets/nuxt/server/utils/ProxiesConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
import { arcjet as arcjetNuxt } from "#arcjet";

export const arcjet = arcjetNuxt({
rules: [],
proxies: [
"100.100.100.100", // A single IP
"100.100.100.0/24", // A CIDR for the range
"76.76.21.21", // An IP address.
"103.21.244.0/22", // A CIDR range of IP addresses.
],
rules: [],
});
10 changes: 10 additions & 0 deletions snippets/nuxt/server/utils/Service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// @ts-expect-error
import { arcjet as arcjetNuxt } from "#arcjet";

export const arcjet = arcjetNuxt({
// @ts-expect-error: TODO does not yet exist.
// Assumes `cloudflare` are the Cloudflare IP ranges from
// <https://docs.arcjet.com/concepts/client-ip#ip-ranges>.
proxies: [Object.fromEntries(cloudflare.map((d) => [d, "cf-connecting-ip"]))],
rules: [],
});
9 changes: 9 additions & 0 deletions snippets/nuxt/server/utils/TrustedIp.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// @ts-expect-error
import { arcjet as arcjetNuxt, slidingWindow } from "#arcjet";

export const arcjet = arcjetNuxt({
// To illustrate, allow 3 requests per minute per IP address.
rules: [slidingWindow({ interval: 60, max: 3, mode: "LIVE" })],
// Assumes requests will have an `x-my-ip` header that you trust:
trustedIpHeader: "x-my-ip",
});
Loading