Перейти к содержимому
Pre-MVP. Кодовая база 1.0 не является выпущенным продуктом — см. границы продукта 1.0.

Одно слово — одна вещь

Шесть слов в этом продукте использовались для обозначения больше чем одной вещи, и каждое такое пересечение стоило кому-то часа. Это реестр. Слово, которого нет в этом списке, не является термином продукта, а термин из этого списка означает ровно то, что здесь сказано, — в UI, в CLI, в спецификациях и в сообщениях коммитов.

Одно развёртывание Dee Wan. Admin Worker, admin UI, управляющая база данных, а также учётные записи и учётные данные за ними. Создаётся один раз установщиком.

  • То, что производит npm run setup.
  • Имеет ОДНУ управляющую базу данных, ОДНУ ссылку для получения прав (claim link), ОДИН набор суперадминистраторов.
  • Обслуживает много сайтов.
  • НЕ «инсталляция сайта». Сайт не инсталлируется; он создаётся.

Связанное, но отдельное понятие: установщик — это движок, и у него два интерфейса: веб-установщик и CLI-установщик. Оба управляют одним и тем же движком.

Один арендатор (tenant) внутри инсталляции. Имя, slug, имя хоста, собственный контент, собственные языки, собственные роли и гранты.

  • Создаётся через POST /api/sites, никогда через установщик.
  • В топологии «на сайт» (per-site) у сайта также есть собственная база данных контента; в общей (shared) топологии он использует единственную базу инсталляции. Какая из них у него есть — это строка в site_binding, а не свойство слова.
  • НЕ «site» Cloudflare и НЕ зона. Когда имеется в виду объект Cloudflare, говорите зона.

Делает один фрагмент контента доступным для чтения публичным read Worker. Переход жизненного цикла контента; к инфраструктуре отношения не имеет.

  • publish / unpublish, для каждого элемента контента, для каждой группы локалей.
  • Меняет то, что отвечает /api/… на публичном имени хоста. Не меняет ни кода, ни привязки (binding), ни развёртывания.
  • НЕ «публикация сайта». Сайт не публикуется; публикуется его контент.

Генерация автономного типизированного проекта бэкенда из модели контента сайта. Генерация исходного кода, и только она.

В UI ДЛЯ КЛИЕНТОВ ГОВОРИТЕ “GENERATE STANDALONE BACKEND”. Никто за пределами этого репозитория не знает, что значит «graduation» сайта, и это слово описывает механизм, а не то, что человек получает. graduation остаётся внутренним техническим термином — имена модулей, CLI-скрипты (npm run graduate), спецификации, сообщения коммитов, этот реестр — и никогда не появляется на экране, кнопке, в toast или в тексте ошибки, который читает владелец. scripts/check-vocabulary.mjs роняет CI на видимой пользователю строке, нарушающей это правило.

  • npm run graduate записывает проект: схему Prisma, миграции, Worker, wrangler.jsonc, типизированные маршруты.
  • Результат отсоединён — он ничего не знает об инсталляции, которая его произвела, и ничего не вызывает в ответ (SPEC.md §13.1).
  • Graduation ничего не развёртывает. graduate:all тоже ничего не развёртывает.
  • НЕ миграция, НЕ экспорт, НЕ развёртывание. Это генерация кода.

Запуск конкретной ревизии на Cloudflare. Этим словом называют две разные вещи, и их разделяет то, на что они действуют:

Термин Действует на Команда
развёртывание инсталляции admin Worker и admin UI npm run deploy
развёртывание сайта собственные Worker и D1 одного сайта, прошедшего «graduation» кнопка Deploy, через CI
  • Развёртывание сайта — это CI-конвейер из SPEC.md §13.1: выпустить учётные данные сборки, повторно сгенерировать файлы, принадлежащие генератору, добавить миграцию, применить миграции к D1, развернуть эту ревизию, проверить, отчитаться. site_deployment — строка, которая его фиксирует.
  • НЕ graduation. Graduation производит код, который запускает развёртывание.

Создание ресурсов Cloudflare, нужных чему-либо, и запись о том, что они существуют.

  • Провижининг инсталляции: D1, R2 или Images, Pages, DNS — то, что делает setup.
  • Провижининг сайта: create → migrate → bind → redeploy → verify для собственной базы данных контента сайта, фиксируется в provision_attempt / provision_ledger.
  • Всегда записывается в журнал (ledger), всегда возобновляем, никогда не выводится из имени.
  • НЕ инсталляция, НЕ развёртывание. Провижининг создаёт ресурс; развёртывание помещает на него код.
Избегать Потому что Говорить
«tenant» в UI это слово реализации; операторы думают сайтами сайт
«instance» для развёртывания content_instance — это строка, и она повсюду инсталляция
«migrate» для импорта контента migrate — это миграция схемы импорт
«export» для «graduation» экспорт — это контент, который уходит; «graduation» — это код, который приходит graduate
«sync» оно означало четыре разные вещи назовите направление
«graduate» в UI оно называет механизм, а не то, что получает владелец generate standalone backend
«workflow» для сайта с выключенным ревью нет ревью, в котором можно находиться publish / unpublish