egregoros compat

This commit is contained in:
Moon.eth
2026-07-29 20:59:52 +09:00
parent 081460c7f6
commit 5b7b4360d2
16 changed files with 713 additions and 137 deletions
+11 -5
View File
@@ -50,8 +50,9 @@ GitHub Pages — with no server rewrite rules.
plspace registers itself as an OAuth app on your server the first time you sign
in there, then redirects you to that server's own consent screen. Your password
is never entered into plspace; it only ever receives an access token, which is
stored in `localStorage` and used directly from your browser.
is never entered into plspace; it only ever receives OAuth tokens, which are
stored in `localStorage` and used directly from your browser. Short-lived access
tokens are renewed with a server-issued refresh token when available.
PKCE is used where the server supports it, with an automatic fallback for
servers that don't.
@@ -113,9 +114,14 @@ rewritten to in-app routes; every other link gets `target="_blank"` with
## Compatibility
Written against the standard `/api/v1` REST API and tested against live servers.
Written against the standard `/api/v1` REST API and the local Egregoros
implementation, as well as live servers.
Anything implementations differ on degrades rather than fails: `/api/v2/instance`
falls back to v1, `/api/v1/accounts/lookup` falls back to search, pagination
falls back to the last item's id when a server drops the `Link` header, and
per-account privacy flags are read in both their spellings. Other software
speaking the same API therefore works, but Pleroma is what this targets.
per-account privacy flags are read in both their spellings. Egregoros'
hour-long access tokens and rotating refresh tokens are supported; notification
folders are filtered defensively because its current API ignores `types[]`.
Profile controls are capability-aware, so unsupported Egregoros fields are not
shown as though they could be saved. Other software speaking the same API
therefore works, but Pleroma is what this targets.