Fediverse Enhancement Proposals
FEP, які ми підтримуємо
FEP (Fediverse Enhancement Proposals) є спільними домовленостями про те, як застосунки з ActivityPub обробляють певні речі. Ось кожна з тих, що ми підтримуємо, наскільки повно ми її реалізуємо, і посилання на повну пропозицію.
Ми плануємо в майбутньому випустити Welley з відкритим кодом. Дата випуску й ліцензія ще не оголошені.
-
FEP-044f
Цитування дописів за згодою
Автори можуть вирішувати, чи можна цитувати їхні дописи між серверами.
Welley підтримує запити на цитування, перевірку авторизації, прийняття, відхилення та відкликання.
- Welley надсилає й отримує активності QuoteRequest та обробляє прийняття або відхилення запиту.
- Позначки авторизації цитат дають змогу серверам-одержувачам перевірити, що автор погодився.
- Відкликання скасовує дозвіл на цитату, яку автор схвалив раніше.
Щоб це працювало так само, іншим серверам потрібен протокол згоди. Просте посилання чи старіше розширення цитат не свідчить, що автор погодився.
-
FEP-1311
Медіавкладення
Welley надсилає й отримує медіавкладення та може читати кілька версій одного файлу.
Welley підтримує обмін вкладеннями та читання варіантів. Підтримка деяких рекомендацій і форм виводу вужча.
- Welley приймає один URL медіа або типізований масив медіапосилань.
- Він може використовувати варіанти розмірів і зображення попереднього перегляду з віддалених вкладень.
- Для надсилання масивів URL із кількома варіантами потрібен прапорець конфігурації, і за замовчуванням він вимкнений.
Welley не реалізує пропозицію повністю. Зокрема, він не обробляє digestMultibase, а для сумісності за замовчуванням надсилає один основний URL.
-
FEP-1b12
Федерація груп
Публічні канали груп можуть обмінюватися дописами й коментарями зі спільнотами ActivityPub у стилі форумів.
Публічні канали підтримують стандартні актори Group і сценарії анонсування.
- Публічний канал використовує стандартний актор Group.
- Канал ділиться прийнятими дописами через активності Announce і зберігає оригінального автора.
- Welley приймає анонси груп і розміщує вміст у потрібному каналі.
Приватні спільноти Welley використовують додаткові властивості Welley. Не всі налаштування груп, правила членства та дії модерації переносяться в інше програмне забезпечення.
Форум у режимі категорій, угорі закріплена вітальна тема. Над нею розташовані фільтри за категоріями й тегами та перемикач сортування. Прочитати пропозиціюФоруми та категоріїПублічні канали у Fediverse
-
FEP-3b86
Activity Intents
Посилання для віддаленої взаємодії можуть запам'ятовувати, що саме людина хоче зробити.
Welley підтримує окремі посилання WebFinger для кожної дії та перенаправлення для авторизації.
- WebFinger пропонує окремий шаблон для кожної підтримуваної дії, як-от Follow, Like, Announce і Create.
- Виявлення груп також охоплює Join.
- Кінцева точка взаємодії переводить людину до потрібної дії у Welley.
Віддалений застосунок має використовувати ці посилання намірів. Власні посилання намірів Vote у Welley є розширеннями. Вони не є стандартними діями FEP.
-
FEP-5feb
Згода на індексацію пошуком для акторів
Власники профілів можуть вказати, чи можуть їхні публічні дописи з'являтися в пошукових індексах.
Welley публікує згоду кожного акаунта, імпортує згоду з інших серверів і відповідно обмежує локальний текстовий пошук.
- Welley публікує властивість indexable актора на основі налаштувань приватності профілю.
- Акаунти на інших серверах мають прямо дозволити індексацію, перш ніж їхні дописи з'являтимуться у звичайному текстовому пошуку.
- Перегляд хештега все одно може знайти дописи автора, який не дозволив індексацію.
Ця властивість просить інші сервери поважати згоду. Вона не блокує доступ до публічних дописів і не керує незалежними пошуковими системами.
Частина налаштувань пошуку, рекомендацій і того, хто бачить вміст вашого профілю. Навігацію та дані акаунта обрізано. -
FEP-7458
Використання колекції replies
Сервер може отримати відповіді з оригінального допису, а не чекати, поки їх доставлять.
Welley публікує колекції replies і отримує віддалені.
- Welley публікує посторінкову колекцію replies для дописів.
- Welley отримує віддалені колекції відповідей і переходить їхніми сторінками.
- Коли хтось знаходить віддалене обговорення, Welley може у фоні дозавантажити старіший контекст.
Приватність, модерація, ліміти отримання й доступність іншого сервера й надалі мають значення. Колекція не гарантує повної миттєвої копії кожного обговорення.
-
FEP-7628
Переміщення актора
Акаунти можуть переходити між серверами, а їхні підписники переключаються на новий акаунт.
Welley підтримує вхідні й вихідні переміщення акторів, псевдоніми, перенаправлення та перенесення підписників.
- Welley отримує активності Move і перевіряє псевдонім призначення, перш ніж перенести локальних підписників.
- Коли акаунт переходить на інший сервер, Welley публікує адресу призначення і надсилає активності Move підписникам на інших серверах.
- Welley надсилає Follow на нову адресу і скасовує стару підписку.
Welley встановлює movedTo, а старий акаунт залишається доступним. Це не зупиняє всю доставку у віддалені вхідні скриньки, які переїхали. Для дописів потрібен окремий експорт або імпорт.
Сторінка перенесення з трьома кроками та порожньою формою для псевдоніма акаунта. Використано приклад вмісту спільноти. Прочитати пропозиціюПеренесіть свій акаунт до WelleyПереїдьте й збережіть копію
-
FEP-7888
Пояснення властивості context
Welley використовує context, щоб пов'язувати обговорення подій і отримувати деякі віддалені колекції обговорень.
Welley підтримує посилання контексту подій і деякі сценарії роботи з віддаленими колекціями контексту.
- Дописи, прикріплені до події, можуть вказувати на URI події як на свій контекст.
- Welley може йти за віддаленою колекцією context, зокрема через проміжний документ, що вказує на колекцію.
Welley не публікує загальну колекцію context для кожної гілки. Він не підтримує повну маршрутизацію аудиторії на основі контексту чи володіння розмовою.
Прочитати пропозиціюОбговорення подіїСпособи читання обговорення
-
FEP-844e
Виявлення можливостей
Інше програмне забезпечення може прочитати структурований список того, що підтримує Welley, з його актора застосунку.
Актор застосунку публікує свої можливості, і це перевіряється тестами.
- Актор застосунку публікує масив implements з ідентифікаторами та назвами можливостей.
- Відповідь містить відображення JSON-LD для цієї властивості.
- Наразі Welley оголошує п'ятнадцять ідентифікаторів FEP.
Welley поки що не читає списки можливостей інших серверів, щоб домовлятися про функції.
-
FEP-8a8e
Загальний підхід до використання типу об'єкта Event
Події використовують спільні поля ActivityPub для часу, місця, опису та відвідуваності.
Welley підтримує базовий обмін Event і сценарії відвідуваності, а також деякі поля розширення подій.
- Event містить назву, час початку, час завершення, часовий пояс, місце та колекцію відвідувачів.
- Create і Update розсилають зміни події.
- Join і Leave передають зміни відвідуваності між серверами Welley.
Остання версія пропозиції також вимагає організаторів і містить більше правил щодо місця та місткості. Welley реалізує не всю останню версію.
Запрошений відповідає «Так», «Ні» або «Можливо». Організатор бачить, хто прийде. Прочитати пропозиціюПодії через ActivityPubВідповідь на запрошення
-
FEP-8fcf
Синхронізація колекції підписників між серверами
Сервери можуть помічати розбіжності у своїх списках підписників і виправляти їх.
Welley підтримує вихідні дайджести, вхідні перевірки, кінцеву точку часткової колекції та завдання виправлення.
- Welley додає заголовок Collection-Synchronization, коли доставка запитує синхронізацію підписників.
- Сервер-отримувач порівнює дайджест. Якщо списки відрізняються, він отримує колекцію підписників для цього сервера.
- Welley виправляє застарілі зв'язки підписки окремо від запиту до вхідної скриньки.
Адміністратори можуть вимкнути синхронізацію. Інший сервер має реалізовувати той самий протокол.
-
FEP-9098
Власні емодзі
Власні емодзі можуть передаватися разом із дописами, профілями та реакціями.
Welley підтримує теги власних емодзі та імпорт для підтримуваного федеративного вмісту.
- Вихідні теги пов'язують кожен шорткод емодзі з його зображенням.
- Welley читає теги Emoji з інших серверів і зберігає кожен шорткод під доменом, звідки він надійшов.
- Обмеження щодо медіа діють і тоді, коли Welley завантажує віддалені емодзі.
Блокування медіа може не дати завантажитися зображенню емодзі. Застосунки на інших серверах можуть показати шорткод замість нього.
Редактор власних емодзі показує вимоги до файлу, шорткод, категорію та те, чи показується емодзі у засобі вибору. -
FEP-9967
Опитування
Люди можуть обмінюватися опитуваннями й голосами із сумісними серверами.
Welley підтримує надсилання й отримання опитувань з одним і кількома варіантами вибору, голосів та оновлень результатів.
- Опитування використовують об'єкти Question з варіантами oneOf або anyOf.
- Welley обробляє голоси з інших серверів і надсилає результати опитувань.
- Кожне федеративне опитування містить час завершення, ознаку закритості та кількість голосувальників.
Інший застосунок має підтримувати цей формат опитувань. Його інтерфейс може показувати інші елементи керування чи подробиці результатів.
Стрічка показує форматований текст, вбудований спойлер, який читач відкриває кліком, і опитування, на яке читачі можуть відповісти просто там. -
FEP-b2b8
Довгі тексти
Довгі дописи можуть використовувати об'єкти Article із заголовком, повним текстом і коротким попереднім переглядом.
Welley підтримує вміст статей, попередні перегляди, метадані джерела та частину розмітки форматованого тексту.
- Welley надсилає й отримує об'єкти Article, а не вважає кожен допис коротким Note.
- Вихідні статті можуть містити головне зображення, уривок і вихідний текст Markdown.
- Welley зберігає частину розмітки статей, зокрема вбудовані медіа та анотації ruby.
Якщо в статті вказано кількох авторів, Welley бере першого. Заголовки перетворюються на жирний текст, тож частина структури статті втрачається.
-
FEP-c0e0
Реакції емодзі
Реакції емодзі працюють між серверами.
Welley підтримує реакції з Unicode і власними емодзі, зокрема їх скасування та доставку.
- Welley надсилає й отримує активності EmojiReact для підтримуваних дописів.
- Undo прибирає віддалену реакцію.
- Реакції з власними емодзі містять свій тег емодзі та домен, звідки вони походять.
Інше програмне забезпечення може підтримувати інший набір реакцій. Welley не надає необов'язкову колекцію emojiReactions.
Учасники реагують на тему форуму емодзі. Кожне емодзі має власну плашку й лічильник. -
FEP-c16b
Форматування функцій MFM
Деяка розмітка розмиття Misskey може відображатися як вбудований спойлер.
Welley підтримує лише форматування розмиття у вхідних дописах.
- Welley розпізнає сегменти розмиття у вихідному тексті Misskey Markdown.
- Welley перетворює підтримувані класи й атрибути розмиття MFM на безпечний спойлер.
Welley не реалізує повний набір функцій MFM і не оголошує підтримку htmlMfm. Інші ефекти MFM можуть втратити форматування.
Стрічка показує форматований текст, вбудований спойлер, який читач відкриває кліком, і опитування, на яке читачі можуть відповісти просто там. -
FEP-d556
Виявлення актора рівня сервера через WebFinger
Запит WebFinger про сервер може повернути його актор застосунку.
Welley підтримує форму виявлення за посиланням self у стилі Mastodon з пропозиції. Для неї він не вказує окремого ідентифікатора FEP.
- Запит про домен або налаштований URL сервера повертає посилання self на актора екземпляра.
- Обидві форми ведуть до того самого актора.
Пошук точно зіставляє налаштований текст origin і не нормалізує кінцевий слеш. Welley не публікує рекомендований зв'язок Service і не підтримує фільтрацію зв'язків.
-
FEP-e232
Object Links
Дописи-цитати містять структуровані посилання на дописи, які вони цитують.
Welley використовує Object Links лише для публікації та імпорту посилань на цитати.
- Welley додає до вихідної цитати тег Link із медіатипом цитати ActivityPub.
- Welley розпізнає ту саму форму посилання у вхідних дописах, зокрема посилання без назви.
Це стосується посилань на цитати. Усі можливі медіатипи Object Links це не охоплює.
-
FEP-efda
Об'єкти, на які можна підписатися
Ви можете підписатися на допис і отримувати нову активність в його обговоренні.
Follow(post) і Undo працюють в обидва боки, і це перевіряється тестами.
- Welley надсилає Follow з URI допису як об'єктом.
- Вхідні підписки на дописи й активності Undo оновлюють підписки на дописи.
- Підписка на допис не залежить від підписки на його автора.
Остання версія FEP використовує колекцію підписників, щоб знаходити об'єкти, на які можна підписатися. Дописи Welley не відкривають ні цієї колекції, ні загального алгоритму виявлення. У Welley ця функція досі має стару назву «Відстежувані дописи».
-
FEP-f1d5
NodeInfo у програмному забезпеченні Fediverse
Інші сервери можуть дізнатися про програмне забезпечення та подробиці протоколу Welley через NodeInfo.
Welley підтримує виявлення NodeInfo та відповідь версії 2.0.
- Публічна кінцева точка виявлення веде на документ NodeInfo 2.0.
- Документ містить версію програми, підтримку ActivityPub і базову URL-адресу FASP.
Наразі відповідь містить фіксовані показники використання й фіксований стан реєстрації. Не покладайтеся на неї як на живу статистику сервера. Маршруту 2.1 немає.
-
FEP-fe34
Модель безпеки на основі origin
Перевірки origin допомагають не дати одному серверу видавати за своє вміст чи повноваження, що належать іншому.
У Welley є кілька перевірок безпеки на основі origin, і їх перевіряють тестами.
- Welley порівнює схему, хост і фактичний порт URI.
- Вхідна скринька відхиляє певні активності, якщо origin об'єкта не збігається з origin актора.
- Шляхи віддаленого отримання, цитат, колекцій і присутності мають додаткові перевірки origin.
Це лише частина моделі безпеки. Object Integrity Proofs вона не забезпечує.