This is an automated email from the ASF dual-hosted git repository.
dimas pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new aa72157a8 Rename AccessConfig and AccessConfigProvider for clarity
(#2883)
aa72157a8 is described below
commit aa72157a8433c98f1de19b4237d31188cc6c3c83
Author: Nuoya Jiang <[email protected]>
AuthorDate: Mon Nov 10 17:53:01 2025 -0600
Rename AccessConfig and AccessConfigProvider for clarity (#2883)
* rename AccessConfig for clarity
* rename getStorageAccessConfig() and add javadoc
---
.../connection/ConnectionCredentials.java | 10 +++----
.../AtomicOperationMetaStoreManager.java | 6 ++--
.../dao/entity/ScopedCredentialsResult.java | 20 ++++++--------
.../TransactionalMetaStoreManagerImpl.java | 6 ++--
.../core/storage/PolarisStorageIntegration.java | 2 +-
...{AccessConfig.java => StorageAccessConfig.java} | 8 +++---
.../aws/AwsCredentialsStorageIntegration.java | 6 ++--
.../azure/AzureCredentialsStorageIntegration.java | 10 +++----
.../core/storage/cache/StorageCredentialCache.java | 10 +++----
.../storage/cache/StorageCredentialCacheEntry.java | 15 +++++-----
.../gcp/GcpCredentialsStorageIntegration.java | 6 ++--
.../storage/InMemoryStorageIntegrationTest.java | 2 +-
...onfigTest.java => StorageAccessConfigTest.java} | 20 +++++++-------
.../AzureCredentialsStorageIntegrationTest.java | 8 +++---
.../storage/cache/StorageCredentialCacheTest.java | 12 ++++----
.../aws/AwsCredentialsStorageIntegrationTest.java | 32 +++++++++++-----------
.../AzureCredentialStorageIntegrationTest.java | 26 +++++++++---------
.../gcp/GcpCredentialsStorageIntegrationTest.java | 14 +++++-----
.../service/catalog/iceberg/IcebergCatalog.java | 16 +++++------
.../catalog/iceberg/IcebergCatalogAdapter.java | 10 +++----
.../catalog/iceberg/IcebergCatalogHandler.java | 20 +++++++-------
.../service/catalog/io/DefaultFileIOFactory.java | 10 +++----
.../polaris/service/catalog/io/FileIOFactory.java | 7 +++--
.../polaris/service/catalog/io/FileIOUtil.java | 16 +++++------
...vider.java => StorageAccessConfigProvider.java} | 16 +++++------
.../catalog/io/WasbTranslatingFileIOFactory.java | 4 +--
.../catalog/PolarisCallContextCatalogFactory.java | 10 +++----
.../PolarisStorageIntegrationProviderImpl.java | 6 ++--
.../polaris/service/task/TaskFileIOSupplier.java | 16 +++++------
.../service/admin/PolarisAuthzTestBase.java | 8 +++---
.../AbstractPolarisGenericTableCatalogTest.java | 10 +++----
.../iceberg/AbstractIcebergCatalogTest.java | 20 +++++++-------
.../iceberg/AbstractIcebergCatalogViewTest.java | 10 +++----
.../iceberg/IcebergCatalogHandlerAuthzTest.java | 10 +++----
...ebergCatalogHandlerFineGrainedDisabledTest.java | 2 +-
.../service/catalog/io/FileIOFactoryTest.java | 5 ++--
.../catalog/policy/AbstractPolicyCatalogTest.java | 10 +++----
.../task/BatchFileCleanupTaskHandlerTest.java | 4 +--
.../task/ManifestFileCleanupTaskHandlerTest.java | 4 +--
.../service/task/TableCleanupTaskHandlerTest.java | 4 +--
.../polaris/service/task/TaskExecutorImplTest.java | 2 +-
.../apache/polaris/service/TestFileIOFactory.java | 4 +--
.../org/apache/polaris/service/TestServices.java | 14 +++++-----
.../service/catalog/io/MeasuredFileIOFactory.java | 6 ++--
44 files changed, 228 insertions(+), 229 deletions(-)
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/credentials/connection/ConnectionCredentials.java
b/polaris-core/src/main/java/org/apache/polaris/core/credentials/connection/ConnectionCredentials.java
index bc8cd3e95..1d86bf03c 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/credentials/connection/ConnectionCredentials.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/credentials/connection/ConnectionCredentials.java
@@ -22,21 +22,21 @@ import
com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.time.Instant;
import java.util.Map;
import java.util.Optional;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.immutables.PolarisImmutable;
/**
* Encapsulates credentials and configuration needed to connect to external
federated catalogs.
*
- * <p>Similar to {@link AccessConfig} for storage, this class holds the
credentials and properties
- * required for Polaris to authenticate with remote catalog services (e.g.,
AWS Glue, other Iceberg
- * REST catalogs).
+ * <p>Similar to {@link StorageAccessConfig} for storage, this class holds the
credentials and
+ * properties required for Polaris to authenticate with remote catalog
services (e.g., AWS Glue,
+ * other Iceberg REST catalogs).
*
* <p>Credentials may be temporary and include an expiration time.
*
* <p><b>Note:</b> This interface currently includes only {@code credentials}
and {@code expiresAt}.
* Additional fields like {@code extraProperties} and {@code
internalProperties} (similar to {@link
- * AccessConfig}) are not included for now but can be added later if needed
for more complex
+ * StorageAccessConfig}) are not included for now but can be added later if
needed for more complex
* credential scenarios.
*/
@PolarisImmutable
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/AtomicOperationMetaStoreManager.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/AtomicOperationMetaStoreManager.java
index 1ec8c89d4..3ae2ac2c9 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/AtomicOperationMetaStoreManager.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/AtomicOperationMetaStoreManager.java
@@ -77,9 +77,9 @@ import
org.apache.polaris.core.policy.PolarisPolicyMappingRecord;
import org.apache.polaris.core.policy.PolicyEntity;
import org.apache.polaris.core.policy.PolicyMappingUtil;
import org.apache.polaris.core.policy.PolicyType;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisStorageConfigurationInfo;
import org.apache.polaris.core.storage.PolarisStorageIntegration;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1635,14 +1635,14 @@ public class AtomicOperationMetaStoreManager extends
BaseMetaStoreManager {
entityId);
try {
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
storageIntegration.getSubscopedCreds(
callCtx.getRealmConfig(),
allowListOperation,
allowedReadLocations,
allowedWriteLocations,
refreshCredentialsEndpoint);
- return new ScopedCredentialsResult(accessConfig);
+ return new ScopedCredentialsResult(storageAccessConfig);
} catch (Exception ex) {
return new ScopedCredentialsResult(
BaseResult.ReturnStatus.SUBSCOPE_CREDS_ERROR, ex.getMessage());
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/dao/entity/ScopedCredentialsResult.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/dao/entity/ScopedCredentialsResult.java
index 76526a863..fab339243 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/dao/entity/ScopedCredentialsResult.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/dao/entity/ScopedCredentialsResult.java
@@ -20,13 +20,13 @@ package org.apache.polaris.core.persistence.dao.entity;
import jakarta.annotation.Nonnull;
import jakarta.annotation.Nullable;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
/** Result of a getSubscopedCredsForEntity() call */
public class ScopedCredentialsResult extends BaseResult {
// null if not success. Else, set of name/value pairs for the credentials
- private final AccessConfig accessConfig;
+ private final StorageAccessConfig storageAccessConfig;
/**
* Constructor for an error
@@ -37,20 +37,16 @@ public class ScopedCredentialsResult extends BaseResult {
public ScopedCredentialsResult(
@Nonnull ReturnStatus errorCode, @Nullable String extraInformation) {
super(errorCode, extraInformation);
- this.accessConfig = null;
+ this.storageAccessConfig = null;
}
- /**
- * Constructor for success
- *
- * @param accessConfig credentials
- */
- public ScopedCredentialsResult(AccessConfig accessConfig) {
+ /** Constructor for success */
+ public ScopedCredentialsResult(StorageAccessConfig storageAccessConfig) {
super(ReturnStatus.SUCCESS);
- this.accessConfig = accessConfig;
+ this.storageAccessConfig = storageAccessConfig;
}
- public AccessConfig getAccessConfig() {
- return accessConfig;
+ public StorageAccessConfig getStorageAccessConfig() {
+ return storageAccessConfig;
}
}
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java
index db3ccd0f3..815e119d3 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java
@@ -82,9 +82,9 @@ import
org.apache.polaris.core.policy.PolarisPolicyMappingRecord;
import org.apache.polaris.core.policy.PolicyEntity;
import org.apache.polaris.core.policy.PolicyMappingUtil;
import org.apache.polaris.core.policy.PolicyType;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisStorageConfigurationInfo;
import org.apache.polaris.core.storage.PolarisStorageIntegration;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -2128,14 +2128,14 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
entityId);
try {
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
storageIntegration.getSubscopedCreds(
callCtx.getRealmConfig(),
allowListOperation,
allowedReadLocations,
allowedWriteLocations,
refreshCredentialsEndpoint);
- return new ScopedCredentialsResult(accessConfig);
+ return new ScopedCredentialsResult(storageAccessConfig);
} catch (Exception ex) {
return new ScopedCredentialsResult(
BaseResult.ReturnStatus.SUBSCOPE_CREDS_ERROR, ex.getMessage());
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/storage/PolarisStorageIntegration.java
b/polaris-core/src/main/java/org/apache/polaris/core/storage/PolarisStorageIntegration.java
index 1828d01c8..8a2ae7c3a 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/storage/PolarisStorageIntegration.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/storage/PolarisStorageIntegration.java
@@ -62,7 +62,7 @@ public abstract class PolarisStorageIntegration<T extends
PolarisStorageConfigur
* handling the relative path
* @return An enum map including the scoped credentials
*/
- public abstract AccessConfig getSubscopedCreds(
+ public abstract StorageAccessConfig getSubscopedCreds(
@Nonnull RealmConfig realmConfig,
boolean allowListOperation,
@Nonnull Set<String> allowedReadLocations,
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/storage/AccessConfig.java
b/polaris-core/src/main/java/org/apache/polaris/core/storage/StorageAccessConfig.java
similarity index 94%
rename from
polaris-core/src/main/java/org/apache/polaris/core/storage/AccessConfig.java
rename to
polaris-core/src/main/java/org/apache/polaris/core/storage/StorageAccessConfig.java
index 94e74a3d6..19745322d 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/storage/AccessConfig.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/storage/StorageAccessConfig.java
@@ -26,7 +26,7 @@ import org.apache.polaris.immutables.PolarisImmutable;
import org.immutables.value.Value;
@PolarisImmutable
-public interface AccessConfig {
+public interface StorageAccessConfig {
Map<String, String> credentials();
Map<String, String> extraProperties();
@@ -57,8 +57,8 @@ public interface AccessConfig {
}
}
- static AccessConfig.Builder builder() {
- return ImmutableAccessConfig.builder();
+ static StorageAccessConfig.Builder builder() {
+ return ImmutableStorageAccessConfig.builder();
}
interface Builder {
@@ -89,6 +89,6 @@ public interface AccessConfig {
}
}
- AccessConfig build();
+ StorageAccessConfig build();
}
}
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/storage/aws/AwsCredentialsStorageIntegration.java
b/polaris-core/src/main/java/org/apache/polaris/core/storage/aws/AwsCredentialsStorageIntegration.java
index 8023f7a60..e393911f7 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/storage/aws/AwsCredentialsStorageIntegration.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/storage/aws/AwsCredentialsStorageIntegration.java
@@ -28,8 +28,8 @@ import java.util.Optional;
import java.util.Set;
import java.util.stream.Stream;
import org.apache.polaris.core.config.RealmConfig;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.InMemoryStorageIntegration;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import org.apache.polaris.core.storage.StorageUtil;
import org.apache.polaris.core.storage.aws.StsClientProvider.StsDestination;
@@ -70,7 +70,7 @@ public class AwsCredentialsStorageIntegration
/** {@inheritDoc} */
@Override
- public AccessConfig getSubscopedCreds(
+ public StorageAccessConfig getSubscopedCreds(
@Nonnull RealmConfig realmConfig,
boolean allowListOperation,
@Nonnull Set<String> allowedReadLocations,
@@ -80,7 +80,7 @@ public class AwsCredentialsStorageIntegration
realmConfig.getConfig(STORAGE_CREDENTIAL_DURATION_SECONDS);
AwsStorageConfigurationInfo storageConfig = config();
String region = storageConfig.getRegion();
- AccessConfig.Builder accessConfig = AccessConfig.builder();
+ StorageAccessConfig.Builder accessConfig = StorageAccessConfig.builder();
if (shouldUseSts(storageConfig)) {
AssumeRoleRequest.Builder request =
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/storage/azure/AzureCredentialsStorageIntegration.java
b/polaris-core/src/main/java/org/apache/polaris/core/storage/azure/AzureCredentialsStorageIntegration.java
index a043a7daa..0b189b311 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/storage/azure/AzureCredentialsStorageIntegration.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/storage/azure/AzureCredentialsStorageIntegration.java
@@ -49,8 +49,8 @@ import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import org.apache.polaris.core.config.RealmConfig;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.InMemoryStorageIntegration;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -73,7 +73,7 @@ public class AzureCredentialsStorageIntegration
}
@Override
- public AccessConfig getSubscopedCreds(
+ public StorageAccessConfig getSubscopedCreds(
@Nonnull RealmConfig realmConfig,
boolean allowListOperation,
@Nonnull Set<String> allowedReadLocations,
@@ -176,12 +176,12 @@ public class AzureCredentialsStorageIntegration
}
@VisibleForTesting
- static AccessConfig toAccessConfig(
+ static StorageAccessConfig toAccessConfig(
String sasToken,
String storageDnsName,
Instant expiresAt,
Optional<String> refreshCredentialsEndpoint) {
- AccessConfig.Builder accessConfig = AccessConfig.builder();
+ StorageAccessConfig.Builder accessConfig = StorageAccessConfig.builder();
handleAzureCredential(accessConfig, sasToken, storageDnsName, expiresAt);
accessConfig.put(
StorageAccessProperty.EXPIRATION_TIME,
String.valueOf(expiresAt.toEpochMilli()));
@@ -193,7 +193,7 @@ public class AzureCredentialsStorageIntegration
}
private static void handleAzureCredential(
- AccessConfig.Builder config, String sasToken, String host, Instant
expiresAt) {
+ StorageAccessConfig.Builder config, String sasToken, String host,
Instant expiresAt) {
config.putCredential(StorageAccessProperty.AZURE_SAS_TOKEN.getPropertyName() +
host, sasToken);
config.putCredential(
StorageAccessProperty.AZURE_SAS_TOKEN_EXPIRES_AT_MS_PREFIX.getPropertyName() +
host,
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCache.java
b/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCache.java
index 82de79915..93f5e351a 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCache.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCache.java
@@ -37,8 +37,8 @@ import org.apache.polaris.core.config.RealmConfig;
import org.apache.polaris.core.entity.PolarisEntity;
import org.apache.polaris.core.entity.PolarisEntityType;
import org.apache.polaris.core.persistence.dao.entity.ScopedCredentialsResult;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisCredentialVendor;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -103,7 +103,7 @@ public class StorageCredentialCache {
* @param allowedWriteLocations a set of allowed to write locations.
* @return the a map of string containing the scoped creds information
*/
- public AccessConfig getOrGenerateSubScopeCreds(
+ public StorageAccessConfig getOrGenerateSubScopeCreds(
@Nonnull PolarisCredentialVendor credentialVendor,
@Nonnull PolarisCallContext callCtx,
@Nonnull PolarisEntity polarisEntity,
@@ -140,7 +140,7 @@ public class StorageCredentialCache {
if (scopedCredentialsResult.isSuccess()) {
long maxCacheDurationMs =
maxCacheDurationMs(callCtx.getRealmConfig());
return new StorageCredentialCacheEntry(
- scopedCredentialsResult.getAccessConfig(), maxCacheDurationMs);
+ scopedCredentialsResult.getStorageAccessConfig(),
maxCacheDurationMs);
}
LOGGER
.atDebug()
@@ -156,11 +156,11 @@ public class StorageCredentialCache {
@VisibleForTesting
@Nullable
Map<String, String> getIfPresent(StorageCredentialCacheKey key) {
- return getAccessConfig(key).map(AccessConfig::credentials).orElse(null);
+ return
getAccessConfig(key).map(StorageAccessConfig::credentials).orElse(null);
}
@VisibleForTesting
- Optional<AccessConfig> getAccessConfig(StorageCredentialCacheKey key) {
+ Optional<StorageAccessConfig> getAccessConfig(StorageCredentialCacheKey key)
{
return Optional.ofNullable(cache.getIfPresent(key))
.map(StorageCredentialCacheEntry::toAccessConfig);
}
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheEntry.java
b/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheEntry.java
index 7f5789ecb..1141b34bf 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheEntry.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheEntry.java
@@ -19,17 +19,18 @@
package org.apache.polaris.core.storage.cache;
import java.time.Instant;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
/** A storage credential cached entry. */
public class StorageCredentialCacheEntry {
/** The scoped creds map that is fetched from a creds vending service */
- public final AccessConfig accessConfig;
+ public final StorageAccessConfig storageAccessConfig;
private final long maxCacheDurationMs;
- public StorageCredentialCacheEntry(AccessConfig accessConfig, long
maxCacheDurationMs) {
- this.accessConfig = accessConfig;
+ public StorageCredentialCacheEntry(
+ StorageAccessConfig storageAccessConfig, long maxCacheDurationMs) {
+ this.storageAccessConfig = storageAccessConfig;
this.maxCacheDurationMs = maxCacheDurationMs;
}
@@ -39,7 +40,7 @@ public class StorageCredentialCacheEntry {
/** Get the expiration time in millisecond for the cached entry */
public long getExpirationTime() {
- return
accessConfig.expiresAt().map(Instant::toEpochMilli).orElse(Long.MAX_VALUE);
+ return
storageAccessConfig.expiresAt().map(Instant::toEpochMilli).orElse(Long.MAX_VALUE);
}
/**
@@ -47,7 +48,7 @@ public class StorageCredentialCacheEntry {
*
* @return a map of string representing the subscoped creds info.
*/
- AccessConfig toAccessConfig() {
- return accessConfig;
+ StorageAccessConfig toAccessConfig() {
+ return storageAccessConfig;
}
}
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/storage/gcp/GcpCredentialsStorageIntegration.java
b/polaris-core/src/main/java/org/apache/polaris/core/storage/gcp/GcpCredentialsStorageIntegration.java
index c0568cc9b..5f524d9ae 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/storage/gcp/GcpCredentialsStorageIntegration.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/storage/gcp/GcpCredentialsStorageIntegration.java
@@ -39,9 +39,9 @@ import java.util.Optional;
import java.util.Set;
import java.util.stream.Stream;
import org.apache.polaris.core.config.RealmConfig;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.InMemoryStorageIntegration;
import org.apache.polaris.core.storage.PolarisStorageIntegration;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import org.apache.polaris.core.storage.StorageUtil;
import org.slf4j.Logger;
@@ -72,7 +72,7 @@ public class GcpCredentialsStorageIntegration
}
@Override
- public AccessConfig getSubscopedCreds(
+ public StorageAccessConfig getSubscopedCreds(
@Nonnull RealmConfig realmConfig,
boolean allowListOperation,
@Nonnull Set<String> allowedReadLocations,
@@ -109,7 +109,7 @@ public class GcpCredentialsStorageIntegration
// If expires_in missing, use source credential's expire time, which
require another api call to
// get.
- AccessConfig.Builder accessConfig = AccessConfig.builder();
+ StorageAccessConfig.Builder accessConfig = StorageAccessConfig.builder();
accessConfig.put(StorageAccessProperty.GCS_ACCESS_TOKEN,
token.getTokenValue());
accessConfig.put(
StorageAccessProperty.GCS_ACCESS_TOKEN_EXPIRES_AT,
diff --git
a/polaris-core/src/test/java/org/apache/polaris/core/storage/InMemoryStorageIntegrationTest.java
b/polaris-core/src/test/java/org/apache/polaris/core/storage/InMemoryStorageIntegrationTest.java
index 9ba5271ab..e9640cef8 100644
---
a/polaris-core/src/test/java/org/apache/polaris/core/storage/InMemoryStorageIntegrationTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/core/storage/InMemoryStorageIntegrationTest.java
@@ -194,7 +194,7 @@ class InMemoryStorageIntegrationTest {
}
@Override
- public AccessConfig getSubscopedCreds(
+ public StorageAccessConfig getSubscopedCreds(
@Nonnull RealmConfig realmConfig,
boolean allowListOperation,
@Nonnull Set<String> allowedReadLocations,
diff --git
a/polaris-core/src/test/java/org/apache/polaris/core/storage/AccessConfigTest.java
b/polaris-core/src/test/java/org/apache/polaris/core/storage/StorageAccessConfigTest.java
similarity index 87%
rename from
polaris-core/src/test/java/org/apache/polaris/core/storage/AccessConfigTest.java
rename to
polaris-core/src/test/java/org/apache/polaris/core/storage/StorageAccessConfigTest.java
index 57e1f1465..98fad9ef9 100644
---
a/polaris-core/src/test/java/org/apache/polaris/core/storage/AccessConfigTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/core/storage/StorageAccessConfigTest.java
@@ -30,14 +30,14 @@ import java.time.Instant;
import java.util.Map;
import org.junit.jupiter.api.Test;
-public class AccessConfigTest {
+public class StorageAccessConfigTest {
@Test
public void testPutGet() {
- AccessConfig.Builder b = AccessConfig.builder();
+ StorageAccessConfig.Builder b = StorageAccessConfig.builder();
b.put(AWS_ENDPOINT, "ep1");
b.put(AWS_SECRET_KEY, "sk2");
- AccessConfig c = b.build();
+ StorageAccessConfig c = b.build();
assertThat(c.credentials()).isEqualTo(Map.of(AWS_SECRET_KEY.getPropertyName(),
"sk2"));
assertThat(c.extraProperties()).isEqualTo(Map.of(AWS_ENDPOINT.getPropertyName(),
"ep1"));
assertThat(c.get(AWS_SECRET_KEY)).isEqualTo("sk2");
@@ -46,19 +46,19 @@ public class AccessConfigTest {
@Test
public void testGetExtraProperty() {
- AccessConfig.Builder b = AccessConfig.builder();
+ StorageAccessConfig.Builder b = StorageAccessConfig.builder();
b.putExtraProperty(AWS_ENDPOINT.getPropertyName(), "extra");
- AccessConfig c = b.build();
+ StorageAccessConfig c = b.build();
assertThat(c.extraProperties()).isEqualTo(Map.of(AWS_ENDPOINT.getPropertyName(),
"extra"));
assertThat(c.get(AWS_ENDPOINT)).isEqualTo("extra");
}
@Test
public void testGetInternalProperty() {
- AccessConfig.Builder b = AccessConfig.builder();
+ StorageAccessConfig.Builder b = StorageAccessConfig.builder();
b.putExtraProperty(AWS_ENDPOINT.getPropertyName(), "extra");
b.putInternalProperty(AWS_ENDPOINT.getPropertyName(), "ep1");
- AccessConfig c = b.build();
+ StorageAccessConfig c = b.build();
assertThat(c.extraProperties()).isEqualTo(Map.of(AWS_ENDPOINT.getPropertyName(),
"extra"));
assertThat(c.internalProperties()).isEqualTo(Map.of(AWS_ENDPOINT.getPropertyName(),
"ep1"));
assertThat(c.get(AWS_ENDPOINT)).isEqualTo("ep1");
@@ -66,11 +66,11 @@ public class AccessConfigTest {
@Test
public void testNoCredentialOverride() {
- AccessConfig.Builder b = AccessConfig.builder();
+ StorageAccessConfig.Builder b = StorageAccessConfig.builder();
b.put(AWS_SECRET_KEY, "sk-test");
b.putExtraProperty(AWS_SECRET_KEY.getPropertyName(), "sk-extra");
b.putInternalProperty(AWS_SECRET_KEY.getPropertyName(), "sk-internal");
- AccessConfig c = b.build();
+ StorageAccessConfig c = b.build();
assertThat(c.get(AWS_SECRET_KEY)).isEqualTo("sk-test");
assertThat(c.extraProperties()).isEqualTo(Map.of(AWS_SECRET_KEY.getPropertyName(),
"sk-extra"));
assertThat(c.internalProperties())
@@ -79,7 +79,7 @@ public class AccessConfigTest {
@Test
public void testExpiresAt() {
- AccessConfig.Builder b = AccessConfig.builder();
+ StorageAccessConfig.Builder b = StorageAccessConfig.builder();
assertThat(b.build().expiresAt()).isEmpty();
b.put(GCS_ACCESS_TOKEN_EXPIRES_AT, "111");
assertThat(b.build().expiresAt()).hasValue(Instant.ofEpochMilli(111));
diff --git
a/polaris-core/src/test/java/org/apache/polaris/core/storage/azure/AzureCredentialsStorageIntegrationTest.java
b/polaris-core/src/test/java/org/apache/polaris/core/storage/azure/AzureCredentialsStorageIntegrationTest.java
index 794ae25fe..eda958fca 100644
---
a/polaris-core/src/test/java/org/apache/polaris/core/storage/azure/AzureCredentialsStorageIntegrationTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/core/storage/azure/AzureCredentialsStorageIntegrationTest.java
@@ -23,7 +23,7 @@ import static
org.apache.polaris.core.storage.azure.AzureCredentialsStorageInteg
import java.time.Instant;
import java.util.Optional;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -34,7 +34,7 @@ public class AzureCredentialsStorageIntegrationTest {
public void testAzureCredentialFormatting() {
Instant expiresAt = Instant.ofEpochMilli(Long.MAX_VALUE);
- AccessConfig noSuffixResult =
+ StorageAccessConfig noSuffixResult =
toAccessConfig("sasToken", "some_account", expiresAt,
Optional.empty());
Assertions.assertThat(noSuffixResult.credentials()).hasSize(3);
Assertions.assertThat(noSuffixResult.credentials()).containsKey("adls.sas-token.some_account");
@@ -44,7 +44,7 @@ public class AzureCredentialsStorageIntegrationTest {
.doesNotContainKey(
StorageAccessProperty.AZURE_REFRESH_CREDENTIALS_ENDPOINT.getPropertyName());
- AccessConfig adlsSuffixResult =
+ StorageAccessConfig adlsSuffixResult =
toAccessConfig(
"sasToken",
"some_account." + AzureLocation.ADLS_ENDPOINT,
@@ -63,7 +63,7 @@ public class AzureCredentialsStorageIntegrationTest {
StorageAccessProperty.AZURE_REFRESH_CREDENTIALS_ENDPOINT.getPropertyName(),
"endpoint/credentials");
- AccessConfig blobSuffixResult =
+ StorageAccessConfig blobSuffixResult =
toAccessConfig(
"sasToken", "some_account." + AzureLocation.BLOB_ENDPOINT,
expiresAt, Optional.empty());
Assertions.assertThat(blobSuffixResult.credentials()).hasSize(4);
diff --git
a/polaris-core/src/test/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheTest.java
b/polaris-core/src/test/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheTest.java
index a51badf4b..f1e5ac1f6 100644
---
a/polaris-core/src/test/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheTest.java
@@ -42,7 +42,7 @@ import
org.apache.polaris.core.persistence.dao.entity.ScopedCredentialsResult;
import
org.apache.polaris.core.persistence.transactional.TransactionalPersistence;
import org.apache.polaris.core.persistence.transactional.TreeMapMetaStore;
import
org.apache.polaris.core.persistence.transactional.TreeMapTransactionalPersistenceImpl;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.RepeatedTest;
@@ -412,7 +412,7 @@ public class StorageCredentialCacheTest {
: String.valueOf(Long.MAX_VALUE);
res.add(
new ScopedCredentialsResult(
- AccessConfig.builder()
+ StorageAccessConfig.builder()
.put(StorageAccessProperty.AWS_KEY_ID, "key_id_" + finalI)
.put(StorageAccessProperty.AWS_SECRET_KEY, "key_secret_" +
finalI)
.put(StorageAccessProperty.AWS_SESSION_TOKEN_EXPIRES_AT_MS,
expireTime)
@@ -421,14 +421,14 @@ public class StorageCredentialCacheTest {
if (res.size() == number) return res;
res.add(
new ScopedCredentialsResult(
- AccessConfig.builder()
+ StorageAccessConfig.builder()
.put(StorageAccessProperty.AZURE_SAS_TOKEN, "sas_token_" +
finalI)
.put(StorageAccessProperty.EXPIRATION_TIME, expireTime)
.build()));
if (res.size() == number) return res;
res.add(
new ScopedCredentialsResult(
- AccessConfig.builder()
+ StorageAccessConfig.builder()
.put(StorageAccessProperty.GCS_ACCESS_TOKEN, "gcs_token_" +
finalI)
.put(StorageAccessProperty.GCS_ACCESS_TOKEN_EXPIRES_AT,
expireTime)
.build()));
@@ -459,7 +459,7 @@ public class StorageCredentialCacheTest {
storageCredentialCache = newStorageCredentialCache();
ScopedCredentialsResult properties =
new ScopedCredentialsResult(
- AccessConfig.builder()
+ StorageAccessConfig.builder()
.put(StorageAccessProperty.AWS_SECRET_KEY, "super-secret-123")
.put(StorageAccessProperty.AWS_ENDPOINT, "test-endpoint1")
.put(StorageAccessProperty.AWS_PATH_STYLE_ACCESS, "true")
@@ -477,7 +477,7 @@ public class StorageCredentialCacheTest {
.thenReturn(properties);
List<PolarisEntity> entityList = getPolarisEntities();
- AccessConfig config =
+ StorageAccessConfig config =
storageCredentialCache.getOrGenerateSubScopeCreds(
metaStoreManager,
callCtx,
diff --git
a/polaris-core/src/test/java/org/apache/polaris/service/storage/aws/AwsCredentialsStorageIntegrationTest.java
b/polaris-core/src/test/java/org/apache/polaris/service/storage/aws/AwsCredentialsStorageIntegrationTest.java
index ac1ba85fd..fb0c63c40 100644
---
a/polaris-core/src/test/java/org/apache/polaris/service/storage/aws/AwsCredentialsStorageIntegrationTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/service/storage/aws/AwsCredentialsStorageIntegrationTest.java
@@ -25,8 +25,8 @@ import java.time.Instant;
import java.util.List;
import java.util.Optional;
import java.util.Set;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.BaseStorageIntegrationTest;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import org.apache.polaris.core.storage.aws.AwsCredentialsStorageIntegration;
import org.apache.polaris.core.storage.aws.AwsStorageConfigurationInfo;
@@ -84,7 +84,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
return ASSUME_ROLE_RESPONSE;
});
String warehouseDir = scheme + "://bucket/path/to/warehouse";
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
new AwsCredentialsStorageIntegration(
AwsStorageConfigurationInfo.builder()
.addAllowedLocation(warehouseDir)
@@ -98,7 +98,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
Set.of(warehouseDir + "/namespace/table"),
Set.of(warehouseDir + "/namespace/table"),
Optional.of("/namespace/table/credentials"));
- assertThat(accessConfig.credentials())
+ assertThat(storageAccessConfig.credentials())
.isNotEmpty()
.containsEntry(StorageAccessProperty.AWS_TOKEN.getPropertyName(),
"sess")
.containsEntry(StorageAccessProperty.AWS_KEY_ID.getPropertyName(),
"accessKey")
@@ -106,7 +106,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
.containsEntry(
StorageAccessProperty.AWS_SESSION_TOKEN_EXPIRES_AT_MS.getPropertyName(),
String.valueOf(EXPIRE_TIME.toEpochMilli()));
- assertThat(accessConfig.extraProperties())
+ assertThat(storageAccessConfig.extraProperties())
.containsEntry(
StorageAccessProperty.AWS_REFRESH_CREDENTIALS_ENDPOINT.getPropertyName(),
"/namespace/table/credentials");
@@ -254,7 +254,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
break;
case AWS_PARTITION:
case "aws-us-gov":
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
new AwsCredentialsStorageIntegration(
AwsStorageConfigurationInfo.builder()
.addAllowedLocation(s3Path(bucket, warehouseKeyPrefix))
@@ -269,7 +269,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
Set.of(s3Path(bucket, firstPath), s3Path(bucket,
secondPath)),
Set.of(s3Path(bucket, firstPath)),
Optional.empty());
- assertThat(accessConfig.credentials())
+ assertThat(storageAccessConfig.credentials())
.isNotEmpty()
.containsEntry(StorageAccessProperty.AWS_TOKEN.getPropertyName(),
"sess")
.containsEntry(StorageAccessProperty.AWS_KEY_ID.getPropertyName(),
"accessKey")
@@ -355,7 +355,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
});
return ASSUME_ROLE_RESPONSE;
});
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
new AwsCredentialsStorageIntegration(
AwsStorageConfigurationInfo.builder()
.addAllowedLocation(s3Path(bucket, warehouseKeyPrefix))
@@ -370,7 +370,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
Set.of(s3Path(bucket, firstPath), s3Path(bucket, secondPath)),
Set.of(s3Path(bucket, firstPath)),
Optional.empty());
- assertThat(accessConfig.credentials())
+ assertThat(storageAccessConfig.credentials())
.isNotEmpty()
.containsEntry(StorageAccessProperty.AWS_TOKEN.getPropertyName(),
"sess")
.containsEntry(StorageAccessProperty.AWS_KEY_ID.getPropertyName(),
"accessKey")
@@ -450,7 +450,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
});
return ASSUME_ROLE_RESPONSE;
});
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
new AwsCredentialsStorageIntegration(
AwsStorageConfigurationInfo.builder()
.addAllowedLocation(s3Path(bucket, warehouseKeyPrefix))
@@ -465,7 +465,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
Set.of(s3Path(bucket, firstPath), s3Path(bucket, secondPath)),
Set.of(),
Optional.empty());
- assertThat(accessConfig.credentials())
+ assertThat(storageAccessConfig.credentials())
.isNotEmpty()
.containsEntry(StorageAccessProperty.AWS_TOKEN.getPropertyName(),
"sess")
.containsEntry(StorageAccessProperty.AWS_KEY_ID.getPropertyName(),
"accessKey")
@@ -517,7 +517,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
});
return ASSUME_ROLE_RESPONSE;
});
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
new AwsCredentialsStorageIntegration(
AwsStorageConfigurationInfo.builder()
.addAllowedLocation(s3Path(bucket, warehouseKeyPrefix))
@@ -532,7 +532,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
Set.of(),
Set.of(),
Optional.empty());
- assertThat(accessConfig.credentials())
+ assertThat(storageAccessConfig.credentials())
.isNotEmpty()
.containsEntry(StorageAccessProperty.AWS_TOKEN.getPropertyName(),
"sess")
.containsEntry(StorageAccessProperty.AWS_KEY_ID.getPropertyName(),
"accessKey")
@@ -578,7 +578,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
break;
case AWS_PARTITION:
case "aws-us-gov":
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
new AwsCredentialsStorageIntegration(
AwsStorageConfigurationInfo.builder()
.addAllowedLocation(s3Path(bucket, warehouseKeyPrefix))
@@ -593,7 +593,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
Set.of(),
Set.of(),
Optional.empty());
- assertThat(accessConfig.credentials())
+ assertThat(storageAccessConfig.credentials())
.containsEntry(StorageAccessProperty.AWS_TOKEN.getPropertyName(),
"sess")
.containsEntry(StorageAccessProperty.AWS_KEY_ID.getPropertyName(),
"accessKey")
.containsEntry(StorageAccessProperty.AWS_SECRET_KEY.getPropertyName(),
"secretKey")
@@ -619,7 +619,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
});
switch (awsPartition) {
case AWS_PARTITION:
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
new AwsCredentialsStorageIntegration(
AwsStorageConfigurationInfo.builder()
.addAllowedLocation(s3Path(bucket, warehouseKeyPrefix))
@@ -633,7 +633,7 @@ class AwsCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
Set.of(),
Set.of(),
Optional.empty());
- assertThat(accessConfig.credentials())
+ assertThat(storageAccessConfig.credentials())
.isNotEmpty()
.doesNotContainKey(StorageAccessProperty.CLIENT_REGION.getPropertyName());
break;
diff --git
a/polaris-core/src/test/java/org/apache/polaris/service/storage/azure/AzureCredentialStorageIntegrationTest.java
b/polaris-core/src/test/java/org/apache/polaris/service/storage/azure/AzureCredentialStorageIntegrationTest.java
index 96e441000..42a8bd327 100644
---
a/polaris-core/src/test/java/org/apache/polaris/service/storage/azure/AzureCredentialStorageIntegrationTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/service/storage/azure/AzureCredentialStorageIntegrationTest.java
@@ -47,8 +47,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.BaseStorageIntegrationTest;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import
org.apache.polaris.core.storage.azure.AzureCredentialsStorageIntegration;
import org.apache.polaris.core.storage.azure.AzureStorageConfigurationInfo;
@@ -121,13 +121,13 @@ public class AzureCredentialStorageIntegrationTest
extends BaseStorageIntegratio
String.format(
"abfss://container@icebergdfsstorageacct.%s.core.windows.net/polaris-test/",
service));
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
subscopedCredsForOperations(
/* allowedReadLoc= */ allowedLoc,
/* allowedWriteLoc= */ new ArrayList<>(),
allowListAction);
- Assertions.assertThat(accessConfig.credentials()).hasSize(2);
- String sasToken = accessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN);
+ Assertions.assertThat(storageAccessConfig.credentials()).hasSize(2);
+ String sasToken =
storageAccessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN);
Assertions.assertThat(sasToken).isNotNull();
String serviceEndpoint =
String.format("https://icebergdfsstorageacct.%s.core.windows.net",
service);
@@ -192,7 +192,7 @@ public class AzureCredentialStorageIntegrationTest extends
BaseStorageIntegratio
String.format(
"abfss://container@icebergdfsstorageacct.%s.core.windows.net/%s",
service, allowedPrefix));
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
subscopedCredsForOperations(
/* allowedReadLoc= */ allowedLoc,
/* allowedWriteLoc= */ new ArrayList<>(),
@@ -200,7 +200,7 @@ public class AzureCredentialStorageIntegrationTest extends
BaseStorageIntegratio
BlobClient blobClient =
createBlobClient(
- accessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
+ storageAccessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
"https://icebergdfsstorageacct.dfs.core.windows.net",
"container",
allowedPrefix);
@@ -231,7 +231,7 @@ public class AzureCredentialStorageIntegrationTest extends
BaseStorageIntegratio
// read fail because container is blocked
BlobClient blobClientReadFail =
createBlobClient(
- accessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
+ storageAccessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
String.format("https://icebergdfsstorageacct.%s.core.windows.net",
service),
"regtest",
blockedPrefix);
@@ -262,7 +262,7 @@ public class AzureCredentialStorageIntegrationTest extends
BaseStorageIntegratio
String.format(
"abfss://container@icebergdfsstorageacct.%s.core.windows.net/%s",
service, allowedPrefix));
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
subscopedCredsForOperations(
/* allowedReadLoc= */ new ArrayList<>(),
/* allowedWriteLoc= */ allowedLoc,
@@ -271,13 +271,13 @@ public class AzureCredentialStorageIntegrationTest
extends BaseStorageIntegratio
String.format("https://icebergdfsstorageacct.%s.core.windows.net",
service);
BlobClient blobClient =
createBlobClient(
- accessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
+ storageAccessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
serviceEndpoint,
"container",
allowedPrefix +
"metadata/00000-65ffa17b-fe64-4c38-bcb9-06f9bd12aa2a.metadata.json");
DataLakeFileClient fileClient =
createDatalakeFileClient(
- accessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
+ storageAccessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
serviceEndpoint,
"container",
"polaris-test/scopedcreds/metadata",
@@ -312,13 +312,13 @@ public class AzureCredentialStorageIntegrationTest
extends BaseStorageIntegratio
String blockedContainer = "regtest";
BlobClient blobClientWriteFail =
createBlobClient(
- accessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
+ storageAccessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
serviceEndpoint,
blockedContainer,
blockedPrefix);
DataLakeFileClient fileClientFail =
createDatalakeFileClient(
- accessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
+ storageAccessConfig.get(StorageAccessProperty.AZURE_SAS_TOKEN),
serviceEndpoint,
blockedContainer,
"polaris-test/scopedcreds/metadata",
@@ -339,7 +339,7 @@ public class AzureCredentialStorageIntegrationTest extends
BaseStorageIntegratio
}
}
- private AccessConfig subscopedCredsForOperations(
+ private StorageAccessConfig subscopedCredsForOperations(
List<String> allowedReadLoc, List<String> allowedWriteLoc, boolean
allowListAction) {
AzureStorageConfigurationInfo azureConfig =
AzureStorageConfigurationInfo.builder()
diff --git
a/polaris-core/src/test/java/org/apache/polaris/service/storage/gcp/GcpCredentialsStorageIntegrationTest.java
b/polaris-core/src/test/java/org/apache/polaris/service/storage/gcp/GcpCredentialsStorageIntegrationTest.java
index c4f026d86..b0be0883d 100644
---
a/polaris-core/src/test/java/org/apache/polaris/service/storage/gcp/GcpCredentialsStorageIntegrationTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/service/storage/gcp/GcpCredentialsStorageIntegrationTest.java
@@ -44,8 +44,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.BaseStorageIntegrationTest;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import org.apache.polaris.core.storage.gcp.GcpCredentialsStorageIntegration;
import org.apache.polaris.core.storage.gcp.GcpStorageConfigurationInfo;
@@ -144,20 +144,20 @@ class GcpCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
return BlobInfo.newBuilder(blobId).build();
}
- private Storage createStorageClient(AccessConfig accessConfig) {
+ private Storage createStorageClient(StorageAccessConfig storageAccessConfig)
{
AccessToken accessToken =
new AccessToken(
- accessConfig.get(StorageAccessProperty.GCS_ACCESS_TOKEN),
+ storageAccessConfig.get(StorageAccessProperty.GCS_ACCESS_TOKEN),
new Date(
Long.parseLong(
-
accessConfig.get(StorageAccessProperty.GCS_ACCESS_TOKEN_EXPIRES_AT))));
+
storageAccessConfig.get(StorageAccessProperty.GCS_ACCESS_TOKEN_EXPIRES_AT))));
return StorageOptions.newBuilder()
.setCredentials(GoogleCredentials.create(accessToken))
.build()
.getService();
}
- private AccessConfig subscopedCredsForOperations(
+ private StorageAccessConfig subscopedCredsForOperations(
List<String> allowedReadLoc, List<String> allowedWriteLoc, boolean
allowListAction)
throws IOException {
GcpStorageConfigurationInfo gcpConfig =
@@ -302,10 +302,10 @@ class GcpCredentialsStorageIntegrationTest extends
BaseStorageIntegrationTest {
.isNotNull()
.isNotEmpty();
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
subscopedCredsForOperations(
List.of("gs://bucket1/path/to/data"),
List.of("gs://bucket1/path/to/data"), true);
-
assertThat(accessConfig.get(StorageAccessProperty.GCS_REFRESH_CREDENTIALS_ENDPOINT))
+
assertThat(storageAccessConfig.get(StorageAccessProperty.GCS_REFRESH_CREDENTIALS_ENDPOINT))
.isEqualTo(REFRESH_ENDPOINT);
}
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java
index 75742412e..89624418a 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java
@@ -119,16 +119,16 @@ import
org.apache.polaris.core.persistence.resolver.PolarisResolutionManifestCat
import org.apache.polaris.core.persistence.resolver.ResolverFactory;
import org.apache.polaris.core.persistence.resolver.ResolverPath;
import org.apache.polaris.core.persistence.resolver.ResolverStatus;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisStorageActions;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageLocation;
import org.apache.polaris.core.storage.StorageUtil;
import org.apache.polaris.service.catalog.SupportsNotifications;
import org.apache.polaris.service.catalog.common.CatalogUtils;
import org.apache.polaris.service.catalog.common.LocationUtils;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.FileIOFactory;
import org.apache.polaris.service.catalog.io.FileIOUtil;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import
org.apache.polaris.service.catalog.validation.IcebergPropertiesValidation;
import org.apache.polaris.service.events.IcebergRestCatalogEvents;
import org.apache.polaris.service.events.listeners.PolarisEventListener;
@@ -179,7 +179,7 @@ public class IcebergCatalog extends BaseMetastoreViewCatalog
private long catalogId = -1;
private String defaultBaseLocation;
private Map<String, String> catalogProperties;
- private final AccessConfigProvider accessConfigProvider;
+ private final StorageAccessConfigProvider storageAccessConfigProvider;
private FileIOFactory fileIOFactory;
private PolarisMetaStoreManager metaStoreManager;
@@ -197,7 +197,7 @@ public class IcebergCatalog extends BaseMetastoreViewCatalog
PolarisResolutionManifestCatalogView resolvedEntityView,
PolarisPrincipal principal,
TaskExecutor taskExecutor,
- AccessConfigProvider accessConfigProvider,
+ StorageAccessConfigProvider storageAccessConfigProvider,
FileIOFactory fileIOFactory,
PolarisEventListener polarisEventListener) {
this.diagnostics = diagnostics;
@@ -210,7 +210,7 @@ public class IcebergCatalog extends BaseMetastoreViewCatalog
this.taskExecutor = taskExecutor;
this.catalogId = catalogEntity.getId();
this.catalogName = catalogEntity.getName();
- this.accessConfigProvider = accessConfigProvider;
+ this.storageAccessConfigProvider = storageAccessConfigProvider;
this.fileIOFactory = fileIOFactory;
this.metaStoreManager = metaStoreManager;
this.polarisEventListener = polarisEventListener;
@@ -2078,8 +2078,8 @@ public class IcebergCatalog extends
BaseMetastoreViewCatalog
PolarisResolvedPathWrapper resolvedStorageEntity,
Map<String, String> tableProperties,
Set<PolarisStorageActions> storageActions) {
- AccessConfig accessConfig =
- accessConfigProvider.getAccessConfig(
+ StorageAccessConfig storageAccessConfig =
+ storageAccessConfigProvider.getStorageAccessConfig(
callContext,
identifier,
readLocations,
@@ -2087,7 +2087,7 @@ public class IcebergCatalog extends
BaseMetastoreViewCatalog
Optional.empty(),
resolvedStorageEntity);
// Reload fileIO based on table specific context
- FileIO fileIO = fileIOFactory.loadFileIO(accessConfig, ioImplClassName,
tableProperties);
+ FileIO fileIO = fileIOFactory.loadFileIO(storageAccessConfig,
ioImplClassName, tableProperties);
// ensure the new fileIO is closed when the catalog is closed
closeableGroup.addCloseable(fileIO);
return fileIO;
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java
index c636fb075..352d1a81c 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java
@@ -81,7 +81,7 @@ import org.apache.polaris.service.catalog.CatalogPrefixParser;
import org.apache.polaris.service.catalog.api.IcebergRestCatalogApiService;
import
org.apache.polaris.service.catalog.api.IcebergRestConfigurationApiService;
import org.apache.polaris.service.catalog.common.CatalogAdapter;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.config.ReservedProperties;
import org.apache.polaris.service.context.catalog.CallContextCatalogFactory;
import org.apache.polaris.service.events.listeners.PolarisEventListener;
@@ -150,7 +150,7 @@ public class IcebergCatalogAdapter
private final CatalogHandlerUtils catalogHandlerUtils;
private final Instance<ExternalCatalogFactory> externalCatalogFactories;
private final PolarisEventListener polarisEventListener;
- private final AccessConfigProvider accessConfigProvider;
+ private final StorageAccessConfigProvider storageAccessConfigProvider;
private final PolarisMetricsReporter metricsReporter;
@Inject
@@ -169,7 +169,7 @@ public class IcebergCatalogAdapter
CatalogHandlerUtils catalogHandlerUtils,
@Any Instance<ExternalCatalogFactory> externalCatalogFactories,
PolarisEventListener polarisEventListener,
- AccessConfigProvider accessConfigProvider,
+ StorageAccessConfigProvider storageAccessConfigProvider,
PolarisMetricsReporter metricsReporter) {
this.diagnostics = diagnostics;
this.realmContext = realmContext;
@@ -186,7 +186,7 @@ public class IcebergCatalogAdapter
this.catalogHandlerUtils = catalogHandlerUtils;
this.externalCatalogFactories = externalCatalogFactories;
this.polarisEventListener = polarisEventListener;
- this.accessConfigProvider = accessConfigProvider;
+ this.storageAccessConfigProvider = storageAccessConfigProvider;
this.metricsReporter = metricsReporter;
}
@@ -228,7 +228,7 @@ public class IcebergCatalogAdapter
catalogHandlerUtils,
externalCatalogFactories,
polarisEventListener,
- accessConfigProvider);
+ storageAccessConfigProvider);
}
@Override
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
index a10c7afe7..1de129cac 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
@@ -99,14 +99,14 @@ import
org.apache.polaris.core.persistence.dao.entity.EntityWithPath;
import org.apache.polaris.core.persistence.pagination.Page;
import org.apache.polaris.core.persistence.pagination.PageToken;
import org.apache.polaris.core.persistence.resolver.ResolutionManifestFactory;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisStorageActions;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageUtil;
import org.apache.polaris.service.catalog.AccessDelegationMode;
import org.apache.polaris.service.catalog.SupportsNotifications;
import org.apache.polaris.service.catalog.common.CatalogHandler;
import org.apache.polaris.service.catalog.common.CatalogUtils;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.config.ReservedProperties;
import org.apache.polaris.service.context.catalog.CallContextCatalogFactory;
import org.apache.polaris.service.events.listeners.PolarisEventListener;
@@ -139,7 +139,7 @@ public class IcebergCatalogHandler extends CatalogHandler
implements AutoCloseab
private final ReservedProperties reservedProperties;
private final CatalogHandlerUtils catalogHandlerUtils;
private final PolarisEventListener polarisEventListener;
- private final AccessConfigProvider accessConfigProvider;
+ private final StorageAccessConfigProvider storageAccessConfigProvider;
// Catalog instance will be initialized after authorizing resolver
successfully resolves
// the catalog entity.
@@ -164,7 +164,7 @@ public class IcebergCatalogHandler extends CatalogHandler
implements AutoCloseab
CatalogHandlerUtils catalogHandlerUtils,
Instance<ExternalCatalogFactory> externalCatalogFactories,
PolarisEventListener polarisEventListener,
- AccessConfigProvider accessConfigProvider) {
+ StorageAccessConfigProvider storageAccessConfigProvider) {
super(
diagnostics,
callContext,
@@ -179,7 +179,7 @@ public class IcebergCatalogHandler extends CatalogHandler
implements AutoCloseab
this.reservedProperties = reservedProperties;
this.catalogHandlerUtils = catalogHandlerUtils;
this.polarisEventListener = polarisEventListener;
- this.accessConfigProvider = accessConfigProvider;
+ this.storageAccessConfigProvider = storageAccessConfigProvider;
}
private CatalogEntity getResolvedCatalogEntity() {
@@ -810,15 +810,15 @@ public class IcebergCatalogHandler extends CatalogHandler
implements AutoCloseab
validateRemoteTableLocations(tableIdentifier, tableLocations,
resolvedStoragePath);
}
- AccessConfig accessConfig =
- accessConfigProvider.getAccessConfig(
+ StorageAccessConfig storageAccessConfig =
+ storageAccessConfigProvider.getStorageAccessConfig(
callContext,
tableIdentifier,
tableLocations,
actions,
refreshCredentialsEndpoint,
resolvedStoragePath);
- Map<String, String> credentialConfig = accessConfig.credentials();
+ Map<String, String> credentialConfig = storageAccessConfig.credentials();
if (delegationModes.contains(VENDED_CREDENTIALS)) {
if (!credentialConfig.isEmpty()) {
responseBuilder.addAllConfig(credentialConfig);
@@ -831,12 +831,12 @@ public class IcebergCatalogHandler extends CatalogHandler
implements AutoCloseab
Boolean skipCredIndirection =
realmConfig.getConfig(FeatureConfiguration.SKIP_CREDENTIAL_SUBSCOPING_INDIRECTION);
Preconditions.checkArgument(
- !accessConfig.supportsCredentialVending() || skipCredIndirection,
+ !storageAccessConfig.supportsCredentialVending() ||
skipCredIndirection,
"Credential vending was requested for table %s, but no
credentials are available",
tableIdentifier);
}
}
- responseBuilder.addAllConfig(accessConfig.extraProperties());
+ responseBuilder.addAllConfig(storageAccessConfig.extraProperties());
}
return responseBuilder;
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/DefaultFileIOFactory.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/DefaultFileIOFactory.java
index a2e78524d..c132322f5 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/DefaultFileIOFactory.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/DefaultFileIOFactory.java
@@ -27,7 +27,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.iceberg.CatalogUtil;
import org.apache.iceberg.io.FileIO;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
/**
* A default FileIO factory implementation for creating Iceberg {@link FileIO}
instances with
@@ -45,7 +45,7 @@ public class DefaultFileIOFactory implements FileIOFactory {
@Override
public FileIO loadFileIO(
- @Nonnull AccessConfig accessConfig,
+ @Nonnull StorageAccessConfig storageAccessConfig,
@Nonnull String ioImplClassName,
@Nonnull Map<String, String> properties) {
@@ -56,9 +56,9 @@ public class DefaultFileIOFactory implements FileIOFactory {
// Update with properties in case there are table-level overrides the
credentials should
// always override table-level properties, since storage configuration
will be found at
// whatever entity defines it
- properties.putAll(accessConfig.credentials());
- properties.putAll(accessConfig.extraProperties());
- properties.putAll(accessConfig.internalProperties());
+ properties.putAll(storageAccessConfig.credentials());
+ properties.putAll(storageAccessConfig.extraProperties());
+ properties.putAll(storageAccessConfig.internalProperties());
return loadFileIOInternal(ioImplClassName, properties);
}
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/FileIOFactory.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/FileIOFactory.java
index 5c6007efa..b9bfbf97e 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/FileIOFactory.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/FileIOFactory.java
@@ -22,7 +22,7 @@ import jakarta.annotation.Nonnull;
import jakarta.enterprise.context.ApplicationScoped;
import java.util.Map;
import org.apache.iceberg.io.FileIO;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
/**
* Interface for providing a way to construct FileIO objects, such as for
reading/writing S3.
@@ -37,13 +37,14 @@ public interface FileIOFactory {
* <p>This method may obtain subscoped credentials to restrict the FileIO's
permissions, ensuring
* secure and limited access to the table's data and locations.
*
- * @param accessConfig the access configuration containing credentials and
other properties.
+ * @param storageAccessConfig the storage access configuration containing
credentials and other
+ * properties.
* @param ioImplClassName the class name of the FileIO implementation to
load.
* @param properties configuration properties for the FileIO.
* @return a configured FileIO instance.
*/
FileIO loadFileIO(
- @Nonnull AccessConfig accessConfig,
+ @Nonnull StorageAccessConfig storageAccessConfig,
@Nonnull String ioImplClassName,
@Nonnull Map<String, String> properties);
}
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/FileIOUtil.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/FileIOUtil.java
index f4a6320d6..7d5a112bb 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/FileIOUtil.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/FileIOUtil.java
@@ -26,9 +26,9 @@ import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.entity.PolarisEntity;
import org.apache.polaris.core.entity.PolarisEntityConstants;
import org.apache.polaris.core.persistence.PolarisResolvedPathWrapper;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisCredentialVendor;
import org.apache.polaris.core.storage.PolarisStorageActions;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.catalog.iceberg.IcebergCatalog;
import org.slf4j.Logger;
@@ -74,7 +74,7 @@ public class FileIOUtil {
* and read/write metadata JSON files.
* </ul>
*/
- public static AccessConfig refreshAccessConfig(
+ public static StorageAccessConfig refreshAccessConfig(
CallContext callContext,
StorageCredentialCache storageCredentialCache,
PolarisCredentialVendor credentialVendor,
@@ -93,7 +93,7 @@ public class FileIOUtil {
.atDebug()
.addKeyValue("tableIdentifier", tableIdentifier)
.log("Skipping generation of subscoped creds for table");
- return AccessConfig.builder().build();
+ return StorageAccessConfig.builder().build();
}
boolean allowList =
@@ -105,7 +105,7 @@ public class FileIOUtil {
|| storageActions.contains(PolarisStorageActions.ALL)
? tableLocations
: Set.of();
- AccessConfig accessConfig =
+ StorageAccessConfig storageAccessConfig =
storageCredentialCache.getOrGenerateSubScopeCreds(
credentialVendor,
callContext.getPolarisCallContext(),
@@ -117,12 +117,12 @@ public class FileIOUtil {
LOGGER
.atDebug()
.addKeyValue("tableIdentifier", tableIdentifier)
- .addKeyValue("credentialKeys", accessConfig.credentials().keySet())
- .addKeyValue("extraProperties", accessConfig.extraProperties())
+ .addKeyValue("credentialKeys",
storageAccessConfig.credentials().keySet())
+ .addKeyValue("extraProperties", storageAccessConfig.extraProperties())
.log("Loaded scoped credentials for table");
- if (accessConfig.credentials().isEmpty()) {
+ if (storageAccessConfig.credentials().isEmpty()) {
LOGGER.debug("No credentials found for table");
}
- return accessConfig;
+ return storageAccessConfig;
}
}
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/AccessConfigProvider.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/StorageAccessConfigProvider.java
similarity index 88%
rename from
runtime/service/src/main/java/org/apache/polaris/service/catalog/io/AccessConfigProvider.java
rename to
runtime/service/src/main/java/org/apache/polaris/service/catalog/io/StorageAccessConfigProvider.java
index d33604027..80e62856a 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/AccessConfigProvider.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/StorageAccessConfigProvider.java
@@ -29,8 +29,8 @@ import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.entity.PolarisEntity;
import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisResolvedPathWrapper;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisStorageActions;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,15 +43,15 @@ import org.slf4j.LoggerFactory;
* primary entrypoint to get sub-scoped credentials for accessing table data.
*/
@ApplicationScoped
-public class AccessConfigProvider {
+public class StorageAccessConfigProvider {
- private static final Logger LOGGER =
LoggerFactory.getLogger(AccessConfigProvider.class);
+ private static final Logger LOGGER =
LoggerFactory.getLogger(StorageAccessConfigProvider.class);
private final StorageCredentialCache storageCredentialCache;
private final MetaStoreManagerFactory metaStoreManagerFactory;
@Inject
- public AccessConfigProvider(
+ public StorageAccessConfigProvider(
StorageCredentialCache storageCredentialCache,
MetaStoreManagerFactory metaStoreManagerFactory) {
this.storageCredentialCache = storageCredentialCache;
@@ -68,10 +68,10 @@ public class AccessConfigProvider {
* to
* @param refreshCredentialsEndpoint optional endpoint URL for clients to
refresh credentials
* @param resolvedPath the entity hierarchy to search for storage
configuration
- * @return {@link AccessConfig} with scoped credentials and metadata; empty
if no storage config
- * found
+ * @return {@link StorageAccessConfig} with scoped credentials and metadata;
empty if no storage
+ * config found
*/
- public AccessConfig getAccessConfig(
+ public StorageAccessConfig getStorageAccessConfig(
@Nonnull CallContext callContext,
@Nonnull TableIdentifier tableIdentifier,
@Nonnull Set<String> tableLocations,
@@ -89,7 +89,7 @@ public class AccessConfigProvider {
.atWarn()
.addKeyValue("tableIdentifier", tableIdentifier)
.log("Table entity has no storage configuration in its hierarchy");
- return AccessConfig.builder().supportsCredentialVending(false).build();
+ return
StorageAccessConfig.builder().supportsCredentialVending(false).build();
}
return FileIOUtil.refreshAccessConfig(
callContext,
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/WasbTranslatingFileIOFactory.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/WasbTranslatingFileIOFactory.java
index 47617309c..3e4b7f306 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/WasbTranslatingFileIOFactory.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/WasbTranslatingFileIOFactory.java
@@ -24,7 +24,7 @@ import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import java.util.Map;
import org.apache.iceberg.io.FileIO;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
/** A {@link FileIOFactory} that translates WASB paths to ABFS ones */
@ApplicationScoped
@@ -40,7 +40,7 @@ public class WasbTranslatingFileIOFactory implements
FileIOFactory {
@Override
public FileIO loadFileIO(
- @Nonnull AccessConfig accessConfig,
+ @Nonnull StorageAccessConfig accessConfig,
@Nonnull String ioImplClassName,
@Nonnull Map<String, String> properties) {
return new WasbTranslatingFileIO(
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/context/catalog/PolarisCallContextCatalogFactory.java
b/runtime/service/src/main/java/org/apache/polaris/service/context/catalog/PolarisCallContextCatalogFactory.java
index 70cb8e6b1..65eb7f9d5 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/context/catalog/PolarisCallContextCatalogFactory.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/context/catalog/PolarisCallContextCatalogFactory.java
@@ -32,8 +32,8 @@ import
org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.resolver.PolarisResolutionManifest;
import org.apache.polaris.core.persistence.resolver.ResolverFactory;
import org.apache.polaris.service.catalog.iceberg.IcebergCatalog;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.FileIOFactory;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.events.listeners.PolarisEventListener;
import org.apache.polaris.service.task.TaskExecutor;
import org.slf4j.Logger;
@@ -46,7 +46,7 @@ public class PolarisCallContextCatalogFactory implements
CallContextCatalogFacto
private final PolarisDiagnostics diagnostics;
private final TaskExecutor taskExecutor;
- private final AccessConfigProvider accessConfigProvider;
+ private final StorageAccessConfigProvider storageAccessConfigProvider;
private final FileIOFactory fileIOFactory;
private final ResolverFactory resolverFactory;
private final PolarisEventListener polarisEventListener;
@@ -59,7 +59,7 @@ public class PolarisCallContextCatalogFactory implements
CallContextCatalogFacto
PolarisDiagnostics diagnostics,
ResolverFactory resolverFactory,
TaskExecutor taskExecutor,
- AccessConfigProvider accessConfigProvider,
+ StorageAccessConfigProvider storageAccessConfigProvider,
FileIOFactory fileIOFactory,
PolarisEventListener polarisEventListener,
PolarisMetaStoreManager metaStoreManager,
@@ -68,7 +68,7 @@ public class PolarisCallContextCatalogFactory implements
CallContextCatalogFacto
this.diagnostics = diagnostics;
this.resolverFactory = resolverFactory;
this.taskExecutor = taskExecutor;
- this.accessConfigProvider = accessConfigProvider;
+ this.storageAccessConfigProvider = storageAccessConfigProvider;
this.fileIOFactory = fileIOFactory;
this.polarisEventListener = polarisEventListener;
this.metaStoreManager = metaStoreManager;
@@ -94,7 +94,7 @@ public class PolarisCallContextCatalogFactory implements
CallContextCatalogFacto
resolvedManifest,
principal,
taskExecutor,
- accessConfigProvider,
+ storageAccessConfigProvider,
fileIOFactory,
polarisEventListener);
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/storage/PolarisStorageIntegrationProviderImpl.java
b/runtime/service/src/main/java/org/apache/polaris/service/storage/PolarisStorageIntegrationProviderImpl.java
index 23ec20abc..706acb422 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/storage/PolarisStorageIntegrationProviderImpl.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/storage/PolarisStorageIntegrationProviderImpl.java
@@ -32,11 +32,11 @@ import java.util.Optional;
import java.util.Set;
import java.util.function.Supplier;
import org.apache.polaris.core.config.RealmConfig;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisStorageActions;
import org.apache.polaris.core.storage.PolarisStorageConfigurationInfo;
import org.apache.polaris.core.storage.PolarisStorageIntegration;
import org.apache.polaris.core.storage.PolarisStorageIntegrationProvider;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.aws.AwsCredentialsStorageIntegration;
import org.apache.polaris.core.storage.aws.AwsStorageConfigurationInfo;
import org.apache.polaris.core.storage.aws.StsClientProvider;
@@ -109,13 +109,13 @@ public class PolarisStorageIntegrationProviderImpl
implements PolarisStorageInte
storageIntegration =
new PolarisStorageIntegration<>((T)
polarisStorageConfigurationInfo, "file") {
@Override
- public AccessConfig getSubscopedCreds(
+ public StorageAccessConfig getSubscopedCreds(
@Nonnull RealmConfig realmConfig,
boolean allowListOperation,
@Nonnull Set<String> allowedReadLocations,
@Nonnull Set<String> allowedWriteLocations,
Optional<String> refreshCredentialsEndpoint) {
- return
AccessConfig.builder().supportsCredentialVending(false).build();
+ return
StorageAccessConfig.builder().supportsCredentialVending(false).build();
}
@Override
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/task/TaskFileIOSupplier.java
b/runtime/service/src/main/java/org/apache/polaris/service/task/TaskFileIOSupplier.java
index 720f204fc..b4c31d692 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/task/TaskFileIOSupplier.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/task/TaskFileIOSupplier.java
@@ -33,21 +33,21 @@ import org.apache.polaris.core.entity.PolarisTaskConstants;
import org.apache.polaris.core.entity.TaskEntity;
import org.apache.polaris.core.persistence.PolarisResolvedPathWrapper;
import org.apache.polaris.core.persistence.ResolvedPolarisEntity;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisStorageActions;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.service.catalog.io.FileIOFactory;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
@ApplicationScoped
public class TaskFileIOSupplier {
private final FileIOFactory fileIOFactory;
- private final AccessConfigProvider accessConfigProvider;
+ private final StorageAccessConfigProvider accessConfigProvider;
@Inject
public TaskFileIOSupplier(
- FileIOFactory fileIOFactory, AccessConfigProvider accessConfigProvider) {
+ FileIOFactory fileIOFactory, StorageAccessConfigProvider
storageAccessConfigProvider) {
this.fileIOFactory = fileIOFactory;
- this.accessConfigProvider = accessConfigProvider;
+ this.accessConfigProvider = storageAccessConfigProvider;
}
public FileIO apply(TaskEntity task, TableIdentifier identifier, CallContext
callContext) {
@@ -62,14 +62,14 @@ public class TaskFileIOSupplier {
new ResolvedPolarisEntity(task, List.of(), List.of());
PolarisResolvedPathWrapper resolvedPath =
new PolarisResolvedPathWrapper(List.of(resolvedTaskEntity));
- AccessConfig accessConfig =
- accessConfigProvider.getAccessConfig(
+ StorageAccessConfig storageAccessConfig =
+ accessConfigProvider.getStorageAccessConfig(
callContext, identifier, locations, storageActions,
Optional.empty(), resolvedPath);
String ioImpl =
properties.getOrDefault(
CatalogProperties.FILE_IO_IMPL,
"org.apache.iceberg.io.ResolvingFileIO");
- return fileIOFactory.loadFileIO(accessConfig, ioImpl, properties);
+ return fileIOFactory.loadFileIO(storageAccessConfig, ioImpl, properties);
}
}
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAuthzTestBase.java
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAuthzTestBase.java
index 4b1799d8c..0bb4856eb 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAuthzTestBase.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAuthzTestBase.java
@@ -87,8 +87,8 @@ import org.apache.polaris.service.catalog.Profiles;
import org.apache.polaris.service.catalog.generic.PolarisGenericTableCatalog;
import org.apache.polaris.service.catalog.iceberg.CatalogHandlerUtils;
import org.apache.polaris.service.catalog.iceberg.IcebergCatalog;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.FileIOFactory;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.catalog.policy.PolicyCatalog;
import org.apache.polaris.service.config.ReservedProperties;
import org.apache.polaris.service.context.catalog.CallContextCatalogFactory;
@@ -203,7 +203,7 @@ public abstract class PolarisAuthzTestBase {
@Inject protected PolarisConfigurationStore configurationStore;
@Inject protected StorageCredentialCache storageCredentialCache;
@Inject protected ResolverFactory resolverFactory;
- @Inject protected AccessConfigProvider accessConfigProvider;
+ @Inject protected StorageAccessConfigProvider storageAccessConfigProvider;
protected IcebergCatalog baseCatalog;
protected PolarisGenericTableCatalog genericTableCatalog;
@@ -499,7 +499,7 @@ public abstract class PolarisAuthzTestBase {
passthroughView,
authenticatedRoot,
Mockito.mock(),
- accessConfigProvider,
+ storageAccessConfigProvider,
fileIOFactory,
polarisEventListener);
this.baseCatalog.initialize(
@@ -527,7 +527,7 @@ public abstract class PolarisAuthzTestBase {
PolarisDiagnostics diagnostics,
ResolverFactory resolverFactory,
TaskExecutor taskExecutor,
- AccessConfigProvider accessConfigProvider,
+ StorageAccessConfigProvider accessConfigProvider,
FileIOFactory fileIOFactory,
PolarisEventListener polarisEventListener,
PolarisMetaStoreManager metaStoreManager,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/AbstractPolarisGenericTableCatalogTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/AbstractPolarisGenericTableCatalogTest.java
index f4dceffe6..5cda9c798 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/AbstractPolarisGenericTableCatalogTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/AbstractPolarisGenericTableCatalogTest.java
@@ -66,9 +66,9 @@ import
org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.admin.PolarisAdminService;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
import org.apache.polaris.service.catalog.iceberg.IcebergCatalog;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.DefaultFileIOFactory;
import org.apache.polaris.service.catalog.io.FileIOFactory;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.config.ReservedProperties;
import org.apache.polaris.service.events.listeners.NoOpPolarisEventListener;
import
org.apache.polaris.service.storage.PolarisStorageIntegrationProviderImpl;
@@ -119,7 +119,7 @@ public abstract class
AbstractPolarisGenericTableCatalogTest {
private FileIOFactory fileIOFactory;
private PolarisPrincipal authenticatedRoot;
private PolarisEntity catalogEntity;
- private AccessConfigProvider accessConfigProvider;
+ private StorageAccessConfigProvider storageAccessConfigProvider;
protected static final Schema SCHEMA =
new Schema(
@@ -156,8 +156,8 @@ public abstract class
AbstractPolarisGenericTableCatalogTest {
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
- accessConfigProvider =
- new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
+ storageAccessConfigProvider =
+ new StorageAccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
@@ -242,7 +242,7 @@ public abstract class
AbstractPolarisGenericTableCatalogTest {
passthroughView,
authenticatedRoot,
taskExecutor,
- accessConfigProvider,
+ storageAccessConfigProvider,
fileIOFactory,
new NoOpPolarisEventListener());
this.icebergCatalog.initialize(
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogTest.java
index fa05af7ef..3e7cc1985 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogTest.java
@@ -126,9 +126,9 @@ import
org.apache.polaris.core.persistence.resolver.Resolver;
import org.apache.polaris.core.persistence.resolver.ResolverFactory;
import org.apache.polaris.core.secrets.UserSecretsManager;
import org.apache.polaris.core.secrets.UserSecretsManagerFactory;
-import org.apache.polaris.core.storage.AccessConfig;
import org.apache.polaris.core.storage.PolarisStorageIntegration;
import org.apache.polaris.core.storage.PolarisStorageIntegrationProvider;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.core.storage.StorageAccessProperty;
import org.apache.polaris.core.storage.aws.AwsCredentialsStorageIntegration;
import org.apache.polaris.core.storage.aws.AwsStorageConfigurationInfo;
@@ -136,11 +136,11 @@ import
org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.admin.PolarisAdminService;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
import org.apache.polaris.service.catalog.Profiles;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.DefaultFileIOFactory;
import org.apache.polaris.service.catalog.io.ExceptionMappingFileIO;
import org.apache.polaris.service.catalog.io.FileIOFactory;
import org.apache.polaris.service.catalog.io.MeasuredFileIOFactory;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.config.ReservedProperties;
import org.apache.polaris.service.events.IcebergRestCatalogEvents;
import org.apache.polaris.service.events.listeners.PolarisEventListener;
@@ -252,7 +252,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
private PolarisPrincipal authenticatedRoot;
private TestPolarisEventListener testPolarisEventListener;
private ReservedProperties reservedProperties;
- private AccessConfigProvider accessConfigProvider;
+ private StorageAccessConfigProvider storageAccessConfigProvider;
@BeforeAll
public static void setUpMocks() {
@@ -290,8 +290,8 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
- accessConfigProvider =
- new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
+ storageAccessConfigProvider =
+ new StorageAccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
EntityCache entityCache = createEntityCache(diagServices, realmConfig,
metaStoreManager);
resolverFactory =
(principal, referenceCatalogName) ->
@@ -454,7 +454,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
passthroughView,
authenticatedRoot,
taskExecutor,
- accessConfigProvider,
+ storageAccessConfigProvider,
fileIOFactory,
polarisEventListener);
}
@@ -1905,7 +1905,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
Set.of(tableMetadata.location()),
Set.of(tableMetadata.location()),
Optional.empty())
- .getAccessConfig()
+ .getStorageAccessConfig()
.credentials();
Assertions.assertThat(credentials)
.isNotNull()
@@ -1914,7 +1914,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
.containsEntry(StorageAccessProperty.AWS_SECRET_KEY.getPropertyName(),
SECRET_ACCESS_KEY)
.containsEntry(StorageAccessProperty.AWS_TOKEN.getPropertyName(),
SESSION_TOKEN);
FileIO fileIO =
- new TaskFileIOSupplier(new DefaultFileIOFactory(),
accessConfigProvider)
+ new TaskFileIOSupplier(new DefaultFileIOFactory(),
storageAccessConfigProvider)
.apply(taskEntity, TABLE, polarisContext);
Assertions.assertThat(fileIO).isNotNull().isInstanceOf(ExceptionMappingFileIO.class);
Assertions.assertThat(((ExceptionMappingFileIO) fileIO).getInnerIo())
@@ -2083,14 +2083,14 @@ public abstract class AbstractIcebergCatalogTest
extends CatalogTests<IcebergCat
new FileIOFactory() {
@Override
public FileIO loadFileIO(
- @Nonnull AccessConfig accessConfig,
+ @Nonnull StorageAccessConfig accessConfig,
@Nonnull String ioImplClassName,
@Nonnull Map<String, String> properties) {
return measured.loadFileIO(
accessConfig,
"org.apache.iceberg.inmemory.InMemoryFileIO", Map.of());
}
},
- accessConfigProvider);
+ storageAccessConfigProvider);
TableCleanupTaskHandler handler =
new TableCleanupTaskHandler(
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogViewTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogViewTest.java
index 2406108ab..f8468d6bf 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogViewTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogViewTest.java
@@ -57,9 +57,9 @@ import
org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.admin.PolarisAdminService;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
import org.apache.polaris.service.catalog.Profiles;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.DefaultFileIOFactory;
import org.apache.polaris.service.catalog.io.FileIOFactory;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.config.ReservedProperties;
import org.apache.polaris.service.events.IcebergRestCatalogEvents;
import org.apache.polaris.service.events.listeners.PolarisEventListener;
@@ -121,7 +121,7 @@ public abstract class AbstractIcebergCatalogViewTest
extends ViewCatalogTests<Ic
private UserSecretsManager userSecretsManager;
private PolarisCallContext polarisContext;
private RealmConfig realmConfig;
- private AccessConfigProvider accessConfigProvider;
+ private StorageAccessConfigProvider storageAccessConfigProvider;
private TestPolarisEventListener testPolarisEventListener;
@@ -162,8 +162,8 @@ public abstract class AbstractIcebergCatalogViewTest
extends ViewCatalogTests<Ic
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
- accessConfigProvider =
- new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
+ storageAccessConfigProvider =
+ new StorageAccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
PolarisPrincipal authenticatedRoot = PolarisPrincipal.of(rootPrincipal,
Set.of());
@@ -215,7 +215,7 @@ public abstract class AbstractIcebergCatalogViewTest
extends ViewCatalogTests<Ic
passthroughView,
authenticatedRoot,
Mockito.mock(),
- accessConfigProvider,
+ storageAccessConfigProvider,
fileIOFactory,
polarisEventListener);
Map<String, String> properties =
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerAuthzTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerAuthzTest.java
index 924e376e4..34118d6a7 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerAuthzTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerAuthzTest.java
@@ -134,7 +134,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
catalogHandlerUtils,
emptyExternalCatalogFactory(),
polarisEventListener,
- accessConfigProvider);
+ storageAccessConfigProvider);
}
protected void doTestInsufficientPrivileges(
@@ -274,7 +274,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
catalogHandlerUtils,
emptyExternalCatalogFactory(),
polarisEventListener,
- accessConfigProvider);
+ storageAccessConfigProvider);
// a variety of actions are all disallowed because the principal's
credentials must be rotated
doTestInsufficientPrivileges(
@@ -312,7 +312,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
catalogHandlerUtils,
emptyExternalCatalogFactory(),
polarisEventListener,
- accessConfigProvider);
+ storageAccessConfigProvider);
doTestSufficientPrivilegeSets(
List.of(Set.of(PolarisPrivilege.NAMESPACE_LIST)),
@@ -1189,7 +1189,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
catalogHandlerUtils,
emptyExternalCatalogFactory(),
polarisEventListener,
- accessConfigProvider);
+ storageAccessConfigProvider);
}
@Test
@@ -1894,7 +1894,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
diagServices,
resolverFactory,
Mockito.mock(),
- accessConfigProvider,
+ storageAccessConfigProvider,
new DefaultFileIOFactory(),
polarisEventListener,
metaStoreManager,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerFineGrainedDisabledTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerFineGrainedDisabledTest.java
index 7c5ae41b6..0b4fcc910 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerFineGrainedDisabledTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerFineGrainedDisabledTest.java
@@ -71,7 +71,7 @@ public class IcebergCatalogHandlerFineGrainedDisabledTest
extends PolarisAuthzTe
catalogHandlerUtils,
emptyExternalCatalogFactory(),
polarisEventListener,
- accessConfigProvider);
+ storageAccessConfigProvider);
}
public static class Profile extends PolarisAuthzTestBase.Profile {
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java
index 731ab6f07..673e0f292 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java
@@ -169,7 +169,8 @@ public class FileIOFactoryTest {
Assertions.assertThat(tasks).hasSize(1);
TaskEntity taskEntity = TaskEntity.of(tasks.get(0));
FileIO fileIO =
- new TaskFileIOSupplier(testServices.fileIOFactory(),
testServices.accessConfigProvider())
+ new TaskFileIOSupplier(
+ testServices.fileIOFactory(),
testServices.storageAccessConfigProvider())
.apply(taskEntity, TABLE, callContext);
Assertions.assertThat(fileIO).isNotNull().isInstanceOf(ExceptionMappingFileIO.class);
Assertions.assertThat(((ExceptionMappingFileIO) fileIO).getInnerIo())
@@ -216,7 +217,7 @@ public class FileIOFactoryTest {
passthroughView,
services.principal(),
services.taskExecutor(),
- services.accessConfigProvider(),
+ services.storageAccessConfigProvider(),
services.fileIOFactory(),
services.polarisEventListener());
polarisCatalog.initialize(
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/AbstractPolicyCatalogTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/AbstractPolicyCatalogTest.java
index 69b9cde7b..3ee2faf34 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/AbstractPolicyCatalogTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/AbstractPolicyCatalogTest.java
@@ -78,9 +78,9 @@ import
org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.admin.PolarisAdminService;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
import org.apache.polaris.service.catalog.iceberg.IcebergCatalog;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.DefaultFileIOFactory;
import org.apache.polaris.service.catalog.io.FileIOFactory;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.config.ReservedProperties;
import org.apache.polaris.service.events.listeners.NoOpPolarisEventListener;
import
org.apache.polaris.service.storage.PolarisStorageIntegrationProviderImpl;
@@ -145,7 +145,7 @@ public abstract class AbstractPolicyCatalogTest {
private FileIOFactory fileIOFactory;
private PolarisPrincipal authenticatedRoot;
private PolarisEntity catalogEntity;
- private AccessConfigProvider accessConfigProvider;
+ private StorageAccessConfigProvider storageAccessConfigProvider;
@BeforeAll
public static void setUpMocks() {
@@ -177,8 +177,8 @@ public abstract class AbstractPolicyCatalogTest {
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
- accessConfigProvider =
- new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
+ storageAccessConfigProvider =
+ new StorageAccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
@@ -259,7 +259,7 @@ public abstract class AbstractPolicyCatalogTest {
passthroughView,
authenticatedRoot,
taskExecutor,
- accessConfigProvider,
+ storageAccessConfigProvider,
fileIOFactory,
new NoOpPolarisEventListener());
this.icebergCatalog.initialize(
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/task/BatchFileCleanupTaskHandlerTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/task/BatchFileCleanupTaskHandlerTest.java
index 28db39376..b984ea823 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/task/BatchFileCleanupTaskHandlerTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/task/BatchFileCleanupTaskHandlerTest.java
@@ -49,7 +49,7 @@ import org.apache.polaris.core.entity.TaskEntity;
import org.apache.polaris.core.persistence.BasePersistence;
import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.service.TestFileIOFactory;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
@@ -60,7 +60,7 @@ public class BatchFileCleanupTaskHandlerTest {
private TaskFileIOSupplier buildTaskFileIOSupplier(FileIO fileIO) {
return new TaskFileIOSupplier(
- new TestFileIOFactory(fileIO),
Mockito.mock(AccessConfigProvider.class));
+ new TestFileIOFactory(fileIO),
Mockito.mock(StorageAccessConfigProvider.class));
}
private PolarisCallContext newCallContext() {
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/task/ManifestFileCleanupTaskHandlerTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/task/ManifestFileCleanupTaskHandlerTest.java
index d9ca54fac..5db3d7862 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/task/ManifestFileCleanupTaskHandlerTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/task/ManifestFileCleanupTaskHandlerTest.java
@@ -45,7 +45,7 @@ import org.apache.polaris.core.entity.TaskEntity;
import org.apache.polaris.core.persistence.BasePersistence;
import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.service.TestFileIOFactory;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
@@ -57,7 +57,7 @@ class ManifestFileCleanupTaskHandlerTest {
private TaskFileIOSupplier buildTaskFileIOSupplier(FileIO fileIO) {
return new TaskFileIOSupplier(
- new TestFileIOFactory(fileIO),
Mockito.mock(AccessConfigProvider.class));
+ new TestFileIOFactory(fileIO),
Mockito.mock(StorageAccessConfigProvider.class));
}
private PolarisCallContext newCallContext() {
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/task/TableCleanupTaskHandlerTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/task/TableCleanupTaskHandlerTest.java
index 8ebb96a42..c2569847f 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/task/TableCleanupTaskHandlerTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/task/TableCleanupTaskHandlerTest.java
@@ -51,7 +51,7 @@ import
org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.pagination.PageToken;
import org.apache.polaris.service.TestFileIOFactory;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -72,7 +72,7 @@ class TableCleanupTaskHandlerTest {
private TableCleanupTaskHandler newTableCleanupTaskHandler(FileIO fileIO) {
TaskFileIOSupplier taskFileIOSupplier =
new TaskFileIOSupplier(
- new TestFileIOFactory(fileIO),
Mockito.mock(AccessConfigProvider.class));
+ new TestFileIOFactory(fileIO),
Mockito.mock(StorageAccessConfigProvider.class));
return new TableCleanupTaskHandler(
Mockito.mock(), clock, metaStoreManagerFactory, taskFileIOSupplier);
}
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/task/TaskExecutorImplTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/task/TaskExecutorImplTest.java
index d6743a372..0c6061e5a 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/task/TaskExecutorImplTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/task/TaskExecutorImplTest.java
@@ -64,7 +64,7 @@ public class TaskExecutorImplTest {
testServices.clock(),
testServices.metaStoreManagerFactory(),
new TaskFileIOSupplier(
- testServices.fileIOFactory(),
testServices.accessConfigProvider()),
+ testServices.fileIOFactory(),
testServices.storageAccessConfigProvider()),
testServices.polarisEventListener(),
null);
diff --git
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestFileIOFactory.java
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestFileIOFactory.java
index 74f2fbc4c..faffe363b 100644
---
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestFileIOFactory.java
+++
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestFileIOFactory.java
@@ -22,7 +22,7 @@ package org.apache.polaris.service;
import jakarta.annotation.Nonnull;
import java.util.Map;
import org.apache.iceberg.io.FileIO;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
import org.apache.polaris.service.catalog.io.FileIOFactory;
/** A FileIOFactory that always returns the same FileIO instance. */
@@ -36,7 +36,7 @@ public class TestFileIOFactory implements FileIOFactory {
@Override
public FileIO loadFileIO(
- @Nonnull AccessConfig accessConfig,
+ @Nonnull StorageAccessConfig accessConfig,
@Nonnull String ioImplClassName,
@Nonnull Map<String, String> properties) {
return fileIO;
diff --git
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestServices.java
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestServices.java
index 030e00b73..6041d2c48 100644
---
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestServices.java
+++
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestServices.java
@@ -70,9 +70,9 @@ import
org.apache.polaris.service.catalog.api.IcebergRestCatalogApi;
import org.apache.polaris.service.catalog.api.IcebergRestConfigurationApi;
import org.apache.polaris.service.catalog.iceberg.CatalogHandlerUtils;
import org.apache.polaris.service.catalog.iceberg.IcebergCatalogAdapter;
-import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.FileIOFactory;
import org.apache.polaris.service.catalog.io.MeasuredFileIOFactory;
+import org.apache.polaris.service.catalog.io.StorageAccessConfigProvider;
import org.apache.polaris.service.config.ReservedProperties;
import org.apache.polaris.service.context.catalog.CallContextCatalogFactory;
import
org.apache.polaris.service.context.catalog.PolarisCallContextCatalogFactory;
@@ -112,7 +112,7 @@ public record TestServices(
FileIOFactory fileIOFactory,
TaskExecutor taskExecutor,
PolarisEventListener polarisEventListener,
- AccessConfigProvider accessConfigProvider) {
+ StorageAccessConfigProvider storageAccessConfigProvider) {
private static final RealmContext TEST_REALM = () -> "test-realm";
private static final String GCP_ACCESS_TOKEN = "abc";
@@ -273,8 +273,8 @@ public record TestServices(
PolarisCredentialManager credentialManager =
new DefaultPolarisCredentialManager(realmContext,
mockCredentialVendors);
- AccessConfigProvider accessConfigProvider =
- new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
+ StorageAccessConfigProvider storageAccessConfigProvider =
+ new StorageAccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
FileIOFactory fileIOFactory = fileIOFactorySupplier.get();
TaskExecutor taskExecutor = Mockito.mock(TaskExecutor.class);
@@ -285,7 +285,7 @@ public record TestServices(
diagnostics,
resolverFactory,
taskExecutor,
- accessConfigProvider,
+ storageAccessConfigProvider,
fileIOFactory,
polarisEventListener,
metaStoreManager,
@@ -317,7 +317,7 @@ public record TestServices(
catalogHandlerUtils,
externalCatalogFactory,
polarisEventListener,
- accessConfigProvider,
+ storageAccessConfigProvider,
new DefaultMetricsReporter());
IcebergRestCatalogApi restApi = new
IcebergRestCatalogApi(catalogService);
@@ -359,7 +359,7 @@ public record TestServices(
fileIOFactory,
taskExecutor,
polarisEventListener,
- accessConfigProvider);
+ storageAccessConfigProvider);
}
}
diff --git
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/catalog/io/MeasuredFileIOFactory.java
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/catalog/io/MeasuredFileIOFactory.java
index 1d5668d0f..9d18f6a8e 100644
---
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/catalog/io/MeasuredFileIOFactory.java
+++
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/catalog/io/MeasuredFileIOFactory.java
@@ -27,7 +27,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.function.Supplier;
import org.apache.iceberg.io.FileIO;
-import org.apache.polaris.core.storage.AccessConfig;
+import org.apache.polaris.core.storage.StorageAccessConfig;
/**
* A FileIOFactory that measures the number of bytes read, files written, and
files deleted. It can
@@ -52,7 +52,7 @@ public class MeasuredFileIOFactory implements FileIOFactory {
@Override
public FileIO loadFileIO(
- @Nonnull AccessConfig accessConfig,
+ @Nonnull StorageAccessConfig storageAccessConfig,
@Nonnull String ioImplClassName,
@Nonnull Map<String, String> properties) {
loadFileIOExceptionSupplier.ifPresent(
@@ -62,7 +62,7 @@ public class MeasuredFileIOFactory implements FileIOFactory {
MeasuredFileIO wrapped =
new MeasuredFileIO(
- defaultFileIOFactory.loadFileIO(accessConfig, ioImplClassName,
properties),
+ defaultFileIOFactory.loadFileIO(storageAccessConfig,
ioImplClassName, properties),
newInputFileExceptionSupplier,
newOutputFileExceptionSupplier,
getLengthExceptionSupplier);