Перейти к содержимому
Версия 1.0 ещё не выпущена; проект находится на стадии pre-MVP. См. возможности и ограничения версии 1.0.

Условия отключения от Dee Wan

Автономный бэкенд — это репозиторий, который Dee Wan генерирует из моделей сайта и опубликованного контента. На этой странице сказано, на что можно рассчитывать, когда такой репозиторий у вас есть, и что происходит, если вы перестаёте пользоваться Dee Wan.

Статус: для каждого утверждения ниже есть автоматические тесты на машине разработчика. Ни одно из этих утверждений ещё не подтверждено на реальном развёртывании в Cloudflare; показателей производительности тоже нет.

Последовательность действий оператора, разделение учётных данных и команды приёмки приведены в руководстве по отключению. Оно объединяет verify:deployment и verify:media, не выдавая локальную проверку за приёмку в облачной среде.

Гарантия Что это значит для вас
Репозиторий принадлежит вам Проект записывается в каталог и репозиторий GitHub, которые вы указываете.
База данных принадлежит вам База D1 создаётся в вашем аккаунте Cloudflare. Генератор записывает данные только в эту базу.
Развёртывание и его учётные данные принадлежат вам У проекта собственная конфигурация Wrangler и скрипт развёртывания. Его API принимает bearer-токен записи API_BEARER_TOKEN, токены чтения из ACCESS_CONFIG и, когда автономная аутентификация включена, сессии собственного Better Auth.
Настоящие таблицы Каждая модель контента становится таблицей с типизированными столбцами и индексами для полей сортировки, состояния публикации и связей.
Проверяемая история миграций, которая только пополняется Изменение схемы добавляет новую миграцию после уже применённых. Применённая миграция никогда не переписывается.
Привычные маршруты Маршруты генерирует prisma-generator-express, и они следуют семантике моделей и запросов Prisma.
API не обращается к Dee Wan Worker API читает только собственную базу D1. Он никогда не обращается к Dee Wan и не зависит от его аккаунтов, доступности или инфраструктуры. Некоторые маршруты сайта к Dee Wan обращаются: см. Что по-прежнему зависит от Dee Wan.
Ваш код сохраняется при повторной генерации Файлы в src/owned/ записываются один раз и больше никогда не изменяются.
Ваши данные сохраняются при повторной генерации Строки, которые вы записываете в собственные таблицы, сохраняются при изменении схемы.
Вы можете уйти deploy-from-repository.yml развёртывает коммит без Dee Wan. Для повторной генерации нужен сохранённый вами definitions.json. См. Отключение от Dee Wan.

Файлы автономного бэкенда делятся на три зоны владения: generated (переписывается при каждой повторной генерации), owned (src/owned/, никогда не перезаписывается) и shared (создаётся один раз, после чего вы управляете ею сами). Полные правила описаны в разделе Расширение бэкенда.

API и сайт — разные части проекта. Статически собранные страницы берутся из закоммиченного pages.json и ничего не требуют от Dee Wan. Эти маршруты сайта обращаются к Dee Wan при каждом запросе:

Маршрут или функция Что читает или отправляет Кто отвечает
Маршруты Blog и RSS-лента Blog Опубликованные записи из /v1 на собственном хосте сайта Публичный Worker Dee Wan
Части карты сайта для Blog /v1/_sitemap Публичный Worker Dee Wan
Страницы поиска и страницы с секцией «Последние записи» или «Поиск по сайту» /v1 и /v1/_search Публичный Worker Dee Wan
Страницы модели, которая принимает комментарии посетителей Комментарии из /v1/_comments. Новые комментарии и реакции уходят в /v1/interactions/*. Публичный и intake Worker Dee Wan
Разделы с формами Отправки уходят в /v1/interactions/form.submit Intake Worker Dee Wan. Доставляет их admin Worker.
/preview Черновики из previewApiOrigin Публичный API Dee Wan, только пока он задан
Экспортированный управляемый рендерер, если вы его развернули /v1 при каждом запросе Публичный Worker Dee Wan

На этих маршрутах rich text со встраиванием или блоком плагина также читает /v1/_embeds или /v1/_rich-blocks. Содержимое секции «Последние записи» в общей секции, показанной в области страницы, фиксируется при генерации; во время запроса эта секция ничего не читает.

Публикация или снятие с публикации в CMS сразу доходит до этих маршрутов. Автономный API и статически собранные страницы не меняются, пока вы не выполните повторную генерацию и развёртывание.

Вывод установки Dee Wan из эксплуатации останавливает все маршруты из таблицы. Сначала пройдите список перед выводом CMS из эксплуатации.

Изменившийся снимок заменяет сгенерированные таблицы контента. Каждое развёртывание запускает data:load. Если закоммиченный снимок отличается от последнего загруженного в эту базу, загрузка удаляет все строки каждой таблицы, которой владеет снимок, и записывает строки снимка. Строка, которой нет в снимке, будет удалена независимо от того, кто её создал. Операция не будет отклонена из-за таких строк. Это происходит после повторной генерации и после отката на коммит с другим контентом. Повторная загрузка того же снимка ничего не меняет. Таблиц, которые генератор не создавал, нет в снимке, и они никогда не затрагиваются. Храните собственные данные в собственных таблицах, с собственными миграциями.

Чтобы сделать существующее поле обязательным, сначала нужно заполнить значения. Пересборка таблицы завершается ошибкой на строках, содержащих NULL, и операция останавливается без потери данных. Заполните пустые значения, затем сделайте поле обязательным.

Для этого используются два отдельных механизма:

  • Вебхук сборки, который задаётся в Dee Wan в разделе Настройки → Код и публикация → Параметры разработчика, — это URL, по которому Dee Wan запускает CI вашего репозитория.
  • Кнопка Развернуть на карточке Standalone-бэкенд там же вызывает этот вебхук. Затем ваш CI обновляет сгенерированные файлы, применяет миграции и выполняет развёртывание.

Ничто не генерируется и не развёртывается само по себе. Последующая публикация в CMS доходит до автономного API и статически собранных страниц только после повторной генерации и развёртывания. Обновления выходят отдельными выпусками, а не поступают непрерывно. С публичным API CMS и маршрутами из раздела Что по-прежнему зависит от Dee Wan иначе: публикация доходит до них сразу.

Отключение — штатная возможность. Чтобы отключиться, удалите вебхук сборки в Dee Wan, перестаньте нажимать Развернуть и сохраните репозиторий.

Что продолжает работать:

  • развёрнутый Worker и его база данных.
  • каждый уже сгенерированный маршрут.
  • уже применённые миграции.
  • ваш код в src/owned/ и ваши собственные таблицы.
  • deploy-from-repository.yml и ваш CI. Развёртывание применяет migrations/ через wrangler d1 migrations apply, затем запускает wrangler deploy. Локально npm run db:init применяет те же миграции.
  • маршруты из раздела Что по-прежнему зависит от Dee Wan, но только пока установка Dee Wan их обслуживает.

Что больше не поступает из CMS:

  • новые определения моделей из CMS.
  • вновь опубликованный контент CMS в автономном API и статически собранных страницах.
  • отзыв токенов чтения, выпущенных CMS. Их дайджесты остаются в access/read-tokens.json, пока вы их не удалите. См. Отключение от CMS.

С этого момента меняйте схему собственной SQL-миграцией: добавьте файл после последнего в migrations/. Файл миграции не меняет prisma/schema.prisma и сгенерированный клиент. Измените схему сами и запустите npm run prisma:generate. Когда повторная генерация больше не выполняется, файлы в зоне generated можно свободно редактировать. Правило зон имеет значение, только пока Dee Wan ещё пишет в это дерево.


Стабильная версия ещё не выпущена (pre-MVP)
Коммит исходного кода: e207e63239a627fbd2ae9c414ef7c6eb19fcfe5a (с локальными изменениями)
Дата сборки (UTC): 2026-10-21T09:28:24.214Z
Коммит для обновления: не определён: в рабочей копии есть изменения. Примечания к выпуску