Skip to content

[PR #3] Revised Actor Discovery Alignment - #260

Merged
aaronjae22 merged 7 commits into
mainfrom
aaronaej/revised-actor-discovery-alignment
Jun 16, 2026
Merged

[PR #3] Revised Actor Discovery Alignment#260
aaronjae22 merged 7 commits into
mainfrom
aaronaej/revised-actor-discovery-alignment

Conversation

@aaronjae22

@aaronjae22 aaronjae22 commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Closes #259

This PR rebuilds Actor-based portability discovery to the revised LOLA draft.

Per LOLA §4.1: "The portability authorization endpoint MAY be the same as or different from other OAuth endpoints."

Field Purpose
oauthAuthorizationEndpoint The actor's general-purpose OAuth authorization endpoint — standard ActivityPub OAuth (normal login/authorization, etc.).
oauthMigrationEndpoint The portability-specific authorization endpoint — where a destination server starts the LOLA account-migration OAuth flow and requests the activitypub_account_portability scope. This is the field LOLA §4.2 makes a MUST.

It replaces the top-level accountPortabilityOauth field with a public endpoints object (oauthMigrationEndpoint + parallel oauthAuthorizationEndpoint).

Also corrects the scope-gated migration object to {outbox, content, following, blocked} on dedicated actors/<pk>/migration/... routes, and keeps liked/followers as regular Actor collections.

Public / unauthenticated — GET /api/actors/1/

Expected result
{
  "@context": ["https://www.w3.org/ns/activitystreams", "https://purl.archive.org/socialweb/blocked", "https://swicg.github.io/activitypub-data-portability/lola"],
  "type": "Person",
  "id": "http://localhost:8000/api/actors/1",
  "preferredUsername": "alice",
  "name": "alice",
  "inbox": "http://localhost:8000/api/actors/1/inbox",
  "previously": [],
  "endpoints": {
    "oauthAuthorizationEndpoint": "http://localhost:8000/oauth/authorize/",
    "oauthMigrationEndpoint": "http://localhost:8000/oauth/authorize/"
  }
}

Authenticated with portability token — GET /api/actors/1/ (adds the gated block)

Expected result
{
  "outbox":    "http://localhost:8000/api/actors/1/outbox",
  "following": "http://localhost:8000/api/actors/1/following",
  "followers": "http://localhost:8000/api/actors/1/followers",
  "liked":     "http://localhost:8000/api/actors/1/liked",
  "blocked":   "http://localhost:8000/api/actors/1/blocked",
  "migration": {
    "outbox":    "http://localhost:8000/api/actors/1/migration/outbox",
    "content":   "http://localhost:8000/api/actors/1/migration/content",
    "following": "http://localhost:8000/api/actors/1/migration/following",
    "blocked":   "http://localhost:8000/api/actors/1/migration/blocked"
  }
}

@aaronjae22 aaronjae22 self-assigned this Jun 4, 2026
@aaronjae22 aaronjae22 changed the title Revised Actor Discovery Alignment [PR #3] Revised Actor Discovery Alignment Jun 4, 2026
@aaronjae22
aaronjae22 requested a review from lisad June 6, 2026 00:10
@aaronjae22
aaronjae22 marked this pull request as ready for review June 6, 2026 00:10
Base automatically changed from aaronaej/update-rfc8414 to main June 16, 2026 18:46
@aaronjae22
aaronjae22 merged commit 5929edc into main Jun 16, 2026
3 checks passed
@aaronjae22
aaronjae22 deleted the aaronaej/revised-actor-discovery-alignment branch June 16, 2026 19:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Revised Actor Discovery Alignment

2 participants