Switch production email from Gmail to Resend - #380
Closed
github-actions[bot] wants to merge 3 commits into
Closed
Conversation
The edge proxy sent X-Frame-Options: DENY on /api/resume, so Chrome's PDF viewer reported a failed load for a file that was already on disk. Preview now fetches the PDF as a blob, and uploads keep the original bytes instead of a pdf-lib rewrite that can corrupt real resumes. Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
Force the blob to application/pdf, reject non-PDF bodies, and add an Open-in-new-tab path so Chrome's viewer is not the only way to see a stored resume. Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
Point App Hosting at smtp.resend.com with user resend. The Resend API key belongs in Secret Manager as EMAIL_SERVER_PASSWORD, not in git. From-address is noreply@datasciencegt.org, which Resend will reject until that domain is verified. Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated PR tracking changes from
hotfix-setup-resend-smtp-9d3dintodev.Note
High Risk
Touches production SMTP/sign-in, new Cloud Storage IAM and schema, and removes the staff audit API—verify Resend domain verification, bucket access, and any
/admin/auditconsumers before merge.Overview
Production email moves from consumer Gmail to Resend SMTP (
smtp.resend.com,EMAIL_SERVER_PASSWORDas the API key,noreply@datasciencegt.org).apphosting.yamland env docs are updated; mass-email comments no longer cite Gmail’s daily cap.Resume book adds
member_resumemetadata in Postgres and PDFs inRESUME_BUCKET(dsgt-resumes), with tRPC metadata (resumerouter +resume-list), Prometheus gauges, and new ops doc. Club project applications can attach an optional PDF oninitiative_applications(required pitch,applicantResumefor leaders); profile resumes use GCS, not tRPC bytes.Public club projects get a
club_projecttable, Fall 2026 seed script (db:seed:club-projects), and member-facing docs; glossary/copy shifts from “initiative” to “club project” in user-facing text.Portal API hardening and load:
CacheService.getOrSetcollapses cache stampedes; cheaperdeletePatternand eviction sweeps; volunteers no longer count asisAdmin; newadmin.growthinsights; hot paths (events check-in, hackathon resolve, admin analytics) usegetOrSetor fewer queries. TheaudittRPC router is removed (tests dropped).CI bumps
pnpm/action-setupto v5 and stops pinning pnpm in workflows sopackageManager/pnpm-workspace.yamlsettings apply. Monitoring adds p99 latency recording, a tail-slow alert, and Grafana p99 panels.Reviewed by Cursor Bugbot for commit 10963c0. Bugbot is set up for automated code reviews on this repo. Configure here.