Skip to content

Commit 2e39274

Browse files
authored
Merge pull request #479 from tisnik/forbid-unknown-attributes-for-request-payload
Forbid unknown attributes for request payload
2 parents fca5947 + c103186 commit 2e39274

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

docs/openapi.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,7 @@
818818
]
819819
}
820820
},
821+
"additionalProperties": false,
821822
"type": "object",
822823
"required": [
823824
"attachment_type",
@@ -1444,6 +1445,7 @@
14441445
]
14451446
}
14461447
},
1448+
"additionalProperties": false,
14471449
"type": "object",
14481450
"required": [
14491451
"conversation_id",
@@ -1514,6 +1516,7 @@
15141516
]
15151517
}
15161518
},
1519+
"additionalProperties": false,
15171520
"type": "object",
15181521
"title": "FeedbackStatusUpdateRequest",
15191522
"description": "Model representing a feedback status update request.\n\nAttributes:\n status: Value of the desired feedback enabled state.\n\nExample:\n ```python\n feedback_request = FeedbackRequest(\n status=false\n )\n ```"

src/models/requests.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class Attachment(BaseModel):
4646

4747
# provides examples for /docs endpoint
4848
model_config = {
49+
"extra": "forbid",
4950
"json_schema_extra": {
5051
"examples": [
5152
{
@@ -64,7 +65,7 @@ class Attachment(BaseModel):
6465
"content": "foo: bar",
6566
},
6667
]
67-
}
68+
},
6869
}
6970

7071

@@ -284,7 +285,7 @@ class FeedbackRequest(BaseModel):
284285
examples=[-1, 1],
285286
)
286287

287-
# Optional user feedback limited to 14096 characters to prevent abuse.
288+
# Optional user feedback limited to 1-4096 characters to prevent abuse.
288289
user_feedback: Optional[str] = Field(
289290
default=None,
290291
max_length=4096,
@@ -304,6 +305,7 @@ class FeedbackRequest(BaseModel):
304305

305306
# provides examples for /docs endpoint
306307
model_config = {
308+
"extra": "forbid",
307309
"json_schema_extra": {
308310
"examples": [
309311
{
@@ -331,7 +333,7 @@ class FeedbackRequest(BaseModel):
331333
"categories": ["incomplete", "not_relevant"],
332334
},
333335
]
334-
}
336+
},
335337
}
336338

337339
@field_validator("conversation_id")
@@ -402,6 +404,9 @@ class FeedbackStatusUpdateRequest(BaseModel):
402404
examples=[True, False],
403405
)
404406

407+
# Reject unknown fields
408+
model_config = {"extra": "forbid"}
409+
405410
def get_value(self) -> bool:
406411
"""Return the value of the status attribute."""
407412
return self.status

0 commit comments

Comments
 (0)