Перейти к основному содержимому

Приём с чужого домена

Браузер не даст странице обратиться к data.layero.ru, если её домен не разрешён базой: Access-Control-Allow-Origin мы не ставим в * никогда — при аутентификации по ключу это не упрощение, а снятие защиты.

Разрешённые домены складываются из двух списков.

1. Домены подключённых проектов разрешаются сами

Проект, подключённый к базе, получает право звать её из браузера автоматически: и апекс (<проект>.layero.app), и его собственные домены. Ничего настраивать не нужно.

2. Источники приёма — для чужих сайтов

Если форму нужно поставить на сайт, который к базе не подключён (сайт клиента, лендинг на чужой платформе), добавьте его домен в источники приёма:

curl -X POST "https://api.layero.ru/organizations/<организация>/databases/<id>/api/origins" \
-H "authorization: Bearer <токен>" -H "content-type: application/json" \
-d '{"origin": "https://zarya.example", "note": "лендинг клиента"}'
# посмотреть оба списка сразу
curl "https://api.layero.ru/organizations/<организация>/databases/<id>/api/origins" \
-H "authorization: Bearer <токен>"

🚨 Это не то же самое, что подключить проект к базе. Подключение проекта выдаёт его ролям права на таблицы базы и кладёт строку подключения в его переменные окружения — то есть отдаёт базу целиком. Источник приёма не выдаёт ни грантов, ни строки подключения: он снимает ровно один запрет — браузерный.

Что доступно домену из списка, по-прежнему решают ключ, гранты и RLS. Для приёма заявок это обычно одна публичная функция и ни одной открытой таблицы — см. Функции и RPC.

Формат

https://домен или https://домен:порт — так, как это присылает браузер. Путь и * не принимаются: путь в Origin не приезжает вовсе, а звёздочка означала бы «любая страница интернета от имени вашего посетителя». localhost разрешён всегда — иначе разработка невозможна до первого деплоя.

Правка списка применяется за секунды: отказ по устаревшему кешу шлюз перепроверяет свежим списком, а не отдаёт из кеша. Отсюда и потолок — несколько секунд, а не минута ожидания, как было раньше.