Безопасные запросы к данным
Выберите способ чтения данных и исправьте неподдержанный прямой запрос.
Для приложения используйте data.table(...).records из Runtime SDK. Фильтры, выбор полей, сортировка и страницы работают в окружении, указанном в токене приложения. Служебные коллекции платформы недоступны через SDK, API, агент и экспорт.
Прямой запрос для разработчика
Если вы используете Data API с прямым запросом YQL, чтение через query принимает только SELECT. Запись через execute доступна администраторам и разработчикам проекта и начинается с INSERT, UPSERT, UPDATE или DELETE. Проверяется весь скрипт: добавить запись после SELECT в запрос чтения нельзя.
Указывайте обычное техническое имя коллекции. Agnostic выбирает её в указанном окружении. Путь к коллекции другого окружения использовать нельзя.
Пример тела запроса чтения:
{
"yql": "SELECT id, status FROM leads WHERE id = $id",
"params": { "id": "lead-1" }
}Имена параметров состоят из латинских букв, цифр и _; первый символ — буква или _. Начальный $ необязателен. Передавайте id или $id, но не оба имени вместе. Для каждого параметра из запроса должно быть передано значение.
Поддерживаются обычные выборки, соединения коллекций, вложенные SELECT и агрегаты. Динамический выбор коллекции, дополнительные DECLARE, PRAGMA, смена окружения внутри скрипта, управление транзакциями, изменение структуры и неизвестные функции отклоняются. Для изменения структуры используйте план Data в CLI.
Один прямой запрос ограничен 64 КиБ текста, 32 операторами и 256 параметрами; значения параметров вместе — 1 МиБ. Разбейте слишком большой скрипт на ограниченные операции с проверкой результата каждой из них.
Если запрос отклонён
При HTTP 400 проверьте имя коллекции, выбранное окружение, параметры и поддержанный синтаксис. Уберите управление структурой/транзакциями из запроса чтения. При HTTP 403 попросите администратора проверить роль или права приложения. Если обычный запрос возвращает HTTP 503, передайте ошибку администратору платформы; повторять неподдержанный скрипт не нужно.