So this is a thread to tell you what I've been working on the past few weeks.
For starters, a tool to help island networks confirm federation between members better. (first screenshot)
But it's a lot more than that.
It's got blocklist ingestion and change tracking (changes, retractions, etc):
https://archipelago.1sland.social/blocklist/Oliphant-T0
https://archipelago.1sland.social/blocklist/FediNuke
https://archipelago.1sland.social/blocklist/TBS-90
Some blocklists are preloaded and the admin of the 'Pelago instance can decide which ones to enable.
It's got an "instance" page which inspects an instance without scraping, using client-side javascript which effectively means that when you hit the instance page, you're the one "scraping" the content from the remote site. If CORS is disabled, no data. (second page). The nodeinfo and /v1/instance and /v2/instance outputs are listed on the page for those curious.
Again, none of this stuff is stored or databased anywhere, but if you're an admin of the instance, you can give permission for things like the banner URL, software, and your registration status (open reg, manual review, etc) so that CORS doesn't need to look up that data and (eventually) those searching for a particular instance will be able to find yours more easily. At any time, you can uncheck the box that grants permission to scrape your instance, and we'll wipe all the scraped data we pulled and cease doing server-side requests to your instance unless absolutely necessary. (It is sometimes necessary to ping nodeinfo just to see if there's a server redirect set up at the base url).
Anyone can log in, but only admins can really do stuff, and at this stage only admins of allowlist instances (islands) have much of a role.
There are several pages that allow you to view data publicly, even without being signed in:
Pages: https://archipelago.1sland.social/page/this-is-the-first-page-in-pelago
Instance: https://archipelago.1sland.social/instance/uno.1sland.social
Blocklist: (see above)
Network: https://archipelago.1sland.social/network/fa0c80a8-99e8-41e4-8c6f-b1b4b87764c9
This is a WIP and I'm hammering out functionality as fast as I can.
The next stage is to create allowlist feed URLs based on the networks to which you subscribe.
And that's really the focus of the app. Creating island networks, allowing instances to be invited to those networks, or to apply to join those networks, and automatically managing an allowlist for those networks, custom to each island (depending on their network subscriptions).
With GTS domain subscription features pointing at those generated URLs, and with code that confirms federation (allowlisting) between all participants in the network, we should be able to make this process a lot easier going forward.
Feel free to use it if you have an island network, and let me know if you run into any issues.
Note that the 'notification' account is hosted on dos.1sland.social, and most of you don't federate with that instance, so you will likely not receive any notifications if you create a network and invite others to join it--so you'll need to contact the admins of those instances directly, and tell them to log in to https://archipelago.1sland.social.
Admins that join will be asked to confirm if their instance uses blocklist/allowlist style federation, and if this instance is a valid island you will be asked to escalate permissions to grant admin:read:domain_allows solely so federation confirmation can be done.
Note that any keys captured for this purpose are encrypted at rest.
The code is very much in an early alpha state, but it's available here: https://codeberg.org/oliphant/pelago

