Datasette 1.0a30: меню «Перейти к…» и новый plugin hook

24 мая 2026 года вышла очередная альфа-версия Datasette — 1.0a30. Datasette — это инструмент с открытым исходным кодом для исследования и публикации данных: он позволяет превратить данные любого размера и формата в интерактивный веб-сайт с API. Главная новинка релиза — настраиваемое меню быстрого перехода «Jump to», которое кардинально меняет навигацию внутри больших инстансов.


Что такое меню «Jump to»?

В Datasette 1.0a30 появилось меню «Jump to», которое вызывается горячей клавишей / и позволяет быстро перейти к базе данных, таблице или заготовленному запросу (canned query).

Представьте ситуацию: у вас развёрнут Datasette с десятками баз данных, в каждой из которых сотни таблиц. Раньше приходилось либо знать URL наизусть, либо долго листать главную страницу. Теперь достаточно нажать / — и появляется интерактивный поиск, который мгновенно фильтрует все доступные объекты по мере ввода.

💡 Попробуйте прямо сейчас
Меню «Jump to» доступно на демо-инстансе: нажмите клавишу / на сайте latest.datasette.io и убедитесь сами, как быстро работает навигация.

Эта возможность подробно описана в статье «The extensible “Jump to” menu in Datasette 1.0a30» в официальном блоге Datasette.


Plugin hook jump_items_sql() — расширяемость по-новому

Но самое интересное — это не просто удобный UI-элемент. Разработчики плагинов получили новый инструмент для расширения меню.

Новый plugin hook (точка расширения плагина) jump_items_sql() позволяет плагинам добавлять собственные элементы в набор, по которому выполняется поиск в меню.

Другими словами: любой плагин теперь может «вписать» свои собственные объекты в глобальный быстрый поиск. Это открывает широкие возможности — от навигации к пользовательским дашбордам до интеграции с внешними каталогами данных.

ℹ Что такое plugin hook?
Plugin hook (хук плагина) — это заранее определённая «точка подключения» в коде Datasette, куда сторонние плагины могут «вставить» собственную логику. Плагины Datasette используют хуки для кастомизации поведения системы. Эти хуки реализованы на базе системы pluggy; каждый плагин может реализовать один или несколько хуков с помощью декоратора @hookimpl.

Пример: как работает jump_items_sql()

Предположим, у вас есть плагин, хранящий список «избранных» таблиц пользователя в отдельной SQLite-таблице user_favorites. С помощью нового хука можно добавить эти записи прямо в меню быстрого перехода:

from datasette import hookimpl

@hookimpl
def jump_items_sql(datasette):
    # Возвращаем SQL-запрос, результаты которого появятся в меню
    return """
        SELECT
            name        AS label,
            url         AS url,
            'Избранное' AS group_label
        FROM user_favorites
        ORDER BY name
    """

Datassette выполнит этот запрос и включит строки в поисковый индекс меню «Jump to». Пользователь напишет первые буквы — и увидит своё избранное наравне со стандартными таблицами.

📝 Реальный сценарий
Плагин datasette-queries сохраняет пользовательские SQL-запросы как canned queries. Сохранённые запросы (treated as canned queries) отображаются списком на странице базы данных. С jump_items_sql() они могут дополнительно появляться прямо в глобальном поиске — без лишних кликов.

Как Datasette развивает экосистему плагинов

Выход jump_items_sql() — не изолированное событие, а часть последовательной стратегии. За последние несколько релизов Datasette методично расширяет API плагинов:

ВерсияНововведение для плагинов
1.0a13Хуки view_actions(), homepage_actions(), row_actions()
1.0a24Метод await request.form(files=True) для загрузки файлов
1.0a25Хуки write_wrapper() и register_token_handler()
1.0a26Система column_types с дополнительными типами колонок
1.0a27Изменена защита от CSRF, добавлен RenameTableEvent
1.0a30Хук jump_items_sql() для меню быстрого перехода

Каждая из ключевых концепций Datasette теперь имеет собственное меню действий, которое плагины могут использовать для добавления дополнительной функциональности.


graph TD
    A[Пользователь нажимает /] --> B[Открывается меню Jump to]
    B --> C[Datasette выполняет встроенный запрос]
    B --> D[Плагины вызывают jump_items_sql]
    C --> E[Базы данных и таблицы]
    D --> F[Пользовательские элементы плагина]
    E --> G[Единый список результатов]
    F --> G
    G --> H[Пользователь выбирает и переходит]


Canned queries — зачем они нужны?

Меню «Jump to» включает в поиск не только базы данных и таблицы, но и так называемые canned queries — заготовленные запросы.

Canned queries поддерживают именованные параметры: если вы включаете их в SQL, пользователь сможет вводить значения через поля формы на странице запроса или добавляя их в URL. Это означает, что canned queries можно использовать для создания кастомных JSON API на базе тщательно составленных SQL-запросов.

Теперь с помощью меню «Jump to» к таким запросам можно добраться мгновенно — просто набрав несколько букв из их названия.

⚠ Альфа — значит альфа
Datassette 1.0a30 — это альфа-версия. API plugin hooks, включая jump_items_sql(), может измениться до финального релиза 1.0. Не используйте в критически важных продуктивных системах без готовности к миграции.

Datasette Agent: AI-будущее уже рядом

Пока команда шлифует навигацию, параллельно развивается ещё более амбициозный проект.

Недавно был выпущен Datasette Agent — плагин с открытым исходным кодом, предоставляющий расширяемого AI-ассистента для работы с SQLite-базами данных. Datasette Agent интегрирует LLM в Datasette, поддерживая сотни различных моделей с вызовом инструментов — от крупных провайдеров вроде OpenAI, Anthropic и Google Gemini до опенсорсных моделей, которые можно запустить на собственном железе.

Результат — разговорный интерфейс для ответов на вопросы о данных в SQLite, дополненный плагинами для визуализаций и других пользовательских инструментов.

Синергия очевидна: меню «Jump to» помогает быстро находить нужные таблицы, а Datasette Agent позволяет задавать вопросы к этим данным на естественном языке. Вместе они превращают Datasette из инструмента для технических специалистов в платформу, доступную любому аналитику.


Установка и обновление

Чтобы попробовать Datasette 1.0a30, достаточно установить альфа-версию через pip:

# Установка последней альфа-версии
pip install datasette==1.0a30

# Или через pipx (рекомендуется)
pipx install datasette==1.0a30

# Проверка версии
datasette --version

После запуска перейдите на главную страницу вашего инстанса и нажмите / — меню «Jump to» появится немедленно.

# Запуск с тестовой базой данных
datasette my_database.db
# Откройте http://localhost:8001 и нажмите /

Итог

Datasette 1.0a30 — это шаг к по-настоящему удобной навигации в мире данных: быстрый поиск по всем объектам системы, расширяемый плагинами через jump_items_sql().

Если вы работаете с несколькими базами данных и устали теряться в длинных списках таблиц — обновляйтесь. А если пишете плагины для Datasette — новый хук открывает возможности, которых раньше просто не было.

Полезные ссылки: