adutra commented on code in PR #17727:
URL: https://github.com/apache/iceberg/pull/17727#discussion_r3916426196
##########
open-api/rest-catalog-open-api.yaml:
##########
@@ -2162,6 +2181,56 @@ components:
explode: false
example: "vended-credentials,remote-signing"
+ user-agent:
+ name: User-Agent
+ in: header
+ description: >
+ Recommended 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.
+
+
+ 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 client library,
+ then the language runtime. The Iceberg client library token is the one
+ component every client can supply and SHOULD always be present.
+ Recommended library tokens are `iceberg-java`, `pyiceberg`,
+ `iceberg-rust`, and `iceberg-go`.
+
+
+ The trailing parenthesized comment is an open extension point for
+ additional, lower-value context such as build identifiers, the HTTP
+ library, or the operating system, given as bare tokens or `key=value`
+ pairs separated by `; `. Servers SHOULD treat the comment as free-form
+ and MUST NOT depend on its contents.
+
+
+ Examples:
+
+
+ `pyiceberg/0.11.0 (cpython/3.11.4)` — a client library used directly.
Review Comment:
Out of curiosity, does the RFC accept product identifiers surrounded by
parentheses?
##########
open-api/rest-catalog-open-api.yaml:
##########
@@ -2162,6 +2181,56 @@ components:
explode: false
example: "vended-credentials,remote-signing"
+ user-agent:
+ name: User-Agent
+ in: header
+ description: >
+ Recommended 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.
+
+
+ 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 client library,
+ then the language runtime. The Iceberg client library token is the one
+ component every client can supply and SHOULD always be present.
+ Recommended library tokens are `iceberg-java`, `pyiceberg`,
Review Comment:
In order to make this new header format actionable by servers, I'd suggest
making at least the library product mandatory (i.e., "MUST be present"), and
the tokens should be prescriptive, not "recommended".
--
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]