diff --git a/src/middlewared/middlewared/api/v25_04_0/core.py b/src/middlewared/middlewared/api/v25_04_0/core.py index 6db1e6ee94c63..79f3fda0a040d 100644 --- a/src/middlewared/middlewared/api/v25_04_0/core.py +++ b/src/middlewared/middlewared/api/v25_04_0/core.py @@ -30,6 +30,7 @@ class CoreSetOptionsOptions(BaseModel, metaclass=ForUpdateMetaclass): strict=True, str_max_length=1024, use_attribute_docstrings=True, + extra="ignore", ) private_methods: bool diff --git a/src/middlewared/middlewared/api/v25_10_0/core.py b/src/middlewared/middlewared/api/v25_10_0/core.py index 2d37b03ff8920..79f3fda0a040d 100644 --- a/src/middlewared/middlewared/api/v25_10_0/core.py +++ b/src/middlewared/middlewared/api/v25_10_0/core.py @@ -1,5 +1,7 @@ from typing import Literal +from pydantic import ConfigDict + from middlewared.api.base import BaseModel, ForUpdateMetaclass, single_argument_result __all__ = [ @@ -23,6 +25,14 @@ class CorePingResult(BaseModel): class CoreSetOptionsOptions(BaseModel, metaclass=ForUpdateMetaclass): + # We can't use `extra="forbid"` here because newer version clients might try to set more options than we support + model_config = ConfigDict( + strict=True, + str_max_length=1024, + use_attribute_docstrings=True, + extra="ignore", + ) + private_methods: bool py_exceptions: bool