Заявки сайта в Supabase
Документ описывает безопасный путь подключения формы заявки на сайте ипотечного брокера.
Текущее состояние
Сайт на GitHub Pages остается статическим. Прямая запись из браузера в таблицу Supabase не используется.
В Supabase найден один активный проект:
ofewxuqfjhamgerwzull
Этот проект уже используется другими системами, поэтому существующие таблицы и функции leader, nav, parket не трогаем.
Что уже сделано
В Supabase создана отдельная таблица:
public.broker_leads
RLS включен. Публичная вставка через anon не включалась.
В Supabase развернута Edge Function:
broker-public-lead
Функция работает как публичная точка приема заявок, но сама проверяет источник запроса, обязательные поля, согласие и простую антиспам-ловушку.
Код функции хранится в репозитории:
supabase/functions/broker-public-lead/index.ts
Миграция хранится в репозитории:
supabase/migrations/202607070001_create_broker_leads.sql
Что хранит таблица
- имя клиента;
- телефон;
- город;
- удобное время связи;
- цель ипотеки;
- тип объекта;
- стоимость объекта;
- первоначальный взнос;
- примерный доход;
- наличие маткапитала;
- факт отказа ранее;
- комментарий;
- согласие на обработку персональных данных;
- UTM-метки;
- страницу, с которой пришла заявка.
Безопасная схема
форма на сайте -> Edge Function broker-public-lead -> таблица broker_leads
Функция проверяет:
- метод запроса;
- CORS-домен сайта;
- обязательный телефон;
- согласие на обработку персональных данных;
- honeypot-поля
company,website,url; - длину текстовых полей;
- числовые поля перед записью в базу.
Почему anon insert выключен
В таблице не включена публичная вставка для anon.
Это сделано специально: заявки должны проходить через Edge Function, чтобы не открывать прямую запись в таблицу из браузера.
Endpoint функции
https://ofewxuqfjhamgerwzull.supabase.co/functions/v1/broker-public-lead
Разрешенные источники запросов:
https://sterlikova-ipoteka.ru
https://www.sterlikova-ipoteka.ru
https://deputat36.github.io
http://localhost:4000
http://127.0.0.1:4000
Следующие шаги
- Добавить на сайт форму заявки.
- Подключить отправку формы на endpoint
broker-public-lead. - Протестировать успешную заявку и ошибки валидации.
- Добавить уведомления в Telegram, email или CRM.
- После тестов убрать локальные origin из функции, если они больше не нужны.