Trochu som písal o možnosti Single-Sign-On (SSO) pre Gitea blížiacej sa k realite. Dnes som narazil na relatívne odlišný prístup, ktorý ma zaujal: federované hostovanie kódu.
Hoci je to stále vo fáze návrhu, koncept pôsobí naozaj zaujímavo. Rovnakým spôsobom, akým Pleroma, Mastodon alebo hŕstka ďalších služieb federujú (zhruba povedané vymieňajú dáta) medzi sebou pomocou protokolu ActivityPub, rovnaká všeobecná myšlienka by mohla byť prenesená aj do GitLabu, gogsu, Gitey a celkom možno aj ďalších platforiem na hostovanie kódu. Možno by mohli byť zahrnuté aj systémy správy verzií, ktoré nie sú založené na gite, pre maximálnu spoluprácu — keď sa raz dohodne protokol, implementácia je jednoduchšia. To všetko by vyžadovalo niektoré rozšírenia protokolu ActivityPub, ale prinieslo by to výhody samohostovaných platforiem, v tomto prípade tých na hostovanie kódu.
Takýto prístup by bol decentralizovaný a vo všeobecnosti veľmi odlišný od toho SSO, o ktorom sme hovorili skôr, keďže SSO je od základu centralizované. Kým oba prístupy by priniesli možnosť jednej identity naprieč viacerými sieťami, federované hostovanie kódu ide oveľa ďalej — okrem iného zahŕňa federáciu ticketov, federáciu komentárov k ticketom, federované push aktivity a federované sledovanie repozitárov.
Som veľkým fanúšikom decentralizovaných a samohostovaných aplikácií — okrem Pleromy hostujem aj Giteu a ďalšie podobné služby. Preto je pre mňa myšlienka kombinovať hostovanie kódu s federáciou veľmi lákavá. Na rozdiel od SSO, ktoré je pre Giteu takmer dostupné, je federácia ešte ďaleko. Vyzerá to tak, že issues na Forgefede stagnujú zhruba 9 mesiacov, keď to píšem.
Neprekvapilo by ma, keby niekde inde prebiehal nejaký iný, pravdepodobne úplne nesúvisiaci, paralelný vývoj — práve som však tento koncept objavil, takže sa postupom času zrejme dozviem viac. Dúfam, že to nebude trvať príliš dlho.
Odkazy #
- https://feneas.org/federated-code-hosting/
- https://forgefed.peers.community/
- https://notabug.org/peers/forgefed
Toto je 54. príspevok v rámci #100daystooffload.