Hi all,

Following the discussion thread [1], I'd like to call a vote on
standardizing the client User-Agent format in the REST catalog spec.

What a +1 endorses:
- Clients identify themselves with the standard HTTP User-Agent header
  (RFC 7231): whitespace-separated product/version tokens, most specific
  first (engine, then any integration or connector, then the Iceberg
  library, then the runtime), with an optional parenthesized comment for
  extra context. Example:

    Spark/4.0.0 iceberg-spark/1.9.0 iceberg-java/1.9.0 (scala 2.13.16)

- When the header is sent, the Iceberg library token (iceberg-java,
  pyiceberg, iceberg-rust, iceberg-go) must be present.
- The header is advisory. Servers must not reject a request just because
  it is missing or malformed, and must not use it for authentication.
  Servers may refuse operations from client versions known to be unsafe.
  It is not a capability negotiation mechanism.

The spec change is in PR [2]. If the vote passes, the follow-ups are
conforming the client libraries (java, python, rust, go) to emit this
format.


[ ] +1 Adopt this User-Agent format in the REST spec
[ ] 0
[ ] -1 Do not adopt (please explain)

Thanks,
Rahul

[1] https://lists.apache.org/thread/d6hkx66o8qc1lolh11l1lmswxlq0bpj9
[2] https://github.com/apache/iceberg/pull/17727

Reply via email to