steveloughran commented on code in PR #15112:
URL: https://github.com/apache/iceberg/pull/15112#discussion_r2764174277
##########
open-api/rest-catalog-open-api.py:
##########
@@ -985,6 +985,39 @@ class PlanTask(BaseModel):
)
+class MultiValuedMap(BaseModel):
+ """
+ A map of string keys where each key can map to multiple string values.
+ """
+
+ __root__: dict[str, list[str]]
+
+
+class RemoteSignRequest(BaseModel):
+ """
+ The request to be signed remotely.
+ """
+
+ region: str
+ uri: str
+ method: Literal['PUT', 'GET', 'HEAD', 'POST', 'DELETE', 'PATCH', 'OPTIONS']
+ headers: MultiValuedMap
+ properties: dict[str, str] | None = None
+ body: str | None = Field(
+ None,
+ description='Optional body of the request to send to the signing API.
This should only be populated for requests which do not have the relevant data
in the URI itself (e.g. DeleteObjects requests)',
Review Comment:
I agree the signer doesn't put the big binaries, but the spec implies they
should, so should at least say "requests where the body of the message contains
content which must be validated before a request is signed, such as the S3
DeleteObjects call".
FWIW I don't know which of the other stores have operations with large
payloads other than their own equivalents of DeleteObjects, otherwise
operations are mutating HTTP where custom headers are used.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]