{
"id": "im.flushing.authApp",
"defs": {
"main": {
"type": "permission-set",
"title": "Flushes",
"detail": "Post, edit and delete your flushes; react and reply to other people's; and keep your settings so they follow you to your next device.",
"description": "The permissions a Flushes session needs, as one named bundle an authorization server can resolve instead of the client spelling out four `repo:` grants. It holds the four collections everybody writes and deliberately not `im.flushing.fundraiser` or `im.flushing.donor`, both of which are written from /admin by the one account that runs the site: putting either here would list a collection on every user's consent screen that nobody but that account will ever write. Requesting this set and requesting the four grants individually authorize exactly the same writes; the set exists so the consent screen can name the app rather than enumerate its storage. Reads are absent on purpose, because every read path in Flushes goes out unauthenticated against world-readable repo records.",
"permissions": [
{
"type": "permission",
"action": [
"create",
"update",
"delete"
],
"resource": "repo",
"collection": [
"im.flushing.right.now",
"im.flushing.reaction",
"im.flushing.reply",
"im.flushing.preferences"
]
}
]
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}