-
Notifications
You must be signed in to change notification settings - Fork 51
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
MSC2787 Add support for splitting UPK IDs #301
base: main
Are you sure you want to change the base?
Conversation
…ension. Mark SplitID deprecated
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 have a few problems with this:
- the names of the functions are misleading and unclear.
SplitIDWithSigil
doesn't actually take a sigil andSplitID
says the sigil is unused but it in fact is for validation. - The newer now recommended function is less secure and less correct compared to the deprecated function. We use
SplitID
when we know what kind of ID we're supposed to have e.g. a user ID. Specifying the @ in the function signature as a sigil ensured that you can't send a room alias as a user ID for example. Now the newer "recommended" form doesn't do this critical check.
I don't think this overall improves things. You've been rather prescriptive about the API with insufficient justifications why this is better. I imagine you're doing this because GMSL auth code checks using SplitID for well-formed IDs which for this MSC you cannot know upfront what the sigil will be? The answer then isn't to make us do less validation: specify which sigils you expect to see and ensure that one of them is present. Furthermore, you need to be careful that this is only going to apply in room versions / other flags which enable this: we cannot have UPKs being treated as valid everywhere.
Great feedback, I agree with it not accomplishing anything (this was setting up for a change in the Dendrite server using UPK), and that it weakens the contract for the caller not declaring what type of ID. I'll revise for the latter. As for talking this over, is there a forum you'd suggest other than in Github comments? |
…e accidental decoding
#dendrite:matrix.org or #dendrite-dev:matrix.org are good candidates. We can support your changes more there. |
…into SplitIDTests
Add code coverage for SplitID. Create SplitIDWithSigil for future extension. Mark SplitID deprecated as callers should only pass ID with embedded sigals, letting SplitIDWithSigil parse the sigil.
Pull Request Checklist
Signed-off-by:
Brian Meek <[email protected]>