Skip to content
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

feat: Add a plausibility check for Meilisearch configuration #1186

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

fghaas
Copy link
Contributor

@fghaas fghaas commented Jan 2, 2025

Tutor is meant to be configured with either its own, or an externally preconfigured Meilisearch instance. Thus, the combination of configuring RUN_MEILISEARCH: false and leaving MEILISEARCH_URL at its default is almost certainly a configuration error.

Add an alert to notify the user of that configuration issue.

Related issue:
#1185

Tutor is meant to be configured with either its own, or an externally
preconfigured Meilisearch instance. Thus, the combination of
configuring RUN_MEILISEARCH: false and leaving MEILISEARCH_URL at its
default is almost certainly a configuration error.

Add an alert to notify the user of that configuration issue.

Related issue:
overhangio#1185
@fghaas fghaas force-pushed the check-meilisearch branch from 58aeb64 to 768c893 Compare January 2, 2025 15:53
Copy link
Contributor

@regisb regisb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good, with just a minor comment. Could you please rebase on top of the release branch, such that current sumac users can benefit from the change?

run_meilisearch = get_typed(config, "RUN_MEILISEARCH", bool, True)
if not run_meilisearch:
meilisearch_url = get_typed(config, "MEILISEARCH_URL", str, "")
meilisearch_url_default = get_defaults()["MEILISEARCH_URL"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to avoid making another call to get_defaults here, which is slow. Can we just hardcode "meilisearch"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm never a big fan of hardcoding the values of defaults, because it means that if the default ever changes, you need to fix it in more than one place. Is there another (better) way to avoid the get_defaults() call?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm never a big fan of hardcoding the values of defaults, because it means that if the default ever changes, you need to fix it in more than one place.

[thoughts] While I agree with this, I try to weigh the effort involved in determining how many "changes" are needed. If it is needed in very few places, it can be okay to hardcode.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do agree with you Florian that hard-coding values is typically a bad practice. There are other ways to bypass this, but I wouldn't say they are "better". They include:

  1. Your approach: calling get_defaults(), which is slow.
  2. Implementing a CONFIG_DEFAULTS_LOADED action that would save a singleton copy of the (unrendered) config defaults, which would be quite complex.

If we ever forget to modify the meilisearch URL default, the warning you added will be present in the console stderr. Also, to make sure we don't forget to update this value, you could add a unit test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In review
Development

Successfully merging this pull request may close these issues.

3 participants