@atlasauth/nextjs 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.10.0 — 2026-11-04
6
+
7
+ ### Security
8
+
9
+ - `createMountHandler` no longer trusts a browser-supplied client IP. It used the leftmost `X-Forwarded-For` entry (or `X-Real-IP`) as `X-Atlas-Client-IP`, which Atlas uses for rate limits, lockouts, risk checks and audit logs, so a visitor could pick their own IP. It now takes the `X-Forwarded-For` entry `trustedProxyHops` places from the right (default `1`: the one your nearest proxy appended), never reads `X-Real-IP`, and drops values that are not IP addresses.
10
+
11
+ ### Added
12
+
13
+ - `createMountHandler({ clientIp?, trustedProxyHops? })`: `clientIp(request)` supplies the client IP yourself (takes precedence); `trustedProxyHops` sets how many proxies append to `X-Forwarded-For` (`0` forwards no client IP).
14
+
15
+ ### Changed
16
+
17
+ - `createMountHandler` without `ATLAS_UPSTREAM` or `ATLAS_PROXY_SECRET` answers 503 (`text/plain`) and logs the missing variable once, instead of throwing (a bare 500).
18
+
5
19
  ## 0.9.0 — 2026-11-03
6
20
 
7
21
  ### Added
package/README.md CHANGED
@@ -139,7 +139,7 @@ Set `ATLAS_UPSTREAM` (your instance's Frontend API host, from the domain's `inst
139
139
 
140
140
  Use a base path without a leading underscore, such as `/atlas`. The App Router treats folders starting with `_` as private and never routes them, so the default `/__atlas` doesn't work in Next.js.
141
141
 
142
- The handler forwards the method, path, query and body, sets `X-Atlas-Forwarded-Host`, `X-Atlas-Proxy-Secret`, `X-Atlas-Client-IP`, `X-Forwarded-For` and `X-Forwarded-Proto` itself (never from the browser), and returns every `Set-Cookie` and redirect unchanged. Both handlers are also exported from `@atlasauth/nextjs`.
142
+ The handler forwards the method, path, query and body, drops any incoming `X-Atlas-*`, `X-Forwarded-*`, `Forwarded` and `X-Real-IP` headers, sets `X-Atlas-Forwarded-Host` and `X-Atlas-Proxy-Secret` itself, and returns every `Set-Cookie` and redirect unchanged. The client IP (`X-Atlas-Client-IP` and `X-Forwarded-For`) is the incoming `X-Forwarded-For` entry `trustedProxyHops` places from the right (default `1`: the entry your nearest proxy appended; entries further left are browser-controlled and ignored; `0` forwards none), or whatever `clientIp(request)` returns when you pass it; values that are not IP addresses are dropped. Without `ATLAS_UPSTREAM` or `ATLAS_PROXY_SECRET` the mount answers 503 and logs the missing variable once. Both handlers are also exported from `@atlasauth/nextjs`.
143
143
 
144
144
  ## Routing rules
145
145
 
package/dist/mount.d.ts CHANGED
@@ -28,6 +28,19 @@ export interface AtlasMountOptions {
28
28
  verifyToken?: string;
29
29
  /** The mount's `base_path`, as registered with Atlas. Default `/atlas`. */
30
30
  basePath?: string;
31
+ /**
32
+ * Derive the client IP forwarded to Atlas as `X-Atlas-Client-IP` yourself
33
+ * (for example from your platform's verified request IP). Takes precedence
34
+ * over `trustedProxyHops`. A value that is not an IP address is dropped.
35
+ */
36
+ clientIp?: (request: Request) => string | undefined;
37
+ /**
38
+ * How many proxies in front of this app append to `X-Forwarded-For`. The
39
+ * client IP is the entry that many places from the right (default 1: the
40
+ * rightmost, appended by the nearest proxy). Entries further left are
41
+ * browser-controlled and never used. `0` forwards no client IP.
42
+ */
43
+ trustedProxyHops?: number;
31
44
  fetchImpl?: typeof fetch;
32
45
  }
33
46
  type Handler = (request: Request) => Promise<Response>;
@@ -43,10 +56,15 @@ export interface AtlasMountHandlers {
43
56
  /**
44
57
  * App Router handlers that forward the mount to Atlas: method, path (base
45
58
  * included: Atlas reads the prefix from it), query and streamed body unchanged;
46
- * hop-by-hop headers dropped; `X-Atlas-Forwarded-Host`, `X-Atlas-Proxy-Secret`,
47
- * `X-Atlas-Client-IP`, `X-Forwarded-For` and `X-Forwarded-Proto` set from the
48
- * request (never passed on from the browser). The response keeps its status,
49
- * headers and EVERY `Set-Cookie`; redirects are returned, not followed.
59
+ * hop-by-hop headers dropped. Every incoming `X-Atlas-*`, `X-Forwarded-*`,
60
+ * `Forwarded` and `X-Real-IP` header is dropped, then set as: `X-Atlas-Forwarded-Host`
61
+ * from `Host`; `X-Atlas-Proxy-Secret` from config; `X-Atlas-Client-IP` and
62
+ * `X-Forwarded-For` from `options.clientIp`, else the incoming `X-Forwarded-For`
63
+ * entry `trustedProxyHops` (default 1) from the right, omitted when absent or not
64
+ * an IP; `X-Forwarded-Proto` from the last incoming `X-Forwarded-Proto` entry (http or https only),
65
+ * else the request URL's scheme. The response keeps its status, headers and EVERY
66
+ * `Set-Cookie`; redirects are returned, not followed. Without an upstream or
67
+ * proxy secret it answers 503 (logged once).
50
68
  */
51
69
  export declare function createMountHandler(options?: AtlasMountOptions): AtlasMountHandlers;
52
70
  type VerifyContext = {
package/dist/mount.js CHANGED
@@ -37,10 +37,41 @@ function setCookies(headers) {
37
37
  const single = headers.get('set-cookie');
38
38
  return single ? [single] : [];
39
39
  }
40
- function clientIp(headers) {
41
- const xff = headers.get('x-forwarded-for')?.split(',')[0]?.trim();
42
- return xff || headers.get('x-real-ip')?.trim() || undefined;
40
+ /** An IPv4/IPv6 address with any port or brackets stripped, or undefined when `raw` is not one. */
41
+ function normaliseIp(raw) {
42
+ let v = raw?.trim() ?? '';
43
+ const bracketed = /^\[([^\]]+)\](?::\d+)?$/.exec(v);
44
+ if (bracketed)
45
+ v = bracketed[1];
46
+ else if (/^[\d.]+:\d+$/.test(v))
47
+ v = v.slice(0, v.lastIndexOf(':'));
48
+ if (/^\d{1,3}(\.\d{1,3}){3}$/.test(v))
49
+ return v.split('.').every((o) => Number(o) <= 255) ? v : undefined;
50
+ if (!v.includes(':') || !/^[0-9a-fA-F:.]+$/.test(v))
51
+ return undefined;
52
+ try {
53
+ new URL(`http://[${v}]/`); // the WHATWG URL parser validates IPv6 on every runtime
54
+ return v;
55
+ }
56
+ catch {
57
+ return undefined;
58
+ }
43
59
  }
60
+ /**
61
+ * The client IP: `options.clientIp(request)` when given, else the
62
+ * `X-Forwarded-For` entry `trustedProxyHops` from the right. The browser can
63
+ * set any `X-Forwarded-For` / `X-Real-IP`, so leftmost entries are never trusted.
64
+ */
65
+ function clientIp(request, options) {
66
+ if (options.clientIp)
67
+ return normaliseIp(options.clientIp(request));
68
+ const hops = options.trustedProxyHops ?? 1;
69
+ if (hops <= 0)
70
+ return undefined;
71
+ const entries = request.headers.get('x-forwarded-for')?.split(',') ?? [];
72
+ return entries.length < hops ? undefined : normaliseIp(entries[entries.length - hops]);
73
+ }
74
+ let loggedMisconfig = false;
44
75
  /** `/atlas`, normalised: one leading slash, no trailing slash. */
45
76
  function normaliseBase(raw) {
46
77
  const base = `/${raw.trim().replace(/^\/+|\/+$/g, '')}`;
@@ -51,20 +82,33 @@ function normaliseBase(raw) {
51
82
  /**
52
83
  * App Router handlers that forward the mount to Atlas: method, path (base
53
84
  * included: Atlas reads the prefix from it), query and streamed body unchanged;
54
- * hop-by-hop headers dropped; `X-Atlas-Forwarded-Host`, `X-Atlas-Proxy-Secret`,
55
- * `X-Atlas-Client-IP`, `X-Forwarded-For` and `X-Forwarded-Proto` set from the
56
- * request (never passed on from the browser). The response keeps its status,
57
- * headers and EVERY `Set-Cookie`; redirects are returned, not followed.
85
+ * hop-by-hop headers dropped. Every incoming `X-Atlas-*`, `X-Forwarded-*`,
86
+ * `Forwarded` and `X-Real-IP` header is dropped, then set as: `X-Atlas-Forwarded-Host`
87
+ * from `Host`; `X-Atlas-Proxy-Secret` from config; `X-Atlas-Client-IP` and
88
+ * `X-Forwarded-For` from `options.clientIp`, else the incoming `X-Forwarded-For`
89
+ * entry `trustedProxyHops` (default 1) from the right, omitted when absent or not
90
+ * an IP; `X-Forwarded-Proto` from the last incoming `X-Forwarded-Proto` entry (http or https only),
91
+ * else the request URL's scheme. The response keeps its status, headers and EVERY
92
+ * `Set-Cookie`; redirects are returned, not followed. Without an upstream or
93
+ * proxy secret it answers 503 (logged once).
58
94
  */
59
95
  function createMountHandler(options = {}) {
60
96
  const handle = async (request) => {
61
97
  const env = readEnv();
62
98
  const upstream = options.upstream ?? env.ATLAS_UPSTREAM;
63
99
  const proxySecret = options.proxySecret ?? env.ATLAS_PROXY_SECRET;
64
- if (!upstream)
65
- throw new Error('@atlasauth/nextjs createMountHandler: set ATLAS_UPSTREAM (your Frontend API host).');
66
- if (!proxySecret)
67
- throw new Error('@atlasauth/nextjs createMountHandler: set ATLAS_PROXY_SECRET (POST /v1/instance/proxy_secret).');
100
+ if (!upstream || !proxySecret) {
101
+ if (!loggedMisconfig) {
102
+ loggedMisconfig = true;
103
+ console.error(!upstream
104
+ ? '@atlasauth/nextjs createMountHandler: set ATLAS_UPSTREAM (your Frontend API host).'
105
+ : '@atlasauth/nextjs createMountHandler: set ATLAS_PROXY_SECRET (POST /v1/instance/proxy_secret).');
106
+ }
107
+ return new Response('Atlas is not configured', {
108
+ status: 503,
109
+ headers: { 'content-type': 'text/plain; charset=utf-8', 'cache-control': 'no-store' },
110
+ });
111
+ }
68
112
  const base = normaliseBase(options.basePath ?? '/atlas');
69
113
  const url = new URL(request.url);
70
114
  if (url.pathname !== base && !url.pathname.startsWith(`${base}/`)) {
@@ -79,12 +123,14 @@ function createMountHandler(options = {}) {
79
123
  });
80
124
  headers.set('x-atlas-forwarded-host', request.headers.get('host') ?? url.host);
81
125
  headers.set('x-atlas-proxy-secret', proxySecret);
82
- const ip = clientIp(request.headers);
126
+ const ip = clientIp(request, options);
83
127
  if (ip) {
84
128
  headers.set('x-atlas-client-ip', ip);
85
129
  headers.set('x-forwarded-for', ip);
86
130
  }
87
- headers.set('x-forwarded-proto', request.headers.get('x-forwarded-proto')?.split(',')[0]?.trim() || url.protocol.replace(':', ''));
131
+ // Rightmost entry (the nearest proxy's), http or https only: a browser-sent value cannot downgrade the scheme.
132
+ const proto = request.headers.get('x-forwarded-proto')?.split(',').pop()?.trim().toLowerCase();
133
+ headers.set('x-forwarded-proto', proto === 'http' || proto === 'https' ? proto : url.protocol.replace(':', ''));
88
134
  const method = request.method.toUpperCase();
89
135
  const hasBody = method !== 'GET' && method !== 'HEAD' && request.body !== null;
90
136
  const res = await (options.fetchImpl ?? fetch)(target, {
package/dist/mount.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlasauth/nextjs",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "exports": {
@@ -19,7 +19,7 @@
19
19
  "./package.json": "./package.json"
20
20
  },
21
21
  "dependencies": {
22
- "@atlasauth/backend": "0.35.0"
22
+ "@atlasauth/backend": "0.37.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "next": ">=13.4"