Блог, база знаний, загрузки и журнал изменений для лендинга через 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_KEYpublic 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), календарь в админке; worker POST /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), не политика/согласия.