i hope this is an alright place to put this, but it was just a thought i had inspired by this tweet
even with oauth scopes, i think that interoperability between applications is a tough problem because i have to fully trust every oauth client that i use with access to record namespaces. so if i have existing bluesky records, and then i want to use a different application which wants to be able to create and delete bluesky records, either i can’t use bluesky features in that application, or i need to trust that it won’t delete all my existing records. i think i read in the proposal for scopes that there are plans for more granular permissions, like the ability to create records but not delete them, but i think that this doesn’t help that much; maybe a bad actor creates a lot of records in an inconvenient manner
so my thought was for oauth to additionally have record permissions, like unix file permissions. each record created by an oauth client would have a top-level field like $type named something like $owner or $creator, inserted by the pds when the record is created, which contains the client_id of the oauth client that made the createRecord request. in order to update or delete records created by a different oauth client, you would need to go through a special oauth flow to give the oauth client temporary sudo privileges. all records created prior to this which don’t have a $owner field would retroactively be considered sudo records. in this way, i could give an application delete privileges to my bluesky records with confidence that they could only mess with records that that application itself created. in the spam example, i think it would just make it a lot easier for someone to write a utility that allows you to bulk delete records created by a given client_id, instead of trying to do an autopsy after the fact to try and figure out which records were spam and which ones were legitimate
also, i think that this is just a neat lil feature which could promote discoverability of alternative clients, which they could try out with a new confidence
if this is already in the works or on the table in a discussion somewhere, well this is my endorsement for that sort of system