# Страницы

> Публичные сайты организации на xflowpage.ru: создание, версии, откат и удаление.

> Оглавление всей документации: https://docs.getxflow.com/llms.txt

Страница это публичный сайт организации на `https://<имя>.xflowpage.ru`: лендинг,
презентация, счёт для клиента. Её открывает любой по ссылке, без входа.

## Страница или приложение

| | Страница | Приложение |
|---|---|---|
| Адрес | `https://<имя>.xflowpage.ru` | `https://<id>--<организация>.xflowpage.ru` |
| Кто открывает | любой по ссылке, всегда | по [уровню доступа](https://docs.getxflow.com/platform/apps.md) |
| Что загружают | готовые файлы сайта | исходный код, платформа собирает его сама |
| Публикация | загруженная версия сразу на адресе | сборку публикуют отдельным шагом |
| База данных и функции | нет | база и функции проекта |
| Где живёт | в организации, вне проектов | в проекте |

Форма заявки, проверка ИНН, калькулятор для посторонних это приложение «Любой по ссылке» (с
тарифа Старт): каждый вызов его функций проверяет платформа.

Страница функции не вызывает. В неё можно положить только ключ функции для вебхуков: HTML-форма
отправит данные на адрес вебхука с `?key=`, но прочитать ответ скриптом не сможет. Такой ключ
открывает [функцию](https://docs.getxflow.com/platform/functions.md) каждому посетителю, защищают её только проверки в её
коде.

## Что можно загрузить

- Папку собранного сайта с `index.html` в корне, её `.zip` или один `.html` файл.
- Архив до 5 МБ, распакованное до 25 МБ, до 1000 файлов.
- Папку с `package.json` платформа не примет: нужна сборка (`dist`, `build` или `out`).
- Картинки и видео лежат внутри страницы: [хранилище файлов](https://docs.getxflow.com/platform/storage.md) страницам не
  служит.

Всё в странице видит каждый посетитель. Загрузка с ключом известного формата отклоняется,
кроме ключа функции для вебхуков (`xffn_`): его выдаёт человек, и он открывает одну функцию.

## Создание и новая версия

Страница создаётся сразу с первой версией:

```bash
xflow pages create "Прайс-лист" ./dist --slug price-list
xflow pages deploy price-list ./dist -m "новые цены"
```

Название это все слова между командой и путём. `--slug` задаёт имя в адресе, без него имя
собирается из названия со случайным хвостом. `create` печатает адрес, сайт на нём через
несколько секунд.

Черновика нет: после `deploy` новая версия сразу на адресе, `-m` необязателен. Если файлы не
изменились, платформа отвечает, что эта версия уже на адресе, и ничего не делает.

## Версии, откат и удаление

```bash
xflow pages status price-list
xflow pages rollback price-list 2
xflow pages rm price-list --yes
```

`status` показывает адрес, состояние и версии. `rollback` возвращает версию с этим номером за
секунды. Файлы хранятся у пяти последних версий.

`rm` стирает все версии навсегда, адрес пустеет. Без `--yes` команда называет, что пропадёт, и
ничего не делает. Имя остаётся за организацией 90 дней. Пробную страницу удаляйте, когда она
больше не нужна.

## Имя страницы

От 3 до 40 символов: строчные латинские буквы, цифры и дефис. Дефис не в начале и не в конце,
двух подряд нет (такие адреса у приложений). Имя уникально на всю платформу. Служебные имена, названия брендов и
слова, похожие на приманку для фишинга, заняты.

## Раздел «Страницы»

Пункт в боковом меню, роли «Просмотр» закрыт. Там список с поиском, версии с откатом и
загрузка перетаскиванием (папка, `.zip` или `.html`), имя адреса собирается из названия.
Временно выключить страницу можно только в интерфейсе. Создают, загружают и откатывают Админы
и Редакторы, выключает и удаляет автор страницы или Админ.

## Ограничения

- Число страниц ограничено тарифом, в счёт идут и выключенные.
- На организацию не больше 100 страниц, 20 новых и 200 загрузок в сутки.
- Между загрузками одной страницы не меньше 10 секунд: собирайте правки в одну загрузку.
- Страницы закрыты от индексации поисковиками.
- Значок вкладки у всех страниц общий, платформенный.
- Загрузка, откат и удаление видны через несколько секунд, браузер может держать прежние
  файлы до минуты.
