Skip to content

Add an easy way to change extra = meta option #116

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

Open
sobolevn opened this issue Feb 13, 2025 · 3 comments
Open

Add an easy way to change extra = meta option #116

sobolevn opened this issue Feb 13, 2025 · 3 comments

Comments

@sobolevn
Copy link

Right now all models allow extra fields:

# extra = "allow"

I don't want that behavior, I want to be strict on my input types: no extras are allowed in authentication.
So, how to change that?

Now I have to change all settings in

NINJA_JWT = {
  'TOKEN_OBTAIN_PAIR_INPUT_SCHEMA': "custom",
  'TOKEN_OBTAIN_PAIR_REFRESH_INPUT_SCHEMA': "custom",
  'TOKEN_VERIFY_INPUT_SCHEMA': "custom",
}

To only change one configuration option.

I would like to see something like:

NINJA_JWT = {
  'SCHEMAS_EXTRA': 'forbid',  # with 'allow' as default for backward-compat
}

See https://docs.pydantic.dev/latest/api/config/#pydantic.config.ConfigDict.extra

@eadwinCode
Copy link
Owner

@sobolevn Sorry for the late response, reason #123

I think this is related to #117 I will look at this feature over the weekend

@eadwinCode
Copy link
Owner

eadwinCode commented Apr 5, 2025

@sobolevn I think you inherit from the existing schema and change the model_config then have the schema referenced in the setting like so:

NINJA_JWT = {
  'TOKEN_OBTAIN_PAIR_INPUT_SCHEMA': "path.to.the.schema.with.a.different.model_config",
  'TOKEN_OBTAIN_PAIR_REFRESH_INPUT_SCHEMA': "custom",
  'TOKEN_VERIFY_INPUT_SCHEMA': "custom",
}

@sobolevn
Copy link
Author

sobolevn commented Apr 6, 2025

This is exactly what I did. And it seems very verbose for just a simple bool switch.

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

No branches or pull requests

2 participants