Secrets
This stack (Pulumi config)
-
pulumi config set cloudflare:apiToken --secret …— Cloudflare API token (DNS edit onfoodtrucknerdz.com) -
pulumi config set cloudflareZoneId …— zone id for foodtrucknerdz.com -
pulumi config set vercel:token --secret …— Vercel token so Pulumi can set Vercel project environment variables -
pulumi config set vercel:projectIdNextjs …— Vercel project id for the Next.js production site (whereCONVEX_DEPLOY_KEYis written) -
Optional:
dmarcRua,dmarcPolicy(defaultnone)
Never commit tokens or SMTP/API keys. App deploy keys live as Pulumi stack secrets (for example convex:deployKeyProd).
Convex (ftn-site)
Bitwarden item dashboard.convex.dev holds team-sharable Convex deploy keys (not login passwords).
Even if the Bitwarden UI calls them a “team API key”, their values are scoped deploy keys with prod: / dev: prefixes (e.g. prod:…|…).
| Bitwarden custom field | Use |
|---|---|
|
Production deploy key (`prod:… |
… |
|
Dev deployment deploy key (`dev:… |
…`) (deploy-key format, not a Management API token). For a future dedicated dev/staging Convex after launch — not Vercel Preview today. |
Convex team access token (Management API) |
Optional separate token from Convex team settings for |
What Pulumi does not replace
Vendor sign-up (Convex, Vercel, Square, Radar, Resend, …) still happens in each vendor’s UI. Minting the first app API key is manual (or a future one-shot script). Pulumi applies infrastructure you already have credentials to manage — today: Cloudflare DNS.
App secrets by environment
| Environment | Where app keys live today |
|---|---|
Local / personal dev |
|
Cloud preview (Vercel Preview) |
Vercel project env (Preview). Convex deploy key / URL as configured for preview builds. |
Production |
Vercel Production env + Convex prod deploy key. Org DNS via this repo’s |
This Pulumi program |
Cloudflare DNS via stack config. Also sets Vercel Production env |
Product-facing checklist (signups + tiers): website docs Accounts & keys checklist in ftn-site.