Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: Limit ARCJET_BASE_URL to small set of allowed URLs #83

Merged
merged 3 commits into from
Dec 22, 2023

Conversation

blaine-arcjet
Copy link
Contributor

Closes #45

This adds a list of allowed URLs that ARCJET_BASE_URL can be set to; otherwise we fallback to the default.

This is a breaking change in the case where a user was specifying some other URL that is not in the allowlist.

@blaine-arcjet blaine-arcjet requested a review from a team December 21, 2023 19:30
@blaine-arcjet
Copy link
Contributor Author

As discussed on our sync, we are going to only run this check in process.env.NODE_ENV="production" until 1.0 to make it easier to experiment. Once it is always enabled, users can still escape from our allowlist via a custom client.

@blaine-arcjet blaine-arcjet merged commit d9184ea into main Dec 22, 2023
9 checks passed
@blaine-arcjet blaine-arcjet deleted the phated/baseurl-allowlist branch December 22, 2023 18:12
trunk-io bot pushed a commit that referenced this pull request Feb 9, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>@arcjet/duration: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/duration-v1.0.0-alpha.8) (2024-02-09)


### 🚀 New Features

* Support duration strings or integers on rate limit configuration ([#192](#192)) ([b173d83](b173d83))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/rollup-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
</details>

<details><summary>@arcjet/next: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/next-v1.0.0-alpha.8) (2024-02-09)


### ⚠ BREAKING CHANGES

* Build extra field from unknown request properties ([#179](#179))

### 🚀 New Features

* Build extra field from unknown request properties ([#179](#179)) ([2576341](2576341))
* Support cookies and query via the protocol ([#214](#214)) ([ca0cd64](ca0cd64))


### 📦 Dependencies

* Bump `@connectrpc/connect-web` from 1.2.0 to 1.2.1 ([#101](#101)) ([28f4a50](28f4a50))
* Bump `@connectrpc/connect-web` from 1.2.1 to 1.3.0 ([#120](#120)) ([289446d](289446d))
* bump next from 14.0.4 to 14.1.0 ([#148](#148)) ([6753117](6753117))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 📝 Documentation

* Rename AJ_KEY to ARCJET_KEY & switch to next.js app dir example ([#201](#201)) ([9c4da7b](9c4da7b))
* Update Arcjet description ([#122](#122)) ([c011bc2](c011bc2))


### 🧹 Miscellaneous Chores

* **examples:** Encourage use of environment variables for keys ([#139](#139)) ([290a1b2](290a1b2))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/ip bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * arcjet bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/rollup-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
</details>

<details><summary>@arcjet/analyze: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/analyze-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 📝 Documentation

* Update Arcjet description ([#122](#122)) ([c011bc2](c011bc2))


### 🧹 Miscellaneous Chores

* **analyze:** Regenerate WebAssembly and bindings ([#92](#92)) ([b10ce31](b10ce31))
* **rollup:** Externalize all imports that end with `.wasm?module` ([#217](#217)) ([ee6f387](ee6f387))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/logger bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/rollup-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
</details>

<details><summary>@arcjet/eslint-config: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/eslint-config-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* Bump `eslint-config-turbo` from 1.11.2 to 1.11.3 ([#107](#107)) ([b01f418](b01f418))
* bump eslint-config-next from 14.0.4 to 14.1.0 ([#147](#147)) ([a44b3f6](a44b3f6))
* bump eslint-config-turbo from 1.11.3 to 1.12.3 ([#198](#198)) ([4bd458c](4bd458c))
* bump next from 14.0.4 to 14.1.0 ([#148](#148)) ([6753117](6753117))
</details>

<details><summary>@arcjet/ip: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/ip-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/rollup-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
</details>

<details><summary>@arcjet/logger: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/logger-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/rollup-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
</details>

<details><summary>@arcjet/protocol: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/protocol-v1.0.0-alpha.8) (2024-02-09)


### ⚠ BREAKING CHANGES

* Handle TTL as seconds instead of milliseconds ([#211](#211))
* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182))
* Remove count property on ArcjetRateLimitReason ([#181](#181))
* Build extra field from unknown request properties ([#179](#179))
* **protocol:** Introduce Shield name ([#158](#158))

### 🚀 New Features

* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184)) ([6701b02](6701b02))
* Build extra field from unknown request properties ([#179](#179)) ([2576341](2576341))
* Support cookies and query via the protocol ([#214](#214)) ([ca0cd64](ca0cd64))
* Support duration strings or integers on rate limit configuration ([#192](#192)) ([b173d83](b173d83))


### 🪲 Bug Fixes

* Handle TTL as seconds instead of milliseconds ([#211](#211)) ([c2d3dd0](c2d3dd0))


### 📦 Dependencies

* bump @bufbuild/protobuf from 1.6.0 to 1.7.2 ([#167](#167)) ([c7dbdba](c7dbdba))
* bump @connectrpc/connect from 1.2.1 to 1.3.0 ([#126](#126)) ([40db7f3](40db7f3))
* Bump `@connectrpc/connect` from 1.2.0 to 1.2.1 ([#100](#100)) ([74013ef](74013ef))
* bump typeid-js from 0.3.0 to 0.5.0 ([#176](#176)) ([fadf89f](fadf89f))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 🧹 Miscellaneous Chores

* **protocol:** Introduce Shield name ([#158](#158)) ([311713b](311713b))
* Regenerate the protobuf bindings ([#183](#183)) ([807e8de](807e8de))
* Remove count property on ArcjetRateLimitReason ([#181](#181)) ([ff3e310](ff3e310))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182)) ([255a4a7](255a4a7))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/logger bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/rollup-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
</details>

<details><summary>@arcjet/rollup-config: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/rollup-config-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* bump @rollup/plugin-typescript from 11.1.5 to 11.1.6 ([#127](#127)) ([8f9e34a](8f9e34a))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 🧹 Miscellaneous Chores

* **rollup:** Externalize all imports that end with `.wasm?module` ([#217](#217)) ([ee6f387](ee6f387))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
</details>

<details><summary>@arcjet/tsconfig: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/tsconfig-v1.0.0-alpha.8) (2024-02-09)


### 🧹 Miscellaneous Chores

* **@arcjet/tsconfig:** Synchronize arcjet-js versions
</details>

<details><summary>arcjet: 1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](v1.0.0-alpha.7...arcjet-v1.0.0-alpha.8) (2024-02-09)


### ⚠ BREAKING CHANGES

* Handle TTL as seconds instead of milliseconds ([#211](#211))
* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182))
* Remove count property on ArcjetRateLimitReason ([#181](#181))
* Required of props should always be required ([#180](#180))
* Build extra field from unknown request properties ([#179](#179))
* Limit `ARCJET_BASE_URL` to small set of allowed URLs ([#83](#83))

### 🚀 New Features

* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184)) ([6701b02](6701b02))
* Allow user-defined characteristics on rate limit options ([#203](#203)) ([dc5b001](dc5b001))
* Build extra field from unknown request properties ([#179](#179)) ([2576341](2576341))
* Limit `ARCJET_BASE_URL` to small set of allowed URLs ([#83](#83)) ([d9184ea](d9184ea))
* Support cookies and query via the protocol ([#214](#214)) ([ca0cd64](ca0cd64))
* Support duration strings or integers on rate limit configuration ([#192](#192)) ([b173d83](b173d83))


### 🪲 Bug Fixes

* Handle TTL as seconds instead of milliseconds ([#211](#211)) ([c2d3dd0](c2d3dd0))
* Required of props should always be required ([#180](#180)) ([1f92885](1f92885))


### 📦 Dependencies

* **dev:** bump @edge-runtime/jest-environment from 2.3.7 to 2.3.8 ([#154](#154)) ([9c4ed39](9c4ed39))
* **dev:** bump @edge-runtime/jest-environment from 2.3.8 to 2.3.9 ([#196](#196)) ([8bc0a8f](8bc0a8f))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 📝 Documentation

* Add minimum required fields for request details example ([#220](#220)) ([83a3a8c](83a3a8c))
* Rename AJ_KEY to ARCJET_KEY & switch to next.js app dir example ([#201](#201)) ([9c4da7b](9c4da7b))
* Update Arcjet description ([#122](#122)) ([c011bc2](c011bc2))


### 🧹 Miscellaneous Chores

* Change `ttl` argument to `expiresAt` in cache implementation ([#218](#218)) ([0414e10](0414e10))
* **examples:** Encourage use of environment variables for keys ([#139](#139)) ([290a1b2](290a1b2))
* Remove count property on ArcjetRateLimitReason ([#181](#181)) ([ff3e310](ff3e310))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182)) ([255a4a7](255a4a7))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/analyze bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/duration bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/logger bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/protocol bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/rollup-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
    * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8
</details>

<details><summary>1.0.0-alpha.8</summary>

## [1.0.0-alpha.8](v1.0.0-alpha.7...v1.0.0-alpha.8) (2024-02-09)


### ⚠ BREAKING CHANGES

* Handle TTL as seconds instead of milliseconds ([#211](#211))
* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182))
* Remove count property on ArcjetRateLimitReason ([#181](#181))
* Required of props should always be required ([#180](#180))
* Build extra field from unknown request properties ([#179](#179))
* **protocol:** Introduce Shield name ([#158](#158))
* Limit `ARCJET_BASE_URL` to small set of allowed URLs ([#83](#83))

### 🚀 New Features

* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184)) ([6701b02](6701b02))
* Allow user-defined characteristics on rate limit options ([#203](#203)) ([dc5b001](dc5b001))
* Build extra field from unknown request properties ([#179](#179)) ([2576341](2576341))
* Limit `ARCJET_BASE_URL` to small set of allowed URLs ([#83](#83)) ([d9184ea](d9184ea))
* Support cookies and query via the protocol ([#214](#214)) ([ca0cd64](ca0cd64))
* Support duration strings or integers on rate limit configuration ([#192](#192)) ([b173d83](b173d83))


### 🪲 Bug Fixes

* Handle TTL as seconds instead of milliseconds ([#211](#211)) ([c2d3dd0](c2d3dd0))
* Required of props should always be required ([#180](#180)) ([1f92885](1f92885))


### 📦 Dependencies

* bump @bufbuild/protobuf from 1.6.0 to 1.7.2 ([#167](#167)) ([c7dbdba](c7dbdba))
* bump @connectrpc/connect from 1.2.1 to 1.3.0 ([#126](#126)) ([40db7f3](40db7f3))
* bump @rollup/plugin-typescript from 11.1.5 to 11.1.6 ([#127](#127)) ([8f9e34a](8f9e34a))
* Bump `@connectrpc/connect-web` from 1.2.0 to 1.2.1 ([#101](#101)) ([28f4a50](28f4a50))
* Bump `@connectrpc/connect-web` from 1.2.1 to 1.3.0 ([#120](#120)) ([289446d](289446d))
* Bump `@connectrpc/connect` from 1.2.0 to 1.2.1 ([#100](#100)) ([74013ef](74013ef))
* Bump `ai` from 2.2.30 to 2.2.31 in /examples/nextjs-14-openai ([#99](#99)) ([be8c23b](be8c23b))
* Bump `eslint-config-turbo` from 1.11.2 to 1.11.3 ([#107](#107)) ([b01f418](b01f418))
* Bump `openai` from 4.24.1 to 4.24.2 in /examples/nextjs-14-openai ([#121](#121)) ([705f871](705f871))
* bump eslint-config-next from 14.0.4 to 14.1.0 ([#147](#147)) ([a44b3f6](a44b3f6))
* bump eslint-config-turbo from 1.11.3 to 1.12.3 ([#198](#198)) ([4bd458c](4bd458c))
* bump next from 14.0.4 to 14.1.0 ([#148](#148)) ([6753117](6753117))
* bump typeid-js from 0.3.0 to 0.5.0 ([#176](#176)) ([fadf89f](fadf89f))
* **dev:** bump @edge-runtime/jest-environment from 2.3.7 to 2.3.8 ([#154](#154)) ([9c4ed39](9c4ed39))
* **dev:** bump @edge-runtime/jest-environment from 2.3.8 to 2.3.9 ([#196](#196)) ([8bc0a8f](8bc0a8f))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 ([#96](#96)) ([fe666c6](fe666c6))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 in /examples/nextjs-13-pages-wrap ([#94](#94)) ([c21a5e6](c21a5e6))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 in /examples/nextjs-14-app-dir-validate-email ([#93](#93)) ([90e1965](90e1965))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 in /examples/nextjs-14-openai ([#98](#98)) ([8c63a63](8c63a63))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 in /examples/nextjs-14-pages-wrap ([#95](#95)) ([3ffec0d](3ffec0d))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-13-pages-wrap ([#116](#116)) ([1341acc](1341acc))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-14-app-dir-rl ([#113](#113)) ([7e8ae3c](7e8ae3c))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-14-app-dir-validate-email ([#111](#111)) ([e160ce1](e160ce1))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-14-openai ([#110](#110)) ([410d396](410d396))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-14-pages-wrap ([#118](#118)) ([ab05d24](ab05d24))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-13-pages-wrap ([#103](#103)) ([a3cd7f0](a3cd7f0))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-14-app-dir-rl ([#105](#105)) ([e90fc74](e90fc74))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-14-app-dir-validate-email ([#102](#102)) ([b0df5a2](b0df5a2))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-14-openai ([#104](#104)) ([2192e3e](2192e3e))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-14-pages-wrap ([#108](#108)) ([916402d](916402d))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-13-pages-wrap ([#115](#115)) ([a9472c0](a9472c0))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-14-app-dir-rl ([#114](#114)) ([5066c6d](5066c6d))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-14-app-dir-validate-email ([#112](#112)) ([d8173b3](d8173b3))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-14-openai ([#109](#109)) ([e44f829](e44f829))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-14-pages-wrap ([#117](#117)) ([6b65676](6b65676))
* **dev:** bump postcss from 8.4.31 to 8.4.32 in /examples/nextjs-13-pages-wrap ([#87](#87)) ([01ac608](01ac608))
* **dev:** bump postcss from 8.4.31 to 8.4.32 in /examples/nextjs-14-app-dir-rl ([#86](#86)) ([583f646](583f646))
* **example:** bump the dependencies group in /examples/nextjs-13-pages-wrap with 1 update ([#135](#135)) ([cd67eaf](cd67eaf))
* **example:** bump the dependencies group in /examples/nextjs-13-pages-wrap with 1 update ([#194](#194)) ([a945b2c](a945b2c))
* **example:** bump the dependencies group in /examples/nextjs-13-pages-wrap with 2 updates ([#185](#185)) ([dc7bc47](dc7bc47))
* **example:** Bump the dependencies group in /examples/nextjs-13-pages-wrap with 2 updates ([#210](#210)) ([402c2ad](402c2ad))
* **example:** bump the dependencies group in /examples/nextjs-13-pages-wrap with 3 updates ([#169](#169)) ([f19680b](f19680b))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-rl with 1 update ([#137](#137)) ([ab43b86](ab43b86))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-rl with 1 update ([#197](#197)) ([28a680c](28a680c))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-rl with 2 updates ([#189](#189)) ([ab11b6d](ab11b6d))
* **example:** Bump the dependencies group in /examples/nextjs-14-app-dir-rl with 2 updates ([#207](#207)) ([1489fd7](1489fd7))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-rl with 3 updates ([#166](#166)) ([b7f4b07](b7f4b07))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 1 update ([#134](#134)) ([9b6015a](9b6015a))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 1 update ([#200](#200)) ([59caff4](59caff4))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 2 updates ([#188](#188)) ([9d42276](9d42276))
* **example:** Bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 2 updates ([#208](#208)) ([467b385](467b385))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 3 updates ([#168](#168)) ([8779e2f](8779e2f))
* **example:** Bump the dependencies group in /examples/nextjs-14-openai with 1 update ([#219](#219)) ([07952d5](07952d5))
* **example:** bump the dependencies group in /examples/nextjs-14-openai with 2 updates ([#136](#136)) ([e99635b](e99635b))
* **example:** Bump the dependencies group in /examples/nextjs-14-openai with 4 updates ([#209](#209)) ([7720a81](7720a81))
* **example:** bump the dependencies group in /examples/nextjs-14-openai with 5 updates ([#170](#170)) ([b57e8df](b57e8df))
* **example:** Bump the dependencies group in /examples/nextjs-14-pages-wrap with 1 update ([#133](#133)) ([51adb16](51adb16))
* **example:** bump the dependencies group in /examples/nextjs-14-pages-wrap with 1 update ([#199](#199)) ([de36130](de36130))
* **example:** bump the dependencies group in /examples/nextjs-14-pages-wrap with 2 updates ([#187](#187)) ([2feef80](2feef80))
* **example:** Bump the dependencies group in /examples/nextjs-14-pages-wrap with 2 updates ([#206](#206)) ([abc72da](abc72da))
* **example:** bump the dependencies group in /examples/nextjs-14-pages-wrap with 3 updates ([#165](#165)) ([82f6be5](82f6be5))


### 📝 Documentation

* Add minimum required fields for request details example ([#220](#220)) ([83a3a8c](83a3a8c))
* Rename AJ_KEY to ARCJET_KEY & switch to next.js app dir example ([#201](#201)) ([9c4da7b](9c4da7b))
* Update Arcjet description ([#122](#122)) ([c011bc2](c011bc2))


### 🧹 Miscellaneous Chores

* Add codeowners to project ([#91](#91)) ([a54f487](a54f487))
* Add devcontainer setup ([#124](#124)) ([29b1a2e](29b1a2e))
* **analyze:** Regenerate WebAssembly and bindings ([#92](#92)) ([b10ce31](b10ce31))
* Change `ttl` argument to `expiresAt` in cache implementation ([#218](#218)) ([0414e10](0414e10))
* **examples:** Added Next.js 14 OpenAI rate limit example ([#88](#88)) ([482a472](482a472))
* **examples:** Encourage use of environment variables for keys ([#139](#139)) ([290a1b2](290a1b2))
* **protocol:** Introduce Shield name ([#158](#158)) ([311713b](311713b))
* Regenerate the protobuf bindings ([#183](#183)) ([807e8de](807e8de))
* Remove count property on ArcjetRateLimitReason ([#181](#181)) ([ff3e310](ff3e310))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182)) ([255a4a7](255a4a7))
* **rollup:** Externalize all imports that end with `.wasm?module` ([#217](#217)) ([ee6f387](ee6f387))
* Separate examples from SDK install and builds ([#85](#85)) ([c4c57c8](c4c57c8))
* **trunk:** Avoid linting the release-please-manifest ([#138](#138)) ([ac69f70](ac69f70))
* Update trunk versions and configuration ([#125](#125)) ([2625ed4](2625ed4))


### ✅ Continuous Integration

* Add dependabot groups for our example apps ([#123](#123)) ([6f28934](6f28934))
* Add merge queue workflow ([#128](#128)) ([4f5fa08](4f5fa08))
* Remove dependabot groups ([#84](#84)) ([b2d75c2](b2d75c2))
</details>

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

SDK: Allowlist of acceptable domains
2 participants