Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
2247686
chore: refresh tooling baseline and fix stale references
TheUnderScorer Oct 1, 2026
aeecfab
chore: add eslint as a direct devDependency
TheUnderScorer Oct 1, 2026
e380c7f
chore: revert terraform changes
TheUnderScorer Oct 1, 2026
66da7cb
build: restore main
TheUnderScorer Oct 1, 2026
f0a0c86
build: revert repo rename in config.json
TheUnderScorer Oct 1, 2026
34c26f0
chore: update repository slug in changeset config
TheUnderScorer Oct 1, 2026
f12445d
chore: update repository slug in changelog links
TheUnderScorer Oct 1, 2026
105e40c
build: migrate to Eslint 10 + flat config
TheUnderScorer Oct 1, 2026
1bfb6c2
build: migrate to Vite + Vitest
TheUnderScorer Oct 1, 2026
bb7f1a5
chore: enforce TypeScript extensions and type-only imports
TheUnderScorer Oct 2, 2026
13529d5
docs: update changesets
TheUnderScorer Oct 2, 2026
51192a4
chore: rename changeset
TheUnderScorer Oct 2, 2026
d54ec2c
chore: update pnpm/action-setup to v6.1.0 in GitHub workflows
TheUnderScorer Oct 2, 2026
e9e94c8
refactor: restore default branch
TheUnderScorer Oct 2, 2026
7d7d6e8
docs: remove some requirements
TheUnderScorer Oct 2, 2026
db68966
docs: simplify build isolation comment in Vite config
TheUnderScorer Oct 2, 2026
e07d104
chore: update package scripts, enable ES module support, and upgrade …
TheUnderScorer Oct 2, 2026
72dfe42
refactor: preserve empty string check
TheUnderScorer Oct 2, 2026
95897b8
refactor: use isTruthy check
TheUnderScorer Oct 2, 2026
830c2dc
Merge remote-tracking branch 'origin/feature/INTER-2067-care' into fe…
TheUnderScorer Oct 2, 2026
61b121f
chore: log incorrect agent version
TheUnderScorer Oct 2, 2026
f1f4bc9
refactor: remove unused `getCloudfrontUrl` and improve Cloudfront hea…
TheUnderScorer Oct 2, 2026
4381803
refactor: simplify error message in `validate-secret` method
TheUnderScorer Oct 2, 2026
b6683df
refactor: improve Cloudfront retry logic by ensuring wait only occurs…
TheUnderScorer Oct 2, 2026
8122d0a
refactor: simplify error message in `validate-secret` test
TheUnderScorer Oct 2, 2026
8e11ce6
refactor: extend e2e tsconfig from root, remove redundant config
TheUnderScorer Oct 2, 2026
9043d96
ci: bump actions/checkout to v7
TheUnderScorer Oct 2, 2026
ae085fa
ci: bump actions/setup-node to v7 in workflows
TheUnderScorer Oct 2, 2026
050b390
ci: bump aws-actions/configure-aws-credentials to v6 in workflows
TheUnderScorer Oct 2, 2026
f2d737f
ci: pin aws-actions/configure-aws-credentials to v6.3.0 in workflows
TheUnderScorer Oct 2, 2026
2cc6b23
ci: remove unused create-pr workflow
TheUnderScorer Oct 2, 2026
f79de57
ci: pin hashicorp/setup-terraform to v4.0.1 in workflows
TheUnderScorer Oct 2, 2026
19915de
docs: fix broken link to deprecated CloudFront integration v1 guide
JuroUhlar Oct 9, 2026
c6e6ca7
Merge pull request #357 from fingerprintjs/docs/fix-broken-links
JuroUhlar Oct 9, 2026
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
2 changes: 1 addition & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"changelog": [
"@fingerprintjs/changesets-changelog-format",
{
"repo": "fingerprintjs/cloudfront-proxy"
"repo": "fingerprintjs/aws-cloudfront-proxy"
}
],
"commit": false,
Expand Down
5 changes: 5 additions & 0 deletions .changeset/deps-update.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@fingerprint/aws-cloudfront-proxy': patch
---

Upgrade AWS SDK Clients to latest version (`^3.1144.0`).
10 changes: 10 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"mode": "pre",
"tag": "rc",
"initialVersions": {
"@fingerprint/aws-cloudfront-proxy": "2.2.0",
"e2e-tests": "0.0.1",
"website": "0.0.1"
},
"changesets": []
}
4 changes: 0 additions & 4 deletions .eslintrc.js

This file was deleted.

8 changes: 0 additions & 8 deletions .github/dependabot.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/check-cloudformation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
with:
fetch-depth: 0

- name: Install cfn-guard
run: curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/aws-cloudformation/cloudformation-guard/main/install-guard.sh | sh
run: curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/aws-cloudformation/cloudformation-guard/3.2.1/install-guard.sh | sh

- name: Validate
run: ~/.guard/bin/cfn-guard validate --rules cloudformation/rules.guard --data cloudformation/template.yml
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/coverage-diff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ jobs:
uses: fingerprintjs/dx-team-toolkit/.github/workflows/coverage-diff.yml@v1
with:
nodeVersion: 24
testScript: pnpm test:coverage:diff
18 changes: 0 additions & 18 deletions .github/workflows/create-pr.yml

This file was deleted.

22 changes: 9 additions & 13 deletions .github/workflows/publish-lambda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,21 @@ jobs:
mgmt_lambda_sha: ${{ steps.sha.outputs.mgmt_lambda_sha }}
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Configure AWS credentials from dev account
uses: aws-actions/configure-aws-credentials@v4
uses: aws-actions/configure-aws-credentials@e1253824e5c10ff9df46874f81ed3ec929e19cfd # v6.3.0
with:
role-to-assume: arn:aws:iam::708050157146:role/github_eb_ci_cd
role-session-name: GitHub_to_AWS_via_FederatedOIDC
aws-region: ${{ env.AWS_IAM_AUTH_REGION }}

- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version-file: .node-version

- uses: pnpm/action-setup@129abb77bf5884e578fcaf1f37628e41622cc371
with:
version: 9
- uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0

- run: pnpm install

Expand All @@ -54,7 +52,7 @@ jobs:
VITE_SCRIPT_URL_PATTERN: /fpjs/agent?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>
VITE_ENDPOINT: /fpjs/result?region=us

- uses: hashicorp/setup-terraform@v3
- uses: hashicorp/setup-terraform@dfe3c3f87815947d99a8997f908cb6525fc44e9e # v4.0.1
with:
terraform_version: "1.11.0"

Expand Down Expand Up @@ -84,21 +82,19 @@ jobs:
needs: e2e-tests
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version-file: .node-version

- uses: pnpm/action-setup@129abb77bf5884e578fcaf1f37628e41622cc371
with:
version: 9
- uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0

- run: pnpm install

- name: Configure AWS credentials from dev account
uses: aws-actions/configure-aws-credentials@v4
uses: aws-actions/configure-aws-credentials@e1253824e5c10ff9df46874f81ed3ec929e19cfd # v6.3.0
with:
role-to-assume: arn:aws:iam::421367603048:role/github_eb_ci_cd
role-session-name: GitHub_to_AWS_via_FederatedOIDC
Expand Down
24 changes: 10 additions & 14 deletions .github/workflows/terraform-e2e-tests-on-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,21 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Configure AWS credentials from dev account
uses: aws-actions/configure-aws-credentials@v4
uses: aws-actions/configure-aws-credentials@e1253824e5c10ff9df46874f81ed3ec929e19cfd # v6.3.0
with:
role-to-assume: arn:aws:iam::708050157146:role/github_eb_ci_cd
role-session-name: GitHub_to_AWS_via_FederatedOIDC
aws-region: ${{ env.AWS_IAM_AUTH_REGION }}

- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version-file: .node-version

- uses: pnpm/action-setup@129abb77bf5884e578fcaf1f37628e41622cc371
with:
version: 9
- uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0

- run: pnpm install

Expand All @@ -46,7 +44,7 @@ jobs:
VITE_SCRIPT_URL_PATTERN: /fpjs/agent?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>
VITE_ENDPOINT: /fpjs/result?region=us

- uses: hashicorp/setup-terraform@v3
- uses: hashicorp/setup-terraform@dfe3c3f87815947d99a8997f908cb6525fc44e9e # v4.0.1
with:
terraform_version: "1.11.0"

Expand All @@ -68,23 +66,21 @@ jobs:
needs: e2e-tests
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Configure AWS credentials from dev account
uses: aws-actions/configure-aws-credentials@v4
uses: aws-actions/configure-aws-credentials@e1253824e5c10ff9df46874f81ed3ec929e19cfd # v6.3.0
with:
role-to-assume: arn:aws:iam::708050157146:role/github_eb_ci_cd
role-session-name: GitHub_to_AWS_via_FederatedOIDC
aws-region: ${{ env.AWS_IAM_AUTH_REGION }}

- name: Setup Node
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version-file: .node-version

- uses: pnpm/action-setup@129abb77bf5884e578fcaf1f37628e41622cc371
with:
version: 9
- uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0

- run: pnpm install

Expand All @@ -100,7 +96,7 @@ jobs:
VITE_SCRIPT_URL_PATTERN: /fpjs/agent?apiKey=<apiKey>&version=<version>&loaderVersion=<loaderVersion>
VITE_ENDPOINT: /fpjs/result?region=us

- uses: hashicorp/setup-terraform@v3
- uses: hashicorp/setup-terraform@dfe3c3f87815947d99a8997f908cb6525fc44e9e # v4.0.1
with:
terraform_version: "1.11.0"

Expand Down
4 changes: 3 additions & 1 deletion .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
commitlint --edit $1
#!/bin/sh
set -e
npx commitlint --edit $1
4 changes: 3 additions & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
lint-staged
#!/bin/sh
set -e
npx lint-staged
1 change: 1 addition & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#!/bin/bash
containsref() { if [[ $2 =~ $1 ]]; then echo 1; else echo 0; fi }

push_command=$(ps -ocommand= -p $PPID | cut -d' ' -f 4)
Expand Down
18 changes: 9 additions & 9 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,35 @@
Docs:

- [CloudFront JavaScript Agent V4 Migration Guide](https://docs.fingerprint.com/docs/cloudfront-integration-migration-to-js-agent-v4)
- [CloudFront Terraform guide](https://docs.fingerprint.com/docs/aws-cloudfront-integration-via-terraform) ([ff1b644](https://github.com/fingerprintjs/cloudfront-proxy/commit/ff1b644674836fcb5b5de2303d94b084f8f1e31f))
- [CloudFront Terraform guide](https://docs.fingerprint.com/docs/aws-cloudfront-integration-via-terraform) ([ff1b644](https://github.com/fingerprintjs/aws-cloudfront-proxy/commit/ff1b644674836fcb5b5de2303d94b084f8f1e31f))

- Introduce TTL for secret caching ([fd2eef5](https://github.com/fingerprintjs/cloudfront-proxy/commit/fd2eef5f0351b457b60407129d857c2cd54953a4))
- Add FPJS_INTEGRATION_PATH_DEPTH header to CloudFormation template ([7b93386](https://github.com/fingerprintjs/cloudfront-proxy/commit/7b93386e4f7cf8ea16920fac4aaa9774376de85e))
- Introduce TTL for secret caching ([fd2eef5](https://github.com/fingerprintjs/aws-cloudfront-proxy/commit/fd2eef5f0351b457b60407129d857c2cd54953a4))
- Add FPJS_INTEGRATION_PATH_DEPTH header to CloudFormation template ([7b93386](https://github.com/fingerprintjs/aws-cloudfront-proxy/commit/7b93386e4f7cf8ea16920fac4aaa9774376de85e))
- Add `lambda:InvokeFunction` to the management function.

Starting from October 2025, AWS requires new function URLs to have this permissions alongside the `lambda:InvokeFunctionUrl`.
See https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html to learn more. ([79c008f](https://github.com/fingerprintjs/cloudfront-proxy/commit/79c008fab0ac9edf8d6140121b017e8d1de09ed7))
See https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html to learn more. ([79c008f](https://github.com/fingerprintjs/aws-cloudfront-proxy/commit/79c008fab0ac9edf8d6140121b017e8d1de09ed7))

- Skip creation of V3-related routes if related variables are empty ([dc29d6c](https://github.com/fingerprintjs/cloudfront-proxy/commit/dc29d6c6f95c76d010bbaedcc21f59f4d1bf035d))
- Skip creation of V3-related routes if related variables are empty ([dc29d6c](https://github.com/fingerprintjs/aws-cloudfront-proxy/commit/dc29d6c6f95c76d010bbaedcc21f59f4d1bf035d))

## 2.2.0-rc.2

### Minor Changes

- Skip creation of V3-related routes if related variables are empty ([dc29d6c](https://github.com/fingerprintjs/cloudfront-proxy/commit/dc29d6c6f95c76d010bbaedcc21f59f4d1bf035d))
- Skip creation of V3-related routes if related variables are empty ([dc29d6c](https://github.com/fingerprintjs/aws-cloudfront-proxy/commit/dc29d6c6f95c76d010bbaedcc21f59f4d1bf035d))

## 2.2.0-rc.1

### Patch Changes

- Remove invalid dependency from publish workflow ([fe7b2aa](https://github.com/fingerprintjs/cloudfront-proxy/commit/fe7b2aa1042b97b7091d88cb00337f2715a5f1bb))
- Remove invalid dependency from publish workflow ([fe7b2aa](https://github.com/fingerprintjs/aws-cloudfront-proxy/commit/fe7b2aa1042b97b7091d88cb00337f2715a5f1bb))

## 2.2.0-rc.0

### Minor Changes

- Add support for API V4 ([ff1b644](https://github.com/fingerprintjs/cloudfront-proxy/commit/ff1b644674836fcb5b5de2303d94b084f8f1e31f))
- Introduce TTL for secret caching ([fd2eef5](https://github.com/fingerprintjs/cloudfront-proxy/commit/fd2eef5f0351b457b60407129d857c2cd54953a4))
- Add support for API V4 ([ff1b644](https://github.com/fingerprintjs/aws-cloudfront-proxy/commit/ff1b644674836fcb5b5de2303d94b084f8f1e31f))
- Introduce TTL for secret caching ([fd2eef5](https://github.com/fingerprintjs/aws-cloudfront-proxy/commit/fd2eef5f0351b457b60407129d857c2cd54953a4))

### Bug Fixes

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ When the PR is merged, the pre-release is created and E2E tests run against it.
pnpm exec changeset pre exit
```

The integration is automatically released on tag creation. The workflow must be approved by one of the maintainers, first.
The integration is automatically released when a GitHub release is published. The workflow must be approved by one of the maintainers, first.

### How to keep your integration up-to-date

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ The Fingerprint CloudFront Integration is responsible for
This [improves](https://docs.fingerprint.com/docs/cloudfront-proxy-integration-v2#the-benefits-of-using-the-cloudfront-integration) both accuracy and reliability of visitor identification and bot detection on your site.

> [!IMPORTANT]
> CloudFront integration v1 has been [deprecated](https://docs.fingerprint.com/docs/cloudfront-proxy-integration).
> CloudFront integration v1 has been [deprecated](https://docs.fingerprint.com/docs/v3/cloudfront-proxy-integration).
> This repository now contains the source code for [CloudFront Integration v2](https://docs.fingerprint.com/docs/cloudfront-proxy-integration-v2).
> If you are currently using v1, see our guide for [Migrating CloudFront proxy integration from v1 to v2](https://docs.fingerprint.com/docs/v3/cloudfront-integration-migration-from-v1-to-v2).

Expand Down
2 changes: 0 additions & 2 deletions assets/license_banner.txt

This file was deleted.

8 changes: 8 additions & 0 deletions build-utils/license.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import pkg from '../package.json' with { type: 'json' }

export function getLicenseBanner(): string {
return `/**
* Fingerprint Pro CloudFront Lambda function v${pkg.version} - Copyright (c) FingerprintJS, Inc, ${new Date().getFullYear()} (https://fingerprint.com)
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
*/`
}
1 change: 0 additions & 1 deletion commitlint.config.js

This file was deleted.

1 change: 1 addition & 0 deletions commitlint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default { extends: ['@fingerprintjs/commit-lint-dx-team'] }
4 changes: 2 additions & 2 deletions e2e/infra/terraform/tests.tf
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ resource "null_resource" "mock-warden-tests" {
count = var.run_mock_warden_tests ? 1 : 0

provisioner "local-exec" {
command = "pnpm exec ts-node e2e/scripts/mockTests.ts --project tsconfig.json"
command = "pnpm test:mock-e2e"
working_dir = "../../../"
environment = {
CLOUDFRONT_WITH_HEADERS_URL = aws_cloudfront_distribution.with_headers.domain_name
Expand Down Expand Up @@ -62,7 +62,7 @@ resource "null_resource" "mock-warden-tests-v4" {
count = var.run_mock_warden_tests ? 1 : 0

provisioner "local-exec" {
command = "pnpm exec ts-node e2e/scripts/mockTests.ts --project tsconfig.json"
command = "pnpm test:mock-e2e"
working_dir = "../../../"
environment = {
CLOUDFRONT_WITH_HEADERS_URL = aws_cloudfront_distribution.with_headers.domain_name
Expand Down
4 changes: 2 additions & 2 deletions e2e/infra/terraform/variables.tf
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
variable "fpjs_shared_secret" {
// https://dev.fingerprint.com/docs/cloudfront-proxy-integration-v2#step-1-issue-a-proxy-secret
// https://docs.fingerprint.com/docs/cloudfront-proxy-integration-v2#step-1-issue-a-proxy-secret
description = "The proxy secret for the Fingerprint proxy integration"
type = string
}

variable "fpjs_agent_download_path" {
// https://dev.fingerprint.com/docs/cloudfront-proxy-integration-v2#step-2-create-path-variables
// https://docs.fingerprint.com/docs/cloudfront-proxy-integration-v2#step-2-create-path-variables
description = "The Fingerprint agent download will be proxied through this path segment"
type = string
default = "agent"
Expand Down
16 changes: 10 additions & 6 deletions e2e/scripts/mockTests.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import { execSync } from 'child_process'
import { CloudfrontUrls, getCloudfrontUrls } from '../tests/src/utils/cloudfront'
import { version } from '../../package.json'
import { type CloudfrontUrls, getCloudfrontUrls } from '../tests/src/utils/cloudfront.ts'
import packageJson from '../../package.json' with { type: 'json' }

const version = packageJson.version

function getEnv(name: string) {
const value = process.env[name]

if (!value) {
if (value === undefined || value === '') {
throw new Error(`${name} is not set`)
}

Expand All @@ -15,7 +17,7 @@ function getEnv(name: string) {
const v3Urls: Array<keyof CloudfrontUrls> = ['cloudfrontWithHeadersUrl', 'cloudfrontWithSecretsUrl']
const v4Urls: Array<keyof CloudfrontUrls> = ['cloudfrontWithSecretsV4Url']

async function main() {
function main(): void {
let hasError = false

const cloudfrontUrls = getCloudfrontUrls()
Expand Down Expand Up @@ -85,7 +87,9 @@ async function main() {
}
}

main().catch((error) => {
try {
main()
} catch (error) {
console.error(error)
process.exit(1)
})
}
15 changes: 3 additions & 12 deletions e2e/scripts/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
{
"compilerOptions": {
"types": ["node"],
"module": "CommonJS",
"esModuleInterop": true,
"resolveJsonModule": true
},
"exclude": [
"node_modules"
],
"include": [
"**/*.ts"
]
"extends": "../../tsconfig.json",
"exclude": ["node_modules"],
"include": ["**/*.ts"]
}
Loading
Loading