Datasette Apps: HTML-приложения прямо внутри базы данных

Datasette Apps: HTML-приложения прямо внутри базы данных

Datasette запустил новый плагин, который позволяет размещать пользовательские HTML+JavaScript приложения прямо внутри экземпляра базы данных. Приложение запускается в строго изолированном iframe с ограничениями: оно не может получить доступ к cookies или localStorage, а также не может отправлять HTTP запросы во внешние сервисы благодаря Content Security Policy.

Основная идея пришла из экспериментов с Claude Artifacts: что если бы самодержавный фронтенд получил доступ к настоящей реляционной базе данных? Результат: инструмент, который позволяет строить интерактивные визуализации, поисковые интерфейсы и приложения для редактирования прямо на вершине структурированных данных.

Ключевые факты

  • Datasette Apps работают в изолированной песочнице (iframe sandbox + CSP), защищая приватные данные от компрометации
  • Приложения имеют доступ к read-only SQL запросам и write запросам через сохранённые процедуры (stored queries)
  • Встроенный шаблонный промпт позволяет скопировать набор инструкций вместе со схемой в ChatGPT, Claude или Gemini и получить рабочий код
  • Simon Willison использовал Claude Opus 4.6 для разработки, Claude Fable 5 для аудита безопасности и выявления уязвимости с повышением привилегий
  • Интеграция с Datasette Agent даёт AI помощнику возможность создавать и редактировать приложения как артефакты

Почему это важно

Datasette исторически был инструментом для публикации и исследования готовых данных. С добавлением Datasette Agent возник способ интерактивного анализа через естественный язык. Datasette Apps завершают экосистему, добавляя в это возможность разрабатывать полнофункциональные пользовательские интерфейсы без отдельного фронтенда. Это превращает базу данных из пассивного хранилища в платформу для создания приложений.

Кому это важно

Разработчикам, которые строят информационные системы, поисковые движки или дашборды на основе структурированных данных. Журналистам и аналитикам, которые хотят создать кастомный интерфейс для обращения с собранными данными без написания отдельного веб-приложения. Организациям с приватной базой данных Datasette, где нужно быстро прототипировать интерактивные инструменты. AI помощникам, встроенным в Datasette Agent, которые теперь могут автоматически генерировать приложения по описанию.

Как это применить

Можно попробовать на демо-сервере agent.datasette.io, авторизовав через GitHub. В форме создания приложения есть кнопка "Copy" рядом со специально подготовленным промптом: скопировал, вставил в Claude или ChatGPT, описал, что нужно (например, "инструмент для временной шкалы с поиском"), и модель генерирует HTML+JavaScript код. Затем нужно создать stored query в Datasette для операций записи, выдать приложению доступ через permission, и оно готово. Для локальной разработки плагин устанавливается через pip в существующий Datasette.

Можно ли доверять

Код прошёл серьёзный аудит безопасности. Simon Willison использовал Claude Fable 5 (специально для этого проекта) для анализа конфиденциального окружения и выявления реальной уязвимости: менее привилегированный пользователь мог создать приложение, которое запрашивает все таблицы, и обманув администратора на посещение приложения, получить доступ к его привилегированным данным. Уязвимость была закрыта введением нового permission (apps-set-csp), доступного только доверенному персоналу. Песочница (