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

docs: Add docs for all Django settings #126

Merged
merged 3 commits into from
Feb 8, 2023
Merged

Conversation

timmc-edx
Copy link
Contributor

Addresses #124

Merge checklist:
Check off if complete or not applicable:

  • Version bumped
  • Changelog record added
  • Documentation updated (not only docstrings)
  • Commits are squashed
  • Noted any: Concerns, dependencies, deadlines, tickets, testing instructions

@timmc-edx timmc-edx force-pushed the timmc/doc-settings branch 2 times, most recently from de0abab to f026f04 Compare February 7, 2023 19:28
Copy link
Contributor

@rgraber rgraber left a comment

Choose a reason for hiding this comment

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

One minor but I think worthwhile suggestion

url = getattr(settings, 'EVENT_BUS_KAFKA_SCHEMA_REGISTRY_URL', None)
if url is None:
warnings.warn("Cannot configure event-bus-kafka: Missing setting EVENT_BUS_KAFKA_SCHEMA_REGISTRY_URL")
return None

# .. setting_name: EVENT_BUS_KAFKA_SCHEMA_REGISTRY_API_KEY
# .. setting_default: None
# .. setting_description: API key for talking to the Avro schema registry specified in
Copy link
Contributor

Choose a reason for hiding this comment

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

This key and secret are optional as well (figure we should probably be consistent with how we describe the Kafka API key)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh! Yes, I was wondering about this and forgot to leave myself a note. The Kafka API key/secret are definitely optional because if either one is omitted, we skip adding both of them to the config. But with these schema registry values, we always use them, even if they're None or empty. So for instance we could end up with a basic.auth.user.info of :, user:, :pass, or user:pass. Not all of those look particularly sensible. I'll go check the schema registry docs again...

(Also, I see that I've documented them as defaulting to None but they're actually ''. Oops.)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed the docs of the defaults. OK, here's what I've got so far:

I guess what I'm unsure of is this: What happens if the schema-registry server is configured not to require auth, and the client uses the defaults, i.e. ':'? Is that going to cause an issue?

Copy link
Contributor

Choose a reason for hiding this comment

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

It looks like it will look to the url first for auth information and then error if there is also basic.auth.user.info. I vote we punt on what happens if the schema registry server doesn't expect any auth and just put in docs somewhere that user should use the settings provided instead of putting the user and password in the URL

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, we should probably document that auth goes in the auth settings and not in the URL. But what to do about required/optional? I don't want to make claims in the docstrings that we can't back up, and so I'm tempted to just... not mention required/optional either way, for those two.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think "Optional" still makes sense because we do know for sure that you don't have to always have to set them.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hmm. I still don't know what happens if the schema registry isn't configured for auth and we pass an auth header containing ':' anyway. Maybe nothing? I guess if it causes any issues then we can put in a bugfix when we find out.

Copy link
Contributor

@rgraber rgraber left a comment

Choose a reason for hiding this comment

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

LGTM

@timmc-edx timmc-edx merged commit 3a3e538 into main Feb 8, 2023
@timmc-edx timmc-edx deleted the timmc/doc-settings branch February 8, 2023 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants