-
Notifications
You must be signed in to change notification settings - Fork 1.7k
uploader: add PluginControl handshake protos
#3299
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
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 like how generic this message is. We could in principle extend it with rate limits per plugin, informational messages per plugin, whatever makes sense later.
A slightly different design might prepare us for that eventuality even better. Instead of one
PluginControlfor all plugins, you could dorepeated PluginControl plugin_controls;where for nowPluginControlcontains juststring plugin_name. Or do that in a nested manner withAllPluginControlswhere you have it, withrepeated SinglePluginControlinside (mod naming).(Just to consider; I'm OK with it either way)
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.
Yep, exactly. Rate limits were something that I had in mind, as was a
flag “
bool allow_all_plugins = 2;” for general-purpose storage (e.g.,if people run their own instances, they might want that).
A downside of
repeated PluginControl plugin_controls;is that itdoesn’t admit distinguishing between an old server that doesn’t know
about
PluginControls and a server that is denying all uploads. If wedid that, then rolling back the server to a pre-
PluginControlversionwould be dangerous once we’d pushed a new uploader, so I like having the
wrapper message.
An
AllPluginControlswith repeatedSinglePluginControls does resolvethis, and indeed is more flexible along the plugin axis. But it’s a bit
less flexible on other axes: e.g., I could imagine wanting
in which case the
SinglePluginControls aren’t obviously the rightplace to put the rate limiting.
Given that both options seem reasonable and the worst-case costs aren’t
too high (we can either deprecate the old fields entirely, or use a
hybrid solution like denormalizing plugin names or using the plugin
control ordering as an index; neither is perfect, but they’re not
maintenance nightmares), I’m going to keep this as is, because this way
is simpler right now. Thank you for the suggestion!