Extensions field in records for third-party usage #1889
Replies: 3 comments 2 replies
-
This is a great idea, thanks for the suggestion! I've transferred this to a longer-form "discussion". We have had a bit of talk internally about how to better support third party extensions to record schemas. One proposal is basically exactly what you propose: a special dedicated field (probably prefixed with An alternative is to lean more heavily in to "paired records" in different Lexicon namespaces, but same Some open questions:
|
Beta Was this translation helpful? Give feedback.
-
Another potential solution is just to include the full record data in |
Beta Was this translation helpful? Give feedback.
-
I would be cautious to implement something custom here, as this is a generic problem that JSON schema and OpenAPI 3 have solved with $ref. How hard would it be to allow Lexicons to 'inherit and extend' other Lexicons? |
Beta Was this translation helpful? Give feedback.
-
Is your feature request related to a problem? Please describe.
There is friction in third-party clients wanting to add quality-of-life functionality that requires adding additional/custom public metadata to something like profiles, where the records aren't being exposed as is to app.bsky.* endpoints (unlike posts, which does have them)
Describe the solution you'd like
An
extensions
field added within said record types, this is an object where basically anything goes, and is up for third-party clients to do what they want with it (can be subject to limits). This field can then be forwarded as-is to any app.bsky.* queries, without the need for said queries to expose the actual record itself.Describe alternatives you've considered
Right now, clients has to retrieve two different subsets of profile informations, say,
getProfile
to get follow counts, and the actual record itself for these sorts of extensions. It's doable, but it's also a hassle to do, and takes up precious network usage that could be used towards other things (even if they're small responses)Additional context
It would be nice if we can get something as basic as public profile timezones right now.
Beta Was this translation helpful? Give feedback.
All reactions