diff --git a/getting-started/spark/docker-compose.yml b/getting-started/spark/docker-compose.yml index a6d51f3a99..f6224ec6d8 100644 --- a/getting-started/spark/docker-compose.yml +++ b/getting-started/spark/docker-compose.yml @@ -30,6 +30,7 @@ services: POLARIS_BOOTSTRAP_CREDENTIALS: default-realm,root,s3cr3t polaris.realm-context.realms: default-realm quarkus.otel.sdk.disabled: "true" + polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES": "[\"FILE\",\"S3\",\"GCS\",\"AZURE\"]" healthcheck: test: ["CMD", "curl", "http://localhost:8182/healthcheck"] interval: 10s diff --git a/helm/polaris/README.md b/helm/polaris/README.md index e6707091ff..886cd4ed3f 100644 --- a/helm/polaris/README.md +++ b/helm/polaris/README.md @@ -285,7 +285,7 @@ kubectl delete namespace polaris | persistence.eclipseLink.secret | object | `{"key":"persistence.xml","name":null}` | The secret name to pull persistence.xml from. | | persistence.eclipseLink.secret.key | string | `"persistence.xml"` | The key in the secret to pull persistence.xml from. | | persistence.eclipseLink.secret.name | string | `nil` | The name of the secret to pull persistence.xml from. If not provided, the default built-in persistence.xml will be used. This is probably not what you want. | -| persistence.type | string | `"relational-jdbc"` | Three built-in types are available: "relational-jdbc", "in-memory", "eclipse-link". The in-memory type is not recommended for production use. The eclipse-link type is deprecated and will be unsupported in a future release. | +| persistence.type | string | `"eclipse-link"` | The type of persistence to use. Two built-in types are supported: in-memory and eclipse-link. | | podAnnotations | object | `{}` | Annotations to apply to polaris pods. | | podLabels | object | `{}` | Additional Labels to apply to polaris pods. | | podSecurityContext | object | `{"fsGroup":10001,"seccompProfile":{"type":"RuntimeDefault"}}` | Security context for the polaris pod. See https://kubernetes.io/docs/tasks/configure-pod-container/security-context/. | diff --git a/plugins/spark/v3.5/regtests/docker-compose.yml b/plugins/spark/v3.5/regtests/docker-compose.yml index e1ea1a8981..bdb9440f21 100755 --- a/plugins/spark/v3.5/regtests/docker-compose.yml +++ b/plugins/spark/v3.5/regtests/docker-compose.yml @@ -28,6 +28,7 @@ services: POLARIS_BOOTSTRAP_CREDENTIALS: POLARIS,root,secret quarkus.log.file.enable: "false" quarkus.otel.sdk.disabled: "true" + polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES": "[\"FILE\",\"S3\",\"GCS\",\"AZURE\"]" healthcheck: test: ["CMD", "curl", "http://localhost:8182/q/health"] interval: 10s diff --git a/polaris-core/src/main/java/org/apache/polaris/core/config/FeatureConfiguration.java b/polaris-core/src/main/java/org/apache/polaris/core/config/FeatureConfiguration.java index f06bfad45d..b74d80577d 100644 --- a/polaris-core/src/main/java/org/apache/polaris/core/config/FeatureConfiguration.java +++ b/polaris-core/src/main/java/org/apache/polaris/core/config/FeatureConfiguration.java @@ -156,8 +156,7 @@ public static void enforceFeatureEnabledOrThrow( List.of( StorageConfigInfo.StorageTypeEnum.S3.name(), StorageConfigInfo.StorageTypeEnum.AZURE.name(), - StorageConfigInfo.StorageTypeEnum.GCS.name(), - StorageConfigInfo.StorageTypeEnum.FILE.name())) + StorageConfigInfo.StorageTypeEnum.GCS.name())) .buildFeatureConfiguration(); public static final FeatureConfiguration CLEANUP_ON_NAMESPACE_DROP = diff --git a/quarkus/defaults/src/main/resources/application-test.properties b/quarkus/defaults/src/main/resources/application-test.properties index 61d7a518aa..0fda77b7f7 100644 --- a/quarkus/defaults/src/main/resources/application-test.properties +++ b/quarkus/defaults/src/main/resources/application-test.properties @@ -22,3 +22,5 @@ quarkus.log.file.enable=false quarkus.datasource.devservices.image-name=postgres:17-alpine + +polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES"=["FILE","S3","GCS","AZURE"] diff --git a/quarkus/defaults/src/main/resources/application.properties b/quarkus/defaults/src/main/resources/application.properties index 64f6f24742..b915790111 100644 --- a/quarkus/defaults/src/main/resources/application.properties +++ b/quarkus/defaults/src/main/resources/application.properties @@ -109,7 +109,7 @@ polaris.realm-context.header-name=Polaris-Realm polaris.realm-context.require-header=false polaris.features."ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING"=false -polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES"=["S3","GCS","AZURE","FILE"] +polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES"=["S3","GCS","AZURE"] # polaris.features."ENABLE_CATALOG_FEDERATION"=true polaris.features."SUPPORTED_CATALOG_CONNECTION_TYPES"=["ICEBERG_REST"] diff --git a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisAuthzTestBase.java b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisAuthzTestBase.java index 8abb4c041d..31a6acafbc 100644 --- a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisAuthzTestBase.java +++ b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisAuthzTestBase.java @@ -228,7 +228,8 @@ public void before(TestInfo testInfo) { Map.of( "ALLOW_SPECIFYING_FILE_IO_IMPL", true, "ALLOW_EXTERNAL_METADATA_FILE_LOCATION", true, - "ENABLE_GENERIC_TABLES", true); + "ENABLE_GENERIC_TABLES", true, + "SUPPORTED_CATALOG_STORAGE_TYPES", List.of("FILE", "S3")); polarisContext = new PolarisCallContext( managerFactory.getOrCreateSessionSupplier(realmContext).get(), diff --git a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisOverlappingTableTest.java b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisOverlappingTableTest.java index f2e9294840..d045756c38 100644 --- a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisOverlappingTableTest.java +++ b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisOverlappingTableTest.java @@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat; import jakarta.ws.rs.core.Response; +import java.util.List; import java.util.Map; import java.util.UUID; import java.util.stream.Stream; @@ -73,10 +74,15 @@ private int createTable(TestServices services, String location) { static Stream testTableLocationRestrictions() { Map laxServices = - Map.of("ALLOW_UNSTRUCTURED_TABLE_LOCATION", "true", "ALLOW_TABLE_LOCATION_OVERLAP", "true"); + Map.of( + "ALLOW_UNSTRUCTURED_TABLE_LOCATION", "true", + "ALLOW_TABLE_LOCATION_OVERLAP", "true", + "SUPPORTED_CATALOG_STORAGE_TYPES", List.of("FILE", "S3")); Map strictServices = Map.of( - "ALLOW_UNSTRUCTURED_TABLE_LOCATION", "false", "ALLOW_TABLE_LOCATION_OVERLAP", "false"); + "ALLOW_UNSTRUCTURED_TABLE_LOCATION", "false", + "ALLOW_TABLE_LOCATION_OVERLAP", "false", + "SUPPORTED_CATALOG_STORAGE_TYPES", List.of("FILE", "S3")); Map laxCatalog = Map.of( ALLOW_UNSTRUCTURED_TABLE_LOCATION.catalogConfig(), diff --git a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/GetConfigTest.java b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/GetConfigTest.java index 5e77d6aea3..be5d0c5839 100644 --- a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/GetConfigTest.java +++ b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/GetConfigTest.java @@ -39,7 +39,14 @@ public class GetConfigTest { @ValueSource(booleans = {true, false}) public void testGetConfig(boolean enableGenericTable) { TestServices services = - TestServices.builder().config(Map.of("ENABLE_GENERIC_TABLES", enableGenericTable)).build(); + TestServices.builder() + .config( + Map.of( + "ENABLE_GENERIC_TABLES", + enableGenericTable, + "SUPPORTED_CATALOG_STORAGE_TYPES", + List.of("FILE", "S3"))) + .build(); FileStorageConfigInfo fileStorage = FileStorageConfigInfo.builder(StorageConfigInfo.StorageTypeEnum.FILE) diff --git a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/io/FileIOExceptionsTest.java b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/io/FileIOExceptionsTest.java index 4ae234e55a..1899cb07be 100644 --- a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/io/FileIOExceptionsTest.java +++ b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/catalog/io/FileIOExceptionsTest.java @@ -27,6 +27,7 @@ import com.google.cloud.storage.StorageException; import jakarta.ws.rs.core.Response; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.stream.Stream; import org.apache.iceberg.Schema; @@ -60,7 +61,10 @@ public class FileIOExceptionsTest { @BeforeAll public static void beforeAll() { - services = TestServices.builder().build(); + services = + TestServices.builder() + .config(Map.of("SUPPORTED_CATALOG_STORAGE_TYPES", List.of("FILE", "S3"))) + .build(); ioFactory = (MeasuredFileIOFactory) services.fileIOFactory(); FileStorageConfigInfo storageConfigInfo = diff --git a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewFileIntegrationTest.java b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewFileIntegrationTest.java index 3987e94d28..d487e75b39 100644 --- a/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewFileIntegrationTest.java +++ b/quarkus/service/src/test/java/org/apache/polaris/service/quarkus/it/QuarkusRestCatalogViewFileIntegrationTest.java @@ -19,10 +19,8 @@ package org.apache.polaris.service.quarkus.it; import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.QuarkusTestProfile; import java.lang.reflect.Field; import java.nio.file.Path; -import java.util.Map; import org.apache.iceberg.view.ViewCatalogTests; import org.apache.polaris.service.it.test.PolarisRestCatalogViewFileIntegrationTest; import org.junit.jupiter.api.BeforeEach; @@ -32,14 +30,6 @@ public class QuarkusRestCatalogViewFileIntegrationTest extends PolarisRestCatalogViewFileIntegrationTest { - public static class Profile implements QuarkusTestProfile { - - @Override - public Map getConfigOverrides() { - return Map.of("polaris.features.\"SUPPORTED_CATALOG_STORAGE_TYPES\"", "[\"FILE\"]"); - } - } - @BeforeEach public void setUpTempDir(@TempDir Path tempDir) throws Exception { // see https://github.com/quarkusio/quarkus/issues/13261 diff --git a/regtests/docker-compose.yml b/regtests/docker-compose.yml index 24ae7a362d..8034e331a0 100644 --- a/regtests/docker-compose.yml +++ b/regtests/docker-compose.yml @@ -34,6 +34,7 @@ services: POLARIS_BOOTSTRAP_CREDENTIALS: POLARIS,root,secret quarkus.log.file.enable: "false" quarkus.otel.sdk.disabled: "true" + polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES": "[\"FILE\",\"S3\",\"GCS\",\"AZURE\"]" volumes: - ./credentials:/tmp/credentials/ healthcheck: diff --git a/service/common/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java b/service/common/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java index 30afc5c09a..ac0f067359 100644 --- a/service/common/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java +++ b/service/common/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java @@ -121,7 +121,12 @@ FileIO loadFileIOInternal( testServices = TestServices.builder() - .config(Map.of("ALLOW_SPECIFYING_FILE_IO_IMPL", true)) + .config( + Map.of( + "ALLOW_SPECIFYING_FILE_IO_IMPL", + true, + "SUPPORTED_CATALOG_STORAGE_TYPES", + List.of("FILE", "S3"))) .realmContext(realmContext) .stsClient(stsClient) .fileIOFactorySupplier(fileIOFactorySupplier) diff --git a/site/content/in-dev/unreleased/configuration.md b/site/content/in-dev/unreleased/configuration.md index e9802c2b28..f638f79130 100644 --- a/site/content/in-dev/unreleased/configuration.md +++ b/site/content/in-dev/unreleased/configuration.md @@ -77,46 +77,46 @@ read-only mode, as Polaris only reads the configuration file once, at startup. ## Polaris Configuration Options Reference -| Configuration Property | Default Value | Description | -|--------------------------------------------------------------------------------------------|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `polaris.persistence.type` | `relational-jdbc` | Define the persistence backend used by Polaris (`in-memory`, `relational-jdbc`, `eclipse-link` (deprecated)). See [Configuring Apache Polaris for Production)[{{% ref "configuring-polaris-for-production.md" %}}) | -| `polaris.persistence.relational.jdbc.max-retries` | `1` | Total number of retries JDBC persistence will attempt on connection resets or serialization failures before giving up. | -| `polaris.persistence.relational.jdbc.max_duaration_in_ms` | `5000 ms` | Max time interval (ms) since the start of a transaction when retries can be attempted. | -| `polaris.persistence.relational.jdbc.initial_delay_in_ms` | `100 ms` | Initial delay before retrying. The delay is doubled after each retry. | -| `polaris.persistence.eclipselink.configurationFile` | | Define the location of the `persistence.xml`. By default, it's the built-in `persistence.xml` in use. | -| `polaris.persistence.eclipselink.persistenceUnit` | `polaris` | Define the name of the persistence unit to use, as defined in the `persistence.xml`. | -| `polaris.realm-context.type` | `default` | Define the type of the Polaris realm to use. | -| `polaris.realm-context.realms` | `POLARIS` | Define the list of realms to use. | -| `polaris.realm-context.header-name` | `Polaris-Realm` | Define the header name defining the realm context. | -| `polaris.features."ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING"` | `false` | Flag to enforce check if credential rotation. | -| `polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES"` | `FILE` | Define the catalog supported storage. Supported values are `S3`, `GCS`, `AZURE`, `FILE`. | -| `polaris.features.realm-overrides."my-realm"."INITIALIZE_DEFAULT_CATALOG_FILEIO_FOR_TEST"` | `true` | "Override" realm features, here the catalog init default flag. | -| `polaris.features.realm-overrides."my-realm"."SKIP_CREDENTIAL_SUBSCOPING_INDIRECTION"` | `true` | "Override" realm features, here the skip credential subscoping indirection flag. | -| `polaris.authentication.authenticator.type` | `default` | Define the Polaris authenticator type. | -| `polaris.authentication.token-service.type` | `default` | Define the Polaris token service type. | -| `polaris.authentication.token-broker.type` | `rsa-key-pair` | Define the Polaris token broker type. | -| `polaris.authentication.token-broker.max-token-generation` | `PT1H` | Define the max token generation policy on the token broker. | -| `polaris.authentication.token-broker.rsa-key-pair.public-key-file` | `/tmp/public.key` | Define the location of the public key file. | -| `polaris.authentication.token-broker.rsa-key-pair.private-key-file` | `/tmp/private.key` | Define the location of the private key file. | -| `polaris.authentication.token-broker.symmetric-key.secret` | `secret` | Define the secret of the symmetric key. | -| `polaris.authentication.token-broker.symmetric-key.file` | `/tmp/symmetric.key` | Define the location of the symmetric key file. | -| `polaris.storage.aws.access-key` | `accessKey` | Define the AWS S3 access key. If unset, the default credential provider chain will be used. | -| `polaris.storage.aws.secret-key` | `secretKey` | Define the AWS S3 secret key. If unset, the default credential provider chain will be used. | -| `polaris.storage.gcp.token` | `token` | Define the Google Cloud Storage token. If unset, the default credential provider chain will be used. | -| `polaris.storage.gcp.lifespan` | `PT1H` | Define the Google Cloud Storage lifespan type. If unset, the default credential provider chain will be used. | -| `polaris.log.request-id-header-name` | `Polaris-Request-Id` | Define the header name to match request ID in the log. | -| `polaris.log.mdc.aid` | `polaris` | Define the log context (e.g. MDC) AID. | -| `polaris.log.mdc.sid` | `polaris-service` | Define the log context (e.g. MDC) SID. | -| `polaris.rate-limiter.filter.type` | `no-op` | Define the Polaris rate limiter. Supported values are `no-op`, `token-bucket`. | -| `polaris.rate-limiter.token-bucket.type` | `default` | Define the token bucket rate limiter. | -| `polaris.rate-limiter.token-bucket.requests-per-second` | `9999` | Define the number of requests per second for the token bucket rate limiter. | -| `polaris.rate-limiter.token-bucket.window` | `PT10S` | Define the window type for the token bucket rate limiter. | -| `polaris.metrics.tags.application` | `Polaris` | Define the application name tag in metrics. | -| `polaris.metrics.tags.service` | `polaris` | Define the service tag in metrics. | -| `polaris.metrics.tags.environment` | `prod` | Define the environement tag in metrics. | -| `polaris.metrics.tags.region` | `us-west-2` | Define the region tag in metrics. | -| `polaris.tasks.max-concurrent-tasks` | `100` | Define the max number of concurrent tasks. | -| `polaris.tasks.max-queued-tasks` | `1000` | Define the max number of tasks in queue. | +| Configuration Property | Default Value | Description | +|--------------------------------------------------------------------------------------------|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `polaris.persistence.type` | `relational-jdbc` | Define the persistence backend used by Polaris (`in-memory`, `relational-jdbc`, `eclipse-link` (deprecated)). See [Configuring Apache Polaris for Production)[{{% ref "configuring-polaris-for-production.md" %}}) | +| `polaris.persistence.relational.jdbc.max-retries` | `1` | Total number of retries JDBC persistence will attempt on connection resets or serialization failures before giving up. | +| `polaris.persistence.relational.jdbc.max_duaration_in_ms` | `5000 ms` | Max time interval (ms) since the start of a transaction when retries can be attempted. | +| `polaris.persistence.relational.jdbc.initial_delay_in_ms` | `100 ms` | Initial delay before retrying. The delay is doubled after each retry. | +| `polaris.persistence.eclipselink.configurationFile` | | Define the location of the `persistence.xml`. By default, it's the built-in `persistence.xml` in use. | +| `polaris.persistence.eclipselink.persistenceUnit` | `polaris` | Define the name of the persistence unit to use, as defined in the `persistence.xml`. | +| `polaris.realm-context.type` | `default` | Define the type of the Polaris realm to use. | +| `polaris.realm-context.realms` | `POLARIS` | Define the list of realms to use. | +| `polaris.realm-context.header-name` | `Polaris-Realm` | Define the header name defining the realm context. | +| `polaris.features."ENFORCE_PRINCIPAL_CREDENTIAL_ROTATION_REQUIRED_CHECKING"` | `false` | Flag to enforce check if credential rotation. | +| `polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES"` | `["S3", "GCS", "AZURE"]` | Define the catalog supported storage. Supported values are `S3`, `GCS`, `AZURE`, `FILE`. | +| `polaris.features.realm-overrides."my-realm"."INITIALIZE_DEFAULT_CATALOG_FILEIO_FOR_TEST"` | `true` | "Override" realm features, here the catalog init default flag. | +| `polaris.features.realm-overrides."my-realm"."SKIP_CREDENTIAL_SUBSCOPING_INDIRECTION"` | `true` | "Override" realm features, here the skip credential subscoping indirection flag. | +| `polaris.authentication.authenticator.type` | `default` | Define the Polaris authenticator type. | +| `polaris.authentication.token-service.type` | `default` | Define the Polaris token service type. | +| `polaris.authentication.token-broker.type` | `rsa-key-pair` | Define the Polaris token broker type. | +| `polaris.authentication.token-broker.max-token-generation` | `PT1H` | Define the max token generation policy on the token broker. | +| `polaris.authentication.token-broker.rsa-key-pair.public-key-file` | `/tmp/public.key` | Define the location of the public key file. | +| `polaris.authentication.token-broker.rsa-key-pair.private-key-file` | `/tmp/private.key` | Define the location of the private key file. | +| `polaris.authentication.token-broker.symmetric-key.secret` | `secret` | Define the secret of the symmetric key. | +| `polaris.authentication.token-broker.symmetric-key.file` | `/tmp/symmetric.key` | Define the location of the symmetric key file. | +| `polaris.storage.aws.access-key` | `accessKey` | Define the AWS S3 access key. If unset, the default credential provider chain will be used. | +| `polaris.storage.aws.secret-key` | `secretKey` | Define the AWS S3 secret key. If unset, the default credential provider chain will be used. | +| `polaris.storage.gcp.token` | `token` | Define the Google Cloud Storage token. If unset, the default credential provider chain will be used. | +| `polaris.storage.gcp.lifespan` | `PT1H` | Define the Google Cloud Storage lifespan type. If unset, the default credential provider chain will be used. | +| `polaris.log.request-id-header-name` | `Polaris-Request-Id` | Define the header name to match request ID in the log. | +| `polaris.log.mdc.aid` | `polaris` | Define the log context (e.g. MDC) AID. | +| `polaris.log.mdc.sid` | `polaris-service` | Define the log context (e.g. MDC) SID. | +| `polaris.rate-limiter.filter.type` | `no-op` | Define the Polaris rate limiter. Supported values are `no-op`, `token-bucket`. | +| `polaris.rate-limiter.token-bucket.type` | `default` | Define the token bucket rate limiter. | +| `polaris.rate-limiter.token-bucket.requests-per-second` | `9999` | Define the number of requests per second for the token bucket rate limiter. | +| `polaris.rate-limiter.token-bucket.window` | `PT10S` | Define the window type for the token bucket rate limiter. | +| `polaris.metrics.tags.application` | `Polaris` | Define the application name tag in metrics. | +| `polaris.metrics.tags.service` | `polaris` | Define the service tag in metrics. | +| `polaris.metrics.tags.environment` | `prod` | Define the environement tag in metrics. | +| `polaris.metrics.tags.region` | `us-west-2` | Define the region tag in metrics. | +| `polaris.tasks.max-concurrent-tasks` | `100` | Define the max number of concurrent tasks. | +| `polaris.tasks.max-queued-tasks` | `1000` | Define the max number of tasks in queue. | There are non Polaris configuration properties that can be useful: diff --git a/site/content/in-dev/unreleased/configuring-polaris-for-production.md b/site/content/in-dev/unreleased/configuring-polaris-for-production.md index 3d0bfd232c..9b0da38478 100644 --- a/site/content/in-dev/unreleased/configuring-polaris-for-production.md +++ b/site/content/in-dev/unreleased/configuring-polaris-for-production.md @@ -206,12 +206,3 @@ curl -X POST http://localhost:8181/api/catalog/v1/oauth/tokens \ -d "client_secret=my-client-secret" \ -d "scope=PRINCIPAL_ROLE:ALL" ``` - -### Disable FILE Storage Type -By default, Polaris allows using the local file system (`FILE`) for catalog storage. This is fine for testing, -but **not recommended for production**. To disable it, set the supported storage types like this: -```hocon -polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES" = [ "S3", "Azure" ] -``` -Leave out `FILE` to prevent its use. Only include the storage types your setup needs. -