Skip to content

Provision contact form: RATE_LIMIT KV, secrets, and reCAPTCHA keys - #15

Merged
blindtechmage merged 1 commit into
mainfrom
infra/contact-form-provisioning
Aug 13, 2026
Merged

Provision contact form: RATE_LIMIT KV, secrets, and reCAPTCHA keys#15
blindtechmage merged 1 commit into
mainfrom
infra/contact-form-provisioning

Conversation

@blindtechmage

Copy link
Copy Markdown
Owner

Summary

  • Created and wired the RATE_LIMIT KV namespace into wrangler.toml (namespace IDs aren't secret, safe to commit).
  • Set the CONTACT_SENDER, CONTACT_RECIPIENT, and RECAPTCHA_SECRET Worker secrets in production.
  • Registered a reCAPTCHA v2 checkbox site (domains: blindtechmage.com, localhost) and wired the public site key into local dev (.env, untracked, plus a new .env.example) and CI preview builds (PUBLIC_RECAPTCHA_SITE_KEY repo variable, consumed by preview-deploy.yml's build step).
  • Updated docs/SECURITY.md's "Open Items" note — now resolved.

The contact form is fully functional in production for the first time.

Test plan

  • npm run typecheck
  • npm run lint (js + markdown)
  • npm run build, confirmed data-sitekey in built contact/index.html matches the real site key
  • npm run lint:html against built output
  • npm run test:unit (26/26 passing)
  • npx wrangler versions upload --dry-run against the built config, confirmed both SESSION and RATE_LIMIT KV bindings resolve

Wires up the last of the contact form's production dependencies:

- Created and wired the RATE_LIMIT KV namespace into wrangler.toml
  (namespace IDs aren't secret, safe to commit).
- Set the CONTACT_SENDER, CONTACT_RECIPIENT, and RECAPTCHA_SECRET
  Worker secrets in production.
- Registered a reCAPTCHA v2 checkbox site and wired the public site
  key into local dev (.env, untracked) and CI preview builds (new
  PUBLIC_RECAPTCHA_SITE_KEY repo variable, consumed by
  preview-deploy.yml's build step).
- Updated docs/SECURITY.md's "Open Items" note, now resolved.

The contact form is fully functional in production for the first
time.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

@blindtechmage
blindtechmage merged commit 8941299 into main Aug 13, 2026
5 checks passed
@blindtechmage
blindtechmage deleted the infra/contact-form-provisioning branch August 13, 2026 04:17
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.

2 participants