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

Зачем:

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

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

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

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

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

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

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

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

Состояние Кто видит Примечание
draft Только автор и редакторы пространства Черновик — не виден команде и не участвует в поиске
inherit Следует за ближайшей родительской папкой с явным состоянием; если такой нет — как internal ADR 0029
internal Все авторизованные участники пространства Виден команде (значение по умолчанию для новых статей)
public Все, включая анонимных через Public KB Бейдж доступа рядом с заголовком статьи — только в корпоративном пространстве

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

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

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


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

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

  • Не существует в БД как реальное пространство (тип public — легаси, мигрирован в corporate)
  • Включает в себя статьи, публичные сами по себе или по наследованию от публичной папки
  • Используется для фильтрации в 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 или через inherit внутри публичной папки. Для internal и draft проверка не выполняется. Работает на всех путях, а не только на кнопке «Опубликовать»: бейдж доступа в редакторе, «Сделать публичной» в списке и дереве, массовая смена видимости, публикация папки (в том числе вместе с содержимым), перенос статьи или папки в публичную папку, копирование, восстановление из корзины и включение статьи.

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

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

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

Группа статей спрашивается один раз. Массовая смена видимости, публикация папки, перенос и восстановление показывают одно окно «Персональные данные в публикуемых статьях»: сводка по типам данных (сколько вхождений и в скольких статьях), список статей с поиском по названию, «Отметить все» / «Снять все» и счётчик отмеченных.

  • Отмеченные статьи публикуются. При открытии отмечены все — снимите отметку с тех, что публиковать не нужно: они останутся внутренними и за папкой не последуют.
  • Кнопки — «Опубликовать N» и «Отмена». При отмене ничего не происходит, и LiKE говорит об этом прямо.
  • Подтверждение, данное в групповом окне, записывается в журнал по каждой статье отдельно.

Статьи, снятые коннектором сайта, поштучного подтверждения не требуют: при подключении владелец подтверждает права на сайт и законность публикации персональных данных с него. Подключите сайт заново с ответом «Внутренними» — согласие снимается, и проверка снова работает как обычно.

Фоновые действия — синхронизация коннектора, импорт, перестройка структуры — спросить никого не могут, поэтому статью с неподтверждёнными персональными данными они не публикуют: она остаётся внутренней, а в журнале появляется запись об этом. Опубликовать её можно вручную, пройдя обычную проверку.

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

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

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

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


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

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

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

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

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

  • Адреса сайта — где виджет работает. Например, yoursite.com, docs.yoursite.com (адрес без схемы получает https://). Звёздочка не принимается; запросы с других адресов отклоняются.
  • 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 и статьи inherit в публичных папках Да
AI-поиск по этим статьям Да (при исчерпанном AI-объёме организации — поиск статей по смыслу без AI-ответа)
Каталог публичных коллекций Да
Краткая ссылка на share / embed (если включено для статьи) Да
Баннер «Войти для полного доступа» (если виджет анонимный) Да
Статьи internal, draft и inherit вне публичных папок Нет
Статьи из приватных пространств Нет
История запросов / Рекомендации (личные) Нет
Админ-панель, Корзина, Журнал, Аналитика Нет

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


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

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

  1. Контекстное меню коллекции → «Сделать публичной» / «Сделать внутренней»
  2. Состояние коллекции:
    • 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 для этого нет.

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