Jump to content

SocialCG/ActivityPub/OAuth 2.0 Scopes

From W3C Wiki

These scopes have been added to the Basic Profile for Social API Servers in the OAuth scopes section. Changes to the scopes should be made as issues in https://github.com/swicg/actvitypub-api/issues.

This was a workpad for developing a list of scopes for ActivityPub social API servers.

Design goals

  • Action-oriented. They are about what the app can do.
  • User-level. They are for actions that a user would be aware of: liking things, following people, reading my followers list.
  • Fine-grained. People on the Fediverse like fine-grained control and tuning.
  • Bundled. Some bundled scopes to make it easier for clients.
  • Unambiguous. It's clear from each scope what is being requested.
  • Easy for clients to determine. Client developers can figure out what scopes they need to request easily, based on what they request and what they send.
  • Easy for servers to check. Server software can easily check these scopes at runtime.
  • Complete. It should cover everything you can do with the ActivityPub social API.

Scopes

"You are authorizing the app to..."

URI Short description Meaning
https://swicg.github.io/activitypub-api/scopes#readall Read all your data
https://swicg.github.io/activitypub-api/scopes#readany Read data on any server
https://swicg.github.io/activitypub-api/scopes#readown Read data on its own server
https://swicg.github.io/activitypub-api/scopes#readlocal Read data on your server
https://swicg.github.io/activitypub-api/scopes#readinbox Read your inbox feed
https://swicg.github.io/activitypub-api/scopes#readoutbox Read your outbox feed
https://swicg.github.io/activitypub-api/scopes#readfollowers See who follows you
https://swicg.github.io/activitypub-api/scopes#readfollowing See who you follow
https://swicg.github.io/activitypub-api/scopes#readliked See what you've liked
https://swicg.github.io/activitypub-api/scopes#createcontent Create new content
https://swicg.github.io/activitypub-api/scopes#updatecontent Edit existing content
https://swicg.github.io/activitypub-api/scopes#deletecontent Delete content
https://swicg.github.io/activitypub-api/scopes#follow Follow and unfollow accounts
https://swicg.github.io/activitypub-api/scopes#managefollowers Accept, reject, and remove followers
https://swicg.github.io/activitypub-api/scopes#managecollections Add items to and remove items from collections
https://swicg.github.io/activitypub-api/scopes#like Like and unlike content
https://swicg.github.io/activitypub-api/scopes#share Share and unshare content
https://swicg.github.io/activitypub-api/scopes#block Block and unblock accounts
https://swicg.github.io/activitypub-api/scopes#flag Report accounts
https://swicg.github.io/activitypub-api/scopes#reactlocal Interact with content on your server
https://swicg.github.io/activitypub-api/scopes#reactany Interact with content on any server
https://swicg.github.io/activitypub-api/scopes#reactown Interact with content on its own server
https://swicg.github.io/activitypub-api/scopes#addressall Post to anyone
https://swicg.github.io/activitypub-api/scopes#addresspublic Post publicly
https://swicg.github.io/activitypub-api/scopes#addressactor Post privately
https://swicg.github.io/activitypub-api/scopes#addressfollowers Post to your followers
https://swicg.github.io/activitypub-api/scopes#uploadfiles Upload files
https://swicg.github.io/activitypub-api/scopes#updateprofile Change your profile, including your avatar

Notes

  • "read" = HTTP GET
  • "see" = HTTP GET
  • "all your data" = actor + actor's collections + objects that the actor created + files
  • "your server" = same origin as actor ID
  • "on its own server" = same origin as CIMD identity, using proxy
  • "any server" = own server or any other, using proxy
  • "post" = create an activity with these address types
  • "post to anyone" = any addressing
  • "Interact with" = like, share, reply to, add/remove from collection, ...?
  • "content" = at least Web content like text, images, audio, video, plus polls. Maybe other types, like events, places, etc.? Extended types as well?
  • "account" = user-level word for "actor" that isn't limited to people and doesn't enumerate Person, Group, Organization, Application, Service