projectnessie / nessie

Nessie: Transactional Catalog for Data Lakes with Git-like semantics
https://projectnessie.org
Apache License 2.0
973 stars 124 forks source link

[Feature]: Overwrite author with a HTTP header #9136

Closed bigluck closed 3 weeks ago

bigluck commented 1 month ago

Description

Nessie now supports two types of requests: Nessie API v1/2 and Iceberg REST API. The author of a write operation is inferred from the authentication type. If I remember correctly, with the Nessie APIs, it's possible to define metadata related to the user performing the write operation.

I'm wondering if it would be possible to support, for both APIs, the ability to define and override the message author by setting an HTTP Header (X-Nessie-Author?)

Expected Use Cases

There are cases where there's a generic authentication for an organization, but multiple users within the organization can modify the data catalog.

By standardizing a header compatible with both Nessie API v1/2 and Iceberg REST API, it would become easier to propagate information about the user performing the modification operation in a way that is agnostic to the type of API implementation the system is using.

This solution should also be compatible with pyiceberg. At the init time we can specify the headers the library needs to send to the server.

Requested Changes in public API

No response

dimas-b commented 1 month ago

Correction: the "committer" is inferred from authentication data.