Revanth14 opened a new issue, #2548:
URL: https://github.com/apache/iceberg-go/issues/2548
### Feature Request / Improvement
### Problem
The CLI's config file only accepts a fixed set of catalog fields
(`credential`, `warehouse`, and a `rest:` block with the three SigV4 settings),
and `cmd/iceberg` maps each one to a `rest.Option`. Any other catalog property
can't be set from the CLI. That now includes `rest.auth.type` (#2502, #2538,
#2547): a BigLake catalog (`rest.auth.type=google`) or one behind HTTP Basic
authentication works from Go and through `catalog.Load`, but not from
`iceberg`. Each new property would need its own YAML field and flag.
### Proposal
Add a `properties` map to each catalog entry and pass it through with
`rest.WithAdditionalProps`, the way PyIceberg's `.pyiceberg.yaml` passes
catalog properties:
```yaml
catalog:
biglake:
type: rest
uri: https://biglake.googleapis.com/iceberg/v1/restcatalog
warehouse: gs://my-bucket
properties:
rest.auth.type: google
header.x-goog-user-project: my-project
```
- The existing fields and flags keep working and take precedence over the
same setting in `properties`.
- `rest.auth.type` already reads additional properties, so `none`, `basic`,
`sigv4` and `google` work with no further CLI changes. `google` also needs a
blank import of `catalog/rest/googleauth` in `cmd/iceberg`, next to the
existing `catalog/rest/sigv4` import.
- For the non-REST catalogs, the map could also be merged into the
properties they're built from, or left for later.
A `--catalog-property key=value` flag reusing the `parseProperties` helper
could follow if one-off overrides are useful.
### Context
Follow-up to #2428. I'd like to work on this if the approach looks right.
--
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]