Блог, база знаний, загрузки и журнал изменений для лендинга через SDK.
CMS Сайт
CMS-сайт — контент для лендинга (блог, база знаний, загрузки, changelog). Редактирование в админке Platform (CMS Сайт). На лендинге гости (без JWT) читают только опубликованные материалы.
Приложение не обязательно: при создании сайта автоматически появляются site_code и ключ rb_cms_… (показывается один раз). При необходимости сайт можно привязать к приложению в обзоре сайта.
Идентификация (лендинг без приложения)
| Параметр | Значение |
|---|---|
YOUR_SITE_CODE | код сайта из админки (создаётся автоматически) |
YOUR_CMS_SITE_KEY | ключ сайта rb_cms_… (X-Public-Key) |
X-Public-Key: YOUR_CMS_SITE_KEY
Идентификация (сайт привязан к приложению)
| Параметр | Значение |
|---|---|
YOUR_APP_CODE | код приложения |
YOUR_SITE_CODE | код сайта |
YOUR_PUBLIC_KEY | public key приложения rb_pub_… (X-Public-Key) |
X-Public-Key: YOUR_PUBLIC_KEY
X-Application-Code: YOUR_APP_CODE
JWT пользователя не нужен для чтения CMS на лендинге.
Разделы
- Блог — статьи (markdown), обложка (
cover_url), категории; статусы черновик / в очереди / опубликована / архив; при «В очереди» — дата/время (scheduled_at), календарь в админке; workerPOST /v1/internal/social/tickпубликует due-посты - База знаний — справочник / help на лендинге: дерево разделов (папок) до 5 уровней + страницы (статьи). Это не журнал версий
- Здоровье / SEO — кабинет проекта (KPI, план, кластеры, конкуренты) + аудит живого
website_url; см. Здоровье / SEO сайта - РКН / 152‑ФЗ — проверка документов и лендинга на типичные требования ПДн / Роскомнадзора; см. РКН / 152‑ФЗ
- Документы — произвольные файлы / URL / markdown для лендинга (без юр. шаблонов)
- Юридические документы — слоты политики, согласий, оферты; см. Согласия и юр. документы
- Баннеры — HTML modal / fullscreen; см. Баннеры
- Брендинг — иконка и ссылка на сайт в Обзоре; см. Иконки и сайты
- Загрузки — каналы по платформе (Android, Windows, …), версии, файл или внешняя ссылка
- Журнал изменений — релизные заметки («что нового в версии 1.2») для блока версий на сайте
В API отдаётся только status = published. Черновики и очередь для гостей выглядят как 404.
HTTP (публичное чтение)
Без приложения — база YOUR_API_URL:
GET /v1/sites/YOUR_SITE_CODE
GET /v1/sites/YOUR_SITE_CODE/blog/categories
GET /v1/sites/YOUR_SITE_CODE/blog/posts?locale=ru
GET /v1/sites/YOUR_SITE_CODE/blog/posts?locale=ru&category=news
GET /v1/sites/YOUR_SITE_CODE/blog/posts/{slug}
GET /v1/sites/YOUR_SITE_CODE/kb/tree
GET /v1/sites/YOUR_SITE_CODE/kb/articles/{slug}
GET /v1/sites/YOUR_SITE_CODE/kb/popular?limit=10
GET /v1/sites/YOUR_SITE_CODE/downloads
GET /v1/sites/YOUR_SITE_CODE/downloads/android/latest
GET /v1/sites/YOUR_SITE_CODE/downloads/android/history
GET /v1/sites/YOUR_SITE_CODE/downloads/android/1.0.0/file
GET /v1/sites/YOUR_SITE_CODE/changelog
GET /v1/sites/YOUR_SITE_CODE/changelog/{slug}
GET /v1/sites/YOUR_SITE_CODE/documents
GET /v1/sites/YOUR_SITE_CODE/documents/{slug}
GET /v1/sites/YOUR_SITE_CODE/legal
GET /v1/sites/YOUR_SITE_CODE/legal/{doc_kind}
Произвольные файлы лендинга — documents. Политика / согласия / оферта — только /legal (раздел «Юридические документы» в админке). Старый documents/by-kind для юр. текстов не используй.
Список документов (нужен ключ сайта) отдаёт public_url — прямая ссылка для браузера без заголовков:
GET /v1/cms-documents/{access_token}
PDF и изображения открываются inline; текстовые документы (source_type: text) — HTML-страница с markdown; остальные файлы — скачивание.
В списке и карточке поста поле category: { "slug", "name" } (или null). Фильтр category — slug категории.
С приложением — те же разделы под префиксом:
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE
Блог:
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/blog/posts?locale=ru
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/blog/posts/{slug}
База знаний:
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/kb/tree
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/kb/articles/{slug}
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/kb/popular?limit=10
Загрузки:
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/downloads
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/downloads/android/latest
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/downloads/android/history
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/downloads/android/1.0.0/file
Журнал:
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/changelog
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/changelog/{slug}
SDK (TypeScript)
const cats = await platform.listCmsBlogCategories("YOUR_SITE_CODE");
const posts = await platform.listCmsBlogPosts("YOUR_SITE_CODE", {
locale: "ru",
category: "news",
});
const tree = await platform.getCmsKbTree("YOUR_SITE_CODE");
const dl = await platform.getCmsDownloadLatest("YOUR_SITE_CODE", "android");
const log = await platform.listCmsChangelog("YOUR_SITE_CODE");
const docs = await platform.listCmsDocuments("YOUR_SITE_CODE");
const legal = await platform.listSiteLegalDocuments("YOUR_SITE_CODE");
const privacy = await platform.getSiteLegalDocument(
"YOUR_SITE_CODE",
"privacy_policy",
);
Методы: getCmsSite, listCmsBlogCategories, listCmsBlogPosts, getCmsBlogPost, getCmsKbTree, getCmsKbArticle, listCmsPopularKbArticles, listCmsDocuments, getCmsDocument, listSiteLegalDocuments, getSiteLegalDocument, listSiteBanners, getSiteBanner, getCmsDownloads, getCmsDownloadLatest, listCmsChangelog, getCmsChangelogEntry. Flutter — те же имена.
Для юр. документов не используй getCmsDocumentByKind — только listSiteLegalDocuments / getSiteLegalDocument.
Безопасность и кеш
- Храните
YOUR_CMS_SITE_KEYилиYOUR_PUBLIC_KEYтолько на сервере лендинга (SSR/BFF) или в build-time env, если ключ уже публичный для клиента — осознанно. - Тело статей — markdown: рендерите через безопасный парсер (без произвольного HTML).
- Рекомендуется кешировать GET на лендинге 60–300 секунд.
Админка
CMS Сайт → карточки сайтов → Блог / База знаний / Юридические документы / Документы / Загрузки / Журнал. Юр. тексты — раздел «Юридические документы» и API /legal (listSiteLegalDocuments). Раздел «Документы» — произвольные файлы лендинга (listCmsDocuments), не политика/согласия.