Fediverse Enhancement Proposals

FEP, które obsługujemy

FEP (Fediverse Enhancement Proposals) to wspólne ustalenia, jak aplikacje ActivityPub radzą sobie z konkretnymi sprawami. Poniżej znajdziesz każdą, którą obsługujemy, informację, w jakim stopniu ją obsługujemy, i link do pełnej propozycji.

Planujemy w przyszłości udostępnić Welley jako oprogramowanie open source. Nie ogłosiliśmy jeszcze daty wydania ani licencji.

  • FEP-044f

    Wpisy cytujące z poszanowaniem zgody

    Autorzy mogą zdecydować, czy ich wpisy można cytować między serwerami.

    Welley obsługuje prośby o cytat, sprawdzanie autoryzacji, akceptację, odrzucenie i cofnięcie zgody.

    • Welley wysyła i odbiera aktywności QuoteRequest oraz obsługuje akceptowanie i odrzucanie prośby.
    • Stemple autoryzacji cytatu pozwalają serwerom odbierającym sprawdzić, że autor wyraził zgodę.
    • Cofnięcie odbiera zgodę na cytat, który autor wcześniej zatwierdził.

    Aby to działało tak samo, inne serwery muszą obsługiwać protokół zgody. Zwykły link ani starsze rozszerzenie cytatów nie pokazuje, że autor się zgodził.

  • FEP-1311

    Załączniki multimedialne

    Welley wysyła i odbiera załączniki multimedialne i potrafi odczytać kilka wersji tego samego pliku.

    Welley obsługuje wymianę załączników i odczyt wariantów. Obsługa niektórych zaleceń i form wyjściowych jest węższa.

    • Welley przyjmuje pojedynczy adres URL multimediów albo typowaną tablicę linków do multimediów.
    • Może używać wariantów rozmiaru i obrazów podglądu ze zdalnych załączników.
    • Wysyłanie tablic URL z wieloma wariantami wymaga flagi konfiguracji i jest domyślnie wyłączone.

    Welley nie implementuje całej propozycji. W szczególności nie obsługuje digestMultibase, a dla zgodności domyślnie wysyła pojedynczy główny adres URL.

  • FEP-1b12

    Federacja grup

    Publiczne kanały grup mogą wymieniać wpisy i komentarze ze społecznościami ActivityPub w stylu forum.

    Publiczne kanały obsługują standardowych aktorów Group i przepływy ogłoszeń.

    • Publiczny kanał używa standardowego aktora typu Group.
    • Kanał udostępnia zaakceptowane wpisy przez aktywności Announce i zachowuje oryginalnego autora.
    • Welley przyjmuje ogłoszenia z grup i umieszcza treść we właściwym kanale.

    Prywatne społeczności Welley używają dodatkowych właściwości Welley. Nie wszystkie ustawienia grup, zasady członkostwa i działania moderacyjne przenoszą się do innego oprogramowania.

    Forum w widoku kategorii, z przypiętym tematem powitalnym na górze. Nad nim są filtry kategorii i tagów oraz sortowanie.
  • FEP-3b86

    Activity Intents

    Linki do zdalnej interakcji mogą zapamiętać, co ktoś chce zrobić.

    Welley obsługuje linki WebFinger dla poszczególnych akcji i przekierowania autoryzacji.

    • WebFinger udostępnia osobny szablon dla każdej obsługiwanej akcji, takiej jak Follow, Like, Announce i Create.
    • Odkrywanie grup obejmuje też Join.
    • Punkt końcowy interakcji przenosi tę osobę do właściwej akcji w Welley.

    Zdalna aplikacja musi używać tych linków intent. Własne linki intent Vote w Welley to rozszerzenia. Nie są standardowymi akcjami FEP.

  • FEP-5feb

    Zgoda aktorów na indeksowanie w wyszukiwarkach

    Właściciele profili mogą określić, czy ich publiczne wpisy mogą pojawiać się w indeksach wyszukiwania.

    Welley publikuje zgodę każdego konta, importuje zgody z innych serwerów i odpowiednio ogranicza lokalne wyszukiwanie tekstowe.

    • Welley publikuje właściwość aktora indexable na podstawie ustawień prywatności profilu.
    • Konta na innych serwerach muszą wyraźnie zezwolić na indeksowanie, zanim ich wpisy pojawią się w zwykłym wyszukiwaniu tekstowym.
    • Przy przeglądaniu hashtagu nadal mogą się pojawić wpisy autora, który nie jest indeksowalny.

    Ta właściwość prosi inne serwery o uszanowanie zgody. Nie blokuje dostępu do publicznych wpisów i nie kontroluje niezależnych wyszukiwarek.

    Część ustawień wyszukiwania, odkrywania i tego, kto widzi co na twoim profilu. Nawigacja i dane konta są wycięte.
  • FEP-7458

    Korzystanie z kolekcji odpowiedzi

    Serwer może pobrać odpowiedzi z oryginalnego wpisu zamiast czekać, aż zostaną dostarczone.

    Welley publikuje kolekcje odpowiedzi i pobiera zdalne.

    • Welley publikuje dla wpisów stronicowaną kolekcję odpowiedzi.
    • Welley pobiera zdalne kolekcje odpowiedzi i przechodzi po ich stronach.
    • Gdy ktoś trafi na zdalną dyskusję, Welley może w tle uzupełnić starszy kontekst.

    Nadal obowiązują prywatność, moderacja, limity pobierania i to, czy drugi serwer jest osiągalny. Kolekcja nie gwarantuje pełnej, natychmiastowej kopii każdej dyskusji.

  • FEP-7628

    Przeniesienie aktora

    Konta mogą przenosić się między serwerami, a ich obserwujący przechodzą na nowe konto.

    Welley obsługuje przychodzące i wychodzące przeniesienia aktorów, aliasy, przekierowania i przenoszenie obserwujących.

    • Welley odbiera aktywności Move i sprawdza alias docelowy, zanim przeniesie lokalnych obserwujących.
    • Gdy konto się przenosi, Welley publikuje miejsce docelowe i wysyła aktywności Move do obserwujących na innych serwerach.
    • Welley wysyła Follow do miejsca docelowego i usuwa stare obserwowanie.

    Welley ustawia movedTo, a stare konto pozostaje dostępne. Nie wstrzymuje całej dostawy do zdalnych skrzynek odbiorczych, które się przeniosły. Wpisy wymagają osobnego eksportu lub importu.

    Strona migracji z trzema krokami i pustym formularzem aliasu konta. Używa przykładowej zawartości społeczności.
  • FEP-7888

    Wyjaśnienie właściwości context

    Welley używa context do łączenia dyskusji o wydarzeniach i do pobierania niektórych zdalnych kolekcji dyskusji.

    Welley obsługuje linki context wydarzeń i niektóre przepływy zdalnych kolekcji context.

    • Wpisy dołączone do wydarzenia mogą wskazywać URI wydarzenia (Event) jako swój context.
    • Welley potrafi przejść do zdalnej kolekcji context, także przez pośredni dokument wskazujący tę kolekcję.

    Welley nie publikuje ogólnej kolekcji context dla każdego wątku. Nie obsługuje pełnego kierowania odbiorców na podstawie context ani własności rozmowy.

  • FEP-844e

    Wykrywanie możliwości

    Inne oprogramowanie może odczytać z aktora aplikacji uporządkowaną listę tego, co obsługuje Welley.

    Aktor aplikacji publikuje swoje możliwości i jest to przetestowane.

    • Aktor aplikacji publikuje tablicę implements z identyfikatorami i nazwami możliwości.
    • Zwracane dane zawierają mapowanie JSON-LD dla tej właściwości.
    • Obecnie Welley ogłasza piętnaście identyfikatorów FEP.

    Welley nie odczytuje jeszcze list możliwości innych serwerów, żeby uzgadniać funkcje.

  • FEP-8a8e

    Wspólne podejście do typu obiektu Event

    Wydarzenia używają wspólnych pól ActivityPub dla czasu, miejsca, opisu i udziału.

    Welley obsługuje podstawową wymianę Event i przepływy udziału, a także niektóre pola rozszerzeń wydarzeń.

    • Event zawiera tytuł, czas rozpoczęcia, czas zakończenia, strefę czasową, miejsce i kolekcję uczestników.
    • Create i Update rozsyłają zmiany w wydarzeniach.
    • Join i Leave przenoszą zmiany udziału między serwerami Welley.

    Najnowsza wersja propozycji wymaga też organizatorów i ma więcej reguł dotyczących miejsca i limitu uczestników. Welley nie wdraża całej najnowszej wersji.

    Osoba, która dostała zaproszenie, odpowiada Tak, Nie lub Może. Organizator widzi, kto przyjdzie.
  • FEP-8fcf

    Synchronizacja kolekcji obserwujących między serwerami

    Serwery mogą wykrywać różnice na swoich listach obserwujących i je naprawiać.

    Welley obsługuje wychodzące skróty, przychodzące kontrole, punkt końcowy kolekcji częściowej i zadania naprawcze.

    • Welley dodaje nagłówek Collection-Synchronization, gdy dostarczenie wymaga synchronizacji obserwujących.
    • Serwer odbierający porównuje skrót (digest). Jeśli listy się różnią, pobiera kolekcję obserwujących dla tego serwera.
    • Welley naprawia nieaktualne relacje obserwowania osobno, poza żądaniem do skrzynki odbiorczej.

    Administratorzy mogą wyłączyć synchronizację. Drugi serwer musi wdrożyć ten sam protokół.

  • FEP-9098

    Własne emoji

    Własne emoji mogą być przesyłane razem z wpisami, profilami i reakcjami.

    Welley obsługuje tagi własnych emoji i import dla obsługiwanych treści z Fediverse.

    • Wychodzące tagi łączą kod każdego emoji z jego obrazem.
    • Welley odczytuje tagi Emoji z innych serwerów i zapisuje każdy kod pod domeną, z której pochodzi.
    • Ograniczenia dotyczące multimediów obowiązują też, gdy Welley pobiera zdalne emoji.

    Blokada multimediów może uniemożliwić wczytanie obrazu emoji. Aplikacje na innych serwerach mogą wtedy pokazać sam kod.

    Edytor własnych emoji pokazuje wymagania dotyczące pliku, kod skrótu, kategorię i to, czy emoji pojawia się w panelu wyboru emoji.
  • FEP-9967

    Ankiety

    Ludzie mogą wymieniać ankiety i głosy ze zgodnymi serwerami.

    Welley obsługuje wysyłanie i odbieranie ankiet jednokrotnego i wielokrotnego wyboru, głosów i aktualizacji wyników.

    • Ankiety używają obiektów Question z wyborami oneOf lub anyOf.
    • Welley obsługuje głosy z innych serwerów i rozsyła wyniki ankiet.
    • Każda sfederowana ankieta zawiera czas zakończenia, informację, czy jest zamknięta, i liczbę głosujących.

    Druga aplikacja musi obsługiwać ten format ankiet. Jej interfejs może pokazywać inne elementy sterujące lub szczegóły wyników.

    W aktualnościach widać sformatowany tekst, spoiler w tekście, który czytelnik odkrywa kliknięciem, oraz ankietę, na którą można odpowiedzieć od razu.
  • FEP-b2b8

    Długie teksty

    Długie wpisy mogą używać obiektów Article z tytułem, pełnym tekstem i krótkim podglądem.

    Welley obsługuje treść artykułów, podglądy, metadane źródła i część znaczników tekstu sformatowanego.

    • Welley wysyła i odbiera obiekty Article, zamiast traktować każdy wpis jak krótki obiekt Note.
    • Wychodzące artykuły mogą zawierać obraz wiodący, fragment i źródło w Markdown.
    • Welley zachowuje część znaczników artykułu, w tym multimedia w tekście i adnotacje ruby.

    Jeśli artykuł podaje kilku autorów, Welley bierze pierwszego. Nagłówki zamieniają się w pogrubiony tekst, więc część struktury artykułu ginie.

  • FEP-c0e0

    Reakcje emoji

    Reakcje emoji działają między serwerami.

    Welley obsługuje reakcje z emoji Unicode i własnymi, w tym ich usuwanie i dostarczanie.

    • Welley wysyła i odbiera aktywności EmojiReact dla obsługiwanych wpisów.
    • Undo usuwa zdalną reakcję.
    • Reakcje z własnymi emoji zawierają tag emoji i domenę, z której pochodzą.

    Inne oprogramowanie może obsługiwać inny zestaw reakcji. Welley nie udostępnia opcjonalnej kolekcji emojiReactions.

    Członkowie reagują emoji na temat forum. Każde emoji ma własną etykietę i licznik.
  • FEP-c16b

    Formatowanie funkcjami MFM

    Część znaczników rozmycia z Misskey może pojawiać się jako spoiler w tekście.

    Welley obsługuje w przychodzących wpisach tylko formatowanie rozmycia.

    • Welley rozpoznaje fragmenty rozmycia w źródle Misskey Markdown.
    • Welley zamienia obsługiwane klasy i atrybuty rozmycia MFM na bezpieczny spoiler.

    Welley nie wdraża pełnego słownika funkcji MFM ani nie ogłasza obsługi htmlMfm. Inne efekty MFM mogą stracić formatowanie.

    W aktualnościach widać sformatowany tekst, spoiler w tekście, który czytelnik odkrywa kliknięciem, oraz ankietę, na którą można odpowiedzieć od razu.
  • FEP-d556

    Wykrywanie aktora na poziomie serwera przez WebFinger

    Zapytanie WebFinger o serwer może zwrócić jego aktora aplikacji.

    Welley obsługuje opisaną w propozycji formę wykrywania z linkiem self w stylu Mastodon. Nie podaje dla niej jawnego identyfikatora FEP.

    • Zapytanie o domenę lub skonfigurowany URL serwera zwraca link self do aktora instancji.
    • Obie formy wskazują tego samego aktora.

    Wyszukiwanie dokładnie dopasowuje skonfigurowany tekst origin i nie normalizuje ukośnika na końcu. Nie publikuje zalecanej relacji Service ani nie obsługuje filtrowania relacji.

  • FEP-e232

    Object Links

    Wpisy cytujące zawierają uporządkowane linki do cytowanych wpisów.

    Welley używa Object Links tylko do publikowania i importowania odniesień do cytatów.

    • Welley dodaje do wychodzącego cytatu tag Link z typem mediów cytatu ActivityPub.
    • Welley rozpoznaje tę samą formę linku w przychodzących wpisach, także linki bez nazwy.

    To obejmuje linki cytatów. Nie obejmuje każdego możliwego typu mediów Object Links.

  • FEP-efda

    Obiekty, które można obserwować

    Możesz obserwować wpis i dostawać informacje o dalszej aktywności w jego dyskusji.

    Follow(post) i Undo działają w obie strony i są przetestowane.

    • Welley wysyła Follow z URI wpisu jako obiektem.
    • Przychodzące obserwowania wpisów i aktywności Undo aktualizują subskrypcje wpisów.
    • Obserwowanie wpisu to coś innego niż obserwowanie jego autora.

    Najnowsza wersja FEP używa kolekcji obserwujących do wykrywania obiektów, które można obserwować. Wpisy Welley nie udostępniają tej kolekcji ani ogólnego algorytmu wykrywania. W Welley ta funkcja nadal nosi starszą nazwę „Obserwowane wpisy”.

  • FEP-f1d5

    NodeInfo w oprogramowaniu Fediverse

    Inne serwery mogą znaleźć informacje o oprogramowaniu i protokołach Welley przez NodeInfo.

    Welley obsługuje wykrywanie NodeInfo i odpowiedź w wersji 2.0.

    • Publiczny punkt wykrywania linkuje do dokumentu NodeInfo 2.0.
    • Dokument podaje wersję oprogramowania, obsługę ActivityPub i bazowy URL FASP.

    Na razie odpowiedź używa stałych liczników użycia i stałego stanu rejestracji. Nie traktuj jej jako bieżących statystyk serwera. Nie ma trasy 2.1.

  • FEP-fe34

    Model bezpieczeństwa oparty na origin

    Kontrole origin pomagają powstrzymać serwer przed przypisywaniem sobie treści lub uprawnień należących do innego.

    Welley ma kilka kontroli bezpieczeństwa opartych na origin i są one przetestowane.

    • Welley porównuje schemat, host i efektywny port adresów URI.
    • Skrzynka odbiorcza odrzuca niektóre aktywności, gdy origin obiektu nie zgadza się z origin aktora.
    • Ścieżki zdalnego pobierania, cytatów, kolekcji i obecności dodają kolejne kontrole origin.

    To tylko część modelu bezpieczeństwa. Nie zapewnia Object Integrity Proofs.