Where a server is, on the public instance API
/api/privapub/v1/instances/:host gains `geo`, the public projection of a server's place already decided for public server locations (PublicGeo.Project): city, coordinates and network for servers reporting at least 10 users and not behind a CDN, the country otherwise, the CDN's name for a CDN-fronted one, with DB-IP's attribution. `?host[]=` answers up to 40 servers at once, and this server describes itself: its host's address located once a day (SelfLocation), or Statistics:Geo:Self when the owner sets it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
2cd75176a4
commit
d9fb5c582f
8 files changed
+429
-15
No files matched your search
+4
-2
@@ -1,4 +1,4 @@
|
||||
# Interop: what every peer sends, what it expects, and what PrivaPub still drops
|
||||
# Interop: what every peer sends, what it expects, and what PrivaPub still drops
|
||||
|
||||
Research as of **2026-10-01**: the platforms' source on their default branches, live ActivityPub fetches from large
|
||||
instances, release notes and the FEP repository. Version numbers are what was current that day. Claims the
|
||||
@@ -807,7 +807,9 @@ a remote host.
|
||||
|
||||
`GET /api/privapub/v1/instances/:host` returns cached NodeInfo (`metadata` extras: Misskey `themeColor`/`maxNoteTextLength`,
|
||||
Pleroma `features[]`/`federation.mrf_policies`), the instance API's icon and description, the delivery health our
|
||||
circuit breaker sees, and which signature scheme worked.
|
||||
circuit breaker sees, and which signature scheme worked. Its `geo` is the public projection of where the server is
|
||||
(`precision` `city`, `country` or `cdn`, ROADMAP owner decision on server locations); `?host[]=` answers up to 40 at
|
||||
once, and this server describes itself the same way.
|
||||
|
||||
`software.name` → family, for display:
|
||||
|
||||
|
||||
@@ -202,6 +202,7 @@ and circles (see Owner decisions).
|
||||
| Question | Decision |
|
||||
|---|---|
|
||||
| Sign-in | **One login.** decePubClient signs in on `/clientapi` and exchanges that JWT for one persona's Mastodon token (RFC 8693 token exchange on `/oauth/token`, `PersonaExchange`), one token per persona it uses. Only the seeded first-party application may exchange; the token names the persona, never the root, like any other. |
|
||||
| Server locations on the instance API | **Public, as the projection already decided for public server locations** (2026-10-03): city, coordinates to 0.1° and network only for servers reporting at least 10 users and not behind a CDN, the country otherwise, the CDN's name for a CDN-fronted one, with DB-IP's attribution. decePubClient's globe draws posts at their author's server. This server's own place comes from its host's address, or from `Statistics:Geo:Self` when the owner sets it (a server behind a proxy). |
|
||||
|
||||
## Libraries (researched; no maintained .NET ActivityPub library exists, so Letterbook and Iceshrimp.NET both wrote their own)
|
||||
|
||||
|
||||
Reference in new issue
Block a user