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 ea855107e deploy: f5e2d7496f27c70c25481080724d3b586b0a94ab
ea855107e is described below

commit ea855107e52a55757547f4edcefe1f6682891462
Author: laskoviymishka <[email protected]>
AuthorDate: Sun Oct 11 13:53:48 2026 +0000

    deploy: f5e2d7496f27c70c25481080724d3b586b0a94ab
---
 configuration.html | 11 ++++++++---
 print.html         | 11 ++++++++---
 searchindex.js     |  2 +-
 searchindex.json   |  2 +-
 4 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/configuration.html b/configuration.html
index 14ece33f0..a4ebd4429 100644
--- a/configuration.html
+++ b/configuration.html
@@ -409,16 +409,20 @@ import _ 
&quot;github.com/apache/iceberg-go/io/gocloud/azure&quot; // abfs, abfs
 </tbody></table>
 </div>
 <h3 id="azure-data-lake-storage--blob"><a class="header" 
href="#azure-data-lake-storage--blob">Azure Data Lake Storage / Blob</a></h3>
-<p>Authentication is selected in the following order 
(<code>io/gocloud/azure/azure.go</code>); the first applicable option wins, and 
if none of 1-4 apply the default credential chain (5) is used:</p>
+<p>Authentication is selected in the following order 
(<code>io/gocloud/azure/azure.go</code>); the first applicable option wins, and 
if none of 1-5 apply the default credential chain (6) is used:</p>
 <ol>
 <li>Shared key: a nonempty <code>adls.auth.shared-key.account.name</code> 
selects this path and requires a nonempty 
<code>adls.auth.shared-key.account.key</code>.</li>
 <li>Per-host SAS token: <code>adls.sas-token.&lt;hostname&gt;</code>, where 
<code>&lt;hostname&gt;</code> exactly matches the storage account hostname (for 
example, <code>myaccount.dfs.core.windows.net</code>).</li>
 <li>Per-account connection string: 
<code>adls.connection-string.&lt;account-name&gt;</code> (for example, 
<code>adls.connection-string.myaccount</code>).</li>
+<li>Static access token: a nonempty <code>adls.token</code>, supplied without 
the <code>Bearer </code> prefix.</li>
 <li>Managed identity: <code>adls.auth.managed-identity.enabled</code> set to 
exactly <code>&quot;true&quot;</code> selects this path and uses 
<code>ManagedIdentityCredential</code> directly. Set 
<code>adls.client-id</code> to select a user-assigned managed identity; 
otherwise, the system-assigned managed identity is used.</li>
 <li>Default credential chain: <code>DefaultAzureCredential</code>, which 
includes managed identity among its credential sources.</li>
 </ol>
+<p><code>adls.token</code> accepts an OAuth2 access token for Azure Storage, 
including a token supplied by a catalog. An empty value is ignored. A rejected 
or expired token does not fall back to managed identity or the default 
credential chain.</p>
+<p>The token is static and is not refreshed. As in <a 
href="https://github.com/apache/iceberg/blob/main/azure/src/main/java/org/apache/iceberg/azure/AzureProperties.java";>Java</a>
 and <a 
href="https://github.com/apache/iceberg-python/blob/main/pyiceberg/io/fsspec.py";>PyIceberg</a>,
 the credential reports a one-hour cache window to the Azure SDK each time the 
SDK requests the token. This does not extend the token's actual validity: Azure 
enforces its expiration. Callers must obtain a new  [...]
+<p>A REST catalog can also vend <code>adls.token</code> as a storage 
credential. The token carries no expiry of its own, so a vended token's expiry 
comes from <code>expiration-time</code> in the same credential when the catalog 
supplies one. Without it, a table FileIO that can fetch new credentials assumes 
a 60-minute lifetime and renews them shortly before it ends, and one that 
cannot, such as a FileIO for a scan plan's credentials, treats them as never 
expiring. A token whose actual li [...]
 <blockquote>
-<p><strong>Note on cross-client parity.</strong> The two properties in step 4 
diverge from the
+<p><strong>Note on cross-client parity.</strong> The two properties in step 5 
diverge from the
 other clients. <code>adls.auth.managed-identity.enabled</code> is Go-specific: 
neither
 Iceberg Java nor PyIceberg defines a property that forces
 <code>ManagedIdentityCredential</code>, so catalog properties that set it do 
not carry
@@ -427,7 +431,7 @@ principal client ID used together with 
<code>adls.client-secret</code> and
 <code>adls.tenant-id</code>, neither of which iceberg-go defines (see the
 <a 
href="https://py.iceberg.apache.org/configuration/#azure-data-lake";>PyIceberg 
ADLS configuration</a>),
 while Java's <code>AzureProperties</code> defines no 
<code>adls.client-id</code> at all. Here it is
-only ever read as a user-assigned managed identity ID, and only when step 4 is
+only ever read as a user-assigned managed identity ID, and only when step 5 is
 selected.</p>
 </blockquote>
 <p>Tuning properties:</p>
@@ -436,6 +440,7 @@ selected.</p>
 <tr><td><code>adls.auth.shared-key.account.key</code> 
(<code>io.ADLSSharedKeyAccountKey</code>)</td><td>Account key.</td></tr>
 <tr><td><code>adls.sas-token.&lt;host&gt;</code> (prefix 
<code>io.ADLSSasTokenPrefix</code>)</td><td>Per-host SAS token.</td></tr>
 <tr><td><code>adls.connection-string.&lt;account-name&gt;</code> (prefix 
<code>io.ADLSConnectionStringPrefix</code>)</td><td>Per-account connection 
string.</td></tr>
+<tr><td><code>adls.token</code> (<code>io.ADLSToken</code>)</td><td>Static 
Azure Storage access token, without the <code>Bearer </code> prefix. Subject to 
the precedence above; not refreshed.</td></tr>
 <tr><td><code>adls.client-id</code> 
(<code>io.ADLSClientID</code>)</td><td>Client ID of a user-assigned managed 
identity. Used only when the explicit managed-identity authentication path is 
selected.</td></tr>
 <tr><td><code>adls.endpoint</code> 
(<code>io.ADLSEndpoint</code>)</td><td>Storage domain (e.g. 
<code>blob.core.windows.net</code>).</td></tr>
 <tr><td><code>adls.protocol</code> 
(<code>io.ADLSProtocol</code>)</td><td><code>http</code> or 
<code>https</code>.</td></tr>
diff --git a/print.html b/print.html
index f1bced974..bcc88ae71 100644
--- a/print.html
+++ b/print.html
@@ -696,16 +696,20 @@ import _ 
&quot;github.com/apache/iceberg-go/io/gocloud/azure&quot; // abfs, abfs
 </tbody></table>
 </div>
 <h3 id="azure-data-lake-storage--blob"><a class="header" 
href="#azure-data-lake-storage--blob">Azure Data Lake Storage / Blob</a></h3>
-<p>Authentication is selected in the following order 
(<code>io/gocloud/azure/azure.go</code>); the first applicable option wins, and 
if none of 1-4 apply the default credential chain (5) is used:</p>
+<p>Authentication is selected in the following order 
(<code>io/gocloud/azure/azure.go</code>); the first applicable option wins, and 
if none of 1-5 apply the default credential chain (6) is used:</p>
 <ol>
 <li>Shared key: a nonempty <code>adls.auth.shared-key.account.name</code> 
selects this path and requires a nonempty 
<code>adls.auth.shared-key.account.key</code>.</li>
 <li>Per-host SAS token: <code>adls.sas-token.&lt;hostname&gt;</code>, where 
<code>&lt;hostname&gt;</code> exactly matches the storage account hostname (for 
example, <code>myaccount.dfs.core.windows.net</code>).</li>
 <li>Per-account connection string: 
<code>adls.connection-string.&lt;account-name&gt;</code> (for example, 
<code>adls.connection-string.myaccount</code>).</li>
+<li>Static access token: a nonempty <code>adls.token</code>, supplied without 
the <code>Bearer </code> prefix.</li>
 <li>Managed identity: <code>adls.auth.managed-identity.enabled</code> set to 
exactly <code>&quot;true&quot;</code> selects this path and uses 
<code>ManagedIdentityCredential</code> directly. Set 
<code>adls.client-id</code> to select a user-assigned managed identity; 
otherwise, the system-assigned managed identity is used.</li>
 <li>Default credential chain: <code>DefaultAzureCredential</code>, which 
includes managed identity among its credential sources.</li>
 </ol>
+<p><code>adls.token</code> accepts an OAuth2 access token for Azure Storage, 
including a token supplied by a catalog. An empty value is ignored. A rejected 
or expired token does not fall back to managed identity or the default 
credential chain.</p>
+<p>The token is static and is not refreshed. As in <a 
href="https://github.com/apache/iceberg/blob/main/azure/src/main/java/org/apache/iceberg/azure/AzureProperties.java";>Java</a>
 and <a 
href="https://github.com/apache/iceberg-python/blob/main/pyiceberg/io/fsspec.py";>PyIceberg</a>,
 the credential reports a one-hour cache window to the Azure SDK each time the 
SDK requests the token. This does not extend the token's actual validity: Azure 
enforces its expiration. Callers must obtain a new  [...]
+<p>A REST catalog can also vend <code>adls.token</code> as a storage 
credential. The token carries no expiry of its own, so a vended token's expiry 
comes from <code>expiration-time</code> in the same credential when the catalog 
supplies one. Without it, a table FileIO that can fetch new credentials assumes 
a 60-minute lifetime and renews them shortly before it ends, and one that 
cannot, such as a FileIO for a scan plan's credentials, treats them as never 
expiring. A token whose actual li [...]
 <blockquote>
-<p><strong>Note on cross-client parity.</strong> The two properties in step 4 
diverge from the
+<p><strong>Note on cross-client parity.</strong> The two properties in step 5 
diverge from the
 other clients. <code>adls.auth.managed-identity.enabled</code> is Go-specific: 
neither
 Iceberg Java nor PyIceberg defines a property that forces
 <code>ManagedIdentityCredential</code>, so catalog properties that set it do 
not carry
@@ -714,7 +718,7 @@ principal client ID used together with 
<code>adls.client-secret</code> and
 <code>adls.tenant-id</code>, neither of which iceberg-go defines (see the
 <a 
href="https://py.iceberg.apache.org/configuration/#azure-data-lake";>PyIceberg 
ADLS configuration</a>),
 while Java's <code>AzureProperties</code> defines no 
<code>adls.client-id</code> at all. Here it is
-only ever read as a user-assigned managed identity ID, and only when step 4 is
+only ever read as a user-assigned managed identity ID, and only when step 5 is
 selected.</p>
 </blockquote>
 <p>Tuning properties:</p>
@@ -723,6 +727,7 @@ selected.</p>
 <tr><td><code>adls.auth.shared-key.account.key</code> 
(<code>io.ADLSSharedKeyAccountKey</code>)</td><td>Account key.</td></tr>
 <tr><td><code>adls.sas-token.&lt;host&gt;</code> (prefix 
<code>io.ADLSSasTokenPrefix</code>)</td><td>Per-host SAS token.</td></tr>
 <tr><td><code>adls.connection-string.&lt;account-name&gt;</code> (prefix 
<code>io.ADLSConnectionStringPrefix</code>)</td><td>Per-account connection 
string.</td></tr>
+<tr><td><code>adls.token</code> (<code>io.ADLSToken</code>)</td><td>Static 
Azure Storage access token, without the <code>Bearer </code> prefix. Subject to 
the precedence above; not refreshed.</td></tr>
 <tr><td><code>adls.client-id</code> 
(<code>io.ADLSClientID</code>)</td><td>Client ID of a user-assigned managed 
identity. Used only when the explicit managed-identity authentication path is 
selected.</td></tr>
 <tr><td><code>adls.endpoint</code> 
(<code>io.ADLSEndpoint</code>)</td><td>Storage domain (e.g. 
<code>blob.core.windows.net</code>).</td></tr>
 <tr><td><code>adls.protocol</code> 
(<code>io.ADLSProtocol</code>)</td><td><code>http</code> or 
<code>https</code>.</td></tr>
diff --git a/searchindex.js b/searchindex.js
index f4d081aaf..ecf3525cd 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 385c7ce34..8688bfbe3 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