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


#Источники контента

#Подключённые (всегда активны)

Источник Описание
Редактор LiKE Встроенный AI-редактор для создания статей
Импорт файлов Загрузка PDF, DOCX, TXT, MD, RTF, ZIP
Импорт по ссылке Google Docs, Dropbox, прямые ссылки на файлы

#Доступные коннекторы

Источник Описание Режим
Wiki.js Импорт или синхронизация статей Sync / Import
Confluence Импорт из Atlassian Confluence Cloud (OAuth) Sync / Import
Notion Импорт страниц и баз данных Sync / Import
GitHub Синхронизация Wiki и Markdown-файлов из репозиториев Sync / Import
GitLab Синхронизация Wiki и Markdown-файлов из проектов Sync / Import
Gitea Синхронизация Wiki и Markdown-файлов из self-hosted Gitea Sync / Import
Сайт документации Публичный сайт по карте sitemap Sync

#Подключение GitHub

#Шаг 1 — Авторизация

  1. В LiKE перейдите в Интеграции → GitHub → «Подключить»
  2. Выберите способ авторизации:
Способ Описание
Personal Access Token (PAT) Создайте токен в GitHub → Settings → Developer settings → Personal access tokens. Fine-grained (рекомендуется): Repository access + Permissions → Contents: Read-only (Metadata: Read добавится автоматически); для репозиториев организации токен должен одобрить её владелец. Classic: scope repo. Enterprise: укажите Base URL https://ХОСТ/api/v3
OAuth Авторизация через GitHub App — нажмите «Авторизовать» и подтвердите доступ

#Шаг 2 — Выбор контента

  1. После подключения отображается дерево репозиториев с папками и файлами
  2. Отметьте галочками конкретные файлы или папки для импорта (Selective Sync)
  3. Поддерживаемые форматы: .md, .mdx, Wiki-страницы

#Шаг 3 — Запуск синхронизации

  1. Нажмите «Синхронизировать»
  2. Прогресс отображается в реальном времени
  3. После завершения — статьи появятся в списке с меткой GitHub

#Подключение GitLab

#Шаг 1 — Авторизация

  1. В LiKE перейдите в Интеграции → GitLab → «Подключить»
  2. Выберите способ авторизации:
Способ Описание
Personal Access Token (PAT) Создайте токен в GitLab → Preferences → Access Tokens. Scopes: api и read_user; роль токена — не ниже Reporter (Guest не видит код). Подходит для GitLab.com и self-hosted (для self-hosted укажите Base URL инстанса)
OAuth Авторизация через GitLab Application — нажмите «Авторизовать»

#Шаг 2 — Выбор контента

  1. Отображается дерево проектов с Wiki-страницами и Markdown-файлами
  2. Отметьте конкретные страницы для импорта (Selective Sync)

#Шаг 3 — Запуск синхронизации

Аналогично GitHub — нажмите «Синхронизировать», дождитесь завершения.


#Подключение Gitea

Gitea — self-hosted git-платформа. Подключается через Personal Access Token и обязательный URL вашего инстанса (облачного Gitea по умолчанию нет).

#Шаг 1 — Создайте токен в Gitea

  1. В Gitea откройте Settings → Applications → Generate New Token
  2. Выдайте scopes read:repository и read:user
  3. Скопируйте токен

#Шаг 2 — Подключите в LiKE

  1. В LiKE перейдите в Интеграции → Gitea → «Подключить»
  2. Укажите Base URL вашего инстанса (например https://gitea.company.com) — поле обязательное, без него подключение не пройдёт
  3. Вставьте токен
  4. Выберите пространство/коллекцию и режим (Синхронизация — постоянное зеркало / Импорт — разовая копия)

OAuth 2.0 тоже поддерживается, если администратор Gitea заранее настроил OAuth-приложение. Основной путь — токен.

#Шаг 3 — Выбор контента и синхронизация

  1. Отобразится дерево репозиториев с Wiki-страницами и Markdown-файлами (.md, .mdx)
  2. Отметьте нужные узлы (Selective Sync) и нажмите «Синхронизировать»
  3. Для авто-обновления при push настройте webhook — секрет генерируется в карточке коннектора. Статьи из Gitea read-only (как у GitHub/GitLab)

#Выбор файлов и фильтры синхронизации (GitHub, GitLab, Gitea)

Для git-источников (GitHub, GitLab и Gitea) логика выбора, что синхронизировать, более тонкая, чем простое «вкл/выкл репозитория»:

#Что попадает в синхронизацию

Источник внутри репозитория Включается
Wiki-страницы (<repo>.wiki) По умолчанию все Wiki-страницы выбранного репозитория
Markdown файлы в основном дереве (*.md, *.mdx) По умолчанию все Markdown-файлы, если не настроены фильтры
README.md Включается как отдельная статья с названием = <repo-name> · README
Документация в /docs/** Включается, если папка есть; имя статьи берётся из заголовка # ... или filename
Не-Markdown файлы (.txt, .rst, .json, код) Не синхронизируется автоматически — LiKE не парсит произвольные форматы

#Path-фильтры (selective sync)

Можно сузить, что именно брать из репозитория:

Path filters
+ docs/** + guides/*.md − internal/**
Только файлы из docs/ и guides/, исключая internal/
Префикс Действие
+ path/pattern Include — включить файлы по pattern (glob-синтаксис)
- path/pattern Exclude — исключить файлы из синхронизации
(пусто) Без фильтров: все Wiki + все .md/.mdx в репозитории

#Обнаружение изменений (recent changes)

LiKE не «качает всё» при каждом запуске синка. Используется детектирование изменений:

  • GitHub — через webhook (рекомендуемый) или polling с использованием If-Modified-Since headers. Webhook реагирует на push моментально, polling — раз в 6/12/24/48 часов (зависит от автосинхронизации).
  • GitLab — аналогично: webhook или polling по last_activity_at через Projects API.
  • Gitea — webhook (подпись X-Gitea-Signature) или polling. Push-триггер срабатывает только при изменении *.md/*.mdx.

После обнаружения изменения — синхронизируются только затронутые файлы, остальной корпус не пересчитывается. Это сильно экономит API-квоты GitHub/GitLab и время выполнения.

#Branch и теги

Параметр Значение по умолчанию
Branch Дефолтная ветка репозитория (обычно main / master)
Альтернативная ветка Можно явно указать (например, синхронизировать с release/v2)
Tag-based sync Опционально: синхронизация по тегу версии (например, документация для версии v3.0)
Multi-branch Pro+: можно синхронизировать несколько веток параллельно как разные статьи

#История и конфликты

  • История синхронизаций — в карточке коннектора вкладка «История»: дата, статус (✅ ok / ⚠ warnings / ❌ error), количество добавленных / обновлённых / удалённых статей, длительность запуска. Полезно для дебага «почему статья из репозитория не появилась».
  • Конфликты редактирования — если статья из источника была отредактирована в LiKE (для GitHub/GitLab по умолчанию это запрещено — статьи read-only). Если режим Import (одноразовая копия) — статьи становятся редактируемыми и связь с источником обрывается.

#Selective Sync для других коннекторов

Notion, Confluence, Wiki.js — у них своя логика выбора (дерево страниц), но принцип тот же:

  1. При подключении отображается дерево контента источника
  2. Чекбоксы — отметить нужные узлы
  3. Остальное не импортируется
  4. При повторной синхронизации обновляются только выбранные элементы

#Подключение Wiki.js

#Шаг 1 — Получите API-токен Wiki.js

  1. Откройте вашу Wiki.js → AdministrationAPI Access
  2. Включите API (если выключен)
  3. Нажмите New API Key
  4. Назовите ключ (например LiKE Integration)
  5. Группа: Administrators (нужен доступ ко всем страницам)
  6. Expiration: без срока или на 1 год
  7. Скопируйте сгенерированный токен

#Шаг 2 — Подключите в LiKE

  1. В LiKE перейдите в Интеграции → Wiki.js → «Подключить»
  2. Введите URL вашей Wiki.js (например https://wiki.company.com)
  3. Вставьте API-токен
  4. Выберите режим:
Режим Описание
Синхронизация Постоянная связь — изменения в Wiki.js автоматически появляются в LiKE
Импорт Одноразовое копирование всех статей
  1. Нажмите Сохранить

#Шаг 3 — Настройте синхронизацию

Параметр Описание
Автосинхронизация Включить/выключить автоматическое обновление
Интервал Каждые 6, 12, 24 или 48 часов
Язык Фильтр по языку статей (все / конкретный)

#Подключение Confluence

Confluence подключается через OAuth 2.0 — безопасная авторизация без ввода паролей.

#Шаг 1 — Нажмите «Подключить Confluence»

  1. В LiKE перейдите в Панель управленияИнтеграции
  2. Найдите карточку Confluence → нажмите «Подключить»
  3. Откроется окно авторизации Atlassian

#Шаг 2 — Авторизуйтесь в Atlassian

  1. Войдите в свой Atlassian-аккаунт (если ещё не вошли)
  2. Atlassian покажет запрос: «LiKE запрашивает доступ к вашему Confluence»
  3. Проверьте права — LiKE запрашивает только чтение: содержимое страниц и список пространств
  4. Нажмите «Accept» (Принять)

#Шаг 3 — Вы вернётесь в LiKE

После подтверждения вас автоматически перенаправит обратно в Интеграции. Карточка Confluence покажет:

  • Статус: Подключено
  • Имя вашего Confluence-сайта
  • Кнопку «Синхронизировать»

#Шаг 4 — Запустите синхронизацию

  1. Нажмите «Синхронизировать» для первого импорта
  2. LiKE загрузит все страницы из доступных пространств Confluence
  3. Статьи появятся в каталоге знаний

#Шаг 5 — Настройте автосинхронизацию

Откройте настройки (иконка шестерёнки на карточке Confluence):

Параметр Описание
Автосинхронизация Включить автоматическое обновление
Интервал Каждые 6, 12, 24 или 48 часов

Статьи из Confluence — read-only. Для редактирования измените оригинал в Confluence, LiKE обновит при следующей синхронизации.

При отключении Confluence вы можете сохранить копию статей в LiKE (станут редактируемыми) или удалить их.


#Подключение Notion

#Шаг 1 — Создайте интеграцию в Notion

  1. Откройте Notion → нажмите на ваш аватар (левый верхний угол) → Settings
  2. В меню слева выберите My connections (или Integrations)
  3. Нажмите Develop or manage integrationsNew integration
  4. Введите название (например LiKE Import), выберите workspace
  5. Нажмите Submit → скопируйте Internal Integration Secret (начинается с ntn_; у старых интеграций — с secret_)

#Шаг 2 — Дайте интеграции доступ к страницам

Интеграция по умолчанию не имеет доступа ни к каким страницам. Нужно явно разрешить:

  1. Откройте в Notion каждую страницу (или родительскую страницу/базу данных), которую хотите импортировать
  2. Нажмите (три точки, правый верхний угол) → Connect to → выберите вашу интеграцию LiKE Import
  3. Подтвердите доступ
Совет: Дайте доступ к корневой странице — все дочерние страницы автоматически станут доступны интеграции. Не нужно подключать каждую страницу отдельно.

#Шаг 3 — Подключите в LiKE

  1. В LiKE → Панель управленияИнтеграции → Notion → «Подключить»
  2. Вставьте Integration Secret (скопированный на шаге 1)
  3. Выберите пространство для импорта (существующее или создайте новое)
  4. Выберите режим:
Режим Описание
Синхронизация Постоянная связь — изменения в Notion автоматически появляются в LiKE. Статьи read-only
Импорт Одноразовое копирование. Статьи становятся редактируемыми в LiKE
  1. Нажмите «Подключить»
  2. LiKE загрузит все страницы, к которым у интеграции есть доступ

#Шаг 4 — Настройте автосинхронизацию

Откройте настройки (иконка шестерёнки на карточке Notion):

Параметр Описание
Автосинхронизация Включить автоматическое обновление
Интервал Каждые 6, 12, 24 или 48 часов

При отключении Notion вы можете сохранить копию статей в LiKE (станут редактируемыми) или удалить их.


#Подключение сайта документации

Коннектор забирает статьи с публичного сайта: читает его карту (sitemap) и поддерживает копию в LiKE. Подходит, когда документация уже опубликована — на своём домене, в Docusaurus, GitBook, Docsify и подобных.

#Шаг 1 — адрес сайта

Интеграции → Сайт документации → Подключить сайт. Вставьте адрес — можно любой страницы, сайт мы возьмём целиком. Карту ищем сами: сначала по robots.txt, затем по /sitemap.xml.

#Шаг 2 — что нашли

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

#Шаг 3 — куда положить

Выберите пространство и коллекцию — коллекцию можно создать прямо в мастере. После Подключить обход начинается сразу: прогресс виден на карточке коннектора («Обходим сайт 22 из 92») и в общем индикаторе фоновых задач.

#Что забирается, а что нет

  • берётся содержимое страницы — без меню, шапки и подвала сайта;
  • Разделы сайта ограничивают обход путями (/docs/, /guides/); пусто — берём сайт целиком;
  • служебные разделы вроде поиска и тегов пропускаются по умолчанию;
  • Не больше страниц за раз ограничивает один прогон — защита от огромных сайтов;
  • страницы, закрытые в robots.txt, не забираются; их число видно в итоге прогона.

#Повторные обновления

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

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

#Какие сайты подойдут, а какие нет

Подойдёт публичный сайт с картой (sitemap) — так устроено большинство генераторов документации. Остальное мы честно отклоняем на шаге проверки, а не выясняем это после подключения:

Что мешает Что вы увидите
Карты сайта нет — ни в robots.txt, ни по /sitemap.xml Подключение не начнётся
По адресу карты лежит не XML — обычно так отвечает защита от ботов Подключение не начнётся
Карта есть, но после фильтров в ней не осталось страниц Подключение не начнётся
robots.txt запрещает обход всего сайта Подключение не начнётся
robots.txt недоступен из-за ошибки сервера Подключение не начнётся: «нет ответа» — не то же самое, что «разрешено»
Сайт закрыт паролем или доступен только из внутренней сети Страницы прочитать нельзя
Содержимое рисуется скриптами уже в браузере Страница может оказаться почти пустой — мы читаем HTML, каким его отдал сервер

Отдельные страницы могут не попасть в базу, даже когда сайт подключился: закрытые в robots.txt, отвечающие ошибкой, тяжелее 10 МБ или отдающие не HTML. Все они попадают в итог прогона с указанием причины — «пропущено» и «закрыто robots.txt».

Файлы (PDF, ZIP, изображения) с сайта не забираются. Для них есть отдельный сценарий — импорт файлов, со своим разбором.

#Ограничения

  • один сайт на организацию;
  • сайт должен быть публичным — страницы за паролем не читаются;
  • нужна карта сайта: без неё подключение не состоится;
  • мы соблюдаем robots.txt, включая указанную в нём паузу между запросами.

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


#Импорт файлов

#Загрузка файлов

  1. Панель управленияИмпорт
  2. Перетащите файлы или нажмите на зону загрузки
  3. Поддерживаемые форматы: PDF, DOCX, TXT, MD, RTF, ZIP
  4. AI автоматически генерирует название и slug для каждого файла
  5. Перед публикацией можно отредактировать название или открыть в редакторе
Параметр Описание
Максимальный размер 20 МБ на файл, 100 МБ для ZIP
Пакетная загрузка До 10 файлов за раз
Язык Определяется автоматически

#ZIP-архивы

Загрузите ZIP-архив со множеством документов — LiKE автоматически распакует и обработает каждый файл. Удобно для миграции целой базы знаний.

Поддерживаемые файлы внутри ZIP: PDF, DOCX, TXT, MD, RTF. Остальные файлы (картинки, исполняемые) пропускаются.

#Импорт по ссылке

Вставьте ссылку на документ — LiKE скачает и импортирует:

  1. Панель управленияИмпорт → секция «Импорт по ссылке»
  2. Вставьте URL → нажмите «Добавить»
  3. Можно добавить до 10 ссылок за раз
  4. Нажмите «Импортировать»

Поддерживаемые источники:

  • Google Docs — автоматически экспортируется как DOCX
  • Google Sheets — экспортируется как CSV
  • Dropbox — прямая ссылка на файл
  • Любой прямой URL на PDF, DOCX, TXT, MD, RTF файл

#Видимость по умолчанию

Для каждого источника можно настроить видимость по умолчанию:

  • Черновик — статьи создаются скрытыми
  • Для команды — видны авторизованным пользователям
  • Публичная — видны всем, включая анонимных

Настраивается в Интеграции → карточка источника → Видимость.


#Каналы доступа

Каналы позволяют вашим сотрудникам искать информацию через привычные инструменты.

#Slack-бот

Подключение Slack:
1. Нажмите «Подключить Slack» в разделе Интеграции
2. Авторизуйте приложение LiKE в вашем Slack workspace
3. Выберите канал для уведомлений
4. Готово — сотрудники используют /like вопрос или @LiKE

Функции:

  • /like как настроить SSO? → AI-ответ прямо в Slack
  • Упоминание @LiKE в любом канале → ответ в треде
  • Ссылки на статьи-источники (кликабельные)

#Telegram-бот

Подключение Telegram:
1. Создайте бота через @BotFather в Telegram
2. Скопируйте токен бота
3. Вставьте токен в LiKE → Интеграции → Telegram
4. Добавьте бота в нужную группу

Функции:

  • Прямые сообщения боту → AI-ответ
  • В групповом чате: /ask вопрос → ответ
  • Поддержка 25+ языков

#JS-виджет (для вашего сайта)

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

#Простая установка

Установка за 3 шага:
1. Интеграции → Виджеты → «+ Создать виджет» → дайте имя и сохраните
2. Скопируйте embed-код (`<script>` тег с уникальным api-key)
3. Вставьте перед </body> на любой странице вашего сайта

#Базовые параметры

Параметр Описание
Имя Внутреннее название виджета (для админки, не виден юзерам)
Позиция Левый или правый нижний угол
Accent-цвет Цвет кнопки и акцентов в чате (берётся из брендинга по умолчанию)
Горячая клавиша Например Ctrl+K / ⌘K для открытия чата с клавиатуры
Язык Язык UI чата (auto-detect по <html lang> если не задан)
Placeholder Текст в поле ввода («Задайте вопрос…»)
Логотип в чате Брендирование шапки чата (на планах с white-label)
Footer «Powered by Lynkora» Можно скрыть на планах с white-label

#Dual-auth: два режима аутентификации (ADR 0032)

В LiKE виджет может работать в одном из двух режимов — выбирается при создании:

Режим 1 — Allowed paths
Для публичных сайтов
Виджет на лендинге, маркетинговых страницах, центре поддержки. Аутентификация анонимная — любой посетитель может пользоваться.
Защита:
  • Whitelist URL'ов, где api-key валиден
  • Scope = __public__ или конкретные публичные коллекции
  • Rate limit per api-key
Режим 2 — Session JWT
Для корпоративного сайта с авторизацией
Виджет на корпоративном Intranet, SaaS-приложении. Виджет принимает session JWT пользователя и видит ровно то, к чему у него есть доступ.
Применение:
  • Внутренний портал компании
  • SSO-aware виджет в собственном продукте
  • Видит пространства пользователя

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

#Scope: что виджет может найти

При создании виджета задаётся scope — что именно он ищет:

Scope entries
🌐 public_umbrella — все публичные статьи организации (для allowed-paths виджета)
📂 space:<id> — конкретное пространство (для session-JWT виджета)
📁 collection:<id> — конкретная коллекция (узкий scope, например только FAQ)

В одном виджете можно комбинировать несколько scope entries (например, две коллекции из одного пространства).

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

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

Виджет Scope Где встроен
Marketing site widget public_umbrella (Public KB) На yourcompany.com — анонимный
Support center widget collection:faq-coll На support.yourcompany.com — только FAQ
Intranet widget space:eng-space (по JWT) На intranet.yourcompany.com — корпоративный, видит spaces по правам

Каждый имеет свой api-key, аналитику использования, можно отозвать ключ независимо. Управление — в Интеграции → Виджеты → «+ Создать».

#Управление сессиями (Session JWT mode)

В Session JWT режиме каждая сессия пользователя имеет уникальный sessionId. Admin может посмотреть активные сессии конкретного виджета и принудительно отозвать токен (например, если подозревается компрометация). Список — Интеграции → Виджеты → [виджет] → Sessions.

#iframe / Direct Link

Встройте полноценный интерфейс поиска LiKE на любую страницу:

  1. Интеграции → iframe → скопируйте код
  2. Вставьте <iframe src="..."> на вашу страницу
  3. Или используйте прямую ссылку для перехода (полная страница, не embed)

iframe и Direct Link тоже поддерживают dual-auth — выбирается при создании.

#REST API

Полноценный API для программной интеграции (например, ваш собственный UI или интеграция с другими системами):

  1. Интеграции → API Keys → «Создать ключ»
  2. Укажите название (зачем нужен ключ) и scope (так же как для виджета — public_umbrella / space / collection)
  3. Скопируйте ключ — показывается только один раз, после повторного открытия будет замаскирован

Используйте ключ в заголовке X-API-Key или как Bearer-токен.

Основные endpoints:

Endpoint Что делает
POST /api/public/search AI-поиск по базе знаний (полный flow: retrieval + ответ + источники)
POST /api/public/ask То же, без AI-ответа — только список релевантных статей
GET /api/public/articles Список статей в scope api-key
GET /api/public/articles/{id} Содержимое статьи
GET /api/public/collections Дерево коллекций scope

Лимиты: rate limits зависят от тарифа и привязаны к api-key. Превышение возвращает HTTP 429 с заголовком Retry-After. Точные значения для вашего плана — на странице Тарифы и в админ-панели.

Полная документация API: API и виджет.


#Языки

LiKE поддерживает 25+ языков для AI-поиска и кросс-языкового поиска (сам интерфейс доступен на 11 локалях UI):

Русский, English, Deutsch, Français, Español, Português, Italiano, Nederlands, Polski, Čeština, Svenska, Dansk, Suomi, Română, Magyar, Hrvatski, Türkçe, Afrikaans, Kiswahili, Bahasa Indonesia, Tiếng Việt, Українська, Српски, Български, Ελληνικά, 한국어, 日本語, 中文, हिन्दी, ไทย, עברית, العربية.

Кросс-языковой поиск: вопрос на одном языке → ответ из статей на другом.