Public Knowledge Base (Public KB) — это часть вашей базы знаний, доступная без авторизации через прямую ссылку, виджет или iframe. Сюда попадают только статьи, которые вы явно пометили публичными.

Зачем:

  • Самообслуживание клиентов — клиенты находят ответы сами, без обращения в саппорт
  • SEO — публичные статьи индексируются Google и другими поисковиками
  • Демо — потенциальные клиенты читают документацию до покупки
  • Партнёры — доступ к технической документации без необходимости заводить аккаунты

#Как статья становится публичной

Публичность включается двумя настройками — на уровне статьи и на уровне организации. Пока не выполнены обе, анонимные посетители статью не увидят.

Уровень статьи
publish_state = public
Только статьи со статусом public попадают в анонимный доступ; internal / draft / inherit скрыты. Пометить статью публичной можно только в корпоративном пространстве — в приватном и личном публикация заблокирована.
Уровень организации
Режим доступа = «Публичный»
В Настройки → Организация → Режим доступа. Если организация в режиме «Корпоративное», публичный адрес закрыт и анонимы не видят ничего — даже статьи со статусом public.

«Публичного пространства» как типа нет. Пространства бывают только Корпоративное / Приватное / Личное. Статья становится видимой не переносом в особое пространство, а флагом publish_state=public (в корпоративном пространстве) при включённом публичном режиме организации.

Эта двойная защита — гарантия от случайного «протаскивания» приватной информации наружу. Поставить publish_state=public можно только в корпоративном пространстве; в приватном и личном эта опция заблокирована.

#Состояния publish_state (ADR 0029)

LiKE использует поле publish_state (заменяет старое поле visibility). Четыре состояния:

Состояние Кто видит Примечание
draft Только автор и редакторы пространства Черновик — не виден команде и не участвует в поиске
inherit Наследует уровень видимости от родительской коллекции/пространства ADR 0029
internal Все авторизованные участники пространства Виден команде (значение по умолчанию для новых статей)
public Все, включая анонимных через Public KB Кнопка «Опубликовать» в редакторе — только в корпоративном пространстве

В UI цвет состояния показан dot-индикатором:

Черновик — виден только автору и редакторам
Internal (внутренняя) — для авторизованной команды
🌐 Публичная — анонимный доступ через Public KB
Есть неопубликованные правки — показывается прошлая версия, новая в редакторе

Эти же badge'и видны в списке статей в Управлении статьями.


#Виртуальное пространство __public__

Когда анонимный пользователь открывает Public KB через прямую ссылку или виджет, технически он не находится ни в одном из ваших пространств. Вместо этого LiKE использует виртуальное «пространство» __public__ — sentinel-значение, которое:

  • Не существует в БД как реальное пространство (тип public — легаси, мигрирован в corporate)
  • Включает в себя все статьи с publish_state='public' из корпоративных пространств организации
  • Используется для фильтрации в RAG-поиске анонимного юзера
  • В SpaceSwitcher отображается как «🌐 Публичные статьи» (если у пользователя есть и приватные пространства)

Если вы — авторизованный участник, переключитесь на __public__ в SpaceSwitcher, чтобы видеть ровно тот же набор статей, что и анонимный посетитель — это удобно для проверки «что я случайно опубликовал».


#Настройка (пошагово)

#Шаг 1 — Разместите статьи в корпоративном пространстве

Публиковать наружу можно только из корпоративного пространства (в приватном и личном публикация заблокирована). Если статьи в другом пространстве — переместите их в корпоративное: по одной через контекстное меню статьи → Переместить, или массово (чекбоксы → Переместить). При создании пространства доступны типы Корпоративное и Приватное; «Личное» — системное.

#Шаг 2 — Сделайте статьи публичными

Переведите нужные статьи в publish_state = public (см. Управление статьями):

  • Массово — выделите чекбоксами → кнопка-глобус (🌐) на панели действий → Публичный
  • Одна статья — меню «⋮»«Видимость: …» → Публичная; в режиме «Дерево» — контекстное меню → «Сделать публичной»
  • В редакторе — кнопка «Опубликовать» в шапке

После этого статус-индикатор станет зелёным и появится бейдж 🌐 Публичная. Если в статье есть персональные данные, откроется окно подтверждения — см. раздел «Проверка персональных данных при публикации» ниже.

#Шаг 3 — Включите публичный режим организации

Настройки → Организация → Режим доступа → выберите «Публичный».

  • Публичный — анонимные пользователи видят на публичном адресе статьи, помеченные как публичные; приватные пространства остаются доступны только по приглашению.
  • Корпоративное — всё доступно только авторизованным участникам; внешние пользователи без входа не видят ничего, даже статьи, помеченные публичными.

Без включённого режима «Публичный» публичный адрес закрыт — этот шаг обязателен.

#Шаг 4 — Публичный адрес и каналы

Готовую публичную базу открывают тремя способами:

  • Публичный портал — корень вашего адреса https://<ваш-slug>.lynkora.pro: поиск, AI-ответы и чтение статей без входа. Отдельная статья — по ссылке /kb/<slug-статьи>.
  • JS-виджет — встраивается на ваш сайт; код виджета берётся в Интеграции → Каналы (карточка «JS Widget»).
  • iframe — встраивание полного интерфейса поиска на страницу.

Отдельной вкладки «Публичная KB» в настройках больше нет (ADR 0029): публичность теперь задаётся флагом статьи + режимом организации, а не белым списком источников. Управление виджетами — в Интеграции → Каналы.


#Проверка персональных данных при публикации

При переводе статьи в публичную LiKE автоматически проверяет её на персональные данные (ПДн). Если они найдены, публикация приостанавливается и открывается окно «Обнаружены персональные данные» — прежде чем статья станет доступна всем без входа.

Когда срабатывает: только при публикации (перевод в public, анонимный доступ). Для internal, draft и inherit проверка не выполняется. Работает на всех путях публикации: кнопка «Опубликовать» в редакторе, «Сделать публичной» в списке/дереве, массовая смена видимости и публикация коллекции/пространства.

Что распознаётся (детерминированно, по шаблонам):

  • Эл. почта
  • Телефон
  • Платёжная карта (проверка по алгоритму Луна)
  • IBAN (проверка по контрольной сумме)
  • IP-адрес
  • Дата рождения

Особые категории (здоровье, биометрия и др., GDPR ст. 9) пока не распознаются автоматически — в окне показывается только предупреждение о повышенной ответственности за их публикацию.

Как выглядит окно:

  • Заголовок «Обнаружены персональные данные» и список найденных типов с количеством (суммарно по всем публикуемым статьям).
  • Обязательный чекбокс-подтверждение: инструмент помогает выявить ПДн, но не гарантирует полноту; ответственность за законность публикации и наличие оснований/согласий — на вас как контролёре данных.
  • Кнопки «Отмена» и «Опубликовать» (последняя активна только после отметки чекбокса).

После подтверждения: статья публикуется, а факт подтверждения фиксируется в журнале действий (pii_public_ack) с типами найденных данных — без сохранения самого текста ПДн (privacy-by-design). Подтверждение привязано к текущей версии статьи: если после этого отредактировать текст, потребуется подтвердить заново.

Кто может подтверждать: те же роли, что и публикуют, — Редактор и выше в пространстве статьи (Владелец и Администратор — всегда). Массовая публикация всех статей источника — только Владелец/Администратор.


#Виджеты для Public KB (dual-auth, ADR 0032)

LiKE поддерживает два режима аутентификации виджетов — выбирается при создании виджета в Интеграции → Виджеты:

#Режим 1 — Allowed paths (для публичных сайтов)

Виджет, встраиваемый на публичный сайт компании (лендинг, маркетинг-страницы, центр помощи). Аутентификация не требуется — виджет доступен любому посетителю.

Защита от злоупотреблений:

  • Список разрешённых URL (allowed paths) — где этот api-key валиден. Например, https://yoursite.com/* и https://docs.yoursite.com/*. Запросы с других доменов отклоняются (CORS + check).
  • Public umbrella scope — виджет имеет доступ только к __public__ пространству + конкретным коллекциям из этого пространства, заданным при создании.
  • Rate limit на api-key — защита от ботов.

#Режим 2 — Session JWT (для корпоративного сайта с авторизацией)

Виджет, встраиваемый на внутренний портал компании, где у пользователей уже есть авторизация. Виджет принимает session JWT и видит ровно то, что видит этот пользователь.

Применение:

  • Виджет на корпоративном Intranet → каждый сотрудник видит свои пространства
  • Embed в SaaS-приложении (например, в CRM) — пользователь видит документацию своей роли

#Multi-widget per tenant (ADR 0029 Stage 4)

В организации можно создать несколько виджетов с разными scope:

  • Один — публичный, для маркетингового сайта (allowed paths)
  • Другой — корпоративный, для intranet (session JWT)
  • Третий — для конкретной коллекции (например, только FAQ для центра поддержки)

Каждый виджет имеет свой api-key, scope и режим аутентификации. См. Интеграции → Виджеты и API и виджет для деталей.


#Что видят анонимные посетители

Элемент Виден?
Статьи с publish_state=public в корпоративных пространствах ✅ Да
AI-поиск по этим статьям ✅ Да
Каталог публичных коллекций ✅ Да
Краткая ссылка на share / embed (если включено для статьи) ✅ Да
Баннер «Войти для полного доступа» (если виджет анонимный) ✅ Да
Статьи internal, draft, inherit ❌ Нет
Статьи из приватных пространств ❌ Нет
История запросов / Рекомендации (личные) ❌ Нет
Админ-панель, Корзина, Журнал, Аналитика ❌ Нет

Анонимный поиск по умолчанию использует client-fingerprint cookie для базовой rate-limiting, но не привязывает запрос к user account.


#Скрытие отдельных коллекций

В корпоративном пространстве не все коллекции обязательно должны быть видны анонимам. Можно скрыть конкретные коллекции:

  1. Контекстное меню коллекции → Свойства
  2. Поле publish_state коллекции:
    • inherit — наследует от пространства (по умолчанию)
    • internal — скрыта от анонимов, видна команде
    • public — явно публичная (только в корпоративном пространстве, иначе блокируется)

Это даёт гибкость: например, в корпоративном пространстве «Документация» можно держать черновики в коллекции Internal Drafts с publish_state=internal — они невидимы наружу, но доступны вашим редакторам.


#Встраивание на сайт

Public KB можно интегрировать в сайт тремя способами:

Способ Описание
Прямая ссылка https://<slug>.lynkora.pro — полноценный портал-сайт со списком статей, AI-поиском, навигацией
JS-виджет Плавающая кнопка в углу любой страницы; раскрывается в AI-чат и поиск; настройка поведения, а на планах с white-label — и брендинга
iframe Встроенный блок (например, страница «Помощь» внутри вашего приложения) — полный интерфейс LiKE в рамке
REST API Прямые запросы из вашего backend через api-key — для интеграции в собственные UI

Подробности по каждому — API и виджет и Интеграции.


#White-label и собственный домен

Публичная база знаний доступна с дефолтным адресом slug.lynkora.pro. Расширенные возможности портала — white-label (без брендинга LiKE) и подключение собственного домена (Настройки → Домен) — входят в состав планов, где включён white-label. Отдельного платного add-on для этого нет.

Какие возможности на каких планах доступны и по какой цене — смотрите на странице Тарифы и в вашей админ-панели.