-
Notifications
You must be signed in to change notification settings - Fork 385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MSC4133: Extending User Profile API with Key:Value Pairs #4133
base: main
Are you sure you want to change the base?
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
Looks great, thanks! |
Seems we discuss here a key-value CRDT, as keys would need to be updated over time. Personally, I'm all in favor. Matrix Event Graph is isomorphic to Merkle-CRDT that powers OrbitDB (key-value DB is one of the supported CRDT). |
FCP checklist:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall the MSC looks good - thanks for taking the time to update it! A few low-medium concerns for your consideration.
Co-authored-by: Travis Ralston <travpc@gmail.com>
This is an attempt to answer the authentication/rate-limiting/guest access requirements in the FCP checklist: f686090 Please post a review if any further clarification is required, thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple of minor comments, but overall, this looks great. I particularly like that you're keeping the initial proposal small and encouraging future extensions via future proposals.
I know a lot of time and effort has gone into putting this proposal together, and it shows. Thank you.
proposals/4133-extended-profiles.md
Outdated
[Canonical JSON](https://spec.matrix.org/v1.13/appendices/#canonical-json), including the | ||
`avatar_url` and `displayname` fields. | ||
|
||
Homeservers SHOULD NOT enforce namespaces, as future expansions may be unknown to the server, but |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Homeservers SHOULD NOT enforce namespaces
I feel like homeservers SHOULD enforce at least some of the requirements of the CNIG (key length, character set, starts with [a-z]
)?
I notice that an error is defined for M_KEY_TOO_LARGE
which implies that there is some expectation here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yes, the wording of this should be clearer... homeservers should not be checking whether the key uses a known namespace, but they must still enforce the grammar. I'll try to make this a bit more explicit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've had a go at this - what do you think? 9b2918e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, I screwed up the line wrapping, so this should fix that: e00d2e9
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very clear and easy to read proposal. Well done!
Only two minor comments below - the rest looks good to me!
unstable features. Proposal [MSC4175](https://github.com/matrix-org/matrix-spec-proposals/pull/4175) | ||
demonstrates the process of defining new fields in the `m.*` namespace. | ||
|
||
## Error Handling |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add a case for M_MISSING_PARAM
for if the client tries to set the profile field "foobar", yet neglects to include a "foobar" field in the PUT
request body JSON?
I noticed this case was handled in the Synapse implementation, but clients will not be expecting it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I copied that from the avatar URL profile endpoint, so probably is a spec bug that it was never documented?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy to take this opportunity to document it now? 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good! Was mostly implying it housing be controversial!
unstable features. Proposal [MSC4175](https://github.com/matrix-org/matrix-spec-proposals/pull/4175) | ||
demonstrates the process of defining new fields in the `m.*` namespace. | ||
|
||
## Error Handling |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When it comes time to write the spec PR, the author will be trying to match up error codes to each individual endpoint.
Is it expected that all status code/error code combinations here can be used for all Client-Server and Server-Server endpoints introduced in this MSC? If so, could you explicitly say so at the beginning of this section?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My assumption was that the Server-Server endpoints would have identical errors to the current ones, as federation access is still read-only in this MSC.
I'm happy to try to make the Client-Server endpoints a bit clearer on which errors apply to each of them though!
I might not have time to work on this over the weekend as my schedule is pretty full, but I'll try to get time ASAP 🙂
Rendered
Signed-off-by: Tom Foster tom@tcpip.uk
Known Implementations:
FCP tickyboxes
MSC checklist