This is an automated email from the ASF dual-hosted git repository.

github-actions[bot] pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/iceberg-go.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new d469614db deploy: 10002573905efc80336d4cce8fb49d51f2bf117a
d469614db is described below

commit d469614db93bc476147dcaade119646ef9021a9d
Author: zeroshade <[email protected]>
AuthorDate: Thu Nov 5 17:47:39 2026 +0000

    deploy: 10002573905efc80336d4cce8fb49d51f2bf117a
---
 configuration.html | 22 +++++++++++++++++++++-
 print.html         | 25 ++++++++++++++++++++++++-
 releases.html      |  3 +++
 searchindex.js     |  2 +-
 searchindex.json   |  2 +-
 5 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/configuration.html b/configuration.html
index edf7f1bcd..16abb53b8 100644
--- a/configuration.html
+++ b/configuration.html
@@ -273,7 +273,7 @@ catalog:
 <h3 id="rest-catalogrest"><a class="header" href="#rest-catalogrest">REST 
(<code>catalog/rest</code>)</a></h3>
 <p>The most option-rich surface. Source: <a 
href="https://github.com/apache/iceberg-go/blob/main/catalog/rest/options.go";><code>catalog/rest/options.go</code></a>.</p>
 <div 
class="table-wrapper"><table><thead><tr><th>Group</th><th>Options</th></tr></thead><tbody>
-<tr><td>Authentication</td><td><code>WithCredential</code>, 
<code>WithOAuthToken</code>, <code>WithAuthManager</code>, 
<code>WithAuthURI</code>, <code>WithScope</code>, <code>WithAudience</code>, 
<code>WithResource</code></td></tr>
+<tr><td>Authentication</td><td><code>WithCredential</code>, 
<code>WithOAuthToken</code>, <code>WithAuthManager</code>, 
<code>NewOauth2AuthManager</code>, <code>WithAuthURI</code>, 
<code>WithScope</code>, <code>WithAudience</code>, 
<code>WithResource</code></td></tr>
 <tr><td>AWS SigV4</td><td><code>WithSigV4</code>, 
<code>WithSigV4RegionSvc</code>, <code>WithSigner</code></td></tr>
 <tr><td>HTTP</td><td><code>WithHeaders</code>, <code>WithTLSConfig</code>, 
<code>WithOAuthTLSConfig</code>, <code>WithCustomTransport</code></td></tr>
 <tr><td>Catalog routing</td><td><code>WithPrefix</code>, 
<code>WithWarehouseLocation</code>, <code>WithMetadataLocation</code></td></tr>
@@ -304,6 +304,26 @@ that loads a REST catalog with 
<code>rest.sigv4-enabled=true</code> now fails at
 until the <code>catalog/rest/sigv4</code> backend is blank-imported; the error 
names the
 import to add.</p>
 </blockquote>
+<h4 id="custom-token-sources-google-biglake"><a class="header" 
href="#custom-token-sources-google-biglake">Custom token sources (Google 
BigLake)</a></h4>
+<p><code>WithCredential</code> uses the OAuth2 client-credentials flow against 
the catalog's
+token endpoint. For other identity providers, wrap any 
<code>oauth2.TokenSource</code> with
+<code>NewOauth2AuthManager</code> and pass it to <code>WithAuthManager</code>. 
Google's BigLake Iceberg
+REST catalog, for example, takes Application Default Credentials:</p>
+<pre><code class="language-go">ts, err := google.DefaultTokenSource(ctx, 
&quot;https://www.googleapis.com/auth/cloud-platform&quot;)
+if err != nil {
+       return err
+}
+cat, err := rest.NewCatalog(ctx, &quot;biglake&quot;, 
&quot;https://biglake.googleapis.com/iceberg/v1/restcatalog&quot;,
+       rest.WithAuthManager(rest.NewOauth2AuthManager(ts)),
+       rest.WithWarehouseLocation(&quot;gs://lakehouse-public-data&quot;),
+       rest.WithHeaders(map[string]string{&quot;x-goog-user-project&quot;: 
&quot;my-project&quot;}))
+</code></pre>
+<p>The manager reuses a token until it expires, then asks the source for a new 
one.
+That refresh runs on the HTTP client the source was built with. For
+<code>google.DefaultTokenSource</code> that is the client in the context's
+<code>oauth2.HTTPClient</code> value, or <code>http.DefaultClient</code>, 
which has no timeout.
+Unlike Java's <code>rest.auth.type=google</code>, this is configured in code; 
iceberg-go
+has no <code>rest.auth.type</code> property.</p>
 <h4 id="metrics-reporting"><a class="header" href="#metrics-reporting">Metrics 
reporting</a></h4>
 <p>The REST catalog can POST scan and commit metrics to the catalog's
 <code>.../tables/{table}/metrics</code> endpoint. These properties are passed 
as
diff --git a/print.html b/print.html
index 7fd31acb3..5a807e57e 100644
--- a/print.html
+++ b/print.html
@@ -563,7 +563,7 @@ catalog:
 <h3 id="rest-catalogrest"><a class="header" href="#rest-catalogrest">REST 
(<code>catalog/rest</code>)</a></h3>
 <p>The most option-rich surface. Source: <a 
href="https://github.com/apache/iceberg-go/blob/main/catalog/rest/options.go";><code>catalog/rest/options.go</code></a>.</p>
 <div 
class="table-wrapper"><table><thead><tr><th>Group</th><th>Options</th></tr></thead><tbody>
-<tr><td>Authentication</td><td><code>WithCredential</code>, 
<code>WithOAuthToken</code>, <code>WithAuthManager</code>, 
<code>WithAuthURI</code>, <code>WithScope</code>, <code>WithAudience</code>, 
<code>WithResource</code></td></tr>
+<tr><td>Authentication</td><td><code>WithCredential</code>, 
<code>WithOAuthToken</code>, <code>WithAuthManager</code>, 
<code>NewOauth2AuthManager</code>, <code>WithAuthURI</code>, 
<code>WithScope</code>, <code>WithAudience</code>, 
<code>WithResource</code></td></tr>
 <tr><td>AWS SigV4</td><td><code>WithSigV4</code>, 
<code>WithSigV4RegionSvc</code>, <code>WithSigner</code></td></tr>
 <tr><td>HTTP</td><td><code>WithHeaders</code>, <code>WithTLSConfig</code>, 
<code>WithOAuthTLSConfig</code>, <code>WithCustomTransport</code></td></tr>
 <tr><td>Catalog routing</td><td><code>WithPrefix</code>, 
<code>WithWarehouseLocation</code>, <code>WithMetadataLocation</code></td></tr>
@@ -594,6 +594,26 @@ that loads a REST catalog with 
<code>rest.sigv4-enabled=true</code> now fails at
 until the <code>catalog/rest/sigv4</code> backend is blank-imported; the error 
names the
 import to add.</p>
 </blockquote>
+<h4 id="custom-token-sources-google-biglake"><a class="header" 
href="#custom-token-sources-google-biglake">Custom token sources (Google 
BigLake)</a></h4>
+<p><code>WithCredential</code> uses the OAuth2 client-credentials flow against 
the catalog's
+token endpoint. For other identity providers, wrap any 
<code>oauth2.TokenSource</code> with
+<code>NewOauth2AuthManager</code> and pass it to <code>WithAuthManager</code>. 
Google's BigLake Iceberg
+REST catalog, for example, takes Application Default Credentials:</p>
+<pre><code class="language-go">ts, err := google.DefaultTokenSource(ctx, 
&quot;https://www.googleapis.com/auth/cloud-platform&quot;)
+if err != nil {
+       return err
+}
+cat, err := rest.NewCatalog(ctx, &quot;biglake&quot;, 
&quot;https://biglake.googleapis.com/iceberg/v1/restcatalog&quot;,
+       rest.WithAuthManager(rest.NewOauth2AuthManager(ts)),
+       rest.WithWarehouseLocation(&quot;gs://lakehouse-public-data&quot;),
+       rest.WithHeaders(map[string]string{&quot;x-goog-user-project&quot;: 
&quot;my-project&quot;}))
+</code></pre>
+<p>The manager reuses a token until it expires, then asks the source for a new 
one.
+That refresh runs on the HTTP client the source was built with. For
+<code>google.DefaultTokenSource</code> that is the client in the context's
+<code>oauth2.HTTPClient</code> value, or <code>http.DefaultClient</code>, 
which has no timeout.
+Unlike Java's <code>rest.auth.type=google</code>, this is configured in code; 
iceberg-go
+has no <code>rest.auth.type</code> property.</p>
 <h4 id="metrics-reporting"><a class="header" href="#metrics-reporting">Metrics 
reporting</a></h4>
 <p>The REST catalog can POST scan and commit metrics to the catalog's
 <code>.../tables/{table}/metrics</code> endpoint. These properties are passed 
as
@@ -2718,6 +2738,9 @@ make integration-external-rest
 <p><strong><code>ReplaceFilesWithDeleteFiles</code> removed.</strong> For 
delete-file replacements, use <code>tx.NewRewrite(snapshotProps)</code>, call 
<code>DeleteFile</code> for each source file and 
<code>AddDeleteFileWithDataSequenceNumber</code> for each replacement, then 
commit the builder. Rewrites record a <code>replace</code> snapshot instead of 
<code>overwrite</code>. The five-argument <code>ReplaceFiles</code> API is 
unchanged and remains available for compaction and delete-fil [...]
 </li>
 <li>
+<p><strong>Manifest and deletion-vector reads take a context.</strong> 
<code>Snapshot.Manifests</code>, <code>ManifestFile.Entries</code>, 
<code>iceberg.EntriesWithProjection</code>, <code>dv.ReadDV</code> and 
<code>dv.ReadDVs</code> now take a <code>context.Context</code> first argument 
and pass it to <code>IO.Open</code>. Custom <code>ManifestFile</code> 
implementations must add it to <code>Entries</code>.</p>
+</li>
+<li>
 <p><strong>Path-based data-file addition renamed.</strong> Replace 
<code>Transaction.AddFiles</code> with <code>AddDataFilesByPath</code>, 
<code>AddFilesOption</code> with <code>AddDataFilesByPathOption</code>, and 
<code>WithAddFilesConcurrency</code> with 
<code>WithAddDataFilesByPathConcurrency</code>. Behavior is unchanged.</p>
 </li>
 <li>
diff --git a/releases.html b/releases.html
index a648e9a87..ea990ba85 100644
--- a/releases.html
+++ b/releases.html
@@ -270,6 +270,9 @@
 <p><strong><code>ReplaceFilesWithDeleteFiles</code> removed.</strong> For 
delete-file replacements, use <code>tx.NewRewrite(snapshotProps)</code>, call 
<code>DeleteFile</code> for each source file and 
<code>AddDeleteFileWithDataSequenceNumber</code> for each replacement, then 
commit the builder. Rewrites record a <code>replace</code> snapshot instead of 
<code>overwrite</code>. The five-argument <code>ReplaceFiles</code> API is 
unchanged and remains available for compaction and delete-fil [...]
 </li>
 <li>
+<p><strong>Manifest and deletion-vector reads take a context.</strong> 
<code>Snapshot.Manifests</code>, <code>ManifestFile.Entries</code>, 
<code>iceberg.EntriesWithProjection</code>, <code>dv.ReadDV</code> and 
<code>dv.ReadDVs</code> now take a <code>context.Context</code> first argument 
and pass it to <code>IO.Open</code>. Custom <code>ManifestFile</code> 
implementations must add it to <code>Entries</code>.</p>
+</li>
+<li>
 <p><strong>Path-based data-file addition renamed.</strong> Replace 
<code>Transaction.AddFiles</code> with <code>AddDataFilesByPath</code>, 
<code>AddFilesOption</code> with <code>AddDataFilesByPathOption</code>, and 
<code>WithAddFilesConcurrency</code> with 
<code>WithAddDataFilesByPathConcurrency</code>. Behavior is unchanged.</p>
 </li>
 <li>
diff --git a/searchindex.js b/searchindex.js
index 75267a3da..8db8f1c5e 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Object.assign(window.search, 
{"doc_urls":["introduction.html#iceberg-go","introduction.html#where-to-start","introduction.html#what-works-today","introduction.html#beyond-go","introduction.html#help-and-contribution","install.html#install","install.html#requirements","install.html#installation","getting-started.html#getting-started","getting-started.html#1-install","getting-started.html#2-open-a-local-catalog","getting-started.html#3-create-a-namespace-and-a-table","getting-started.html#
 [...]
\ No newline at end of file
+Object.assign(window.search, 
{"doc_urls":["introduction.html#iceberg-go","introduction.html#where-to-start","introduction.html#what-works-today","introduction.html#beyond-go","introduction.html#help-and-contribution","install.html#install","install.html#requirements","install.html#installation","getting-started.html#getting-started","getting-started.html#1-install","getting-started.html#2-open-a-local-catalog","getting-started.html#3-create-a-namespace-and-a-table","getting-started.html#
 [...]
\ No newline at end of file
diff --git a/searchindex.json b/searchindex.json
index 4e623460e..abc44bf7f 100644
--- a/searchindex.json
+++ b/searchindex.json
@@ -1 +1 @@
-{"doc_urls":["introduction.html#iceberg-go","introduction.html#where-to-start","introduction.html#what-works-today","introduction.html#beyond-go","introduction.html#help-and-contribution","install.html#install","install.html#requirements","install.html#installation","getting-started.html#getting-started","getting-started.html#1-install","getting-started.html#2-open-a-local-catalog","getting-started.html#3-create-a-namespace-and-a-table","getting-started.html#4-write-some-arrow-data","get
 [...]
\ No newline at end of file
+{"doc_urls":["introduction.html#iceberg-go","introduction.html#where-to-start","introduction.html#what-works-today","introduction.html#beyond-go","introduction.html#help-and-contribution","install.html#install","install.html#requirements","install.html#installation","getting-started.html#getting-started","getting-started.html#1-install","getting-started.html#2-open-a-local-catalog","getting-started.html#3-create-a-namespace-and-a-table","getting-started.html#4-write-some-arrow-data","get
 [...]
\ No newline at end of file

Reply via email to