Janitor

Находит осиротевшие файлы и документы без ссылок в Payload и удаляет только те записи, которые вы одобрили.

Сообщество 2 MIT v0.1.0

Установка

pnpm add @seshuk/payload-plugin-janitor

Описание

Janitor ищет в проекте Payload файлы и документы, на которые больше никто не ссылается: объекты в хранилище, оставшиеся после удаления документа, битые загрузки и записи без связей с другими документами. Каждый найденный кандидат записывается в коллекцию `findings`, поэтому список просматривает человек в админке до того, как что-либо будет удалено. Удаление затрагивает только записи, помеченные как approved. Плагин добавляет в конфиг коллекции `findings` и `runs` (запуски сканирования) и оборачивает существующие upload-коллекции, чтобы отслеживать, какие файлы на них ссылаются. Задача janitor регистрируется в очереди jobs Payload и запускает сканирование по расписанию. Если включены опции админки, в ней появляются виджет на дашборде и подсветка полей. Сканирование можно запустить из кода: `runJanitor` и `startJanitor` запускают проверку, `scanStorage` проверяет хранилище, `purgeApproved` удаляет одобренные записи, а `buildUsageIndex` и `findUsage` помогают найти, где используется конкретный файл. Доступны адаптеры для S3, Cloudflare R2, Bunny, Azure Blob, Google Cloud Storage, UploadThing, Vercel Blob и локального диска. Для адаптера S3 нужно установить пакет `@aws-sdk/client-s3`. Плагин требует `payload` и `@payloadcms/ui` в диапазоне 4.0.0-beta или ^4.0.0, а также React 19. Параметр `enabled: false` оставляет схему и переводы, но отключает работу плагина во время выполнения. Текущая версия 1.0.0-beta.1 распространяется по лицензии MIT и требует Node 24.15 или новее. Имена опций и поведение могут измениться до стабильного релиза.

О пакете

Имя пакета
@seshuk/payload-plugin-janitor
Последняя версия
0.1.0
Размер
1,6 МБ
Лицензия
MIT
Последняя публикация
14 окт. 2026 г.

Ещё от maximseshuk

Профиль автора