# Corben function sources These two files are the source of truth for the Corben functions behind the RSVP flow. They do NOT deploy with the site: `deploy_site` only serves the site, and Corben functions live in the platform, not in this repo. They are checked in so the logic is reviewable and diffable instead of only existing inside the API. To change one, edit here and push it up: ```bash KEY=$(grep '^CORBEN_API_KEY=' ~/.corben.env | cut -d= -f2-) jq -n --rawfile code ops/founders-break-rsvp.js '{code:$code}' \ | curl -sS -X PUT https://api.corben.world/functions/3d3c4bed-c073-40a4-9a32-9ff6944737dd \ -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d @- ``` The reminder is `cf2a1e4c-43f9-4cf4-8fc5-652c494940ae`. Their `env` (CORBEN_KEY, LIST_ID, FROM, FROM_ADDRESS_ID, NOTIFY, and reminder POSTAL_ADDRESS) is set on the function record and is not in these files. Never paste the key into this repo. Test without waiting for a real submission: ``` execute_function id=3d3c4bed-... event={"form_name":"rsvp","data":{"name":"...","email":"..."}} execute_function id=cf2a1e4c-... event={"force":true} # sends for real ``` ## October 22 reliability repair Email links now display a confirmation screen. Opening or previewing a link does not POST a form. The RSVP function also rejects reminder responses without the confirmation flag, and repeated answers send no duplicate notifications. New reminder links carry their event date; stale dated links cannot answer for the current week. Existing undated links show the current event date explicitly before confirmation. POSTAL_ADDRESS is required before campaign creation and is passed in the send_campaign delivery configuration. The reminder reuses an unsent draft after failure, records prepared versus queued state, and checks the campaign status and durable recipients before retrying. Queued, sent or paused campaigns are never re-sent. A prepared marker alone is not a successful send. Run `node --test ops/regression.test.cjs` for network-isolated source tests. They mock all API calls, including mail. Never use `force: true` as a smoke test.