From 1d862b6cabc283a6c88ebde2bed96f62622d0778 Mon Sep 17 00:00:00 2001 From: Benji Date: Thu, 5 Mar 2026 14:59:40 +0000 Subject: [PATCH 1/3] [MEIER-236] Add DNS records for meiermade.com and andrewmeier.dev redirects Add proxied A records pointing to 192.0.2.1 (dummy IP) so Cloudflare can intercept requests and apply the existing redirect rulesets: - andrewmeier.dev root -> andymeier.dev - meiermade.com root -> andymeier.dev/services - www.meiermade.com -> andymeier.dev/services --- pulumi/package-lock.json | 4 --- pulumi/src/cloudflare/record.ts | 48 +++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/pulumi/package-lock.json b/pulumi/package-lock.json index acb9dc8..d91591a 100644 --- a/pulumi/package-lock.json +++ b/pulumi/package-lock.json @@ -481,7 +481,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=8.0.0" } @@ -1094,7 +1093,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2748,7 +2746,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -3355,7 +3352,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/pulumi/src/cloudflare/record.ts b/pulumi/src/cloudflare/record.ts index f6a97d8..e80c470 100644 --- a/pulumi/src/cloudflare/record.ts +++ b/pulumi/src/cloudflare/record.ts @@ -20,3 +20,51 @@ export const andymeier = new cloudflare.DnsRecord(config.identifier, { proxied: true, ttl: 1 }, { provider }) + +// DNS records for redirect domains — proxied A records pointing to a dummy IP +// so Cloudflare can intercept requests and apply redirect rulesets. + +const andrewmeierZone = cloudflare.getZoneOutput({ + filter: { + account: { + id: config.cloudflareConfig.accountId + }, + name: 'andrewmeier.dev' + } +}, { provider }) + +new cloudflare.DnsRecord(`${config.identifier}-andrewmeier-root`, { + name: '@', + zoneId: andrewmeierZone.id, + type: 'A', + content: '192.0.2.1', + proxied: true, + ttl: 1 +}, { provider }) + +const meiermadeZone = cloudflare.getZoneOutput({ + filter: { + account: { + id: config.cloudflareConfig.accountId + }, + name: 'meiermade.com' + } +}, { provider }) + +new cloudflare.DnsRecord(`${config.identifier}-meiermade-root`, { + name: '@', + zoneId: meiermadeZone.id, + type: 'A', + content: '192.0.2.1', + proxied: true, + ttl: 1 +}, { provider }) + +new cloudflare.DnsRecord(`${config.identifier}-meiermade-www`, { + name: 'www', + zoneId: meiermadeZone.id, + type: 'A', + content: '192.0.2.1', + proxied: true, + ttl: 1 +}, { provider }) From c2c17059334498d099b2bad4bf9bf177f75b9774 Mon Sep 17 00:00:00 2001 From: Benji Date: Thu, 5 Mar 2026 15:59:58 +0000 Subject: [PATCH 2/3] Revert unintentional package-lock.json churn --- pulumi/package-lock.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pulumi/package-lock.json b/pulumi/package-lock.json index d91591a..acb9dc8 100644 --- a/pulumi/package-lock.json +++ b/pulumi/package-lock.json @@ -481,6 +481,7 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=8.0.0" } @@ -1093,6 +1094,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2746,6 +2748,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -3352,6 +3355,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" From e56da99ba4a162bc77d0f02184d5c7c2c26e6547 Mon Sep 17 00:00:00 2001 From: Benji Date: Thu, 5 Mar 2026 16:16:25 +0000 Subject: [PATCH 3/3] Add www.andrewmeier.dev DNS record and redirect rule Per review feedback, added: - www.andrewmeier.dev proxied A record (192.0.2.1) - Updated andrewmeier.dev redirect rule to also match www.andrewmeier.dev --- pulumi/src/cloudflare/record.ts | 9 +++++++++ pulumi/src/cloudflare/redirect.ts | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pulumi/src/cloudflare/record.ts b/pulumi/src/cloudflare/record.ts index e80c470..9053a2b 100644 --- a/pulumi/src/cloudflare/record.ts +++ b/pulumi/src/cloudflare/record.ts @@ -42,6 +42,15 @@ new cloudflare.DnsRecord(`${config.identifier}-andrewmeier-root`, { ttl: 1 }, { provider }) +new cloudflare.DnsRecord(`${config.identifier}-andrewmeier-www`, { + name: 'www', + zoneId: andrewmeierZone.id, + type: 'A', + content: '192.0.2.1', + proxied: true, + ttl: 1 +}, { provider }) + const meiermadeZone = cloudflare.getZoneOutput({ filter: { account: { diff --git a/pulumi/src/cloudflare/redirect.ts b/pulumi/src/cloudflare/redirect.ts index 123436e..95ca9b3 100644 --- a/pulumi/src/cloudflare/redirect.ts +++ b/pulumi/src/cloudflare/redirect.ts @@ -19,9 +19,9 @@ new cloudflare.Ruleset(`${config.identifier}-andrewmeier-redirect`, { phase: 'http_request_dynamic_redirect', rules: [{ ref: 'andrewmeier_to_andymeier', - description: 'Redirect andrewmeier.dev to andymeier.dev preserving path', + description: 'Redirect andrewmeier.dev and www.andrewmeier.dev to andymeier.dev preserving path', enabled: true, - expression: '(http.host eq "andrewmeier.dev")', + expression: '(http.host eq "andrewmeier.dev") or (http.host eq "www.andrewmeier.dev")', action: 'redirect', actionParameters: { fromValue: {