matrix-org / thirdroom

Open, decentralised, immersive worlds built on Matrix
https://thirdroom.io
Apache License 2.0
605 stars 65 forks source link

Profile interop: Use public/private key/value storage provided by Matrix protocol #380

Open vintprox opened 2 years ago

vintprox commented 2 years ago

We can see such data as "Default Display Name", "Preffered Pronouns", "Bio" in #70. Matrix doesn't have these on protocol level, but they can be arbitrarily added to user's key/value storage without the need for such room as of type org.matrix.msc3815.profile (but it's most needed for storing avatar attachments, see #379).

You can even choose between public and private storage. Public key/value storage may be used for bio, preferred pronouns, and etc. Private - for Third Room preferences synchronized between devices/browsers.

robertlong commented 2 years ago

Yup, agreed that we should not be using custom "profile rooms" for this.

ajbura commented 2 years ago

afaik, Profiles are limited to display name and avatar. What public key/value storage are you talking about?

vintprox commented 2 years ago

Specification seems to be mentioning the ability to publish arbitrary data on user, but I couldn't find any endpoint that does it.

My point is that Thirdroom's implementation can go along with extensible profiles once they are described for implementation:

vintprox commented 2 years ago

https://github.com/matrix-org/matrix-spec-proposals/pull/1769 seems to describe extensible profiles with similar approach as of Thirdroom's, and that is publishing them as rooms. I recommend looking into that one and see if it gets finally unified.