-
Notifications
You must be signed in to change notification settings - Fork 379
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
MSC3395: Synthetic appservice events #3395
base: main
Are you sure you want to change the base?
Conversation
5753f43
to
5766a53
Compare
5766a53
to
03d4482
Compare
@@ -0,0 +1,153 @@ | |||
# MSC3395: Synthetic Appservice Events |
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 not a fan of the name, happy to for something better. Mainly to distinguish that these aren't "real" events.
m.synthetic_events: | ||
events: | ||
- "m.user.registration" | ||
- "m.user.login" | ||
- "m.user.logout" | ||
- "m.user.deactivated" | ||
``` |
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.
These 4 were chosen for their simplicity / needs for my projects, but happy to consider more
938f1e2
to
068d29f
Compare
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 think this is reasonable and good as-is.
This also potentially opens up the door for tight modded homeserver <-> modded appservice integration via this method with the prospect of homeservers allowing custom synthetic events to be sent over this "channel", which is exciting.
Currently only the `namespaces.users` field can contain this key, though the door is left open for | ||
future MSCs to expand upon this feature and allow synthetic events for different contexts. |
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.
Bikeshed: What about introducing a synthetic
namespace where these events are listed instead? I assume this'd be helpful if it were introduced for all users, i think an additional "exclude" (by regex) key could be useful in the future then to exclude the likes of bridged users (to reduce noise)
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.
So the plan atm is to have the m.synthetic_events
key sit under the user namespaces, which organically excludes users we don't care about and only include users we do care about.
If you did want all users, you could do a .*
. If you wanted all users except bridges, I'd imagine you'd have a regex that negatively matches the bridge users?
There might be scope for a exclusionary namespace eventually for ease of configuration, but definitely out of scope for this MSC
- User registration | ||
- User login | ||
- User logout | ||
- User deactivation |
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.
Noting that @Yoric had some interest in being able to intercept reports from users into services, so perhaps the ideal flow is that appservices are sent reports via this mechanism.
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.
Media creation / deletion would be a good one too.
@Half-Shot what sort of review are you looking for on this? It's made it onto the SCT board, but without context. |
oob conversation has lead to a realization of not being sure why this is on the board - removing. |
Rendered
Initial implementation for Synapse here
Initial implementation for the matrix-bot-sdk here