rahulsmahadev commented on code in PR #17727:
URL: https://github.com/apache/iceberg/pull/17727#discussion_r4140156916
##########
open-api/rest-catalog-open-api.yaml:
##########
@@ -2162,6 +2186,64 @@ components:
explode: false
example: "vended-credentials,remote-signing"
+ user-agent:
+ name: User-Agent
+ in: header
+ description: >
+ Header for a client to identify itself to the catalog. It follows the
+ standard HTTP `User-Agent` grammar (RFC 7231, Section 5.5.3): a
+ whitespace-separated list of `product/version` tokens, optionally
+ followed by a parenthesized comment.
+
+
+ Clients SHOULD send this header. When it is sent, the Iceberg client
+ library token MUST be present so that a server can always identify the
+ library and its version: use the token for the Iceberg library the
+ client is built on, such as `iceberg-java`, `pyiceberg`,
+ `iceberg-rust`, `iceberg-go`, or `iceberg-cpp`. This list is
+ illustrative, not exhaustive: any other Iceberg library, or a
+ proprietary or custom implementation, uses its own descriptive product
+ token in that position. The remaining tokens SHOULD be ordered from the
+ outermost component to the innermost, so the most specific caller
+ appears first: the engine or application, then any integration or
+ connector, then the Iceberg library.
+
+
+ The optional trailing comment, enclosed in parentheses as defined by
+ the RFC, carries lower-value context such as build identifiers, the
+ HTTP library, the language runtime, or the operating system. These
+ context items SHOULD be grouped into a single comment placed after all
+ product tokens rather than interleaved between them, and separated by
+ `; ` when there is more than one, for example `(jvm 17.0.9; ubuntu
+ 26.04)`. Everything inside the parentheses is a free-form comment
+ rather than a `product/version` token; servers SHOULD treat it as
+ opaque and MUST NOT depend on its contents.
+
+
+ Examples:
+
+
+ `pyiceberg/0.11.0 (cpython 3.11.4)` — a client library used directly.
+
+
+ `Trino/438 iceberg-java/1.9.0 (jvm 17.0.9)` — an engine embedding the
+ Iceberg Java library.
+
+
+ `Spark/4.0.0 iceberg-spark/1.9.0 iceberg-java/1.9.0 (scala 2.13.16)` —
+ an engine with a connector layer on top of the library.
+
+
+ The header is advisory: a server MUST NOT reject a request only because
+ it is absent, incomplete, or malformed. See "Client Identification" in
+ the API description for the full rules that apply to client-identity
+ headers.
Review Comment:
makes sense, changed to SHOULD NOT
--
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]