Ключи перед воротами

Environment lock

Финальная проверка Vercel Environment Variables, публичных URL, webhook secrets, admin tokens и переменных, которые не должны попасть в клиентский bundle.

Секрет, который однажды попал в чат, скрин или ZIP, больше не секрет.

Разделить public и server secrets

NEXT_PUBLIC_* можно видеть в браузере. Service role, Stripe secret, webhook secret, Resend key и admin token должны оставаться только на сервере.

  • Нет server secret с NEXT_PUBLIC_.
  • .env.example не содержит реальных значений.
  • Vercel Production/Preview различаются.

Проверить домены и callback

Site URL, Supabase redirect URLs, Stripe success/cancel URLs и email links должны вести на production домен.

  • NEXT_PUBLIC_SITE_URL production.
  • Auth redirects production.
  • Checkout returns production.

Зафиксировать rotation log

Запишите дату, какие ключи заменены, какие webhooks пересозданы и кто имеет доступ к dashboard.

  • Stripe keys rotated if exposed.
  • Supabase service role protected.
  • Admin token not shared broadly.

checklist

Что проверить

  • Production env заполнен.
  • Preview env не использует live money keys.
  • No secrets in Git/ZIP/report files.
  • Webhook secrets match endpoints.
  • Admin status API не раскрывает значения.

красные флаги

Когда остановиться

  • Service role visible in client code.
  • Live Stripe key used in preview tests.
  • Old leaked key still works.
  • Support screenshots show secrets.

готово, когда

Definition of done

  • All required env values configured in Vercel.
  • Exposed keys rotated.
  • Admin status route returns only statuses, not values.

связанные двери