-
Notifications
You must be signed in to change notification settings - Fork 344
Add recaptcha_{private,public}_key_path config option #17984
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
base: develop
Are you sure you want to change the base?
Conversation
You have configured both `recaptcha_private_key` and | ||
`recaptcha_private_key_path`. These are mutually incompatible. |
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.
We can dumb this down a bit:
You have configured both `recaptcha_private_key` and | |
`recaptcha_private_key_path`. These are mutually incompatible. | |
You have configured both `recaptcha_private_key` and | |
`recaptcha_private_key_path`. Only one or the other can be specified at a time. |
You have configured both `recaptcha_private_key` and | ||
`recaptcha_private_key_path`. These are mutually incompatible. |
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.
This is a slight variation on the typical error message we've been using for this:
Conflicting options 'macaroon_secret_key' and 'macaroon_secret_key_path' are
both defined in config file.
I like the version that this PR has but we should probably be consistent and update all the other similar errors.
@MadLittleMods: Could you clarify what you want the error message to be? For these PRs I did not use my own wording, but took it from synapse/synapse/config/registration.py Lines 37 to 40 in aab3672
|
Adds the `--no-secrets-in-config` command line option that makes Synapse reject all configurations containing keys with in-line secret values. Currently this rejects - `turn_shared_secret` - `registration_shared_secret` - `macaroon_secret_key` - `recaptcha_private_key` - `recaptcha_public_key` - `experimental_features.msc3861.client_secret` - `experimental_features.msc3861.jwk` - `experimental_features.msc3861.admin_token` - `form_secret` - `redis.password` - `worker_replication_secret` > [!TIP] > Hey, you! Yes, you! 😊 If you think this list is missing an item, please leave a comment below. Thanks :) This PR complements my other PRs[^1] that add the corresponding `_path` variants for this class of config options. It enables admins to enforce a policy of no secrets in configuration files and guards against accident and malice. Because I consider the flag `--no-secrets-in-config` to be security-relevant, I did not add a corresponding `--secrets-in-config` flag; this way, if Synapse command line options are appended at various places, there is no way to weaken the once-set setting with a succeeding flag. [^1]: [#17690](#17690), [#17717](#17717), [#17983](#17983), [#17984](#17984), [#18004](#18004), [#18090](#18090) ### Pull Request Checklist <!-- Please read https://element-hq.github.io/synapse/latest/development/contributing_guide.html before submitting your pull request --> * [x] Pull request is based on the develop branch * [x] Pull request includes a [changelog file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog). The entry should: - Be a short description of your change which makes sense to users. "Fixed a bug that prevented receiving messages from other servers." instead of "Moved X method from `EventStore` to `EventWorkerStore`.". - Use markdown where necessary, mostly for `code blocks`. - End with either a period (.) or an exclamation mark (!). - Start with a capital letter. - Feel free to credit yourself, by adding a sentence "Contributed by @github_username." or "Contributed by [Your Name]." to the end of the entry. * [x] [Code style](https://element-hq.github.io/synapse/latest/code_style.html) is correct (run the [linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))
Another config option on my quest to a
*_path
variant for every secret. Adds the config optionsrecaptcha_private_key_path
andrecaptcha_public_key_path
. Tests and docs are included.A public key is of course no secret, but it is closely related to the private key, so it’s still useful to have a
*_path
variant for it.Pull Request Checklist
EventStore
toEventWorkerStore
.".code blocks
.(run the linters)