Обзор

Discussions — это решение SharePoint Framework. Каждая доска, тема, ответ, лайк, жалоба, подписка, вложение и изображение хранятся в обычных списках SharePoint и библиотеке документов на сайте, где работает веб-часть, а каждое чтение и каждая запись выполняются через SharePoint REST API от имени вошедшего пользователя. Ничего не хранится за пределами вашего клиента Microsoft 365, и пакет не запрашивает разрешений Microsoft Graph. В этой статье хранение описано с той детализацией, которая нужна для проверки безопасности или оценки защиты данных.

Кратко для администраторов

ВопросОтвет
Где хранится содержимое?В четырёх списках и одной библиотеке документов на сайте, где размещена доска
Кто их создаёт?Веб-часть, при первом использовании, от имени пользователя с разрешением Управление списками (Manage Lists) — владельца сайта; недостающие списки и столбцы позднее добавляются так же
Можно ли переименовать списки?Да — веб-часть распознаёт их по фиксированным идентификаторам столбцов, а не по названию
Где хранятся вложения?Как вложения элементов списков Темы обсуждений (Discussions Topics) и Сообщения обсуждений (Discussions Posts)
Где хранятся встроенные изображения?В библиотеке документов Файлы обсуждений (Discussions Assets), в папке за каждый год
От чьего имени выполняются запросы?От имени вошедшего пользователя — при каждом запросе
Какие разрешения API запрашивает пакет?Никаких; Microsoft Graph не вызывается
Что отправляется в Vitextra?Технические идентификаторы для проверки лицензии и телеметрия использования; никакого содержимого
Что происходит с данными при удалении веб-части?Ничего — списки остаются на сайте, пока вы их не удалите

Списки на сайте

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

Название по умолчаниюТипЧто содержит
Доски обсуждений (Discussions Boards)Настраиваемый списокПо одному элементу на доску: название, описание, режим (Discussion, QnA или Mixed), список категорий, счётчик тем и параметр Требуется утверждение
Темы обсуждений (Discussions Topics)Настраиваемый списокТемы: заголовок, текст, подстановка на доску, категория, тип (Discussion или Question), статус (Open, Answered, Locked), признаки закреплённой и рекомендуемой темы, счётчики, последняя активность, принятый ответ, лайки, статус утверждения, упоминания, жалобы, прежний идентификатор
Сообщения обсуждений (Discussions Posts)Настраиваемый списокОтветы: текст, подстановка на тему, подстановка на родительский ответ, материализованный путь и уровень, признак принятого ответа, лайки, статус утверждения, упоминания, жалобы, прежний идентификатор
Подписки обсуждений (Discussions Subscriptions)Настраиваемый списокКто подписан на какую доску или тему и с какой частотой
Файлы обсуждений (Discussions Assets)Библиотека документовИзображения, вставленные в редактор форматированного текста (из буфера обмена, перетаскиванием или загрузкой)

Списки создаются видимыми в разделе Содержимое сайта, с включённым управлением версиями, отключёнными типами контента и отключённым быстрым (табличным) редактированием. У двух списков с содержимым включены вложения элементов; в библиотеке документов включено создание папок. Списки индексируются поиском, поэтому темы и ответы могут появляться в результатах поиска SharePoint, как любые элементы списков.

Набор списков и столбцов веб-часть поддерживает в актуальном состоянии сама. Когда модератор (пользователь с разрешением Управление списками) открывает страницу, на которой веб-часть была настроена до появления списка подписок или библиотеки файлов, недостающие списки и столбцы создаются автоматически. Настройка доски — Создать доску и Использовать доску — тоже всегда проверяет списки и добавляет столбцы, появившиеся в более поздних версиях, но только для пользователей с разрешением «Управление списками»; остальные пользователи лишь находят существующие списки. При этом ничего не переименовывается и не удаляется.

Списки Discussions в содержимом сайта

Списки Discussions в содержимом сайта

📝 Заметка
Названия списков берутся из языка интерфейса того, кто создаёт доску. В английском интерфейсе списки называются Discussions Boards, Discussions Topics, Discussions Posts, Discussions Subscriptions и Discussions Assets; в русском интерфейсе они получают русские названия из продукта. Названия можно изменить позже, не нарушая работу веб-части.

Как распознаются списки

Веб-часть не зависит от названий списков. В каждом списке есть маркерный столбец с фиксированным идентификатором: столбец Режим в списке досок, подстановка Доска в списке тем, подстановка Тема в списке сообщений, столбец Тип объекта в списке подписок и текстовый столбец Файл обсуждений в библиотеке документов. Веб-часть сначала ищет списки по названию, а если не находит, просматривает видимые списки сайта в поисках маркерных столбцов. Отсюда следует:

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

Столбцы

Внутренние имена всех столбцов, добавленных продуктом, начинаются с Vtx; отображаемые имена локализуются так же, как названия списков. Полный справочник с типами, индексами и допустимыми значениями столбцов выбора приведён в статье KB10426. Справочник списков и столбцов Discussions. Что важно для проверки данных:

  • Тексты тем и ответов (VtxBody) хранятся как HTML. Редактор пропускает всё через санитайзер со списком разрешённых тегов перед сохранением, а веб-часть очищает содержимое ещё раз перед отображением, поэтому значение, отредактированное напрямую в списке, не может внедрить скрипты на страницу.
  • Люди хранятся в стандартных столбцах SharePoint типа «пользователь»: автор и редактор каждого элемента, упомянутые пользователи (VtxMentions), пользователи, поставившие лайк (VtxLikedBy) или пожаловавшиеся (VtxReportedBy), последний ответивший (VtxLastReplyBy) и подписчик (VtxUser). Столбец «пользователь» ссылается на список сведений о пользователях сайта, а не на копию профиля.
  • Данные модерации — это статус утверждения (VtxApprovalStatus: Approved, Pending или Rejected), счётчик жалоб и список пожаловавшихся.
  • Настройки доски (VtxDescription, VtxMode, VtxCategories, VtxRequireApproval) и название доски записываются командой «Настройки доски» веб-части, которую модераторы открывают на панели команд; редактирование элемента в списке «Доски обсуждений» (Discussions Boards) даёт тот же результат. Категории хранятся по одной в строке.
  • Счётчики (VtxReplyCount, VtxViewCount, VtxLikeCount, VtxTopicCount) — числа, которые обновляет веб-часть; их можно исправить в списке. Счётчик просмотров темы увеличивается не чаще одного раза за сеанс браузера. VtxTopicCount в элементе доски увеличивается при создании темы и уменьшается при её удалении; оба обновления выполняются «по возможности», а значение в веб-части не отображается.
  • Прежний идентификатор (VtxLegacyId) хранит идентификатор элемента классической доски обсуждений, из которого запись была импортирована, чтобы импорт можно было запускать повторно без дублей.

Список «Темы обсуждений» со столбцами Vtx

Список «Темы обсуждений» со столбцами Vtx

Вложения и встроенные изображения

Файлы, которые пользователи прикрепляют к теме или ответу, хранятся как вложения элементов соответствующего списка — Темы обсуждений или Сообщения обсуждений — в стандартной папке вложений элемента SharePoint. Они наследуют разрешения элемента и удаляются вместе с ним.

Изображения, вставленные в текст сообщения, загружаются в библиотеку документов Файлы обсуждений. Веб-часть создаёт папку с названием текущего года (2026, 2027, …) и сохраняет файл в ней под уникальным именем, составленным из отметки времени, случайного суффикса и исходного имени файла, поэтому два пользователя могут загрузить screenshot.png без конфликта; папки по годам удерживают библиотеку в пределах порога представления списка на активных сайтах. Изображение больше 10 МБ редактор отклоняет. Сообщение ссылается на изображение по его адресу в библиотеке, поэтому читателю нужен доступ на чтение к библиотеке — унаследованный от сайта, — чтобы его увидеть.

Когда тема или ответ удаляются в веб-части (автором или модератором, после подтверждения), веб-часть удаляет из библиотеки Файлы обсуждений и встроенные изображения удаляемого текста. При удалении темы сначала удаляются все её ответы, начиная с самых глубоких, затем сама тема — вместе с изображениями всех этих сообщений; ответ, у которого ещё есть вложенные ответы, удалить нельзя. Очистка изображений выполняется «по возможности»: затрагиваются только файлы библиотеки Файлы обсуждений, ошибка не прерывает удаление, а изображение, которое убрали из сообщения при его изменении, остаётся в библиотеке.

❗ Важно
Удаление файла из библиотеки Файлы обсуждений не изменяет сообщение, которое на него ссылается: сообщение сохраняет адрес и показывает сломанное изображение. Удаление элемента списка удаляет вместе с ним его вложения. И то и другое можно восстановить из корзины сайта в течение обычного срока.

Что хранится на странице

Конфигурация веб-части хранится в свойствах веб-части на странице, как и у любой веб-части SPFx: выбранная доска и её название, идентификаторы и адреса списков, а также параметры отображения. Веб-часть Discussions Activity хранит выбранную доску, адрес страницы с доской, максимальное число элементов и переключатель названия доски. Содержимое не кэшируется ни в браузере, ни в локальном хранилище.

Учётная запись и разрешения

Что отправляется за пределы клиента

НазначениеЧто отправляетсяКуда
Проверка лицензииИдентификатор клиента (Tenant ID), идентификатор объекта пользователя, адрес сайта, идентификатор, название и версия продуктаvitextra.com
Телеметрия использованияСобытие при загрузке веб-части (продукт и версия, идентификатор и адрес сайта, идентификатор объекта пользователя, язык интерфейса, работает ли веб-часть в Teams) и технические сведения об ошибкахAzure Application Insights
Файлы продуктаОбычный запрос скриптов и значков веб-частейstatic.vitextra.com, vitextra-storage.azureedge.net

Ни одна доска, тема, ответ, вложение, изображение, подписка или упоминание не отправляется в Vitextra или третьим лицам. Общая картина по всем продуктам Vitextra, включая сетевые адреса, которые нужно разрешить, приведена в статье KB10363. Где продукты Vitextra хранят ваши данные: конфиденциальность, расположение данных и GDPR.

Жизненный цикл данных

  • Удаление веб-части со страницы не затрагивает списки и их содержимое; добавьте веб-часть снова и выберите существующую доску, чтобы продолжить.
  • Удаление пакета из каталога приложений или с сайта отключает веб-части, но сохраняет списки, которые остаются доступными для чтения в стандартных представлениях; см. KB10362. Как удалить решение Vitextra из SharePoint Online и Microsoft Teams.
  • Удаление списков удаляет доски, темы, ответы, подписки и файлы; они попадают в корзину сайта.
  • Хранение, обнаружение электронных данных (eDiscovery), аудит и метки конфиденциальности применяются к спискам так же, как к любому другому списку сайта; см. KB10412. Хранение, eDiscovery и метки конфиденциальности для содержимого Discussions.
  • Экспорт возможен стандартной командой Экспорт в Excel каждого списка или потоком Power Automate; тексты экспортируются как HTML.

Рекомендуемые статьи

Как подать заявку на отсутствие в My Absences

Пошаговое руководство по подаче заявки на отпуск, отгул или другое отсутствие в веб-части My Absences: выбор типа и дат, полдня, замещающий и комментарий, проверки перед отправкой и что происходит после отправки заявки.

77 5 мин
Элементы управления области фильтра и поддерживаемые типы столбцов в List Filter Online

Справочник по области фильтра веб-части Vitextra List Filter Online: как выбрать столбцы и элементы управления фильтром в конфигураторе, как работает каждый элемент (Текст, Текст с параметрами, Раскрывающееся меню, Выбор даты, Диапазон дат, Относительная дата, Пользователь или группа, Термин, Числовой диапазон, Да/Нет) и какое сравнение CAML он формирует, а также таблица типов столбцов SharePoint и доступных для них элементов управления.

65 9 мин
Почему не удаётся отправить заявку на отсутствие: сообщения и решения

Руководство по устранению неполадок веб-части My Absences из Vitextra Absence & Coverage: все сообщения, которые мешают отправить заявку на отсутствие — нет типов отсутствий, не указаны даты, нет рабочих дней, пересечение заявок, недостаточный остаток, не найден согласующий, списки не найдены — с причиной и решением для сотрудника и для администратора.

39 6 мин

Поделиться