Условия отключения от 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 (создаётся один раз, после чего вы управляете ею сами).
Полные правила описаны в разделе Расширение бэкенда.
Что по-прежнему зависит от Dee Wan
Заголовок раздела «Что по-прежнему зависит от Dee Wan»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
Заголовок раздела «Отключение от 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
Коммит для обновления: не определён: в рабочей копии есть изменения. Примечания к выпуску