- Дата публикации
Datasette-files 0.1a3: как управлять файлами в Datasette без боли
Что появилось / что изменилось
Плагин datasette-files для Datasette обновился до версии 0.1a3. Это всё ещё pre-release, но в нём уже есть несколько важных изменений для тех, кто крутит файлы рядом с базой данных:
- Появились новые опции конфигурации:
owners_can_editиowners_can_delete. Они управляют, может ли владелец файла редактировать и удалять его. - Действия
files-editиfiles-deleteтеперь работают не абстрактно по источнику, а привязаны к новому ресурсуFileResource, который является дочерним по отношению кFileSourceResource. - Интерфейс выбора файлов превратили в отдельный Web Component:
<datasette-file-picker>. Его можно встраивать в другие части интерфейса без копирования кода. - Для других плагинов Datasette появился Python‑API:
from datasette_files import get_file. Через него можно получать доступ к данным файла напрямую из кода.
Все изменения относятся к управлению файлами, правам доступа и интеграции с другими плагинами и фронтендом.
Как это работает
Новые опции прав владельца
owners_can_edit и owners_can_delete — это флаги в конфигурации плагина. Они определяют, что может делать пользователь, который считается владельцем конкретного файла:
- если
owners_can_edit = true, владелец может менять содержимое или метаданные файла через действияfiles-edit; - если
owners_can_delete = true, владелец может удалять файл черезfiles-delete.
Раньше логика прав была привязана к источнику файлов в целом. Теперь разрешения точнее привязаны к конкретному файлу.
Новый FileResource
Плагин добавил сущность FileResource — это ресурс «конкретный файл». Он живёт внутри FileSourceResource, который описывает источник файлов (например, директорию или хранилище).
Действия files-edit и files-delete теперь работают на уровне FileResource. Это позволяет аккуратнее проверять права доступа и проще расширять поведение для отдельных файлов.
Web Component <datasette-file-picker>
Файловый пикер вынесли в стандартный Web Component. Теперь это не просто кусок HTML/JS внутри плагина, а самостоятельный элемент:
<datasette-file-picker></datasette-file-picker>
Его можно использовать в других страницах Datasette или сторонних интерфейсах, которые работают рядом с Datasette. Компонент отвечает за выбор и, потенциально, загрузку файлов, а Datasette обрабатывает запросы на бэкенде.
Python‑API get_file
Новый API:
from datasette_files import get_file
get_file позволяет другим плагинам достучаться до файлов, которые управляются через datasette-files. Плагин может, например, прочитать содержимое файла, получить метаданные или использовать файл как источник данных для собственных функций.
Что это значит для вас
Если вы используете Datasette как витрину для данных и вам нужно работать не только с таблицами, но и с файлами рядом с ними, обновление 0.1a3 делает жизнь проще.
Кому это полезно:
- Админам и разработчикам внутренних инструментов. Можно точнее настроить, что могут делать пользователи с файлами. Например, разрешить авторам загружать и править только свои файлы, но запретить удаление.
- Авторам плагинов для Datasette.
get_fileупрощает интеграцию: не нужно самим разруливать, где лежат файлы и как к ним обратиться. Достаточно использовать API плагина. - Фронтенд‑разработчикам.
<datasette-file-picker>можно встроить в кастомные панели админки или пользовательские интерфейсы, не переписывая выбор файлов с нуля.
Когда это удобно:
- у вас есть Datasette с данными и к нему прикручены файлы — отчёты, CSV, изображения, логи;
- вы хотите дать пользователям минимальный файловый менеджер прямо в Datasette, без отдельного сервиса;
- вы пишете плагин, который анализирует или конвертирует файлы, и вам нужен стандартный доступ к ним.
Когда лучше поискать другое решение:
- вам нужен полноценный файловый DAM‑сервис с предпросмотром всего подряд, версионированием и сложными воркфлоу;
- вы не используете Datasette и не планируете его разворачивать — плагин работает только внутри этой экосистемы.
Про доступность: datasette-files — это open source‑плагин на GitHub. Его можно установить из любой страны, в том числе из России. Если GitHub у вас открывается, дополнительных обходных путей не нужно.
Место на рынке
datasette-files 0.1a3 — это не отдельный сервис, а надстройка над Datasette. Сравнивать его с GPT-4o, Claude 3 или другими ИИ‑продуктами некорректно: он не про генерацию текста, а про файловый слой вокруг базы данных.
По сути, плагин конкурирует с самописными решениями «прикрутить файловую папку к Datasette» и с внешними файловыми сервисами, которые админы интегрируют вручную. Здесь нет красивых цифр по скорости или цене за токен — datasette-files живёт внутри уже развернутого Datasette и использует его инфраструктуру.
Если вы уже выбрали Datasette как основную витрину для данных, этот плагин закрывает базовые задачи по работе с файлами без отдельного стека. Если Datasette вам не нужен, плагин сам по себе не даёт дополнительной ценности.