{"@attributes":{"version":"2.0"},"channel":{"title":"Apache Polaris","link":"https:\/\/polaris.apache.org\/","description":"Recent content on Apache Polaris","generator":"Hugo","language":"en-us","copyright":"<a href=\"https:\/\/www.apache.org\/\">Copyright \u00a9 2026 The Apache Software Foundation<\/a>.<br>Licensed under the <a href=\"https:\/\/www.apache.org\/licenses\/LICENSE-2.0\">Apache License, Version 2.0<\/a>.","lastBuildDate":"Sat, 04 Apr 2026 00:00:00 +0000","item":[{"title":"Apache Polaris 1.5.0","link":"https:\/\/polaris.apache.org\/downloads\/1.5.0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/1.5.0\/","description":"<p>Released on May 18th, 2026.<\/p>\n<h3 id=\"downloads\" id=\"downloads\">Downloads<a class=\"heading-anchor\" href=\"#downloads\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Artifact<\/th>\n <th>PGP Sig<\/th>\n <th>SHA-512<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.5.0\/apache-polaris-1.5.0.tar.gz\">source tar.gz<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.5.0\/apache-polaris-1.5.0.tar.gz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.5.0\/apache-polaris-1.5.0.tar.gz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.5.0\/polaris-bin-1.5.0.tgz\">binary tgz<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.5.0\/polaris-bin-1.5.0.tgz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.5.0\/polaris-bin-1.5.0.tgz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.5.0\/polaris-bin-1.5.0.zip\">binary zip<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.5.0\/polaris-bin-1.5.0.zip.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.5.0\/polaris-bin-1.5.0.zip.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.5.0\/polaris-spark-3.5_2.12-1.5.0-bundle.jar\">Spark 3.5 with Scala 2.12 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.5.0\/polaris-spark-3.5_2.12-1.5.0-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.5.0\/polaris-spark-3.5_2.12-1.5.0-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.5.0\/polaris-spark-3.5_2.13-1.5.0-bundle.jar\">Spark 3.5 with Scala 2.13 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.5.0\/polaris-spark-3.5_2.13-1.5.0-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.5.0\/polaris-spark-3.5_2.13-1.5.0-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"release-notes\" id=\"release-notes\">Release Notes<a class=\"heading-anchor\" href=\"#release-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<h4 id=\"upgrade-notes\" id=\"upgrade-notes\">Upgrade notes<a class=\"heading-anchor\" href=\"#upgrade-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<h4 id=\"breaking-changes\" id=\"breaking-changes\">Breaking changes<a class=\"heading-anchor\" href=\"#breaking-changes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>The <code>ConnectionCredentials.of()<\/code> method now throws an exception when more than one expiration timestamp property is present in the credentials map. Only a single expiration timestamp is allowed per credentials bundle.<\/li>\n<li>Entity names (namespaces, tables, views, generic tables) submitted to the REST layer are now rejected with HTTP 400 if they are empty, contain a <code>\/<\/code>, or have leading\/trailing whitespace. Clients that were previously able to create such entities must rename them before upgrading.<\/li>\n<li><code>renameTable<\/code> now returns HTTP 204 (No Content) instead of 200, as required by the Iceberg REST Catalog spec. Clients that expect a 200 response must be updated.<\/li>\n<\/ul>\n<h4 id=\"new-features\" id=\"new-features\">New Features<a class=\"heading-anchor\" href=\"#new-features\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Added <code>envFrom<\/code> support in Helm chart.<\/li>\n<li>Added summarize subcommand to Polaris CLI.<\/li>\n<li>Added find and tables options to Polaris CLI.<\/li>\n<li>Added support for multiple event listeners. Set <code>polaris.event-listener.types<\/code> to a comma-separated list of event listener types to enable multiple event listeners.<\/li>\n<li>Added support for enabling only a subset of event types and event categories per event listener. Set <code>polaris.event-listener.<\/code><em><code>&lt;name&gt;<\/code><\/em><code>.enabled-event-types<\/code> or <code>polaris.event-listener.<\/code><em><code>&lt;name&gt;<\/code><\/em><code>.enabled-event-categories<\/code> to the list of event types or categories for the specified event listener to only consume the selected subset of events.<\/li>\n<li>Added support for <strong>Apache Ranger<\/strong> as an external authorizer (Beta).<\/li>\n<\/ul>\n<h4 id=\"changes\" id=\"changes\">Changes<a class=\"heading-anchor\" href=\"#changes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Improved Python CLI error messages and exit codes for invalid arguments and configuration errors.<\/li>\n<li>Removed unused <code>PolarisAuthorizableOperation<\/code> values: <code>REVOKE_PRINCIPAL_GRANT_FROM_PRINCIPAL_ROLE<\/code>, <code>REVOKE_PRINCIPAL_ROLE_GRANT_FROM_PRINCIPAL_ROLE<\/code>, <code>LIST_GRANTS_ON_ROOT<\/code>, <code>ADD_PRINCIPAL_GRANT_TO_PRINCIPAL_ROLE<\/code>, <code>LIST_GRANTS_ON_PRINCIPAL<\/code>, <code>ADD_PRINCIPAL_ROLE_GRANT_TO_PRINCIPAL_ROLE<\/code>, <code>LIST_GRANTS_ON_PRINCIPAL_ROLE<\/code>, <code>ADD_CATALOG_ROLE_GRANT_TO_CATALOG_ROLE<\/code>, <code>REVOKE_CATALOG_ROLE_GRANT_FROM_CATALOG_ROLE<\/code>, <code>LIST_GRANTS_ON_CATALOG_ROLE<\/code>, <code>LIST_GRANTS_ON_CATALOG<\/code>, <code>LIST_GRANTS_ON_NAMESPACE<\/code>, <code>LIST_GRANTS_ON_TABLE<\/code>, <code>LIST_GRANTS_ON_VIEW<\/code>.<\/li>\n<li>Changed deprecated APIs in JUnit 5. This change will force downstream projects that pull in the Polaris test packages to adopt JUnit 6.<\/li>\n<li>Added client id collision check during reset.<\/li>\n<li>The ExternalCatalogFactory interface has been renamed to FederatedCatalogFactory. Its createCatalog() and createGenericCatalog() method signatures have been extended to include a <code>catalogProperties<\/code> parameter of type <code>Map&lt;String, String&gt;<\/code> for passing through proxy and timeout settings to federated catalog HTTP clients.<\/li>\n<\/ul>\n<h4 id=\"deprecations\" id=\"deprecations\">Deprecations<a class=\"heading-anchor\" href=\"#deprecations\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>The configuration option <code>polaris.event-listener.type<\/code> is deprecated and will be removed later. Please use <code>polaris.event-listener.types<\/code> instead.<\/li>\n<\/ul>"},{"title":"Apache Polaris 1.4.1","link":"https:\/\/polaris.apache.org\/downloads\/1.4.1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/1.4.1\/","description":"<p>Released on May 1st, 2026.<\/p>\n<h3 id=\"downloads\" id=\"downloads\">Downloads<a class=\"heading-anchor\" href=\"#downloads\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Artifact<\/th>\n <th>PGP Sig<\/th>\n <th>SHA-512<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.1\/apache-polaris-1.4.1.tar.gz\">source tar.gz<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.1\/apache-polaris-1.4.1.tar.gz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.1\/apache-polaris-1.4.1.tar.gz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.1\/polaris-bin-1.4.1.tgz\">binary tgz<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.1\/polaris-bin-1.4.1.tgz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.1\/polaris-bin-1.4.1.tgz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.1\/polaris-bin-1.4.1.zip\">binary zip<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.1\/polaris-bin-1.4.1.zip.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.1\/polaris-bin-1.4.1.zip.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.4.1\/polaris-spark-3.5_2.12-1.4.1-bundle.jar\">Spark 3.5 with Scala 2.12 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.4.1\/polaris-spark-3.5_2.12-1.4.1-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.4.1\/polaris-spark-3.5_2.12-1.4.1-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.4.1\/polaris-spark-3.5_2.13-1.4.1-bundle.jar\">Spark 3.5 with Scala 2.13 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.4.1\/polaris-spark-3.5_2.13-1.4.1-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.4.1\/polaris-spark-3.5_2.13-1.4.1-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"release-notes\" id=\"release-notes\">Release Notes<a class=\"heading-anchor\" href=\"#release-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<h4 id=\"fixes\" id=\"fixes\">Fixes<a class=\"heading-anchor\" href=\"#fixes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<p>This release fixes 4 security issues:<\/p>\n<ul>\n<li><a href=\"..\/..\/community\/security-advisories\/cve-2026-42809\/\">CVE-2026-42809<\/a><\/li>\n<li><a href=\"..\/..\/community\/security-advisories\/cve-2026-42810\/\">CVE-2026-42810<\/a><\/li>\n<li><a href=\"..\/..\/community\/security-advisories\/cve-2026-42811\/\">CVE-2026-42811<\/a><\/li>\n<li><a href=\"..\/..\/community\/security-advisories\/cve-2026-42812\/\">CVE-2026-42812<\/a><\/li>\n<\/ul>"},{"title":"Apache Polaris 1.4.0","link":"https:\/\/polaris.apache.org\/downloads\/1.4.0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/1.4.0\/","description":"<p>Released on April 21st, 2026.<\/p>\n<h3 id=\"downloads\" id=\"downloads\">Downloads<a class=\"heading-anchor\" href=\"#downloads\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Artifact<\/th>\n <th>PGP Sig<\/th>\n <th>SHA-512<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.0\/apache-polaris-1.4.0.tar.gz\">source tar.gz<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.0\/apache-polaris-1.4.0.tar.gz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.0\/apache-polaris-1.4.0.tar.gz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.0\/polaris-bin-1.4.0.tgz\">binary tgz<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.0\/polaris-bin-1.4.0.tgz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.0\/polaris-bin-1.4.0.tgz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.0\/polaris-bin-1.4.0.zip\">binary zip<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.0\/polaris-bin-1.4.0.zip.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/dlcdn.apache.org\/polaris\/1.4.0\/polaris-bin-1.4.0.zip.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.4.0\/polaris-spark-3.5_2.12-1.4.0-bundle.jar\">Spark 3.5 with Scala 2.12 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.4.0\/polaris-spark-3.5_2.12-1.4.0-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.4.0\/polaris-spark-3.5_2.12-1.4.0-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.4.0\/polaris-spark-3.5_2.13-1.4.0-bundle.jar\">Spark 3.5 with Scala 2.13 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.4.0\/polaris-spark-3.5_2.13-1.4.0-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.4.0\/polaris-spark-3.5_2.13-1.4.0-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"release-notes\" id=\"release-notes\">Release Notes<a class=\"heading-anchor\" href=\"#release-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<h4 id=\"upgrade-notes\" id=\"upgrade-notes\">Upgrade notes<a class=\"heading-anchor\" href=\"#upgrade-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>The custom token-bucket based rate limiter has been replaced with Guava&rsquo;s rate limiter implementation.<\/li>\n<li>The Helm chart now includes a JSON schema file for easy validation of values files. Because types\nare now validated, existing values files may need to be updated to match the new schema.<\/li>\n<\/ul>\n<h4 id=\"breaking-changes\" id=\"breaking-changes\">Breaking changes<a class=\"heading-anchor\" href=\"#breaking-changes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>The (Before\/After)CommitViewEvent has been removed.<\/li>\n<li>The (Before\/After)CommitTableEvent has been removed.<\/li>\n<li>The <code>PolarisMetricsReporter.reportMetric()<\/code> method signature has been extended to include a <code>receivedTimestamp<\/code> parameter of type <code>java.time.Instant<\/code>.<\/li>\n<li>The <code>ExternalCatalogFactory.createCatalog()<\/code> and <code>createGenericCatalog()<\/code> method signatures have been extended to include a <code>catalogProperties<\/code> parameter of type <code>Map&lt;String, String&gt;<\/code> for passing through proxy and timeout settings to federated catalog HTTP clients.<\/li>\n<li>Metrics reporting now requires the <code>TABLE_READ_DATA<\/code> privilege on the target table for read (scan) metrics and <code>TABLE_WRITE_DATA<\/code> for write (commit) metrics.<\/li>\n<li>The <code>REVOKE_CATALOG_ROLE_FROM_PRINCIPAL_ROLE<\/code> operation no longer requires the <code>PRINCIPAL_ROLE_MANAGE_GRANTS_FOR_GRANTEE<\/code> privilege. Only <code>CATALOG_ROLE_MANAGE_GRANTS_ON_SECURABLE<\/code> on the catalog role is now required, making revoke symmetric with assign. This allows catalog administrators to fully manage catalog role assignments without requiring elevated privileges on principal roles.<\/li>\n<\/ul>\n<h4 id=\"new-features\" id=\"new-features\">New Features<a class=\"heading-anchor\" href=\"#new-features\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Added <code>envFrom<\/code> support in Helm chart.<\/li>\n<li>Added <code>deploymentAnnotations<\/code> support in Helm chart.<\/li>\n<li>Added KMS properties (optional) to catalog storage config to enable S3 data encryption.<\/li>\n<li>Added <code>topologySpreadConstraints<\/code> support in Helm chart.<\/li>\n<li>Added <code>priorityClassName<\/code> support in Helm chart.<\/li>\n<li>Added support for including principal name in subscoped credentials. <code>INCLUDE_PRINCIPAL_NAME_IN_SUBSCOPED_CREDENTIAL<\/code> (default: false) can be used to toggle this feature. If enabled, cached credentials issued to one principal will no longer be available for others.<\/li>\n<li>Added per-field selection for AWS STS session tags in credential vending. The new <code>SESSION_TAGS_IN_SUBSCOPED_CREDENTIAL<\/code> configuration accepts a comma-separated list of fields to include as session tags (supported: <code>realm<\/code>, <code>catalog<\/code>, <code>namespace<\/code>, <code>table<\/code>, <code>principal<\/code>, <code>roles<\/code>, <code>trace_id<\/code>). This replaces the previous <code>INCLUDE_SESSION_TAGS_IN_SUBSCOPED_CREDENTIAL<\/code> and <code>INCLUDE_TRACE_ID_IN_SESSION_TAGS<\/code> boolean flags. Selecting only the fields needed helps avoid AWS STS packed policy size limit errors (2048 characters) caused by long namespace paths. Note: including <code>trace_id<\/code> disables credential caching, which may increase STS calls and latency.<\/li>\n<li>Added support for <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Kubernetes Gateway API<\/a> to the Helm Chart.<\/li>\n<li>Added <code>hierarchical<\/code> flag to <code>AzureStorageConfigInfo<\/code> to allow more precise SAS token down-scoping in ADLS when\nthe <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/storage\/blobs\/data-lake-storage-namespace\">hierarchical namespace<\/a>\nfeature is enabled in Azure.<\/li>\n<li>Relaxed <code>client_id<\/code>, <code>client_secret<\/code> regex\/pattern validation on reset endpoint call<\/li>\n<li>Added support for S3-compatible storage that does not have KMS (use <code>kmsUavailable: true<\/code> in catalog storage configuration)<\/li>\n<li>Added support for storage-scoped AWS credentials, allowing different AWS credentials to be configured per named storage. Enable with the <code>RESOLVE_CREDENTIALS_BY_STORAGE_NAME<\/code> feature flag (default: false). Storage names can be set explicitly via the <code>storageName<\/code> field on storage configuration, or inferred from the first allowed location&rsquo;s host.<\/li>\n<li>Added support for persisting Iceberg metrics (ScanReport, CommitReport) to the database. Enable by setting <code>polaris.iceberg-metrics.reporting.type=persisting<\/code> in configuration. Metrics tables are included in the main JDBC schema.<\/li>\n<li>Added setup options to Polaris CLI.<\/li>\n<li>Added CockroachDB as a supported database for the relational JDBC persistence backend. Set <code>polaris.persistence.relational.jdbc.database-type<\/code> to <code>cockroachdb<\/code> to get started.<\/li>\n<\/ul>\n<h4 id=\"changes\" id=\"changes\">Changes<a class=\"heading-anchor\" href=\"#changes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Changed deprecated APIs in JUnit 5. This change will force downstream projects that pull in the Polaris test packages to adopt JUnit 6.<\/li>\n<li>The <code>gcpServiceAccount<\/code> configuration value now affects Polaris behavior (enables service account impersonation). This value was previously defined but unused. This change may affect existing deployments that have populated this property.<\/li>\n<li>(Before\/After)UpdateTableEvent is emitted for all table updates within a transaction.<\/li>\n<li>Added KMS options to Polaris CLI.<\/li>\n<li>Changed from Poetry to UV for Python package management.<\/li>\n<li>Exclude KMS policies when KMS is not being used for S3.<\/li>\n<li>Improved default KMS permission handling to better distinguish read-only and read-write access.<\/li>\n<\/ul>\n<h4 id=\"deprecations\" id=\"deprecations\">Deprecations<a class=\"heading-anchor\" href=\"#deprecations\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>The configuration option <code>polaris.rate-limiter.token-bucket.window<\/code> is no longer supported and should be removed.<\/li>\n<li><code>PolarisConfigurationStore<\/code> has been deprecated for removal.<\/li>\n<\/ul>\n<h4 id=\"fixes\" id=\"fixes\">Fixes<a class=\"heading-anchor\" href=\"#fixes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Fixed error propagation in drop operations (<code>dropTable<\/code>, <code>dropView<\/code>, <code>dropNamespace<\/code>). Server errors now return appropriate HTTP status codes based on persistence result instead of always returning NotFound<\/li>\n<li>Enable non-AWS STS role ARNs<\/li>\n<li>Helm chart: fixed a bug that prevented CORS settings to be properly applied. A new setting <code>cors.enabled<\/code> has been introduced in the chart as part of the fix.<\/li>\n<\/ul>"},{"title":"Apache Polaris 1.3.0-incubating","link":"https:\/\/polaris.apache.org\/downloads\/1.3.0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/1.3.0\/","description":"<p>Released on January 16th, 2026.<\/p>\n<h3 id=\"downloads\" id=\"downloads\">Downloads<a class=\"heading-anchor\" href=\"#downloads\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Artifact<\/th>\n <th>PGP Sig<\/th>\n <th>SHA-512<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/incubator\/polaris\/1.3.0-incubating\/apache-polaris-1.3.0-incubating.tar.gz\">source tar.gz<\/a><\/td>\n <td><a href=\"https:\/\/downloads.apache.org\/incubator\/polaris\/1.3.0-incubating\/apache-polaris-1.3.0-incubating.tar.gz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/downloads.apache.org\/incubator\/polaris\/1.3.0-incubating\/apache-polaris-1.3.0-incubating.tar.gz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/incubator\/polaris\/1.3.0-incubating\/polaris-bin-1.3.0-incubating.tgz\">binary tgz<\/a><\/td>\n <td><a href=\"https:\/\/downloads.apache.org\/incubator\/polaris\/1.3.0-incubating\/polaris-bin-1.3.0-incubating.tgz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/downloads.apache.org\/incubator\/polaris\/1.3.0-incubating\/polaris-bin-1.3.0-incubating.tgz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/dlcdn.apache.org\/incubator\/polaris\/1.3.0-incubating\/polaris-bin-1.3.0-incubating.zip\">binary zip<\/a><\/td>\n <td><a href=\"https:\/\/downloads.apache.org\/incubator\/polaris\/1.3.0-incubating\/polaris-bin-1.3.0-incubating.zip.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/downloads.apache.org\/incubator\/polaris\/1.3.0-incubating\/polaris-bin-1.3.0-incubating.zip.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.3.0-incubating\/polaris-spark-3.5_2.12-1.3.0-incubating-bundle.jar\">Spark 3.5 with Scala 2.12 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.3.0-incubating\/polaris-spark-3.5_2.12-1.3.0-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.3.0-incubating\/polaris-spark-3.5_2.12-1.3.0-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.3.0-incubating\/polaris-spark-3.5_2.13-1.3.0-incubating-bundle.jar\">Spark 3.5 with Scala 2.13 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.3.0-incubating\/polaris-spark-3.5_2.13-1.3.0-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.3.0-incubating\/polaris-spark-3.5_2.13-1.3.0-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"release-notes\" id=\"release-notes\">Release Notes<a class=\"heading-anchor\" href=\"#release-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<h4 id=\"highlights\" id=\"highlights\">Highlights<a class=\"heading-anchor\" href=\"#highlights\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Support for <a href=\"https:\/\/iceberg.apache.org\/docs\/latest\/metrics-reporting\/\">Iceberg Metrics Reporting<\/a> has been introduced in Polaris. Out of the box, metrics can be printed to the logs by setting the <code>org.apache.polaris.service.reporting<\/code> logger level to <code>INFO<\/code> (it&rsquo;s set to <code>OFF<\/code> by default). Custom reporters can be implemented and configured to send metrics to external systems for further analysis and monitoring.<\/li>\n<li>Support for <a href=\"https:\/\/www.openpolicyagent.org\/\">Open Policy Agent (OPA)<\/a> integration has been added to Polaris. This enables delegating authorization decisions to external policy decision points, allowing organizations to centralize policy management and implement complex authorization rules. OPA integration can be enabled by setting <code>polaris.authorization.type=opa<\/code> in the Polaris configuration.<\/li>\n<\/ul>\n<h4 id=\"upgrade-notes\" id=\"upgrade-notes\">Upgrade Notes<a class=\"heading-anchor\" href=\"#upgrade-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>The legacy management endpoints at <code>\/metrics<\/code> and <code>\/healthcheck<\/code> have been removed. Please use the standard management endpoints at <code>\/q\/metrics<\/code> and <code>\/q\/health<\/code> instead.<\/li>\n<\/ul>\n<h4 id=\"breaking-changes\" id=\"breaking-changes\">Breaking changes<a class=\"heading-anchor\" href=\"#breaking-changes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>The EclipseLink Persistence implementation has been completely removed.<\/li>\n<li>The default request ID header name has changed from <code>Polaris-Request-Id<\/code> to <code>X-Request-ID<\/code>.<\/li>\n<\/ul>\n<h4 id=\"new-features\" id=\"new-features\">New Features<a class=\"heading-anchor\" href=\"#new-features\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Added <code>--no-sts<\/code> flag to CLI to support S3-compatible storage systems that do not have Security Token Service available.<\/li>\n<li>Support credential vending for federated catalogs. <code>ALLOW_FEDERATED_CATALOGS_CREDENTIAL_VENDING<\/code> (default: true) was added to toggle this feature.<\/li>\n<li>Enhanced catalog federation with SigV4 authentication support, additional authentication types for credential vending, and location-based access restrictions to block credential vending for remote tables outside allowed location lists.<\/li>\n<\/ul>\n<h4 id=\"changes\" id=\"changes\">Changes<a class=\"heading-anchor\" href=\"#changes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li><code>client.region<\/code> is no longer considered a &ldquo;credential&rdquo; property (related to Iceberg REST Catalog API).<\/li>\n<li>Relaxed the requirements for S3 storage&rsquo;s ARN to allow Polaris to connect to more non-AWS S3 storage appliances.<\/li>\n<li>Added checksum to helm deployment so that it will restart when the configmap has changed.<\/li>\n<li>Generic Table is no longer in beta and is generally-available.<\/li>\n<li>Added Windows support for Python client<\/li>\n<\/ul>"},{"title":"Apache Polaris X.Y.Z Documentation","link":"https:\/\/polaris.apache.org\/in-dev\/release_index\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/release_index\/","description":"<p>Apache Polaris is a catalog implementation for Apache Iceberg\u2122&hellip;<\/p>"},{"title":"Apache Polaris 1.2.0-incubating","link":"https:\/\/polaris.apache.org\/downloads\/1.2.0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/1.2.0\/","description":"<p>Released on October 23rd, 2025.<\/p>\n<h3 id=\"downloads\" id=\"downloads\">Downloads<a class=\"heading-anchor\" href=\"#downloads\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Artifact<\/th>\n <th>PGP Sig<\/th>\n <th>SHA-512<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.2.0-incubating\/apache-polaris-1.2.0-incubating.tar.gz\">source tar.gz<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.2.0-incubating\/apache-polaris-1.2.0-incubating.tar.gz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.2.0-incubating\/apache-polaris-1.2.0-incubating.tar.gz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.2.0-incubating\/polaris-bin-1.2.0-incubating.tgz\">binary tgz<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.2.0-incubating\/polaris-bin-1.2.0-incubating.tgz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.2.0-incubating\/polaris-bin-1.2.0-incubating.tgz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.2.0-incubating\/polaris-bin-1.2.0-incubating.zip\">binary zip<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.2.0-incubating\/polaris-bin-1.2.0-incubating.zip.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.2.0-incubating\/polaris-bin-1.2.0-incubating.zip.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.2.0-incubating\/polaris-spark-3.5_2.12-1.2.0-incubating-bundle.jar\">Spark 3.5 with Scala 2.12 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.2.0-incubating\/polaris-spark-3.5_2.12-1.2.0-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.2.0-incubating\/polaris-spark-3.5_2.12-1.2.0-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.2.0-incubating\/polaris-spark-3.5_2.13-1.2.0-incubating-bundle.jar\">Spark 3.5 with Scala 2.13 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.2.0-incubating\/polaris-spark-3.5_2.13-1.2.0-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.2.0-incubating\/polaris-spark-3.5_2.13-1.2.0-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"release-notes\" id=\"release-notes\">Release Notes<a class=\"heading-anchor\" href=\"#release-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<h4 id=\"upgrade-notes\" id=\"upgrade-notes\">Upgrade Notes<a class=\"heading-anchor\" href=\"#upgrade-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Amazon RDS plugin enabled, this allows polaris to connect to AWS Aurora PostgreSQL using IAM authentication.<\/li>\n<\/ul>\n<h4 id=\"breaking-changes\" id=\"breaking-changes\">Breaking changes<a class=\"heading-anchor\" href=\"#breaking-changes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Creating or altering a namespace with a custom location outside its parent location is now prohibited by default. To restore the old behavior, set the <code>ALLOW_NAMESPACE_CUSTOM_LOCATION<\/code> flag to true.<\/li>\n<\/ul>\n<h4 id=\"new-features\" id=\"new-features\">New Features<a class=\"heading-anchor\" href=\"#new-features\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>\n<p>Added a finer grained authorization model for UpdateTable requests. Existing privileges continue to work for granting UpdateTable, such as <code>TABLE_WRITE_PROPERTIES<\/code>.\nHowever, you can now instead grant privileges just for specific operations, such as <code>TABLE_ADD_SNAPSHOT<\/code><\/p>"},{"title":"Apache Polaris 1.1.0-incubating","link":"https:\/\/polaris.apache.org\/downloads\/1.1.0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/1.1.0\/","description":"<p>Released on September 19th, 2025.<\/p>\n<h3 id=\"downloads\" id=\"downloads\">Downloads<a class=\"heading-anchor\" href=\"#downloads\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Artifact<\/th>\n <th>PGP Sig<\/th>\n <th>SHA-512<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.1.0-incubating\/apache-polaris-1.1.0-incubating.tar.gz\">source tar.gz<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.1.0-incubating\/apache-polaris-1.1.0-incubating.tar.gz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.1.0-incubating\/apache-polaris-1.1.0-incubating.tar.gz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.1.0-incubating\/polaris-bin-1.1.0-incubating.tgz\">binary tgz<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.1.0-incubating\/polaris-bin-1.1.0-incubating.tgz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.1.0-incubating\/polaris-bin-1.1.0-incubating.tgz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.1.0-incubating\/polaris-bin-1.1.0-incubating.zip\">binary zip<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.1.0-incubating\/polaris-bin-1.1.0-incubating.zip.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.1.0-incubating\/polaris-bin-1.1.0-incubating.zip.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.1.0-incubating\/polaris-spark-3.5_2.12-1.1.0-incubating-bundle.jar\">Spark 3.5 with Scala 2.12 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.1.0-incubating\/polaris-spark-3.5_2.12-1.1.0-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.1.0-incubating\/polaris-spark-3.5_2.12-1.1.0-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.1.0-incubating\/polaris-spark-3.5_2.13-1.1.0-incubating-bundle.jar\">Spark 3.5 with Scala 2.13 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.1.0-incubating\/polaris-spark-3.5_2.13-1.1.0-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.1.0-incubating\/polaris-spark-3.5_2.13-1.1.0-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"release-notes\" id=\"release-notes\">Release Notes<a class=\"heading-anchor\" href=\"#release-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<h4 id=\"new-features--enhancements\" id=\"new-features--enhancements\">New features &amp; enhancements<a class=\"heading-anchor\" href=\"#new-features--enhancements\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>HMS support<\/li>\n<li>IMPLICIT authentication type<\/li>\n<li>Support for non-AWS S3 compatible storage with STS: MinIO, s3a scheme support<\/li>\n<li>Use of Realm instead of RealmId<\/li>\n<li>Modularized Federation Architecture<\/li>\n<li>Federated Catalog Support in Polaris CLI<\/li>\n<li>Expanded External Identity Provider support<\/li>\n<li>Python package (official)<\/li>\n<li>Documentation improvements (release process, multi-realms configuration)<\/li>\n<\/ul>\n<h4 id=\"bug-fixes\" id=\"bug-fixes\">Bug fixes<a class=\"heading-anchor\" href=\"#bug-fixes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Fix drop view with default server configuration<\/li>\n<li>Fix MinIO support<\/li>\n<li>Remove ThreadLocal<\/li>\n<\/ul>\n<h4 id=\"breaking-changes\" id=\"breaking-changes\">Breaking changes<a class=\"heading-anchor\" href=\"#breaking-changes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>Helm chart: the default value of the <code>authentication.tokenBroker.secret.symmetricKey.secretKey<\/code> property has changed\nfrom <code>symmetric.pem<\/code> to <code>symmetric.key<\/code>.<\/li>\n<li>For migrations from 1.0.x to 1.1.x, users using JDBC persistence and wanting to continue using v1 schema, must ensure\nthat they, run following SQL statement under <code>POLARIS_SCHEMA<\/code> to make sure version table exists:\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-sql\" data-lang=\"sql\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#204a87;font-weight:bold\">CREATE<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">TABLE<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">IF<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">NOT<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">EXISTS<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">version<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000;font-weight:bold\">(<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000\">version_key<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87\">TEXT<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">PRIMARY<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">KEY<\/span><span style=\"color:#000;font-weight:bold\">,<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000\">version_value<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87\">INTEGER<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">NOT<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">NULL<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000;font-weight:bold\">);<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#204a87;font-weight:bold\">INSERT<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">INTO<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">version<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000;font-weight:bold\">(<\/span><span style=\"color:#000\">version_key<\/span><span style=\"color:#000;font-weight:bold\">,<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000\">version_value<\/span><span style=\"color:#000;font-weight:bold\">)<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">VALUES<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000;font-weight:bold\">(<\/span><span style=\"color:#4e9a06\">&#39;version&#39;<\/span><span style=\"color:#000;font-weight:bold\">,<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#0000cf;font-weight:bold\">1<\/span><span style=\"color:#000;font-weight:bold\">)<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span><span style=\"color:#204a87;font-weight:bold\">ON<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000\">CONFLICT<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000;font-weight:bold\">(<\/span><span style=\"color:#000\">version_key<\/span><span style=\"color:#000;font-weight:bold\">)<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">DO<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">UPDATE<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">SET<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000\">version_value<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000\">EXCLUDED<\/span><span style=\"color:#000;font-weight:bold\">.<\/span><span style=\"color:#000\">version_value<\/span><span style=\"color:#000;font-weight:bold\">;<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span><span style=\"color:#204a87;font-weight:bold\">COMMENT<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">ON<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">TABLE<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">version<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">IS<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#4e9a06\">&#39;the version of the JDBC schema in use&#39;<\/span><span style=\"color:#000;font-weight:bold\">;<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span><span style=\"color:#204a87;font-weight:bold\">ALTER<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">TABLE<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000\">polaris_schema<\/span><span style=\"color:#000;font-weight:bold\">.<\/span><span style=\"color:#000\">entities<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">ADD<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">COLUMN<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">IF<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">NOT<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87;font-weight:bold\">EXISTS<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#000\">location_without_scheme<\/span><span style=\"color:#f8f8f8\"> <\/span><span style=\"color:#204a87\">TEXT<\/span><span style=\"color:#000;font-weight:bold\">;<\/span><span style=\"color:#f8f8f8\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>Please don&rsquo;t enable <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/740993963cb41c2c1b4638be5e04dd00f1263c98\/polaris-core\/src\/main\/java\/org\/apache\/polaris\/core\/config\/FeatureConfiguration.java#L346\">OPTIMIZED_SIBLING_CHECK<\/a> feature configuration, once the above SQL statements are run. As it may lead to incorrect behavior, due to missing data for location_without_scheme column.<\/li>\n<\/ul>\n<\/li>\n<\/ul>"},{"title":"Apache Polaris 1.0.1-incubating","link":"https:\/\/polaris.apache.org\/downloads\/1.0.1\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/1.0.1\/","description":"<p>Released on August 16th, 2025.<\/p>\n<h3 id=\"downloads\" id=\"downloads\">Downloads<a class=\"heading-anchor\" href=\"#downloads\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Artifact<\/th>\n <th>PGP Sig<\/th>\n <th>SHA-512<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.1-incubating\/apache-polaris-1.0.1-incubating.tar.gz\">source tar.gz<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.1-incubating\/apache-polaris-1.0.1-incubating.tar.gz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.1-incubating\/apache-polaris-1.0.1-incubating.tar.gz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.1-incubating\/polaris-bin-1.0.1-incubating.tgz\">binary tgz<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.1-incubating\/polaris-bin-1.0.1-incubating.tgz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.1-incubating\/polaris-bin-1.0.1-incubating.tgz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.1-incubating\/polaris-bin-1.0.1-incubating.zip\">binary zip<\/a><\/td>\n <td><a href=\"https:\/\/downloads.apache.org\/incubator\/polaris\/1.0.1-incubating\/polaris-bin-1.0.1-incubating.zip.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/downloads.apache.org\/incubator\/polaris\/1.0.1-incubating\/polaris-bin-1.0.1-incubating.zip.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.0.1-incubating\/polaris-spark-3.5_2.12-1.0.1-incubating-bundle.jar\">Spark 3.5 with Scala 2.12 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.0.1-incubating\/polaris-spark-3.5_2.12-1.0.1-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.0.1-incubating\/polaris-spark-3.5_2.12-1.0.1-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.0.1-incubating\/polaris-spark-3.5_2.13-1.0.1-incubating-bundle.jar\">Spark 3.5 with Scala 2.13 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.0.1-incubating\/polaris-spark-3.5_2.13-1.0.1-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.0.1-incubating\/polaris-spark-3.5_2.13-1.0.1-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"release-notes\" id=\"release-notes\">Release Notes<a class=\"heading-anchor\" href=\"#release-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>This is a maintenance release on the 1.0.0 release fixing a couple of issues on the Helm Chart:<\/p>\n<ul>\n<li>remove db-kind in Helm Chart<\/li>\n<li>add relational-jdbc to helm<\/li>\n<\/ul>"},{"title":"Apache Polaris 1.0.0-incubating","link":"https:\/\/polaris.apache.org\/downloads\/1.0.0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/1.0.0\/","description":"<p>Released on July 9th, 2025.<\/p>\n<h3 id=\"downloads\" id=\"downloads\">Downloads<a class=\"heading-anchor\" href=\"#downloads\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Artifact<\/th>\n <th>PGP Sig<\/th>\n <th>SHA-512<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.0-incubating\/apache-polaris-1.0.0-incubating.tar.gz\">source tar.gz<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.0-incubating\/apache-polaris-1.0.0-incubating.tar.gz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.0-incubating\/apache-polaris-1.0.0-incubating.tar.gz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.0-incubating\/polaris-bin-1.0.0-incubating.tgz\">binary tgz<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.0-incubating\/polaris-bin-1.0.0-incubating.tgz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.0-incubating\/polaris-bin-1.0.0-incubating.tgz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.0-incubating\/polaris-bin-1.0.0-incubating.zip\">binary zip<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.0-incubating\/polaris-bin-1.0.0-incubating.zip.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/1.0.0-incubating\/polaris-bin-1.0.0-incubating.zip.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.0.0-incubating\/polaris-spark-3.5_2.12-1.0.0-incubating-bundle.jar\">Spark 3.5 with Scala 2.12 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.0.0-incubating\/polaris-spark-3.5_2.12-1.0.0-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.12\/1.0.0-incubating\/polaris-spark-3.5_2.12-1.0.0-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <tr>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.0.0-incubating\/polaris-spark-3.5_2.13-1.0.0-incubating-bundle.jar\">Spark 3.5 with Scala 2.13 Client Jar<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.0.0-incubating\/polaris-spark-3.5_2.13-1.0.0-incubating-bundle.jar.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/repo1.maven.org\/maven2\/org\/apache\/polaris\/polaris-spark-3.5_2.13\/1.0.0-incubating\/polaris-spark-3.5_2.13-1.0.0-incubating-bundle.jar.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"release-notes\" id=\"release-notes\">Release Notes<a class=\"heading-anchor\" href=\"#release-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<h4 id=\"highlights\" id=\"highlights\">Highlights<a class=\"heading-anchor\" href=\"#highlights\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li>First release ready for real-world workloads after the public beta 0.9.0<\/li>\n<li><strong>Binary distribution<\/strong> &ndash; first release with single downloadable .tgz or .zip artifact.<\/li>\n<li><strong>Helm Chart<\/strong> \u2013 debut of an official Helm chart for seamless Kubernetes deployment<\/li>\n<\/ul>\n<h4 id=\"new-features--enhancements\" id=\"new-features--enhancements\">New features &amp; enhancements<a class=\"heading-anchor\" href=\"#new-features--enhancements\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li><strong>Policy Store<\/strong> \u2014 persistence with schema evolution, built\u2011in TMS policies (Data compaction, Snapshot expiry, etc) and REST CRUD endpoints<\/li>\n<li><strong>Postgres JDBC persistence<\/strong> \u2014 native JDBC backend with robust support for concurrent changes.<\/li>\n<li><strong>Rollback Compaction on Conflicts<\/strong> - makes Polaris smarter, to revert the compaction commits in case of crunch to let the writers who are actually adding or removing the data to the table succeed. In a sense treating compaction as always a lower priority process.<\/li>\n<li><strong>Enhanced runtime<\/strong> \u2014 new runtime powered by Quarkus delivers out\u2011of\u2011the\u2011box Kubernetes readiness, quick startup, OIDC integration, and many other benefits. Polaris server and admin tool are now using Quarkus as a runtime framework.<\/li>\n<li><strong>HTTP caching via ETag<\/strong> \u2014 the loadTable endpoint supports ETag, reducing bandwidth and improving perceived latency<\/li>\n<li><strong>Support for external identity providers (IdP)<\/strong> \u2014 Polaris can now be its own IdP, delegate to an external IdP, or both<\/li>\n<li><strong>Snapshot filtering<\/strong> \u2013 clients can choose to load only referenced snapshots<\/li>\n<li><strong>Catalog Federation (experimental)<\/strong> \u2013 federate requests to an external Iceberg REST or Hadoop Catalog<\/li>\n<li><strong>Generic Tables (experimental)<\/strong> \u2014 serve multiple table formats besides Iceberg tables; initial Spark 3.5 plugin supports Delta Lake<\/li>\n<li><strong>Event Listener framework (experimental)<\/strong> \u2014 subscribe to catalog events (AfterTableCommitedEvent, BeforeViewCommitedEvent, etc)<\/li>\n<\/ul>\n<h4 id=\"notable-bug-fixes\" id=\"notable-bug-fixes\">Notable bug fixes<a class=\"heading-anchor\" href=\"#notable-bug-fixes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li><strong>CLI and Python Client improvements<\/strong> \u2013 Support for new features, CLI repair, changes to the update subcommand, and various fixes<\/li>\n<li><strong>Safe configurations<\/strong> \u2013 Catalog-level Polaris configurations follow a strict naming convention to avoid name clashes with user-provided configuration entries. Legacy Polaris configuration names are still supported in 1.0 to allow existing deployments to migrate without rush.<\/li>\n<li><strong>TableOperations optimizations<\/strong> \u2013 Changes to BasePolarisTableOperations result in less traffic to object storage during commits<\/li>\n<li><strong>Bounded entity cache<\/strong> \u2013 The entity cache is now more memory-aware and less likely to lead to OOMs<\/li>\n<li><strong>Bootstrapping fixes<\/strong> \u2013 Users can more easily bootstrap a new realm. Root credentials can be provided by the user or generated by Polaris (and returned to the user).<\/li>\n<\/ul>\n<h4 id=\"breaking-changes\" id=\"breaking-changes\">Breaking changes<a class=\"heading-anchor\" href=\"#breaking-changes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<ul>\n<li><strong>Server Configuration<\/strong> \u2013 The format used to configure the Polaris service in 0.9 has changed with the migration to Quarkus and changes to configurations<\/li>\n<li><strong>Bootstrap Flow<\/strong> \u2013 The bootstrap flow used in 0.9 has changed with the migration to Quarkus and the new admin tool<\/li>\n<\/ul>"},{"title":"Apache Polaris 0.9.0-incubating","link":"https:\/\/polaris.apache.org\/downloads\/0.9.0\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/0.9.0\/","description":"<p>Released on March 11, 2025.<\/p>\n<h3 id=\"downloads\" id=\"downloads\">Downloads<a class=\"heading-anchor\" href=\"#downloads\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Artifact<\/th>\n <th>PGP Sig<\/th>\n <th>SHA-512<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/0.9.0-incubating\/apache-polaris-0.9.0-incubating.tar.gz\">0.9.0-incubating source tar.gz<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/0.9.0-incubating\/apache-polaris-0.9.0-incubating.tar.gz.asc\">.asc<\/a><\/td>\n <td><a href=\"https:\/\/archive.apache.org\/dist\/incubator\/polaris\/0.9.0-incubating\/apache-polaris-0.9.0-incubating.tar.gz.sha512\">.sha512<\/a><\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"release-notes\" id=\"release-notes\">Release Notes<a class=\"heading-anchor\" href=\"#release-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Apache Polaris 0.9.0 was the first Polaris release. Only the source distribution is available for this release.<\/p>"},{"title":"Quickstart","link":"https:\/\/polaris.apache.org\/guides\/quickstart\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/quickstart\/","description":"<!--\n```shell\ncd \"$SITE_TEST_GUIDE_DIR\"\ndocker compose up\n```\n-->\n<p>Welcome to Apache Polaris! This guide helps you quickly get Polaris running locally for evaluation and development purposes.<br>\n<strong>This setup is not intended for production use.<\/strong><\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Docker and Docker Compose v2 installed and running.<\/li>\n<\/ul>\n<h2 id=\"running-the-quickstart\" id=\"running-the-quickstart\">Running the Quickstart<a class=\"heading-anchor\" href=\"#running-the-quickstart\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Run the following command:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>curl -s https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/heads\/main\/site\/content\/guides\/quickstart\/docker-compose.yml <span style=\"color:#000;font-weight:bold\">|<\/span> docker compose -p polaris-quickstart -f - up -d\n<\/span><\/span><\/code><\/pre><\/div><p>This command will start Polaris + RustFS and automatically create:<\/p>"},{"title":"Quickstart","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/quick-start\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/quick-start\/","description":"<p>Use the <strong><a href=\"https:\/\/polaris.apache.org\/guides\/quickstart\/\">Quickstart guide<\/a><\/strong> for running Polaris locally with Docker Compose: prerequisites, the one-liner command, default catalog and principal, service URLs, and suggested next steps.<\/p>\n<p>This setup is not intended for production use.<\/p>"},{"title":"Quickstart","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/quick-start\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/quick-start\/","description":"<p>Use this guide to quickly start running Polaris. This is not intended for production use.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Have Docker (with Docker Compose v2) installed &amp; running on your machine<\/li>\n<\/ul>\n<h2 id=\"running\" id=\"running\">Running<a class=\"heading-anchor\" href=\"#running\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Run the following command:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>curl -s https:\/\/raw.githubusercontent.com\/apache\/polaris\/main\/site\/content\/guides\/quickstart\/docker-compose.yml <span style=\"color:#000;font-weight:bold\">|<\/span> docker compose -f - up\n<\/span><\/span><\/code><\/pre><\/div><p>This command will:<\/p>\n<ol>\n<li>Create a Catalog named <code>quickstart_catalog<\/code> with MinIO-backed storage.<\/li>\n<li>Create a user principal <code>quickstart_user<\/code> with full access to the catalog.<\/li>\n<\/ol>\n<p>Once the command has been run, you will see examples on how to interact with this Polaris server in the logs.<\/p>"},{"title":"Quickstart","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/quick-start\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/quick-start\/","description":"<p>Use this guide to quickly start running Polaris. This is not intended for production use.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Have Docker (with Docker Compose v2) installed &amp; running on your machine<\/li>\n<\/ul>\n<h2 id=\"running\" id=\"running\">Running<a class=\"heading-anchor\" href=\"#running\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Run the following command:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>curl -s https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/heads\/main\/site\/content\/guides\/quickstart\/docker-compose.yml <span style=\"color:#000;font-weight:bold\">|<\/span> docker compose -f - up\n<\/span><\/span><\/code><\/pre><\/div><p>This command will:<\/p>\n<ol>\n<li>Create a Catalog named <code>quickstart_catalog<\/code> with RustFS-backed storage.<\/li>\n<li>Create a user principal <code>quickstart_user<\/code> with full access to the catalog.<\/li>\n<\/ol>\n<p>Once the command has been run, you will see examples on how to interact with this Polaris server in the logs.<\/p>"},{"title":"Quickstart","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/quick-start\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/quick-start\/","description":"<p>Use this guide to quickly start running Polaris. This is not intended for production use.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Have Docker (with Docker Compose v2) installed &amp; running on your machine<\/li>\n<\/ul>\n<h2 id=\"running\" id=\"running\">Running<a class=\"heading-anchor\" href=\"#running\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Run the following command:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>curl -s https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/heads\/main\/site\/content\/guides\/quickstart\/docker-compose.yml <span style=\"color:#000;font-weight:bold\">|<\/span> docker compose -f - up\n<\/span><\/span><\/code><\/pre><\/div><p>This command will:<\/p>\n<ol>\n<li>Create a Catalog named <code>quickstart_catalog<\/code> with RustFS-backed storage.<\/li>\n<li>Create a user principal <code>quickstart_user<\/code> with full access to the catalog.<\/li>\n<\/ol>\n<p>Once the command has been run, you will see examples on how to interact with this Polaris server in the logs.<\/p>"},{"title":"Quickstart","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/quick-start\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/quick-start\/","description":"<p>Use this guide to quickly start running Polaris. This is not intended for production use.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Have Docker (with Docker Compose v2) installed &amp; running on your machine<\/li>\n<\/ul>\n<h2 id=\"running\" id=\"running\">Running<a class=\"heading-anchor\" href=\"#running\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Run the following command:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>curl -s https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/heads\/main\/site\/content\/guides\/quickstart\/docker-compose.yml <span style=\"color:#000;font-weight:bold\">|<\/span> docker compose -f - up\n<\/span><\/span><\/code><\/pre><\/div><p>This command will:<\/p>\n<ol>\n<li>Create a Catalog named <code>quickstart_catalog<\/code> with RustFS-backed storage.<\/li>\n<li>Create a user principal <code>quickstart_user<\/code> with full access to the catalog.<\/li>\n<\/ol>\n<p>Once the command has been run, you will see examples on how to interact with this Polaris server in the logs.<\/p>"},{"title":"Getting Started with Apache Polaris, External Authentication and Keycloak","link":"https:\/\/polaris.apache.org\/guides\/keycloak\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/keycloak\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses Keycloak as an <strong>external<\/strong> identity provider for Polaris. The &ldquo;iceberg&rdquo; realm is automatically\ncreated and configured from the <code>iceberg-realm.json<\/code> file.<\/p>\n<p>This Keycloak realm contains 1 client definition: <code>client1:s3cr3t<\/code>. It is configured to return tokens with the following\nfixed claims:<\/p>\n<ul>\n<li><code>principal_id<\/code>: the principal ID of the user. It is always set to zero (0) in this example.<\/li>\n<li><code>principal_name<\/code>: the principal name of the user. It is always set to &ldquo;root&rdquo; in this example.<\/li>\n<li><code>principal_roles<\/code>: the principal roles of the user. It is always set to <code>[&quot;server_admin&quot;, &quot;catalog_admin&quot;]<\/code> in this\nexample.<\/li>\n<\/ul>\n<p>This is obviously not a realistic configuration. In a real-world scenario, you would configure Keycloak to return the\nactual principal ID, name and roles of the user. Note that principals and principal roles must have been created in\nPolaris beforehand, and the principal ID, name and roles must match the ones returned by Keycloak.<\/p>"},{"title":"Creating a catalog on AWS S3","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","description":"<p>When creating a catalog based on AWS S3 storage only the <code>role-arn<\/code> is a required parameter. However, usually\none also provides the <code>region<\/code> and\n<a href=\"https:\/\/docs.aws.amazon.com\/IAM\/latest\/UserGuide\/id_roles_common-scenarios_third-party.html\">external-id<\/a>.<\/p>\n<p>Note: the name <code>quickstart_catalog<\/code> from the example below is referenced in other Getting Started examples,\nbut of course, it can be any valid catalog name.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3:\/\/example-bucket\/my_data\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>arn:aws:iam::111122223333:role\/ExampleCorpRole\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">REGION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>us-west-2\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#0000cf;font-weight:bold\">12345678901234567890<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --storage-type s3 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --role-arn <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --region <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">REGION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> --external-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">18<\/span><span> quickstart_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on AWS S3","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","description":"<p>When creating a catalog based on AWS S3 storage only the <code>role-arn<\/code> is a required parameter. However, usually\none also provides the <code>region<\/code> and\n<a href=\"https:\/\/docs.aws.amazon.com\/IAM\/latest\/UserGuide\/id_roles_common-scenarios_third-party.html\">external-id<\/a>.<\/p>\n<p>Note: the name <code>quickstart_catalog<\/code> from the example below is referenced in other Getting Started examples,\nbut of course, it can be any valid catalog name.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3:\/\/example-bucket\/my_data\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>arn:aws:iam::111122223333:role\/ExampleCorpRole\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">REGION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>us-west-2\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#0000cf;font-weight:bold\">12345678901234567890<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --storage-type s3 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --role-arn <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --region <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">REGION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> --external-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">18<\/span><span> quickstart_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on AWS S3","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","description":"<p>When creating a catalog based on AWS S3 storage only the <code>role-arn<\/code> is a required parameter. However, usually\none also provides the <code>region<\/code> and\n<a href=\"https:\/\/docs.aws.amazon.com\/IAM\/latest\/UserGuide\/id_roles_common-scenarios_third-party.html\">external-id<\/a>.<\/p>\n<p>Note: the name <code>quickstart_catalog<\/code> from the example below is referenced in other Getting Started examples,\nbut of course, it can be any valid catalog name.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3:\/\/example-bucket\/my_data\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>arn:aws:iam::111122223333:role\/ExampleCorpRole\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">REGION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>us-west-2\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#0000cf;font-weight:bold\">12345678901234567890<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --storage-type s3 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --role-arn <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --region <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">REGION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> --external-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">18<\/span><span> quickstart_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on AWS S3","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","description":"<p>When creating a catalog based on AWS S3 storage only the <code>role-arn<\/code> is a required parameter. However, usually\none also provides the <code>region<\/code> and\n<a href=\"https:\/\/docs.aws.amazon.com\/IAM\/latest\/UserGuide\/id_roles_common-scenarios_third-party.html\">external-id<\/a>.<\/p>\n<p>Note: the name <code>quickstart_catalog<\/code> from the example below is referenced in other Getting Started examples,\nbut of course, it can be any valid catalog name.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3:\/\/example-bucket\/my_data\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>arn:aws:iam::111122223333:role\/ExampleCorpRole\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">REGION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>us-west-2\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#0000cf;font-weight:bold\">12345678901234567890<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --storage-type s3 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --role-arn <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --region <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">REGION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> --external-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">18<\/span><span> quickstart_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on AWS S3","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","description":"<p>When creating a catalog based on AWS S3 storage only the <code>role-arn<\/code> is a required parameter. However, usually\none also provides the <code>region<\/code> and\n<a href=\"https:\/\/docs.aws.amazon.com\/IAM\/latest\/UserGuide\/id_roles_common-scenarios_third-party.html\">external-id<\/a>.<\/p>\n<p>Note: the name <code>quickstart_catalog<\/code> from the example below is referenced in other Getting Started examples,\nbut of course, it can be any valid catalog name.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3:\/\/example-bucket\/my_data\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>arn:aws:iam::111122223333:role\/ExampleCorpRole\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">REGION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>us-west-2\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#0000cf;font-weight:bold\">12345678901234567890<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --storage-type s3 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --role-arn <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --region <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">REGION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> --external-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">18<\/span><span> quickstart_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on AWS S3","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/s3\/catalog-aws\/","description":"<p>When creating a catalog based on AWS S3 storage only the <code>role-arn<\/code> is a required parameter. However, usually\none also provides the <code>region<\/code> and\n<a href=\"https:\/\/docs.aws.amazon.com\/IAM\/latest\/UserGuide\/id_roles_common-scenarios_third-party.html\">external-id<\/a>.<\/p>\n<p>Note: the name <code>quickstart_catalog<\/code> from the example below is referenced in other Getting Started examples,\nbut of course, it can be any valid catalog name.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3:\/\/example-bucket\/my_data\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>arn:aws:iam::111122223333:role\/ExampleCorpRole\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">REGION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>us-west-2\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#0000cf;font-weight:bold\">12345678901234567890<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --storage-type s3 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --role-arn <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --region <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">REGION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> --external-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">EXTERNAL_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">18<\/span><span> quickstart_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Getting Started with Apache Polaris, Relational JDBC, Postgres and Spark SQL","link":"https:\/\/polaris.apache.org\/guides\/jdbc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/jdbc\/","description":"<p>This example requires <code>jq<\/code> to be installed on your machine.<\/p>\n<ol>\n<li>\n<p>If such an image is not already present, build the Polaris image with support for JDBC persistence and\nthe Postgres JDBC driver:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>"},{"title":"Binary Distribution","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/binary-distribution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/binary-distribution\/","description":"<p>Use this guide to quickly start running Polaris using the pre-built binary distribution.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Java SE 21 or later installed on your machine<\/li>\n<\/ul>\n<h2 id=\"running\" id=\"running\">Running<a class=\"heading-anchor\" href=\"#running\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Download and extract the binary distribution:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>curl -L https:\/\/downloads.apache.org\/incubator\/polaris\/1.0.0-incubating\/polaris-bin-1.0.0-incubating.tgz <span style=\"color:#000;font-weight:bold\">|<\/span> tar xz\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">cd<\/span> polaris-distribution-1.0.0-incubating\n<\/span><\/span><\/code><\/pre><\/div><p>Start the Polaris server:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>bin\/server\n<\/span><\/span><\/code><\/pre><\/div><p>The server will start and listen on http:\/\/localhost:8181. Health and metrics endpoints are available under \/q.<\/p>"},{"title":"Binary Distribution","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/binary-distribution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/binary-distribution\/","description":"<p>Use this guide to quickly start running Polaris using the pre-built binary distribution.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Java SE 21 or later installed on your machine<\/li>\n<\/ul>\n<h2 id=\"running\" id=\"running\">Running<a class=\"heading-anchor\" href=\"#running\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Download and extract the binary distribution:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>curl -L https:\/\/downloads.apache.org\/polaris\/1.4.0\/polaris-bin-1.4.0.tgz <span style=\"color:#000;font-weight:bold\">|<\/span> tar xz\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">cd<\/span> polaris-bin-1.4.0\n<\/span><\/span><\/code><\/pre><\/div><p>Start the Polaris server:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>bin\/server\n<\/span><\/span><\/code><\/pre><\/div><p>The server will start and listen on http:\/\/localhost:8182. Health and metrics endpoints are available under \/q.<\/p>"},{"title":"Binary Distribution","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/binary-distribution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/binary-distribution\/","description":"<p>Use this guide to quickly start running Polaris using the pre-built binary distribution.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Java SE 21 or later installed on your machine<\/li>\n<\/ul>\n<h2 id=\"running\" id=\"running\">Running<a class=\"heading-anchor\" href=\"#running\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Download and extract the binary distribution:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>curl -L https:\/\/downloads.apache.org\/incubator\/polaris\/1.4.1\/polaris-bin-1.4.1.tgz <span style=\"color:#000;font-weight:bold\">|<\/span> tar xz\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">cd<\/span> polaris-bin-1.3.0-incubating\n<\/span><\/span><\/code><\/pre><\/div><p>Start the Polaris server:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>bin\/server\n<\/span><\/span><\/code><\/pre><\/div><p>The server will start and listen on http:\/\/localhost:8182. Health and metrics endpoints are available under \/q.<\/p>"},{"title":"Configuring Polaris","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuring-polaris\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuring-polaris\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This page provides information on how to configure Apache Polaris. Unless stated\notherwise, this information is valid both for Polaris Docker images (and Kubernetes deployments) as\nwell as for Polaris binary distributions.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n For Production tips and best practices, refer to <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuring-polaris-for-production\/\">Configuring Polaris for Production<\/a>.\n<\/div>\n\n<p>First off, Polaris server runs on Quarkus, and uses its configuration mechanisms. Read Quarkus\n<a href=\"https:\/\/quarkus.io\/guides\/config\">configuration guide<\/a> to get familiar with the basics.<\/p>"},{"title":"Configuring Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuring-polaris\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuring-polaris\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This page provides information on how to configure Apache Polaris. Unless stated\notherwise, this information is valid both for Polaris Docker images (and Kubernetes deployments) as\nwell as for Polaris binary distributions.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n For Production tips and best practices, refer to <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuring-polaris-for-production\/\">Configuring Polaris for Production<\/a>.\n<\/div>\n\n<p>First off, Polaris server runs on Quarkus, and uses its configuration mechanisms. Read Quarkus\n<a href=\"https:\/\/quarkus.io\/guides\/config\">configuration guide<\/a> to get familiar with the basics.<\/p>"},{"title":"Configuring Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/configuration\/configuring-polaris\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/configuration\/configuring-polaris\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This page provides information on how to configure Apache Polaris. Unless stated\notherwise, this information is valid both for Polaris Docker images (and Kubernetes deployments) as\nwell as for Polaris binary distributions.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n For Production tips and best practices, refer to <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/configuration\/configuring-polaris-for-production\/\">Configuring Polaris for Production<\/a>.\n<\/div>\n\n<p>First off, Polaris server runs on Quarkus, and uses its configuration mechanisms. Read Quarkus\n<a href=\"https:\/\/quarkus.io\/guides\/config\">configuration guide<\/a> to get familiar with the basics.<\/p>"},{"title":"Configuring Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/configuration\/configuring-polaris\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/configuration\/configuring-polaris\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This page provides information on how to configure Apache Polaris. Unless stated\notherwise, this information is valid both for Polaris Docker images (and Kubernetes deployments) as\nwell as for Polaris binary distributions.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n For Production tips and best practices, refer to <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/configuration\/configuring-polaris-for-production\/\">Configuring Polaris for Production<\/a>.\n<\/div>\n\n<p>First off, Polaris server runs on Quarkus, and uses its configuration mechanisms. Read Quarkus\n<a href=\"https:\/\/quarkus.io\/guides\/config\">configuration guide<\/a> to get familiar with the basics.<\/p>"},{"title":"Iceberg Catalog Migrator","link":"https:\/\/polaris.apache.org\/tools\/iceberg-catalog-migrator\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/tools\/iceberg-catalog-migrator\/","description":"<p>Iceberg Catalog Migrator is a command-line tool to migrate Iceberg tables from one Iceberg catalog to another.<\/p>\n<p>To use this tool, please see this <a href=\"https:\/\/github.com\/apache\/polaris-tools\/blob\/main\/iceberg-catalog-migrator\/README.md\">guide<\/a>.<\/p>"},{"title":"Installing Dependencies","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/install-dependencies\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/install-dependencies\/","description":"<p>This guide serves as an introduction to several key entities that can be managed with Apache Polaris (Incubating), describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h1 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Installing Dependencies","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/install-dependencies\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/install-dependencies\/","description":"<p>This guide serves as an introduction to several key entities that can be managed with Apache Polaris (Incubating), describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h1 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Installing Dependencies","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/install-dependencies\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/install-dependencies\/","description":"<p>This guide serves as an introduction to several key entities that can be managed with Apache Polaris (Incubating), describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h1 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Installing Dependencies","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/install-dependencies\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/install-dependencies\/","description":"<p>This guide serves as an introduction to several key entities that can be managed with Apache Polaris (Incubating), describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h1 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Installing Dependencies","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/install-dependencies\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/install-dependencies\/","description":"<p>This guide serves as an introduction to several key entities that can be managed with Apache Polaris (Incubating), describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h1 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Installing Dependencies","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/install-dependencies\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/install-dependencies\/","description":"<p>This guide serves as an introduction to several key entities that can be managed with Apache Polaris, describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h1 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Installing Dependencies","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/install-dependencies\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/install-dependencies\/","description":"<p>This guide serves as an introduction to several key entities that can be managed with Apache Polaris, describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h1 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Apache Polaris Management Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/polaris-api-specs\/polaris-management-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/polaris-api-specs\/polaris-management-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/heads\/main\/spec\/polaris-management-service.yml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/heads\/main\/spec\/polaris-management-service.yml\" \/>"},{"title":"Apache Polaris Management Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/polaris-api-specs\/polaris-management-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/polaris-api-specs\/polaris-management-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.2.0-incubating\/spec\/polaris-management-service.yml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.2.0-incubating\/spec\/polaris-management-service.yml\" \/>"},{"title":"Apache Polaris Management Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/polaris-api-specs\/polaris-management-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/polaris-api-specs\/polaris-management-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.3.0-incubating\/spec\/polaris-management-service.yml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.3.0-incubating\/spec\/polaris-management-service.yml\" \/>"},{"title":"Apache Polaris Management Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/polaris-api-specs\/polaris-management-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/polaris-api-specs\/polaris-management-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.4.0\/spec\/polaris-management-service.yml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.4.0\/spec\/polaris-management-service.yml\" \/>"},{"title":"Apache Polaris Management Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/polaris-api-specs\/polaris-management-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/polaris-api-specs\/polaris-management-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.4.1\/spec\/polaris-management-service.yml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.4.1\/spec\/polaris-management-service.yml\" \/>"},{"title":"Apache Polaris Management Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/polaris-api-specs\/polaris-management-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/polaris-api-specs\/polaris-management-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.5.0\/spec\/polaris-management-service.yml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.5.0\/spec\/polaris-management-service.yml\" \/>"},{"title":"Open Policy Agent (OPA) Integration","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/managing-security\/external-pdp\/opa\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/managing-security\/external-pdp\/opa\/","description":"<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Preview Feature<\/p>\n <strong>OPA integration is currently a preview feature<\/strong> and may undergo breaking changes in future versions. Use with caution in production environments.\n<\/div>\n\n<p>This page describes how to integrate Apache Polaris with <a href=\"https:\/\/www.openpolicyagent.org\/\">Open Policy Agent (OPA)<\/a> for external authorization.<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Open Policy Agent (OPA) is a general-purpose policy engine that enables unified, context-aware policy enforcement across your stack. OPA provides a high-level declarative language (Rego) for authoring policies and APIs to offload policy decision-making from your software.<\/p>"},{"title":"Open Policy Agent (OPA) Integration","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/managing-security\/external-pdp\/opa\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/managing-security\/external-pdp\/opa\/","description":"<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Preview Feature<\/p>\n <strong>OPA integration is currently an preview feature<\/strong> and may undergo breaking changes in future versions. Use with caution in production environments.\n<\/div>\n\n<p>This page describes how to integrate Apache Polaris (Incubating) with <a href=\"https:\/\/www.openpolicyagent.org\/\">Open Policy Agent (OPA)<\/a> for external authorization.<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Open Policy Agent (OPA) is a general-purpose policy engine that enables unified, context-aware policy enforcement across your stack. OPA provides a high-level declarative language (Rego) for authoring policies and APIs to offload policy decision-making from your software.<\/p>"},{"title":"Open Policy Agent (OPA) Integration","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/managing-security\/external-pdp\/opa\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/managing-security\/external-pdp\/opa\/","description":"<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Preview Feature<\/p>\n <strong>OPA integration is currently an preview feature<\/strong> and may undergo breaking changes in future versions. Use with caution in production environments.\n<\/div>\n\n<p>This page describes how to integrate Apache Polaris with <a href=\"https:\/\/www.openpolicyagent.org\/\">Open Policy Agent (OPA)<\/a> for external authorization.<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Open Policy Agent (OPA) is a general-purpose policy engine that enables unified, context-aware policy enforcement across your stack. OPA provides a high-level declarative language (Rego) for authoring policies and APIs to offload policy decision-making from your software.<\/p>"},{"title":"Open Policy Agent (OPA) Integration","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/managing-security\/external-pdp\/opa\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/managing-security\/external-pdp\/opa\/","description":"<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Preview Feature<\/p>\n <strong>OPA integration is currently an preview feature<\/strong> and may undergo breaking changes in future versions. Use with caution in production environments.\n<\/div>\n\n<p>This page describes how to integrate Apache Polaris with <a href=\"https:\/\/www.openpolicyagent.org\/\">Open Policy Agent (OPA)<\/a> for external authorization.<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Open Policy Agent (OPA) is a general-purpose policy engine that enables unified, context-aware policy enforcement across your stack. OPA provides a high-level declarative language (Rego) for authoring policies and APIs to offload policy decision-making from your software.<\/p>"},{"title":"Open Policy Agent (OPA) Integration","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/managing-security\/external-pdp\/opa\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/managing-security\/external-pdp\/opa\/","description":"<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Preview Feature<\/p>\n <strong>OPA integration is currently an preview feature<\/strong> and may undergo breaking changes in future versions. Use with caution in production environments.\n<\/div>\n\n<p>This page describes how to integrate Apache Polaris with <a href=\"https:\/\/www.openpolicyagent.org\/\">Open Policy Agent (OPA)<\/a> for external authorization.<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Open Policy Agent (OPA) is a general-purpose policy engine that enables unified, context-aware policy enforcement across your stack. OPA provides a high-level declarative language (Rego) for authoring policies and APIs to offload policy decision-making from your software.<\/p>"},{"title":"Quick Start","link":"https:\/\/polaris.apache.org\/releases\/0.9.0\/quickstart\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/0.9.0\/quickstart\/","description":"<p>This guide serves as a introduction to several key entities that can be managed with Apache Polaris (Incubating), describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Relational JDBC","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/metastores\/relational-jdbc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/metastores\/relational-jdbc\/","description":"<p>This implementation leverages Quarkus for datasource management and supports configuration through\nenvironment variables or JVM -D flags at startup. For more information, refer to the <a href=\"https:\/\/quarkus.io\/guides\/config-reference#env-file\">Quarkus configuration reference<\/a>.<\/p>\n<p>We have 2 options for configuring the persistence backend:<\/p>\n<h2 id=\"1-relational-jdbc-metastore-with-username-and-password\" id=\"1-relational-jdbc-metastore-with-username-and-password\">1. Relational JDBC metastore with username and password<a class=\"heading-anchor\" href=\"#1-relational-jdbc-metastore-with-username-and-password\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Using environment variables:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_TYPE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">relational-jdbc<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_USERNAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;your-username&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;your-password&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_JDBC_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;jdbc-url-of-postgres&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Using properties file:<\/p>"},{"title":"Relational JDBC","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/metastores\/relational-jdbc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/metastores\/relational-jdbc\/","description":"<p>This implementation leverages Quarkus for datasource management and supports configuration through\nenvironment variables or JVM -D flags at startup. For more information, refer to the <a href=\"https:\/\/quarkus.io\/guides\/config-reference#env-file\">Quarkus configuration reference<\/a>.<\/p>\n<p>We have 2 options for configuring the persistence backend:<\/p>\n<h2 id=\"1-relational-jdbc-metastore-with-username-and-password\" id=\"1-relational-jdbc-metastore-with-username-and-password\">1. Relational JDBC metastore with username and password<a class=\"heading-anchor\" href=\"#1-relational-jdbc-metastore-with-username-and-password\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Using environment variables:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_TYPE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">relational-jdbc<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_USERNAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;your-username&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;your-password&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_JDBC_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;jdbc-url-of-postgres&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Using properties file:<\/p>"},{"title":"Relational JDBC","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/metastores\/relational-jdbc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/metastores\/relational-jdbc\/","description":"<p>This implementation leverages Quarkus for datasource management and supports configuration through\nenvironment variables or JVM -D flags at startup. For more information, refer to the <a href=\"https:\/\/quarkus.io\/guides\/config-reference#env-file\">Quarkus configuration reference<\/a>.<\/p>\n<p>We have 2 options for configuring the persistence backend:<\/p>\n<h2 id=\"1-relational-jdbc-metastore-with-username-and-password\" id=\"1-relational-jdbc-metastore-with-username-and-password\">1. Relational JDBC metastore with username and password<a class=\"heading-anchor\" href=\"#1-relational-jdbc-metastore-with-username-and-password\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Using environment variables:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_TYPE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">relational-jdbc<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_USERNAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;your-username&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;your-password&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_JDBC_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;jdbc-url-of-postgres&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Using properties file:<\/p>"},{"title":"Relational JDBC","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/metastores\/relational-jdbc\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/metastores\/relational-jdbc\/","description":"<p>This implementation leverages Quarkus for datasource management and supports configuration through\nenvironment variables or JVM -D flags at startup. For more information, refer to the <a href=\"https:\/\/quarkus.io\/guides\/config-reference#env-file\">Quarkus configuration reference<\/a>.<\/p>\n<p>We have 2 options for configuring the persistence backend:<\/p>\n<h2 id=\"1-relational-jdbc-metastore-with-username-and-password\" id=\"1-relational-jdbc-metastore-with-username-and-password\">1. Relational JDBC metastore with username and password<a class=\"heading-anchor\" href=\"#1-relational-jdbc-metastore-with-username-and-password\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Using environment variables:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_TYPE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">relational-jdbc<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_USERNAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;your-username&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;your-password&gt;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span><span style=\"color:#c4a000\">QUARKUS_DATASOURCE_JDBC_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">&lt;jdbc-url-of-postgres&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Using properties file:<\/p>"},{"title":"Semi-Automated Release Guide","link":"https:\/\/polaris.apache.org\/community\/release-guides\/semi-automated-release-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/release-guides\/semi-automated-release-guide\/","description":"<p><strong>Audience<\/strong>: Release Managers<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The steps performed in the <a href=\"..\/manual-release-guide\/\">Manual Release Guide<\/a> have been automated to a large extent. This semi-automated release guide outlines the workflows that can be used to perform a release with little manual intervention.<\/p>\n<p><em>Note that all screenshots in this page are for illustration purposes only. The actual repository name, version numbers, etc. may be different.<\/em><\/p>\n<h2 id=\"dry-run-mode\" id=\"dry-run-mode\">Dry-run mode<a class=\"heading-anchor\" href=\"#dry-run-mode\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Each of the Github Workflows that have been developed comes with a <code>dry-run<\/code> mode. It is enabled ticking the <code>Dry run mode<\/code> checkbox before starting the workflow. When enabled, the workflow will not perform any destructive action (e.g. tag creation, branch deletion, etc.) but instead print out the commands that would have been executed.<\/p>"},{"title":"Setup Tools","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/setup-tools\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/setup-tools\/","description":"<p>This guide describes how to use the <code>setup<\/code> command to manage Apache Polaris configuration using an infrastructure-as-code approach. Define your Polaris configuration in a single YAML file and apply it with a single command.<\/p>\n<p>This command supports bootstrapping new environments and exporting existing configurations for reuse or version control.<\/p>\n<h2 id=\"exporting-your-configuration\" id=\"exporting-your-configuration\">Exporting Your Configuration<a class=\"heading-anchor\" href=\"#exporting-your-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>If you already have an Apache Polaris environment, you can export its current state to a YAML file using the <code>export<\/code> subcommand:<\/p>"},{"title":"Setup Tools","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/setup-tools\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/setup-tools\/","description":"<p>This guide describes how to use the <code>setup<\/code> command to manage Apache Polaris configuration using an infrastructure-as-code approach. Define your Polaris configuration in a single YAML file and apply it with a single command.<\/p>\n<p>This command supports bootstrapping new environments and exporting existing configurations for reuse or version control.<\/p>\n<h2 id=\"exporting-your-configuration\" id=\"exporting-your-configuration\">Exporting Your Configuration<a class=\"heading-anchor\" href=\"#exporting-your-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>If you already have an Apache Polaris environment, you can export its current state to a YAML file using the <code>export<\/code> subcommand:<\/p>"},{"title":"Getting Started with Apache Polaris, Prometheus and Jaeger","link":"https:\/\/polaris.apache.org\/guides\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/telemetry\/","description":"<p>This example requires <code>jq<\/code> to be installed on your machine.<\/p>\n<ol>\n<li>\n<p>Build the Polaris image if it&rsquo;s not already present locally:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/site\/content\/guides\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>docker compose -f site\/content\/guides\/telemetry\/docker-compose.yml up\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>To access Polaris from the host machine, first request an access token:<\/p>"},{"title":"Binary Distribution","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/binary-distribution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/binary-distribution\/","description":"<p>Use this guide to quickly start running Polaris using the pre-built binary distribution.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Java SE 21 or later installed on your machine<\/li>\n<\/ul>\n<h2 id=\"running\" id=\"running\">Running<a class=\"heading-anchor\" href=\"#running\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Download the <a href=\"https:\/\/polaris.apache.org\/downloads\/latest\/\">latest release<\/a> and extract the binary distribution:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#000\">POLARIS_VERSION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>1.5.0\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>curl -Lf https:\/\/downloads.apache.org\/polaris\/<span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">POLARIS_VERSION<\/span><span style=\"color:#4e9a06\">}<\/span>\/polaris-bin-<span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">POLARIS_VERSION<\/span><span style=\"color:#4e9a06\">}<\/span>.tgz <span style=\"color:#000;font-weight:bold\">|<\/span> tar xzf -\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">cd<\/span> polaris-bin-<span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">POLARIS_VERSION<\/span><span style=\"color:#4e9a06\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Start the Polaris server:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>bin\/server\n<\/span><\/span><\/code><\/pre><\/div><p>The server will start and listen on http:\/\/localhost:8181 (main REST APIs) and http:\/\/localhost:8182 (management interface, for health checks and metrics).<\/p>"},{"title":"Binary Distribution","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/binary-distribution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/binary-distribution\/","description":"<p>Use this guide to quickly start running Polaris using the pre-built binary distribution.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Java SE 21 or later installed on your machine<\/li>\n<\/ul>\n<h2 id=\"running\" id=\"running\">Running<a class=\"heading-anchor\" href=\"#running\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Download and extract the binary distribution:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>curl -L https:\/\/downloads.apache.org\/incubator\/polaris\/1.5.0\/polaris-bin-1.5.0.tgz <span style=\"color:#000;font-weight:bold\">|<\/span> tar xz\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">cd<\/span> polaris-bin-1.5.0\n<\/span><\/span><\/code><\/pre><\/div><p>Start the Polaris server:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>bin\/server\n<\/span><\/span><\/code><\/pre><\/div><p>The server will start and listen on http:\/\/localhost:8182. Health and metrics endpoints are available under \/q.<\/p>"},{"title":"Installing Dependencies","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/install-dependencies\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/install-dependencies\/","description":"<p>This guide serves as an introduction to several key entities that can be managed with Apache Polaris, describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h1 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Installing Dependencies","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/install-dependencies\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/install-dependencies\/","description":"<p>This guide serves as an introduction to several key entities that can be managed with Apache Polaris, describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark\u2122.<\/p>\n<h1 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This guide covers building Polaris, deploying it locally or via <a href=\"https:\/\/www.docker.com\/\">Docker<\/a>, and interacting with it using the command-line interface and <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.<\/p>"},{"title":"Getting Started with Apache Polaris, Relational JDBC, CockroachDB and Spark SQL","link":"https:\/\/polaris.apache.org\/guides\/cockroachdb\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/cockroachdb\/","description":"<p>This example requires <code>jq<\/code> to be installed on your machine.<\/p>\n<ol>\n<li>\n<p>If such an image is not already present, build the Polaris image with support for JDBC persistence and\nthe Postgres JDBC driver:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>"},{"title":"Creating a catalog on Apache Ozone","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","description":"<p>When creating a catalog based on <a href=\"https:\/\/ozone.apache.org\/\">Apache Ozone<\/a> storage it is important to\nconfigure the <code>endpoint<\/code> property to point to your own storage cluster. If the <code>endpoint<\/code> property is\nnot set, Polaris will attempt to contact AWS storage services (which is certain to fail in this case).<\/p>\n<p>Note: the <code>--no-sts<\/code> CLI option instructs Polaris to avoid calling STS endpoints with <code>AssumeRoles<\/code>\nrequests. This means that both Polaris and its clients (engines) will have to use distinct (local)\ncredentials for accessing storage. Engines should <em>not<\/em> request credential vending in this case\n(should not use the <code>X-Iceberg-Access-Delegation=vended-credentials<\/code> header).<\/p>"},{"title":"Creating a catalog on Apache Ozone","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","description":"<p>When creating a catalog based on <a href=\"https:\/\/ozone.apache.org\/\">Apache Ozone<\/a> storage it is important to\nconfigure the <code>endpoint<\/code> property to point to your own storage cluster. If the <code>endpoint<\/code> property is\nnot set, Polaris will attempt to contact AWS storage services (which is certain to fail in this case).<\/p>\n<p>Note: the <code>--no-sts<\/code> CLI option instructs Polaris to avoid calling STS endpoints with <code>AssumeRoles<\/code>\nrequests. This means that both Polaris and its clients (engines) will have to use distinct (local)\ncredentials for accessing storage. Engines should <em>not<\/em> request credential vending in this case\n(should not use the <code>X-Iceberg-Access-Delegation=vended-credentials<\/code> header).<\/p>"},{"title":"Creating a catalog on Apache Ozone","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","description":"<p>When creating a catalog based on <a href=\"https:\/\/ozone.apache.org\/\">Apache Ozone<\/a> storage it is important to\nconfigure the <code>endpoint<\/code> property to point to your own storage cluster. If the <code>endpoint<\/code> property is\nnot set, Polaris will attempt to contact AWS storage services (which is certain to fail in this case).<\/p>\n<p>Note: the <code>--no-sts<\/code> CLI option instructs Polaris to avoid calling STS endpoints with <code>AssumeRoles<\/code>\nrequests. This means that both Polaris and its clients (engines) will have to use distinct (local)\ncredentials for accessing storage. Engines should <em>not<\/em> request credential vending in this case\n(should not use the <code>X-Iceberg-Access-Delegation=vended-credentials<\/code> header).<\/p>"},{"title":"Creating a catalog on Apache Ozone","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","description":"<p>When creating a catalog based on <a href=\"https:\/\/ozone.apache.org\/\">Apache Ozone<\/a> storage it is important to\nconfigure the <code>endpoint<\/code> property to point to your own storage cluster. If the <code>endpoint<\/code> property is\nnot set, Polaris will attempt to contact AWS storage services (which is certain to fail in this case).<\/p>\n<p>Note: the <code>--no-sts<\/code> CLI option instructs Polaris to avoid calling STS endpoints with <code>AssumeRoles<\/code>\nrequests. This means that both Polaris and its clients (engines) will have to use distinct (local)\ncredentials for accessing storage. Engines should <em>not<\/em> request credential vending in this case\n(should not use the <code>X-Iceberg-Access-Delegation=vended-credentials<\/code> header).<\/p>"},{"title":"Creating a catalog on Apache Ozone","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/s3\/catalog-ozone\/","description":"<p>When creating a catalog based on <a href=\"https:\/\/ozone.apache.org\/\">Apache Ozone<\/a> storage it is important to\nconfigure the <code>endpoint<\/code> property to point to your own storage cluster. If the <code>endpoint<\/code> property is\nnot set, Polaris will attempt to contact AWS storage services (which is certain to fail in this case).<\/p>\n<p>Note: the <code>--no-sts<\/code> CLI option instructs Polaris to avoid calling STS endpoints with <code>AssumeRoles<\/code>\nrequests. This means that both Polaris and its clients (engines) will have to use distinct (local)\ncredentials for accessing storage. Engines should <em>not<\/em> request credential vending in this case\n(should not use the <code>X-Iceberg-Access-Delegation=vended-credentials<\/code> header).<\/p>"},{"title":"Role-Based Access Control","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/managing-security\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/managing-security\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris.<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to principals by assigning catalog roles to principal roles.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \u2139\ufe0f Info<\/p>\n For advanced authorization scenarios requiring external policy management or integration with existing policy infrastructure, Polaris supports integration with external Policy Decision Points (PDPs) such as Open Policy Agent (OPA). See <a href=\"..\/external-pdp\/\">External Policy Decision Point<\/a> for more information.\n<\/div>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>"},{"title":"Role-Based Access Control","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/managing-security\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/managing-security\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris (Incubating).<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to principals by assigning catalog roles to principal roles.<\/p>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>\n<ul>\n<li><strong>Securable object<\/strong><\/li>\n<li><strong>Principal role<\/strong><\/li>\n<li><strong>Catalog role<\/strong><\/li>\n<li><strong>Privilege<\/strong><\/li>\n<\/ul>\n<h2 id=\"securable-object\" id=\"securable-object\">Securable object<a class=\"heading-anchor\" href=\"#securable-object\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A securable object is an object to which access can be granted. Polaris\nhas the following securable objects:<\/p>"},{"title":"Role-Based Access Control","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/managing-security\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/managing-security\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris (Incubating).<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to principals by assigning catalog roles to principal roles.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \u2139\ufe0f Info<\/p>\n For advanced authorization scenarios requiring external policy management or integration with existing policy infrastructure, Polaris supports integration with external Policy Decision Points (PDPs) such as Open Policy Agent (OPA). See <a href=\"..\/external-pdp\/\">External Policy Decision Point<\/a> for more information.\n<\/div>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>"},{"title":"Role-Based Access Control","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/managing-security\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/managing-security\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris.<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to principals by assigning catalog roles to principal roles.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \u2139\ufe0f Info<\/p>\n For advanced authorization scenarios requiring external policy management or integration with existing policy infrastructure, Polaris supports integration with external Policy Decision Points (PDPs) such as Open Policy Agent (OPA). See <a href=\"..\/external-pdp\/\">External Policy Decision Point<\/a> for more information.\n<\/div>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>"},{"title":"Role-Based Access Control","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/managing-security\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/managing-security\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris.<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to principals by assigning catalog roles to principal roles.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \u2139\ufe0f Info<\/p>\n For advanced authorization scenarios requiring external policy management or integration with existing policy infrastructure, Polaris supports integration with external Policy Decision Points (PDPs) such as Open Policy Agent (OPA). See <a href=\"..\/external-pdp\/\">External Policy Decision Point<\/a> for more information.\n<\/div>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>"},{"title":"Role-Based Access Control","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/managing-security\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/managing-security\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris.<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to principals by assigning catalog roles to principal roles.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \u2139\ufe0f Info<\/p>\n For advanced authorization scenarios requiring external policy management or integration with existing policy infrastructure, Polaris supports integration with external Policy Decision Points (PDPs) such as Open Policy Agent (OPA). See <a href=\"..\/external-pdp\/\">External Policy Decision Point<\/a> for more information.\n<\/div>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>"},{"title":"Apache Polaris Catalog Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/polaris-api-specs\/polaris-catalog-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/polaris-api-specs\/polaris-catalog-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/heads\/main\/spec\/generated\/bundled-polaris-catalog-service.yaml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/heads\/main\/spec\/generated\/bundled-polaris-catalog-service.yaml\" \/>"},{"title":"Apache Polaris Catalog Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/polaris-api-specs\/polaris-catalog-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/polaris-api-specs\/polaris-catalog-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.2.0-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.2.0-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml\" \/>"},{"title":"Apache Polaris Catalog Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/polaris-api-specs\/polaris-catalog-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/polaris-api-specs\/polaris-catalog-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.3.0-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.3.0-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml\" \/>"},{"title":"Apache Polaris Catalog Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/polaris-api-specs\/polaris-catalog-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/polaris-api-specs\/polaris-catalog-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.4.0\/spec\/generated\/bundled-polaris-catalog-service.yaml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.4.0\/spec\/generated\/bundled-polaris-catalog-service.yaml\" \/>"},{"title":"Apache Polaris Catalog Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/polaris-api-specs\/polaris-catalog-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/polaris-api-specs\/polaris-catalog-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.4.1\/spec\/generated\/bundled-polaris-catalog-service.yaml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.4.1\/spec\/generated\/bundled-polaris-catalog-service.yaml\" \/>"},{"title":"Apache Polaris Catalog Service OpenAPI Specification","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/polaris-api-specs\/polaris-catalog-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/polaris-api-specs\/polaris-catalog-api\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.5.0\/spec\/generated\/bundled-polaris-catalog-service.yaml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.5.0\/spec\/generated\/bundled-polaris-catalog-service.yaml\" \/>"},{"title":"Configuration Reference","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuration-reference\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuration-reference\/","description":"<p>This document provides a comprehensive reference for all Polaris configuration options.<\/p>\n<p>All properties listed here are <strong>runtime<\/strong> properties and can be changed without rebuilding Polaris.<\/p>\n<h2 id=\"table-of-contents\" id=\"table-of-contents\">Table of Contents<a class=\"heading-anchor\" href=\"#table-of-contents\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><a href=\"#features--behavior\">Features &amp; Behavior<\/a><\/li>\n<li><a href=\"#authentication--authorization\">Authentication &amp; Authorization<\/a><\/li>\n<li><a href=\"#storage--credentials\">Storage &amp; Credentials<\/a><\/li>\n<li><a href=\"#persistence\">Persistence<\/a><\/li>\n<li><a href=\"#events\">Events<\/a><\/li>\n<li><a href=\"#operational\">Operational<\/a><\/li>\n<li><a href=\"#other\">Other<\/a><\/li>\n<\/ul>\n<h2 id=\"features--behavior\" id=\"features--behavior\">Features &amp; Behavior<a class=\"heading-anchor\" href=\"#features--behavior\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"polarisfeatures\" id=\"polarisfeatures\"><code>polaris.features<\/code><a class=\"heading-anchor\" href=\"#polarisfeatures\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Feature configurations for Polaris. These are stable, user-facing settings.<\/p>\n<h5 id=\"polarisfeaturesadd_trailing_slash_to_location\" id=\"polarisfeaturesadd_trailing_slash_to_location\"><code>polaris.features.&quot;ADD_TRAILING_SLASH_TO_LOCATION&quot;<\/code><a class=\"heading-anchor\" href=\"#polarisfeaturesadd_trailing_slash_to_location\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h5>\n<p>When set, the base location for a table or namespace will have <code>\/<\/code> added as a suffix if not present<\/p>"},{"title":"Configuration Reference","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuration-reference\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuration-reference\/","description":"<p>This document provides a comprehensive reference for all Polaris configuration options.<\/p>\n<p>All properties listed here are <strong>runtime<\/strong> properties and can be changed without rebuilding Polaris.<\/p>\n<h2 id=\"table-of-contents\" id=\"table-of-contents\">Table of Contents<a class=\"heading-anchor\" href=\"#table-of-contents\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><a href=\"#features--behavior\">Features &amp; Behavior<\/a><\/li>\n<li><a href=\"#authentication--authorization\">Authentication &amp; Authorization<\/a><\/li>\n<li><a href=\"#storage--credentials\">Storage &amp; Credentials<\/a><\/li>\n<li><a href=\"#persistence\">Persistence<\/a><\/li>\n<li><a href=\"#events\">Events<\/a><\/li>\n<li><a href=\"#operational\">Operational<\/a><\/li>\n<li><a href=\"#other\">Other<\/a><\/li>\n<\/ul>\n<h2 id=\"features--behavior\" id=\"features--behavior\">Features &amp; Behavior<a class=\"heading-anchor\" href=\"#features--behavior\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"polarisfeatures\" id=\"polarisfeatures\"><code>polaris.features<\/code><a class=\"heading-anchor\" href=\"#polarisfeatures\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Feature configurations for Polaris. These are stable, user-facing settings.<\/p>\n<h5 id=\"polarisfeaturesadd_trailing_slash_to_location\" id=\"polarisfeaturesadd_trailing_slash_to_location\"><code>polaris.features.&quot;ADD_TRAILING_SLASH_TO_LOCATION&quot;<\/code><a class=\"heading-anchor\" href=\"#polarisfeaturesadd_trailing_slash_to_location\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h5>\n<p>When set, the base location for a table or namespace will have <code>\/<\/code> added as a suffix if not present<\/p>"},{"title":"Configuration Reference","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/configuration\/configuration-reference\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/configuration\/configuration-reference\/","description":"<p>This document provides a comprehensive reference for all Polaris configuration options.<\/p>\n<p>All properties listed here are <strong>runtime<\/strong> properties and can be changed without rebuilding Polaris.<\/p>\n<h2 id=\"table-of-contents\" id=\"table-of-contents\">Table of Contents<a class=\"heading-anchor\" href=\"#table-of-contents\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><a href=\"#features--behavior\">Features &amp; Behavior<\/a><\/li>\n<li><a href=\"#authentication--authorization\">Authentication &amp; Authorization<\/a><\/li>\n<li><a href=\"#storage--credentials\">Storage &amp; Credentials<\/a><\/li>\n<li><a href=\"#persistence\">Persistence<\/a><\/li>\n<li><a href=\"#events\">Events<\/a><\/li>\n<li><a href=\"#operational\">Operational<\/a><\/li>\n<li><a href=\"#other\">Other<\/a><\/li>\n<\/ul>\n<h2 id=\"features--behavior\" id=\"features--behavior\">Features &amp; Behavior<a class=\"heading-anchor\" href=\"#features--behavior\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"polarisfeatures\" id=\"polarisfeatures\"><code>polaris.features<\/code><a class=\"heading-anchor\" href=\"#polarisfeatures\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Feature configurations for Polaris. These are stable, user-facing settings.<\/p>\n<h5 id=\"polarisfeaturesadd_trailing_slash_to_location\" id=\"polarisfeaturesadd_trailing_slash_to_location\"><code>polaris.features.&quot;ADD_TRAILING_SLASH_TO_LOCATION&quot;<\/code><a class=\"heading-anchor\" href=\"#polarisfeaturesadd_trailing_slash_to_location\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h5>\n<p>When set, the base location for a table or namespace will have <code>\/<\/code> added as a suffix if not present<\/p>"},{"title":"Configuration Reference","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/configuration\/configuration-reference\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/configuration\/configuration-reference\/","description":"<p>This document provides a comprehensive reference for all Polaris configuration options.<\/p>\n<p>All properties listed here are <strong>runtime<\/strong> properties and can be changed without rebuilding Polaris.<\/p>\n<h2 id=\"table-of-contents\" id=\"table-of-contents\">Table of Contents<a class=\"heading-anchor\" href=\"#table-of-contents\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><a href=\"#features--behavior\">Features &amp; Behavior<\/a><\/li>\n<li><a href=\"#authentication--authorization\">Authentication &amp; Authorization<\/a><\/li>\n<li><a href=\"#storage--credentials\">Storage &amp; Credentials<\/a><\/li>\n<li><a href=\"#persistence\">Persistence<\/a><\/li>\n<li><a href=\"#events\">Events<\/a><\/li>\n<li><a href=\"#operational\">Operational<\/a><\/li>\n<li><a href=\"#other\">Other<\/a><\/li>\n<\/ul>\n<h2 id=\"features--behavior\" id=\"features--behavior\">Features &amp; Behavior<a class=\"heading-anchor\" href=\"#features--behavior\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"polarisfeatures\" id=\"polarisfeatures\"><code>polaris.features<\/code><a class=\"heading-anchor\" href=\"#polarisfeatures\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Feature configurations for Polaris. These are stable, user-facing settings.<\/p>\n<h5 id=\"polarisfeaturesadd_trailing_slash_to_location\" id=\"polarisfeaturesadd_trailing_slash_to_location\"><code>polaris.features.&quot;ADD_TRAILING_SLASH_TO_LOCATION&quot;<\/code><a class=\"heading-anchor\" href=\"#polarisfeaturesadd_trailing_slash_to_location\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h5>\n<p>When set, the base location for a table or namespace will have <code>\/<\/code> added as a suffix if not present<\/p>"},{"title":"Creating a catalog on Google Cloud Storage (GCS)","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/catalog-gcs\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/catalog-gcs\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/command-line-interface\/#create\">command<\/a> there are few <code>gcs<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type gcs\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--service-account (Only for GCS) The service account to use when connecting to GCS\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>gs:\/\/my-ml-bucket\/predictions\/ <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>serviceAccount:my-service-account@my-project.iam.gserviceaccount.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --storage-type gcs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> --service-account <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> my_gcs_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Google Cloud Storage (GCS)","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/catalog-gcs\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/catalog-gcs\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.2.0\/command-line-interface\/#create\">command<\/a> there are few <code>gcs<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type gcs\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--service-account (Only for GCS) The service account to use when connecting to GCS\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>gs:\/\/my-ml-bucket\/predictions\/ <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>serviceAccount:my-service-account@my-project.iam.gserviceaccount.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --storage-type gcs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> --service-account <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> my_gcs_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Google Cloud Storage (GCS)","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/catalog-gcs\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/catalog-gcs\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.3.0\/command-line-interface\/#create\">command<\/a> there are few <code>gcs<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type gcs\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--service-account (Only for GCS) The service account to use when connecting to GCS\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>gs:\/\/my-ml-bucket\/predictions\/ <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>serviceAccount:my-service-account@my-project.iam.gserviceaccount.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --storage-type gcs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> --service-account <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> my_gcs_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Google Cloud Storage (GCS)","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/catalog-gcs\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/catalog-gcs\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/command-line-interface\/#create\">command<\/a> there are few <code>gcs<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type gcs\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--service-account (Only for GCS) The service account to use when connecting to GCS\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>gs:\/\/my-ml-bucket\/predictions\/ <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>serviceAccount:my-service-account@my-project.iam.gserviceaccount.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --storage-type gcs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> --service-account <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> my_gcs_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Google Cloud Storage (GCS)","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/catalog-gcs\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/catalog-gcs\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/command-line-interface\/#create\">command<\/a> there are few <code>gcs<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type gcs\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--service-account (Only for GCS) The service account to use when connecting to GCS\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>gs:\/\/my-ml-bucket\/predictions\/ <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>serviceAccount:my-service-account@my-project.iam.gserviceaccount.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --storage-type gcs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> --service-account <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> my_gcs_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Google Cloud Storage (GCS)","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/catalog-gcs\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/catalog-gcs\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/command-line-interface\/#create\">command<\/a> there are few <code>gcs<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type gcs\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--service-account (Only for GCS) The service account to use when connecting to GCS\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>gs:\/\/my-ml-bucket\/predictions\/ <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>serviceAccount:my-service-account@my-project.iam.gserviceaccount.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --storage-type gcs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> --service-account <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">SERVICE_ACCOUNT<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> my_gcs_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Deploying Polaris locally","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/deploying-polaris\/local-deploy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/deploying-polaris\/local-deploy\/","description":"<p>Polaris can be deployed via a docker image or as a standalone process. Before starting, be sure that you&rsquo;ve satisfied the relevant prerequisites detailed in the previous page.<\/p>\n<h2 id=\"common-setup\" id=\"common-setup\">Common Setup<a class=\"heading-anchor\" href=\"#common-setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Before running Polaris, ensure you have completed the following setup steps:<\/p>\n<ol>\n<li><strong>Build Polaris<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">7<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>For standalone<\/strong>: Omit the <code>-Dquarkus.container-image.tag<\/code> and <code>-Dquarkus.container-image.build<\/code> options if you do not need to build a Docker image.<\/li>\n<\/ul>\n<h2 id=\"running-polaris-with-docker\" id=\"running-polaris-with-docker\">Running Polaris with Docker<a class=\"heading-anchor\" href=\"#running-polaris-with-docker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start using Polaris in Docker and launch Polaris, which is packaged with a Postgres instance, Apache Spark, and Trino.<\/p>"},{"title":"Deploying Polaris locally","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/deploying-polaris\/local-deploy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/deploying-polaris\/local-deploy\/","description":"<p>Polaris can be deployed via a docker image or as a standalone process. Before starting, be sure that you&rsquo;ve satisfied the relevant prerequisites detailed in the previous page.<\/p>\n<h2 id=\"common-setup\" id=\"common-setup\">Common Setup<a class=\"heading-anchor\" href=\"#common-setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Before running Polaris, ensure you have completed the following setup steps:<\/p>\n<ol>\n<li><strong>Build Polaris<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">7<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>For standalone<\/strong>: Omit the <code>-Dquarkus.container-image.tag<\/code> and <code>-Dquarkus.container-image.build<\/code> options if you do not need to build a Docker image.<\/li>\n<\/ul>\n<h2 id=\"running-polaris-with-docker\" id=\"running-polaris-with-docker\">Running Polaris with Docker<a class=\"heading-anchor\" href=\"#running-polaris-with-docker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start using Polaris in Docker and launch Polaris, which is packaged with a Postgres instance, Apache Spark, and Trino.<\/p>"},{"title":"Deploying Polaris locally","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/local-deploy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/local-deploy\/","description":"<p>Polaris can be deployed via a docker image or as a standalone process. Before starting, be sure that you&rsquo;ve satisfied the relevant prerequisites detailed in the previous page.<\/p>\n<h2 id=\"common-setup\" id=\"common-setup\">Common Setup<a class=\"heading-anchor\" href=\"#common-setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Before running Polaris, ensure you have completed the following setup steps:<\/p>\n<ol>\n<li><strong>Build Polaris<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">7<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>For standalone<\/strong>: Omit the <code>-Dquarkus.container-image.tag<\/code> and <code>-Dquarkus.container-image.build<\/code> options if you do not need to build a Docker image.<\/li>\n<\/ul>\n<h2 id=\"running-polaris-with-docker\" id=\"running-polaris-with-docker\">Running Polaris with Docker<a class=\"heading-anchor\" href=\"#running-polaris-with-docker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start using Polaris in Docker and launch Polaris, which is packaged with a Postgres instance, Apache Spark, and Trino.<\/p>"},{"title":"Deploying Polaris locally","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/local-deploy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/local-deploy\/","description":"<p>Polaris can be deployed via a docker image or as a standalone process. Before starting, be sure that you&rsquo;ve satisfied the relevant prerequisites detailed in the previous page.<\/p>\n<h2 id=\"common-setup\" id=\"common-setup\">Common Setup<a class=\"heading-anchor\" href=\"#common-setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Before running Polaris, ensure you have completed the following setup steps:<\/p>\n<ol>\n<li><strong>Build Polaris<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">7<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>For standalone<\/strong>: Omit the <code>-Dquarkus.container-image.tag<\/code> and <code>-Dquarkus.container-image.build<\/code> options if you do not need to build a Docker image.<\/li>\n<\/ul>\n<h2 id=\"running-polaris-with-docker\" id=\"running-polaris-with-docker\">Running Polaris with Docker<a class=\"heading-anchor\" href=\"#running-polaris-with-docker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start using Polaris in Docker and launch Polaris, which is packaged with a Postgres instance, Apache Spark, and Trino.<\/p>"},{"title":"Deploying Polaris locally","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/local-deploy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/local-deploy\/","description":"<p>Polaris can be deployed via a docker image or as a standalone process. Before starting, be sure that you&rsquo;ve satisfied the relevant prerequisites detailed in the previous page.<\/p>\n<h2 id=\"common-setup\" id=\"common-setup\">Common Setup<a class=\"heading-anchor\" href=\"#common-setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Before running Polaris, ensure you have completed the following setup steps:<\/p>\n<ol>\n<li><strong>Build Polaris<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">7<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>For standalone<\/strong>: Omit the <code>-Dquarkus.container-image.tag<\/code> and <code>-Dquarkus.container-image.build<\/code> options if you do not need to build a Docker image.<\/li>\n<\/ul>\n<h2 id=\"running-polaris-with-docker\" id=\"running-polaris-with-docker\">Running Polaris with Docker<a class=\"heading-anchor\" href=\"#running-polaris-with-docker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start using Polaris in Docker and launch Polaris, which is packaged with a Postgres instance, Apache Spark, and Trino.<\/p>"},{"title":"Deploying Polaris locally","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/local-deploy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/local-deploy\/","description":"<p>Polaris can be deployed via a docker image or as a standalone process. Before starting, be sure that you&rsquo;ve satisfied the relevant prerequisites detailed in the previous page.<\/p>\n<h2 id=\"common-setup\" id=\"common-setup\">Common Setup<a class=\"heading-anchor\" href=\"#common-setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Before running Polaris, ensure you have completed the following setup steps:<\/p>\n<ol>\n<li><strong>Build Polaris<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">7<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>For standalone<\/strong>: Omit the <code>-Dquarkus.container-image.tag<\/code> and <code>-Dquarkus.container-image.build<\/code> options if you do not need to build a Docker image.<\/li>\n<\/ul>\n<h2 id=\"running-polaris-with-docker\" id=\"running-polaris-with-docker\">Running Polaris with Docker<a class=\"heading-anchor\" href=\"#running-polaris-with-docker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start using Polaris in Docker and launch Polaris, which is packaged with a Postgres instance, Apache Spark, and Trino.<\/p>"},{"title":"Manual Release Guide (deprecated)","link":"https:\/\/polaris.apache.org\/community\/release-guides\/manual-release-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/release-guides\/manual-release-guide\/","description":"<p><strong>Audience<\/strong>: Release Managers<\/p>\n<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Warning<\/p>\n <strong>This guide is deprecated.<\/strong> While it remains functional and comprehensive, we recommend using the Semi-Automated Release Guide for new releases when available. This manual process is maintained for reference and fallback scenarios.\n<\/div>\n\n<p>This guide walks you through the process of <strong>creating<\/strong> a release of the Apache Polaris podling.<\/p>\n<p>Instructions how to verify a release candidate are available <a href=\"..\/release-verification-guide\/\">here<\/a>.<\/p>\n<h2 id=\"setup\" id=\"setup\">Setup<a class=\"heading-anchor\" href=\"#setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To create a release candidate, you will need:<\/p>"},{"title":"Creating a catalog on MinIO","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","description":"<p>When creating a catalog based on MinIO storage it is important to configure the <code>endpoint<\/code> property to point\nto your own MinIO cluster. If the <code>endpoint<\/code> property is not set, Polaris will attempt to contact AWS\nstorage services (which is certain to fail in this case).<\/p>\n<p>Note: the region setting is not required by MinIO, but it is set in this example for the sake of\nsimplicity as it is usually required by the AWS SDK (used internally by Polaris). One can also\nset the <code>AWS_REGION<\/code> environment variable in the Polaris server process and avoid setting region\nas a catalog property.<\/p>"},{"title":"Creating a catalog on MinIO","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","description":"<p>When creating a catalog based on MinIO storage it is important to configure the <code>endpoint<\/code> property to point\nto your own MinIO cluster. If the <code>endpoint<\/code> property is not set, Polaris will attempt to contact AWS\nstorage services (which is certain to fail in this case).<\/p>\n<p>Note: the region setting is not required by MinIO, but it is set in this example for the sake of\nsimplicity as it is usually required by the AWS SDK (used internally by Polaris). One can also\nset the <code>AWS_REGION<\/code> environment variable in the Polaris server process and avoid setting region\nas a catalog property.<\/p>"},{"title":"Creating a catalog on MinIO","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","description":"<p>When creating a catalog based on MinIO storage it is important to configure the <code>endpoint<\/code> property to point\nto your own MinIO cluster. If the <code>endpoint<\/code> property is not set, Polaris will attempt to contact AWS\nstorage services (which is certain to fail in this case).<\/p>\n<p>Note: the region setting is not required by MinIO, but it is set in this example for the sake of\nsimplicity as it is usually required by the AWS SDK (used internally by Polaris). One can also\nset the <code>AWS_REGION<\/code> environment variable in the Polaris server process and avoid setting region\nas a catalog property.<\/p>"},{"title":"Creating a catalog on MinIO","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","description":"<p>When creating a catalog based on MinIO storage it is important to configure the <code>endpoint<\/code> property to point\nto your own MinIO cluster. If the <code>endpoint<\/code> property is not set, Polaris will attempt to contact AWS\nstorage services (which is certain to fail in this case).<\/p>\n<p>Note: the region setting is not required by MinIO, but it is set in this example for the sake of\nsimplicity as it is usually required by the AWS SDK (used internally by Polaris). One can also\nset the <code>AWS_REGION<\/code> environment variable in the Polaris server process and avoid setting region\nas a catalog property.<\/p>"},{"title":"Creating a catalog on MinIO","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","description":"<p>When creating a catalog based on MinIO storage it is important to configure the <code>endpoint<\/code> property to point\nto your own MinIO cluster. If the <code>endpoint<\/code> property is not set, Polaris will attempt to contact AWS\nstorage services (which is certain to fail in this case).<\/p>\n<p>Note: the region setting is not required by MinIO, but it is set in this example for the sake of\nsimplicity as it is usually required by the AWS SDK (used internally by Polaris). One can also\nset the <code>AWS_REGION<\/code> environment variable in the Polaris server process and avoid setting region\nas a catalog property.<\/p>"},{"title":"Creating a catalog on MinIO","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/s3\/catalog-minio\/","description":"<p>When creating a catalog based on MinIO storage it is important to configure the <code>endpoint<\/code> property to point\nto your own MinIO cluster. If the <code>endpoint<\/code> property is not set, Polaris will attempt to contact AWS\nstorage services (which is certain to fail in this case).<\/p>\n<p>Note: the region setting is not required by MinIO, but it is set in this example for the sake of\nsimplicity as it is usually required by the AWS SDK (used internally by Polaris). One can also\nset the <code>AWS_REGION<\/code> environment variable in the Polaris server process and avoid setting region\nas a catalog property.<\/p>"},{"title":"NoSQL MongoDB","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/metastores\/nosql-mongodb\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/metastores\/nosql-mongodb\/","description":"<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n The MongoDB backend is currently in <strong>beta<\/strong>.\n<\/div>\n\n<p>This implementation uses MongoDB as the persistence backend and leverages the Quarkus MongoDB extension for connection management. Configuration can be done through environment variables or JVM -D flags at startup.<\/p>\n<h2 id=\"basic-configuration\" id=\"basic-configuration\">Basic Configuration<a class=\"heading-anchor\" href=\"#basic-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Using environment variables:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_TYPE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">nosql<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_NOSQL_BACKEND<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">MongoDb<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">QUARKUS_MONGODB_DATABASE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">polaris<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">QUARKUS_MONGODB_CONNECTION_STRING<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">mongodb:\/\/&lt;username&gt;:&lt;password&gt;@&lt;host&gt;:&lt;port&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Using properties file:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">polaris.persistence.type<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">nosql<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#c4a000\">polaris.persistence.nosql.backend<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">MongoDb<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">quarkus.mongodb.database<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">polaris<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">quarkus.mongodb.connection-string<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">mongodb:\/\/&lt;username&gt;:&lt;password&gt;@&lt;host&gt;:&lt;port&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"mongodb-atlas-configuration\" id=\"mongodb-atlas-configuration\">MongoDB Atlas Configuration<a class=\"heading-anchor\" href=\"#mongodb-atlas-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>For MongoDB Atlas deployments, use the <code>mongodb+srv:\/\/<\/code> connection string format:<\/p>"},{"title":"NoSQL MongoDB","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/metastores\/nosql-mongodb\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/metastores\/nosql-mongodb\/","description":"<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n The MongoDB backend is currently in <strong>beta<\/strong>.\n<\/div>\n\n<p>This implementation uses MongoDB as the persistence backend and leverages the Quarkus MongoDB extension for connection management. Configuration can be done through environment variables or JVM -D flags at startup.<\/p>\n<h2 id=\"basic-configuration\" id=\"basic-configuration\">Basic Configuration<a class=\"heading-anchor\" href=\"#basic-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Using environment variables:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_TYPE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">nosql<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_NOSQL_BACKEND<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">MongoDb<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">QUARKUS_MONGODB_DATABASE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">polaris<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">QUARKUS_MONGODB_CONNECTION_STRING<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">mongodb:\/\/&lt;username&gt;:&lt;password&gt;@&lt;host&gt;:&lt;port&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Using properties file:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">polaris.persistence.type<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">nosql<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#c4a000\">polaris.persistence.nosql.backend<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">MongoDb<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">quarkus.mongodb.database<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">polaris<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">quarkus.mongodb.connection-string<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">mongodb:\/\/&lt;username&gt;:&lt;password&gt;@&lt;host&gt;:&lt;port&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"mongodb-atlas-configuration\" id=\"mongodb-atlas-configuration\">MongoDB Atlas Configuration<a class=\"heading-anchor\" href=\"#mongodb-atlas-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>For MongoDB Atlas deployments, use the <code>mongodb+srv:\/\/<\/code> connection string format:<\/p>"},{"title":"NoSQL MongoDB","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/metastores\/nosql-mongodb\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/metastores\/nosql-mongodb\/","description":"<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n The MongoDB backend is currently in <strong>beta<\/strong>.\n<\/div>\n\n<p>This implementation uses MongoDB as the persistence backend and leverages the Quarkus MongoDB extension for connection management. Configuration can be done through environment variables or JVM -D flags at startup.<\/p>\n<h2 id=\"basic-configuration\" id=\"basic-configuration\">Basic Configuration<a class=\"heading-anchor\" href=\"#basic-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Using environment variables:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_TYPE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">nosql<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_NOSQL_BACKEND<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">MongoDb<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">QUARKUS_MONGODB_DATABASE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">polaris<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">QUARKUS_MONGODB_CONNECTION_STRING<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">mongodb:\/\/&lt;username&gt;:&lt;password&gt;@&lt;host&gt;:&lt;port&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Using properties file:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">polaris.persistence.type<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">nosql<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#c4a000\">polaris.persistence.nosql.backend<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">MongoDb<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">quarkus.mongodb.database<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">polaris<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">quarkus.mongodb.connection-string<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">mongodb:\/\/&lt;username&gt;:&lt;password&gt;@&lt;host&gt;:&lt;port&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"mongodb-atlas-configuration\" id=\"mongodb-atlas-configuration\">MongoDB Atlas Configuration<a class=\"heading-anchor\" href=\"#mongodb-atlas-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>For MongoDB Atlas deployments, use the <code>mongodb+srv:\/\/<\/code> connection string format:<\/p>"},{"title":"NoSQL MongoDB","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/metastores\/nosql-mongodb\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/metastores\/nosql-mongodb\/","description":"<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n The MongoDB backend is currently in <strong>beta<\/strong>.\n<\/div>\n\n<p>This implementation uses MongoDB as the persistence backend and leverages the Quarkus MongoDB extension for connection management. Configuration can be done through environment variables or JVM -D flags at startup.<\/p>\n<h2 id=\"basic-configuration\" id=\"basic-configuration\">Basic Configuration<a class=\"heading-anchor\" href=\"#basic-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Using environment variables:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_TYPE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">nosql<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#c4a000\">POLARIS_PERSISTENCE_NOSQL_BACKEND<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">MongoDb<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">QUARKUS_MONGODB_DATABASE<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">polaris<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">QUARKUS_MONGODB_CONNECTION_STRING<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">mongodb:\/\/&lt;username&gt;:&lt;password&gt;@&lt;host&gt;:&lt;port&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Using properties file:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-properties\" data-lang=\"properties\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#c4a000\">polaris.persistence.type<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">nosql<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#c4a000\">polaris.persistence.nosql.backend<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">MongoDb<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#c4a000\">quarkus.mongodb.database<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">polaris<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#c4a000\">quarkus.mongodb.connection-string<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#4e9a06\">mongodb:\/\/&lt;username&gt;:&lt;password&gt;@&lt;host&gt;:&lt;port&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"mongodb-atlas-configuration\" id=\"mongodb-atlas-configuration\">MongoDB Atlas Configuration<a class=\"heading-anchor\" href=\"#mongodb-atlas-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>For MongoDB Atlas deployments, use the <code>mongodb+srv:\/\/<\/code> connection string format:<\/p>"},{"title":"Overview","link":"https:\/\/polaris.apache.org\/releases\/0.9.0\/overview\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/0.9.0\/overview\/","description":"<p>Apache Polaris (Incubating) is a catalog implementation for Apache Iceberg\u2122 tables and is built on the open source Apache Iceberg\u2122 REST protocol.<\/p>\n<p>With Polaris, you can provide centralized, secure read and write access to your Iceberg tables across different REST-compatible query engines.<\/p>\n<p><img src=\"https:\/\/polaris.apache.org\/img\/overview.svg\" alt=\"Conceptual diagram of Apache Polaris (Incubating).\" title=\"Apache Polaris (Incubating) overview\"><\/p>\n<h2 id=\"key-concepts\" id=\"key-concepts\">Key concepts<a class=\"heading-anchor\" href=\"#key-concepts\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This section introduces key concepts associated with using Apache Polaris (Incubating).<\/p>\n<p>In the following diagram, a sample <a href=\"#catalog\">Apache Polaris (Incubating) structure<\/a> with nested <a href=\"#namespace\">namespaces<\/a> is shown for Catalog1. No tables\nor namespaces have been created yet for Catalog2 or Catalog3.<\/p>"},{"title":"Polaris MCP Server","link":"https:\/\/polaris.apache.org\/tools\/polaris-mcp-server\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/tools\/polaris-mcp-server\/","description":"<p>Polaris MCP Server is a package that provides Python implementation of the Model Context Protocol (MCP) server for Apache Polaris.<\/p>\n<p>It wraps the Polaris REST APIs so MCP-compatible clients (IDEs, agents, chat applications) can issue structured requests via JSON-RPC.<\/p>\n<p>To use this tool, please see this <a href=\"https:\/\/github.com\/apache\/polaris-tools\/blob\/main\/mcp-server\/README.md\">guide<\/a>.<\/p>"},{"title":"Production Configuration","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/production\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/production\/","description":"<p>This guide provides instructions for configuring the Apache Polaris Helm chart for a production environment. For full list of chart values, see the <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/reference\/\">Chart Reference<\/a> page.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>A Kubernetes cluster (1.33+ recommended)<\/li>\n<li>Helm 3.x or 4.x installed<\/li>\n<li><code>kubectl<\/code> configured to access your cluster<\/li>\n<li>A PostgreSQL or MongoDB database<\/li>\n<\/ul>\n<h2 id=\"adding-the-helm-repository\" id=\"adding-the-helm-repository\">Adding the Helm Repository<a class=\"heading-anchor\" href=\"#adding-the-helm-repository\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Add the official Apache Polaris Helm repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>helm repo add polaris https:\/\/downloads.apache.org\/polaris\/helm-chart\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>helm repo update\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"installation\" id=\"installation\">Installation<a class=\"heading-anchor\" href=\"#installation\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Create a <code>values.yaml<\/code> file with your production configuration. See the Chart <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/reference\/\">Values Reference<\/a> for all available configuration options.<\/p>"},{"title":"Production Configuration","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/production\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/production\/","description":"<p>This guide provides instructions for configuring the Apache Polaris Helm chart for a production environment. For full list of chart values, see the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/reference\/\">Chart Reference<\/a> page.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>A Kubernetes cluster (1.33+ recommended)<\/li>\n<li>Helm 3.x or 4.x installed<\/li>\n<li><code>kubectl<\/code> configured to access your cluster<\/li>\n<li>A PostgreSQL or MongoDB database<\/li>\n<\/ul>\n<h2 id=\"adding-the-helm-repository\" id=\"adding-the-helm-repository\">Adding the Helm Repository<a class=\"heading-anchor\" href=\"#adding-the-helm-repository\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Add the official Apache Polaris Helm repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>helm repo add polaris https:\/\/downloads.apache.org\/polaris\/helm-chart\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>helm repo update\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"installation\" id=\"installation\">Installation<a class=\"heading-anchor\" href=\"#installation\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Create a <code>values.yaml<\/code> file with your production configuration. See the Chart <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/reference\/\">Values Reference<\/a> for all available configuration options.<\/p>"},{"title":"Production Configuration","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/production\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/production\/","description":"<p>This guide provides instructions for configuring the Apache Polaris Helm chart for a production environment. For full list of chart values, see the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/reference\/\">Chart Reference<\/a> page.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>A Kubernetes cluster (1.33+ recommended)<\/li>\n<li>Helm 3.x or 4.x installed<\/li>\n<li><code>kubectl<\/code> configured to access your cluster<\/li>\n<li>A PostgreSQL or MongoDB database<\/li>\n<\/ul>\n<h2 id=\"adding-the-helm-repository\" id=\"adding-the-helm-repository\">Adding the Helm Repository<a class=\"heading-anchor\" href=\"#adding-the-helm-repository\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Add the official Apache Polaris Helm repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>helm repo add polaris https:\/\/downloads.apache.org\/polaris\/helm-chart\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>helm repo update\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"installation\" id=\"installation\">Installation<a class=\"heading-anchor\" href=\"#installation\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Create a <code>values.yaml<\/code> file with your production configuration. See the Chart <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/reference\/\">Values Reference<\/a> for all available configuration options.<\/p>"},{"title":"Production Configuration","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/production\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/production\/","description":"<p>This guide provides instructions for configuring the Apache Polaris Helm chart for a production environment. For full list of chart values, see the <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/reference\/\">Chart Reference<\/a> page.<\/p>\n<h2 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>A Kubernetes cluster (1.33+ recommended)<\/li>\n<li>Helm 3.x or 4.x installed<\/li>\n<li><code>kubectl<\/code> configured to access your cluster<\/li>\n<li>A PostgreSQL or MongoDB database<\/li>\n<\/ul>\n<h2 id=\"adding-the-helm-repository\" id=\"adding-the-helm-repository\">Adding the Helm Repository<a class=\"heading-anchor\" href=\"#adding-the-helm-repository\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Add the official Apache Polaris Helm repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>helm repo add polaris https:\/\/downloads.apache.org\/polaris\/helm-chart\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>helm repo update\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"installation\" id=\"installation\">Installation<a class=\"heading-anchor\" href=\"#installation\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Create a <code>values.yaml<\/code> file with your production configuration. See the Chart <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/reference\/\">Values Reference<\/a> for all available configuration options.<\/p>"},{"title":"Apache Polaris Proposals & Roadmap","link":"https:\/\/polaris.apache.org\/community\/proposals\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/proposals\/","description":"<div class=\"sect1\">\n<h2 id=\"_proposals\">Proposals<\/h2>\n<div class=\"sectionbody\">\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/issues?q=is%3Aissue%20state%3Aopen%20label%3Aproposal\">Active<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/issues?q=is%3Aissue%20state%3Aclosed%20label%3Aproposal\">Past<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_polaris_roadmap\">Polaris Roadmap<\/h2>\n<div class=\"sectionbody\">\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/discussions\/1028\">Discussed Roadmap<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>"},{"title":"Quickstart","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/quickstart\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/quickstart\/","description":"<p>Polaris can be deployed via a docker image or as a standalone process. Before starting, be sure that you&rsquo;ve satisfied the relevant prerequisites detailed in the previous page.<\/p>\n<h2 id=\"common-setup\" id=\"common-setup\">Common Setup<a class=\"heading-anchor\" href=\"#common-setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Before running Polaris, ensure you have completed the following setup steps:<\/p>\n<ol>\n<li><strong>Build Polaris<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-server:quarkusAppPartsBuild <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:assemble --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> -Dquarkus.container-image.tag<span style=\"color:#ce5c00;font-weight:bold\">=<\/span>postgres-latest <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">7<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>For standalone<\/strong>: Omit the <code>-Dquarkus.container-image.tag<\/code> and <code>-Dquarkus.container-image.build<\/code> options if you do not need to build a Docker image.<\/li>\n<\/ul>\n<h2 id=\"running-polaris-with-docker\" id=\"running-polaris-with-docker\">Running Polaris with Docker<a class=\"heading-anchor\" href=\"#running-polaris-with-docker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start using Polaris in Docker and launch Polaris, which is packaged with a Postgres instance, Apache Spark, and Trino.<\/p>"},{"title":"Quickstart","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/quickstart\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/quickstart\/","description":"<p>Polaris can be deployed via a docker image or as a standalone process. Before starting, be sure that you&rsquo;ve satisfied the relevant prerequisites detailed in the previous page.<\/p>\n<h2 id=\"common-setup\" id=\"common-setup\">Common Setup<a class=\"heading-anchor\" href=\"#common-setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Before running Polaris, ensure you have completed the following setup steps:<\/p>\n<ol>\n<li><strong>Build Polaris<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-server:quarkusAppPartsBuild <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:assemble --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> -Dquarkus.container-image.tag<span style=\"color:#ce5c00;font-weight:bold\">=<\/span>postgres-latest <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">7<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>For standalone<\/strong>: Omit the <code>-Dquarkus.container-image.tag<\/code> and <code>-Dquarkus.container-image.build<\/code> options if you do not need to build a Docker image.<\/li>\n<\/ul>\n<h2 id=\"running-polaris-with-docker\" id=\"running-polaris-with-docker\">Running Polaris with Docker<a class=\"heading-anchor\" href=\"#running-polaris-with-docker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start using Polaris in Docker and launch Polaris, which is packaged with a Postgres instance, Apache Spark, and Trino.<\/p>"},{"title":"Quickstart","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/quickstart\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/quickstart\/","description":"<p>Polaris can be deployed via a docker image or as a standalone process. Before starting, be sure that you&rsquo;ve satisfied the relevant prerequisites detailed in the previous page.<\/p>\n<h2 id=\"common-setup\" id=\"common-setup\">Common Setup<a class=\"heading-anchor\" href=\"#common-setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Before running Polaris, ensure you have completed the following setup steps:<\/p>\n<ol>\n<li><strong>Build Polaris<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">6<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">7<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>For standalone<\/strong>: Omit the <code>-Dquarkus.container-image.tag<\/code> and <code>-Dquarkus.container-image.build<\/code> options if you do not need to build a Docker image.<\/li>\n<\/ul>\n<h2 id=\"running-polaris-with-docker\" id=\"running-polaris-with-docker\">Running Polaris with Docker<a class=\"heading-anchor\" href=\"#running-polaris-with-docker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start using Polaris in Docker and launch Polaris, which is packaged with a Postgres instance, Apache Spark, and Trino.<\/p>"},{"title":"Getting Started with Apache Polaris and Apache Ozone","link":"https:\/\/polaris.apache.org\/guides\/ozone\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/ozone\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses <a href=\"https:\/\/ozone.apache.org\/\">Apache Ozone<\/a> as a storage provider with Polaris.<\/p>\n<p>Spark is used as a query engine. This example assumes a local Spark installation.\nSee the <a href=\"..\/spark\">Spark Notebooks Example<\/a> for a more advanced Spark setup.<\/p>\n<h2 id=\"starting-the-example\" id=\"starting-the-example\">Starting the Example<a class=\"heading-anchor\" href=\"#starting-the-example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>docker compose -f site\/content\/guides\/ozone\/docker-compose.yml up\n<\/span><\/span><\/code><\/pre><\/div><p>Note: this example pulls the <code>apache\/polaris:latest<\/code> image, but assumes the image is <code>1.2.0-incubating<\/code> or later.<\/p>"},{"title":"Getting Started with Apache Polaris and Ceph","link":"https:\/\/polaris.apache.org\/guides\/ceph\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/ceph\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This guide describes how to spin up a <strong>single-node Ceph cluster<\/strong> with <strong>RADOS Gateway (RGW)<\/strong> for S3-compatible storage and configure it for use by <strong>Polaris<\/strong>.<\/p>\n<p>This example cluster is configured for basic access key authentication only.\nIt does not include STS (Security Token Service) or temporary credentials.\nAll access to the Ceph RGW (RADOS Gateway) and Polaris integration uses static S3-style credentials (as configured via radosgw-admin user create).<\/p>"},{"title":"Getting Started with Apache Polaris and MinIO","link":"https:\/\/polaris.apache.org\/guides\/minio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/minio\/","description":"<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Warning<\/p>\n <strong>Disclaimer:<\/strong> This guide uses MinIO OSS for local testing only. MinIO OSS is in maintenance mode, and MinIO container images may no longer receive updates or security fixes.\n<\/div>\n\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses MinIO as a storage provider with Polaris.<\/p>\n<p>Spark is used as a query engine. This example assumes a local Spark installation.\nSee the <a href=\"..\/spark\">Spark Notebooks Example<\/a> for a more advanced Spark setup.<\/p>\n<h2 id=\"starting-the-example\" id=\"starting-the-example\">Starting the Example<a class=\"heading-anchor\" href=\"#starting-the-example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ol>\n<li>\n<p>Build the Polaris server image if it&rsquo;s not already present locally:<\/p>"},{"title":"Getting Started with Apache Polaris and RustFS","link":"https:\/\/polaris.apache.org\/guides\/rustfs\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/rustfs\/","description":"<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Warning<\/p>\n <strong>Disclaimer:<\/strong> This guide uses mc from MinIO OSS for local testing only. MinIO OSS is in maintenance mode, and MinIO container images may no longer receive updates or security fixes. For production setups, <a href=\"https:\/\/github.com\/rustfs\/cli\">rc<\/a> should be used.\n<\/div>\n\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses <a href=\"https:\/\/rustfs.com\/\">RustFS<\/a> as a storage provider with Polaris.<\/p>\n<p>Spark is used as a query engine. This example assumes a local Spark installation.\nSee the <a href=\"..\/spark\">Spark Notebooks Example<\/a> for a more advanced Spark setup.<\/p>"},{"title":"Admin Tool","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/admin-tool\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/admin-tool\/","description":"<p>Polaris includes a tool for administrators to manage the <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/metastores\/\">metastore<\/a>.<\/p>\n<p>The tool is available as a Docker image: <code>apache\/polaris-admin-tool<\/code>. It can also be downloaded as part of the <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/binary-distribution\/\">binary distribution<\/a>.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n The tool must be built with the necessary database drivers to access the metastore database.\nThe default build includes drivers for the PostgreSQL and NoSQL (MongoDB) backends.\n<\/div>\n\n<h2 id=\"usage\" id=\"usage\">Usage<a class=\"heading-anchor\" href=\"#usage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Please make sure the admin tool and Polaris server are with the same version before using it.\nTo run the standalone JAR, use the following command:<\/p>"},{"title":"Admin Tool","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/admin-tool\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/admin-tool\/","description":"<p>Polaris includes a tool for administrators to manage the metastore.<\/p>\n<p>The tool must be built with the necessary JDBC drivers to access the metastore database. For\nexample, to build the tool with support for Postgres, run the following:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>The above command will generate:<\/p>\n<ul>\n<li>One standalone JAR in <code>runtime\/admin\/build\/polaris-admin-*-runner.jar<\/code><\/li>\n<li>Two distribution archives in <code>runtime\/admin\/build\/distributions<\/code><\/li>\n<li>Two Docker images named <code>apache\/polaris-admin-tool:latest<\/code> and <code>apache\/polaris-admin-tool:&lt;version&gt;<\/code><\/li>\n<\/ul>\n<h2 id=\"usage\" id=\"usage\">Usage<a class=\"heading-anchor\" href=\"#usage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Please make sure the admin tool and Polaris server are with the same version before using it.\nTo run the standalone JAR, use the following command:<\/p>"},{"title":"Admin Tool","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/admin-tool\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/admin-tool\/","description":"<p>Polaris includes a tool for administrators to manage the metastore.<\/p>\n<p>The tool must be built with the necessary JDBC drivers to access the metastore database. For\nexample, to build the tool with support for Postgres, run the following:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>The above command will generate:<\/p>\n<ul>\n<li>One standalone JAR in <code>runtime\/admin\/build\/polaris-admin-*-runner.jar<\/code><\/li>\n<li>Two distribution archives in <code>runtime\/admin\/build\/distributions<\/code><\/li>\n<li>Two Docker images named <code>apache\/polaris-admin-tool:latest<\/code> and <code>apache\/polaris-admin-tool:&lt;version&gt;<\/code><\/li>\n<\/ul>\n<h2 id=\"usage\" id=\"usage\">Usage<a class=\"heading-anchor\" href=\"#usage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Please make sure the admin tool and Polaris server are with the same version before using it.\nTo run the standalone JAR, use the following command:<\/p>"},{"title":"Admin Tool","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/admin-tool\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/admin-tool\/","description":"<p>Polaris includes a tool for administrators to manage the metastore.<\/p>\n<p>The tool must be built with the necessary JDBC drivers to access the metastore database. For\nexample, to build the tool with support for Postgres, run the following:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>The above command will generate:<\/p>\n<ul>\n<li>One Fast-JAR in <code>runtime\/admin\/build\/quarkus-app\/quarkus-run.jar<\/code><\/li>\n<li>Two Docker images named <code>apache\/polaris-admin-tool:latest<\/code> and <code>apache\/polaris-admin-tool:&lt;version&gt;<\/code><\/li>\n<\/ul>\n<h2 id=\"usage\" id=\"usage\">Usage<a class=\"heading-anchor\" href=\"#usage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Please make sure the admin tool and Polaris server are with the same version before using it.\nTo run the standalone JAR, use the following command:<\/p>"},{"title":"Admin Tool","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/admin-tool\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/admin-tool\/","description":"<p>Polaris includes a tool for administrators to manage the metastore.<\/p>\n<p>The tool must be built with the necessary JDBC drivers to access the metastore database. For\nexample, to build the tool with support for Postgres, run the following:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>The above command will generate:<\/p>\n<ul>\n<li>One Fast-JAR in <code>runtime\/admin\/build\/quarkus-app\/quarkus-run.jar<\/code><\/li>\n<li>Two Docker images named <code>apache\/polaris-admin-tool:latest<\/code> and <code>apache\/polaris-admin-tool:&lt;version&gt;<\/code><\/li>\n<\/ul>\n<h2 id=\"usage\" id=\"usage\">Usage<a class=\"heading-anchor\" href=\"#usage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Please make sure the admin tool and Polaris server are with the same version before using it.\nTo run the standalone JAR, use the following command:<\/p>"},{"title":"Admin Tool","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/admin-tool\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/admin-tool\/","description":"<p>Polaris includes a tool for administrators to manage the metastore.<\/p>\n<p>The tool must be built with the necessary JDBC drivers to access the metastore database. For\nexample, to build the tool with support for Postgres, run the following:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-admin:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-admin:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>The above command will generate:<\/p>\n<ul>\n<li>One Fast-JAR in <code>runtime\/admin\/build\/quarkus-app\/quarkus-run.jar<\/code><\/li>\n<li>Two Docker images named <code>apache\/polaris-admin-tool:latest<\/code> and <code>apache\/polaris-admin-tool:&lt;version&gt;<\/code><\/li>\n<\/ul>\n<h2 id=\"usage\" id=\"usage\">Usage<a class=\"heading-anchor\" href=\"#usage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Please make sure the admin tool and Polaris server are with the same version before using it.\nTo run the standalone JAR, use the following command:<\/p>"},{"title":"Admin Tool","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/admin-tool\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/admin-tool\/","description":"<p>Polaris includes a tool for administrators to manage the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/metastores\/\">metastore<\/a>.<\/p>\n<p>The tool is available as a Docker image: <code>apache\/polaris-admin-tool<\/code>. It can also be downloaded as part of the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/binary-distribution\/\">binary distribution<\/a>.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n The tool must be built with the necessary database drivers to access the metastore database.\nThe default build includes drivers for the PostgreSQL and NoSQL (MongoDB) backends.\n<\/div>\n\n<h2 id=\"usage\" id=\"usage\">Usage<a class=\"heading-anchor\" href=\"#usage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Please make sure the admin tool and Polaris server are with the same version before using it.\nTo run the standalone JAR, use the following command:<\/p>"},{"title":"Admin Tool","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/admin-tool\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/admin-tool\/","description":"<p>Polaris includes a tool for administrators to manage the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/metastores\/\">metastore<\/a>.<\/p>\n<p>The tool is available as a Docker image: <code>apache\/polaris-admin-tool<\/code>. It can also be downloaded as part of the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/binary-distribution\/\">binary distribution<\/a>.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n The tool must be built with the necessary database drivers to access the metastore database.\nThe default build includes drivers for the PostgreSQL and NoSQL (MongoDB) backends.\n<\/div>\n\n<h2 id=\"usage\" id=\"usage\">Usage<a class=\"heading-anchor\" href=\"#usage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Please make sure the admin tool and Polaris server are with the same version before using it.\nTo run the standalone JAR, use the following command:<\/p>"},{"title":"Admin Tool","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/admin-tool\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/admin-tool\/","description":"<p>Polaris includes a tool for administrators to manage the <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/metastores\/\">metastore<\/a>.<\/p>\n<p>The tool is available as a Docker image: <code>apache\/polaris-admin-tool<\/code>. It can also be downloaded as part of the <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/binary-distribution\/\">binary distribution<\/a>.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n The tool must be built with the necessary database drivers to access the metastore database.\nThe default build includes drivers for the PostgreSQL and NoSQL (MongoDB) backends.\n<\/div>\n\n<h2 id=\"usage\" id=\"usage\">Usage<a class=\"heading-anchor\" href=\"#usage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Please make sure the admin tool and Polaris server are with the same version before using it.\nTo run the standalone JAR, use the following command:<\/p>"},{"title":"Authentication","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/authentication\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/authentication\/","description":"<p>This page describes how to configure authentication for Polaris when deploying with the Helm chart.<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris supports three authentication modes:<\/p>\n<table>\n <thead>\n <tr>\n <th>Mode<\/th>\n <th>Type<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>Internal<\/td>\n <td><code>internal<\/code><\/td>\n <td>Polaris manages credentials and issues tokens. Default mode.<\/td>\n <\/tr>\n <tr>\n <td>External<\/td>\n <td><code>external<\/code><\/td>\n <td>An external Identity Provider (IDP) issues tokens. Polaris validates them via OIDC.<\/td>\n <\/tr>\n <tr>\n <td>Mixed<\/td>\n <td><code>mixed<\/code><\/td>\n <td>Both internal and external authentication are enabled.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<p>For more information on authentication in Polaris, see the <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/managing-security\/external-idp\/\">Identity Providers<\/a> section of the documentation.<\/p>"},{"title":"Authentication","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/authentication\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/authentication\/","description":"<p>This page describes how to configure authentication for Polaris when deploying with the Helm chart.<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris supports three authentication modes:<\/p>\n<table>\n <thead>\n <tr>\n <th>Mode<\/th>\n <th>Type<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>Internal<\/td>\n <td><code>internal<\/code><\/td>\n <td>Polaris manages credentials and issues tokens. Default mode.<\/td>\n <\/tr>\n <tr>\n <td>External<\/td>\n <td><code>external<\/code><\/td>\n <td>An external Identity Provider (IDP) issues tokens. Polaris validates them via OIDC.<\/td>\n <\/tr>\n <tr>\n <td>Mixed<\/td>\n <td><code>mixed<\/code><\/td>\n <td>Both internal and external authentication are enabled.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<p>For more information on authentication in Polaris, see the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/managing-security\/external-idp\/\">Identity Providers<\/a> section of the documentation.<\/p>"},{"title":"Authentication","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/authentication\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/authentication\/","description":"<p>This page describes how to configure authentication for Polaris when deploying with the Helm chart.<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris supports three authentication modes:<\/p>\n<table>\n <thead>\n <tr>\n <th>Mode<\/th>\n <th>Type<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>Internal<\/td>\n <td><code>internal<\/code><\/td>\n <td>Polaris manages credentials and issues tokens. Default mode.<\/td>\n <\/tr>\n <tr>\n <td>External<\/td>\n <td><code>external<\/code><\/td>\n <td>An external Identity Provider (IDP) issues tokens. Polaris validates them via OIDC.<\/td>\n <\/tr>\n <tr>\n <td>Mixed<\/td>\n <td><code>mixed<\/code><\/td>\n <td>Both internal and external authentication are enabled.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<p>For more information on authentication in Polaris, see the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/managing-security\/external-idp\/\">Identity Providers<\/a> section of the documentation.<\/p>"},{"title":"Authentication","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/authentication\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/authentication\/","description":"<p>This page describes how to configure authentication for Polaris when deploying with the Helm chart.<\/p>\n<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris supports three authentication modes:<\/p>\n<table>\n <thead>\n <tr>\n <th>Mode<\/th>\n <th>Type<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>Internal<\/td>\n <td><code>internal<\/code><\/td>\n <td>Polaris manages credentials and issues tokens. Default mode.<\/td>\n <\/tr>\n <tr>\n <td>External<\/td>\n <td><code>external<\/code><\/td>\n <td>An external Identity Provider (IDP) issues tokens. Polaris validates them via OIDC.<\/td>\n <\/tr>\n <tr>\n <td>Mixed<\/td>\n <td><code>mixed<\/code><\/td>\n <td>Both internal and external authentication are enabled.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<p>For more information on authentication in Polaris, see the <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/managing-security\/external-idp\/\">Identity Providers<\/a> section of the documentation.<\/p>"},{"title":"Creating a catalog on Azure","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/catalog-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/catalog-azure\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/command-line-interface\/#create\">command<\/a> there are few <code>azure<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type azure\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--tenant-id (Required for Azure) A tenant ID to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span>--multi-tenant-app-name (Only for Azure) The app name to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>--consent-url (Only for Azure) A consent URL granting permissions for the Azure Storage location\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">Example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>abfss:\/\/tenant123@blob.core.windows.net <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>tenant123.onmicrosoft.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>myapp <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>https:\/\/myapp.com\/consent\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --storage-type azure <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --tenant-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --multi-tenant-app-name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --consent-url <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> my_azure_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/catalog-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/catalog-azure\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.2.0\/command-line-interface\/#create\">command<\/a> there are few <code>azure<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type azure\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--tenant-id (Required for Azure) A tenant ID to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span>--multi-tenant-app-name (Only for Azure) The app name to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>--consent-url (Only for Azure) A consent URL granting permissions for the Azure Storage location\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>abfss:\/\/tenant123@blob.core.windows.net <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>tenant123.onmicrosoft.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>myapp <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>https:\/\/myapp.com\/consent\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --storage-type azure <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --tenant-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --multi-tenant-app-name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --consent-url <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> my_azure_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/catalog-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/catalog-azure\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.3.0\/command-line-interface\/#create\">command<\/a> there are few <code>azure<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type azure\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--tenant-id (Required for Azure) A tenant ID to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span>--multi-tenant-app-name (Only for Azure) The app name to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>--consent-url (Only for Azure) A consent URL granting permissions for the Azure Storage location\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">Example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>abfss:\/\/tenant123@blob.core.windows.net <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>tenant123.onmicrosoft.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>myapp <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>https:\/\/myapp.com\/consent\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --storage-type azure <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --tenant-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --multi-tenant-app-name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --consent-url <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> my_azure_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/catalog-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/catalog-azure\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/command-line-interface\/#create\">command<\/a> there are few <code>azure<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type azure\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--tenant-id (Required for Azure) A tenant ID to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span>--multi-tenant-app-name (Only for Azure) The app name to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>--consent-url (Only for Azure) A consent URL granting permissions for the Azure Storage location\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">Example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>abfss:\/\/tenant123@blob.core.windows.net <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>tenant123.onmicrosoft.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>myapp <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>https:\/\/myapp.com\/consent\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --storage-type azure <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --tenant-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --multi-tenant-app-name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --consent-url <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> my_azure_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/catalog-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/catalog-azure\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/command-line-interface\/#create\">command<\/a> there are few <code>azure<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type azure\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--tenant-id (Required for Azure) A tenant ID to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span>--multi-tenant-app-name (Only for Azure) The app name to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>--consent-url (Only for Azure) A consent URL granting permissions for the Azure Storage location\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">Example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>abfss:\/\/tenant123@blob.core.windows.net <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>tenant123.onmicrosoft.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>myapp <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>https:\/\/myapp.com\/consent\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --storage-type azure <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --tenant-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --multi-tenant-app-name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --consent-url <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> my_azure_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Creating a catalog on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/catalog-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/catalog-azure\/","description":"<p>For the <code>polaris catalogs create<\/code> <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/command-line-interface\/#create\">command<\/a> there are few <code>azure<\/code> only options<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>--storage-type azure\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>--tenant-id (Required for Azure) A tenant ID to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span>--multi-tenant-app-name (Only for Azure) The app name to use when connecting to Azure Storage\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>--consent-url (Only for Azure) A consent URL granting permissions for the Azure Storage location\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"example\" id=\"example\">Example<a class=\"heading-anchor\" href=\"#example\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>abfss:\/\/tenant123@blob.core.windows.net <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>tenant123.onmicrosoft.com <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>myapp <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>https:\/\/myapp.com\/consent\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span> --storage-type azure <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span> --tenant-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">TENANT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span> --multi-tenant-app-name <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">MULTI_TENANT_APP_NAME<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span> --consent-url <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CONSENT_URL<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span> my_azure_catalog\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Migrating from Existing Iceberg Catalogs","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/catalog-migration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/creating-a-catalog\/catalog-migration\/","description":"<p>There are two ways to migrate an existing Iceberg catalog to Polaris:<\/p>\n<ol>\n<li>Using the <a href=\"..\/..\/..\/..\/..\/tools\/iceberg-catalog-migrator\/\">Iceberg Catalog Migrator tool<\/a>: A command-line tool to migrate Iceberg tables from one Iceberg catalog to another.\nThis tool works with any existing Iceberg catalog including Polaris.<\/li>\n<li>Using the <a href=\"..\/..\/..\/..\/..\/tools\/polaris-synchronizer\/\">Polaris Synchronizer tool<\/a>: A tool to migrate entities from one Polaris instance to another.\nThis tool is specific to Polaris.<\/li>\n<\/ol>"},{"title":"Migrating from Existing Iceberg Catalogs","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/catalog-migration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/catalog-migration\/","description":"<p>There are two ways to migrate an existing Iceberg catalog to Polaris:<\/p>\n<ol>\n<li>Using the <a href=\"https:\/\/github.com\/apache\/polaris-tools\/blob\/main\/iceberg-catalog-migrator\/README.md\">Iceberg Catalog Migrator tool<\/a>: A command-line tool to migrate Iceberg tables from one Iceberg catalog to another. This tool works with any existing Iceberg catalog including Polaris.<\/li>\n<li>Using the <a href=\"https:\/\/github.com\/apache\/polaris-tools\/blob\/main\/polaris-synchronizer\/README.md\">Polaris Synchronizer tool<\/a>: A tool to migrate entities from one Polaris instance to another. This tool is specific to Polaris.<\/li>\n<\/ol>\n<p>Both of these tools are available in the <a href=\"https:\/\/github.com\/apache\/polaris-tools\">Polaris-Tools repository<\/a>. Please refer to the relevant README.md documentation for more information.<\/p>"},{"title":"Migrating from Existing Iceberg Catalogs","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/catalog-migration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/creating-a-catalog\/catalog-migration\/","description":"<p>There are two ways to migrate an existing Iceberg catalog to Polaris:<\/p>\n<ol>\n<li>Using the <a href=\"..\/..\/..\/..\/..\/tools\/iceberg-catalog-migrator\/\">Iceberg Catalog Migrator tool<\/a>: A command-line tool to migrate Iceberg tables from one Iceberg catalog to another.\nThis tool works with any existing Iceberg catalog including Polaris.<\/li>\n<li>Using the <a href=\"..\/..\/..\/..\/..\/tools\/polaris-synchronizer\/\">Polaris Synchronizer tool<\/a>: A tool to migrate entities from one Polaris instance to another.\nThis tool is specific to Polaris.<\/li>\n<\/ol>"},{"title":"Migrating from Existing Iceberg Catalogs","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/catalog-migration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/creating-a-catalog\/catalog-migration\/","description":"<p>There are two ways to migrate an existing Iceberg catalog to Polaris:<\/p>\n<ol>\n<li>Using the <a href=\"..\/..\/..\/..\/..\/tools\/iceberg-catalog-migrator\/\">Iceberg Catalog Migrator tool<\/a>: A command-line tool to migrate Iceberg tables from one Iceberg catalog to another.\nThis tool works with any existing Iceberg catalog including Polaris.<\/li>\n<li>Using the <a href=\"..\/..\/..\/..\/..\/tools\/polaris-synchronizer\/\">Polaris Synchronizer tool<\/a>: A tool to migrate entities from one Polaris instance to another.\nThis tool is specific to Polaris.<\/li>\n<\/ol>"},{"title":"Migrating from Existing Iceberg Catalogs","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/catalog-migration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/creating-a-catalog\/catalog-migration\/","description":"<p>There are two ways to migrate an existing Iceberg catalog to Polaris:<\/p>\n<ol>\n<li>Using the <a href=\"..\/..\/..\/..\/..\/tools\/iceberg-catalog-migrator\/\">Iceberg Catalog Migrator tool<\/a>: A command-line tool to migrate Iceberg tables from one Iceberg catalog to another.\nThis tool works with any existing Iceberg catalog including Polaris.<\/li>\n<li>Using the <a href=\"..\/..\/..\/..\/..\/tools\/polaris-synchronizer\/\">Polaris Synchronizer tool<\/a>: A tool to migrate entities from one Polaris instance to another.\nThis tool is specific to Polaris.<\/li>\n<\/ol>"},{"title":"Getting Started with Apache Polaris and Apache Spark","link":"https:\/\/polaris.apache.org\/guides\/spark\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/spark\/","description":"<p>This getting started guide provides a <code>docker-compose<\/code> file to set up <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a> with Apache Polaris. Apache Polaris is configured as an Iceberg REST Catalog in Spark.\nA Jupyter notebook is used to run PySpark.<\/p>\n<h2 id=\"build-the-polaris-image\" id=\"build-the-polaris-image\">Build the Polaris image<a class=\"heading-anchor\" href=\"#build-the-polaris-image\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>If a Polaris image is not already present locally, build one with the following command:<\/p>\n<!-- Guide testing: does not work without AWS.\n```shell\nexit 0\n```\n-->\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"run-the-docker-compose-file\" id=\"run-the-docker-compose-file\">Run the <code>docker-compose<\/code> file<a class=\"heading-anchor\" href=\"#run-the-docker-compose-file\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>To start the <code>docker-compose<\/code> file with the necessary dependencies, run these commands from the repo&rsquo;s root directory:<\/p>"},{"title":"Command Line Interface","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>usage: polaris [-h] [options] COMMAND ...\n\noptions:\n -h, --help show this help message and exit\n\nGlobal Options:\n --host HOST Polaris server hostname\n --port PORT Polaris server port\n --base-url BASE_URL Complete base URL (overrides host\/port)\n --client-id CLIENT_ID OAuth client ID\n --client-secret CLIENT_SECRET OAuth client secret\n --access-token ACCESS_TOKEN OAuth access token\n --realm REALM Polaris realm (default: from server)\n --header HEADER Context header name (default: Polaris-Realm)\n --profile PROFILE Polaris profile name\n --proxy PROXY Proxy URL\n --debug Enable debug mode\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>"},{"title":"Apache Polaris (Incubating) CLI","link":"https:\/\/polaris.apache.org\/releases\/0.9.0\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/0.9.0\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>polaris [options] COMMAND ...\n\noptions:\n--host\n--port\n--client-id\n--client-secret\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>\n<ol>\n<li>catalogs<\/li>\n<li>principals<\/li>\n<li>principal-roles<\/li>\n<li>catalog-roles<\/li>\n<li>namespaces<\/li>\n<li>privileges<\/li>\n<\/ol>\n<p>Each <em>command<\/em> supports several <em>subcommands<\/em>, and some <em>subcommands<\/em> have <em>actions<\/em> that come after the subcommand in turn. Finally, <em>arguments<\/em> follow to form a full invocation. Within a set of named arguments at the end of an invocation ordering is generally not important. Many invocations also have a required positional argument of the type that the <em>command<\/em> refers to. Again, the ordering of this positional argument relative to named arguments is not important.<\/p>"},{"title":"Command Line Interface","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>polaris [options] COMMAND ...\n\noptions:\n--host\n--port\n--base-url\n--client-id\n--client-secret\n--access-token\n--profile\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>\n<ol>\n<li>catalogs<\/li>\n<li>principals<\/li>\n<li>principal-roles<\/li>\n<li>catalog-roles<\/li>\n<li>namespaces<\/li>\n<li>privileges<\/li>\n<li>profiles<\/li>\n<\/ol>\n<p>Each <em>command<\/em> supports several <em>subcommands<\/em>, and some <em>subcommands<\/em> have <em>actions<\/em> that come after the subcommand in turn. Finally, <em>arguments<\/em> follow to form a full invocation. Within a set of named arguments at the end of an invocation ordering is generally not important. Many invocations also have a required positional argument of the type that the <em>command<\/em> refers to. Again, the ordering of this positional argument relative to named arguments is not important.<\/p>"},{"title":"Command Line Interface","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>polaris [options] COMMAND ...\n\noptions:\n--host\n--port\n--base-url\n--client-id\n--client-secret\n--access-token\n--profile\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>\n<ol>\n<li>catalogs<\/li>\n<li>principals<\/li>\n<li>principal-roles<\/li>\n<li>catalog-roles<\/li>\n<li>namespaces<\/li>\n<li>privileges<\/li>\n<li>profiles<\/li>\n<\/ol>\n<p>Each <em>command<\/em> supports several <em>subcommands<\/em>, and some <em>subcommands<\/em> have <em>actions<\/em> that come after the subcommand in turn. Finally, <em>arguments<\/em> follow to form a full invocation. Within a set of named arguments at the end of an invocation ordering is generally not important. Many invocations also have a required positional argument of the type that the <em>command<\/em> refers to. Again, the ordering of this positional argument relative to named arguments is not important.<\/p>"},{"title":"Command Line Interface","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>polaris [options] COMMAND ...\n\noptions:\n--host\n--port\n--base-url\n--client-id\n--client-secret\n--access-token\n--profile\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>\n<ol>\n<li>catalogs<\/li>\n<li>principals<\/li>\n<li>principal-roles<\/li>\n<li>catalog-roles<\/li>\n<li>namespaces<\/li>\n<li>privileges<\/li>\n<li>profiles<\/li>\n<li>repair<\/li>\n<\/ol>\n<p>Each <em>command<\/em> supports several <em>subcommands<\/em>, and some <em>subcommands<\/em> have <em>actions<\/em> that come after the subcommand in turn. Finally, <em>arguments<\/em> follow to form a full invocation. Within a set of named arguments at the end of an invocation ordering is generally not important. Many invocations also have a required positional argument of the type that the <em>command<\/em> refers to. Again, the ordering of this positional argument relative to named arguments is not important.<\/p>"},{"title":"Command Line Interface","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>polaris [options] COMMAND ...\n\noptions:\n--host\n--port\n--base-url\n--client-id\n--client-secret\n--access-token\n--realm\n--header\n--profile\n--proxy\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>\n<ol>\n<li>catalogs<\/li>\n<li>principals<\/li>\n<li>principal-roles<\/li>\n<li>catalog-roles<\/li>\n<li>namespaces<\/li>\n<li>privileges<\/li>\n<li>profiles<\/li>\n<li>policies<\/li>\n<li>repair<\/li>\n<\/ol>\n<p>Each <em>command<\/em> supports several <em>subcommands<\/em>, and some <em>subcommands<\/em> have <em>actions<\/em> that come after the subcommand in turn. Finally, <em>arguments<\/em> follow to form a full invocation. Within a set of named arguments at the end of an invocation ordering is generally not important. Many invocations also have a required positional argument of the type that the <em>command<\/em> refers to. Again, the ordering of this positional argument relative to named arguments is not important.<\/p>"},{"title":"Command Line Interface","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>polaris [options] COMMAND ...\n\noptions:\n--host\n--port\n--base-url\n--client-id\n--client-secret\n--access-token\n--realm\n--header\n--profile\n--proxy\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>\n<ol>\n<li>catalogs<\/li>\n<li>principals<\/li>\n<li>principal-roles<\/li>\n<li>catalog-roles<\/li>\n<li>namespaces<\/li>\n<li>privileges<\/li>\n<li>profiles<\/li>\n<li>policies<\/li>\n<li>repair<\/li>\n<\/ol>\n<p>Each <em>command<\/em> supports several <em>subcommands<\/em>, and some <em>subcommands<\/em> have <em>actions<\/em> that come after the subcommand in turn. Finally, <em>arguments<\/em> follow to form a full invocation. Within a set of named arguments at the end of an invocation ordering is generally not important. Many invocations also have a required positional argument of the type that the <em>command<\/em> refers to. Again, the ordering of this positional argument relative to named arguments is not important.<\/p>"},{"title":"Command Line Interface","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>polaris [options] COMMAND ...\n\noptions:\n--host\n--port\n--base-url\n--client-id\n--client-secret\n--access-token\n--realm\n--header\n--profile\n--proxy\n--debug\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>\n<ol>\n<li>catalogs<\/li>\n<li>principals<\/li>\n<li>principal-roles<\/li>\n<li>catalog-roles<\/li>\n<li>namespaces<\/li>\n<li>privileges<\/li>\n<li>profiles<\/li>\n<li>policies<\/li>\n<li>repair<\/li>\n<li>setup<\/li>\n<\/ol>\n<p>Each <em>command<\/em> supports several <em>subcommands<\/em>, and some <em>subcommands<\/em> have <em>actions<\/em> that come after the subcommand in turn. Finally, <em>arguments<\/em> follow to form a full invocation. Within a set of named arguments at the end of an invocation ordering is generally not important. Many invocations also have a required positional argument of the type that the <em>command<\/em> refers to. Again, the ordering of this positional argument relative to named arguments is not important.<\/p>"},{"title":"Command Line Interface","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>polaris [options] COMMAND ...\n\noptions:\n--host\n--port\n--base-url\n--client-id\n--client-secret\n--access-token\n--realm\n--header\n--profile\n--proxy\n--debug\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>\n<ol>\n<li>catalogs<\/li>\n<li>principals<\/li>\n<li>principal-roles<\/li>\n<li>catalog-roles<\/li>\n<li>namespaces<\/li>\n<li>privileges<\/li>\n<li>profiles<\/li>\n<li>policies<\/li>\n<li>repair<\/li>\n<li>setup<\/li>\n<\/ol>\n<p>Each <em>command<\/em> supports several <em>subcommands<\/em>, and some <em>subcommands<\/em> have <em>actions<\/em> that come after the subcommand in turn. Finally, <em>arguments<\/em> follow to form a full invocation. Within a set of named arguments at the end of an invocation ordering is generally not important. Many invocations also have a required positional argument of the type that the <em>command<\/em> refers to. Again, the ordering of this positional argument relative to named arguments is not important.<\/p>"},{"title":"Command Line Interface","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/command-line-interface\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/command-line-interface\/","description":"<p>In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.<\/p>\n<p>The basic syntax of the Polaris CLI is outlined below:<\/p>\n<pre tabindex=\"0\"><code>usage: polaris [-h] [options] COMMAND ...\n\noptions:\n -h, --help show this help message and exit\n\nGlobal Options:\n --host HOST Polaris server hostname\n --port PORT Polaris server port\n --base-url BASE_URL Complete base URL (overrides host\/port)\n --client-id CLIENT_ID OAuth client ID\n --client-secret CLIENT_SECRET OAuth client secret\n --access-token ACCESS_TOKEN OAuth access token\n --realm REALM Polaris realm (default: from server)\n --header HEADER Context header name (default: Polaris-Realm)\n --profile PROFILE Polaris profile name\n --proxy PROXY Proxy URL\n --debug Enable debug mode\n<\/code><\/pre><p><code>COMMAND<\/code> must be one of the following:<\/p>"},{"title":"Release Verification Guide","link":"https:\/\/polaris.apache.org\/community\/release-guides\/release-verification-guide\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/release-guides\/release-verification-guide\/","description":"<p><strong>Audience<\/strong>: Committers and interested contributors.<\/p>\n<p>This guide walks you through the process of <strong>verifying<\/strong> a staged Apache Polaris release candidate.<\/p>\n<p>Please keep the <a href=\"https:\/\/www.apache.org\/legal\/release-policy.html#owned-controlled-hardware\">ASF Release Policy<\/a>,\nespecially the section on &ldquo;Owned and Controlled Hardware,&rdquo; in mind:\n<strong><em>Strictly speaking, releases must be verified on hardware owned and controlled by the committer.<\/em><\/strong><\/p>\n<p>Verifying a (staged) release of an Apache project has to follow a bunch of tasks, which can be\ngrouped into tasks that can be automated and those that need human intervention.\nPolaris provides a tool to automate the tasks that can be automated.<\/p>"},{"title":"Accessing Storage with TLS and Self-Signed Certificates","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/storage-tls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/storage-tls\/","description":"<p>Sometimes the storage targeted by the Polaris Server is expected to be accessed over TLS but the\nstorage system&rsquo;s certificate does not have a trust chain leading to a well-known root. Often\nsuch a certificate is simply self-signed.<\/p>\n<p>In this situation the JVM inside the Polaris Server will need to be configured with a custom\ntrust store containing the self-signed certificate or its CA certificate.<\/p>\n<p>The example below assumes using a self-signed certificate for storage and <code>docker<\/code> for running Polaris.<\/p>"},{"title":"Accessing Storage with TLS and Self-Signed Certificates","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/storage-tls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/storage-tls\/","description":"<p>Sometimes the storage targeted by the Polaris Server is expected to be accessed over TLS but the\nstorage system&rsquo;s certificate does not have a trust chain leading to a well-known root. Often\nsuch a certificate is simply self-signed.<\/p>\n<p>In this situation the JVM inside the Polaris Server will need to be configured with a custom\ntrust store containing the self-signed certificate or its CA certificate.<\/p>\n<p>The example below assumes using a self-signed certificate for storage and <code>docker<\/code> for running Polaris.<\/p>"},{"title":"Accessing Storage with TLS and Self-Signed Certificates","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/storage-tls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/storage-tls\/","description":"<p>Sometimes the storage targeted by the Polaris Server is expected to be accessed over TLS but the\nstorage system&rsquo;s certificate does not have a trust chain leading to a well-known root. Often\nsuch a certificate is simply self-signed.<\/p>\n<p>In this situation the JVM inside the Polaris Server will need to be configured with a custom\ntrust store containing the self-signed certificate or its CA certificate.<\/p>\n<p>The example below assumes using a self-signed certificate for storage and <code>docker<\/code> for running Polaris.<\/p>"},{"title":"Accessing Storage with TLS and Self-Signed Certificates","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/storage-tls\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/storage-tls\/","description":"<p>Sometimes the storage targeted by the Polaris Server is expected to be accessed over TLS but the\nstorage system&rsquo;s certificate does not have a trust chain leading to a well-known root. Often\nsuch a certificate is simply self-signed.<\/p>\n<p>In this situation the JVM inside the Polaris Server will need to be configured with a custom\ntrust store containing the self-signed certificate or its CA certificate.<\/p>\n<p>The example below assumes using a self-signed certificate for storage and <code>docker<\/code> for running Polaris.<\/p>"},{"title":"Authentication Development Details","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/managing-security\/external-idp\/idp-dev-notes\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/managing-security\/external-idp\/idp-dev-notes\/","description":"<h2 id=\"developer-architecture-notes\" id=\"developer-architecture-notes\">Developer Architecture Notes<a class=\"heading-anchor\" href=\"#developer-architecture-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"authentication-architecture\" id=\"authentication-architecture\">Authentication Architecture<a class=\"heading-anchor\" href=\"#authentication-architecture\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris separates authentication into two logical phases using <a href=\"https:\/\/quarkus.io\/guides\/security-overview\">Quarkus Security<\/a>:<\/p>\n<ol>\n<li>Credential extraction \u2013 parsing headers and tokens<\/li>\n<li>Credential authentication \u2013 validating identity and assigning roles<\/li>\n<\/ol>\n<h3 id=\"key-interfaces\" id=\"key-interfaces\">Key Interfaces<a class=\"heading-anchor\" href=\"#key-interfaces\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/Authenticator.java\"><code>Authenticator<\/code><\/a>: A core interface used to authenticate credentials and resolve principal and principal roles. Roles may be derived from OIDC claims or internal mappings.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/InternalPolarisToken.java\"><code>InternalPolarisToken<\/code><\/a>: Used in internal auth and inherits from <code>PrincipalCredential<\/code>.<\/p>"},{"title":"Authentification Development Details","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/managing-security\/external-idp\/idp-dev-notes\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/managing-security\/external-idp\/idp-dev-notes\/","description":"<h2 id=\"developer-architecture-notes\" id=\"developer-architecture-notes\">Developer Architecture Notes<a class=\"heading-anchor\" href=\"#developer-architecture-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"authentication-architecture\" id=\"authentication-architecture\">Authentication Architecture<a class=\"heading-anchor\" href=\"#authentication-architecture\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris separates authentication into two logical phases using <a href=\"https:\/\/quarkus.io\/guides\/security-overview\">Quarkus Security<\/a>:<\/p>\n<ol>\n<li>Credential extraction \u2013 parsing headers and tokens<\/li>\n<li>Credential authentication \u2013 validating identity and assigning roles<\/li>\n<\/ol>\n<h3 id=\"key-interfaces\" id=\"key-interfaces\">Key Interfaces<a class=\"heading-anchor\" href=\"#key-interfaces\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/Authenticator.java\"><code>Authenticator<\/code><\/a>: A core interface used to authenticate credentials and resolve principal and principal roles. Roles may be derived from OIDC claims or internal mappings.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/InternalPolarisToken.java\"><code>InternalPolarisToken<\/code><\/a>: Used in internal auth and inherits from <code>PrincipalCredential<\/code>.<\/p>"},{"title":"Authentication Development Details","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/managing-security\/external-idp\/idp-dev-notes\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/managing-security\/external-idp\/idp-dev-notes\/","description":"<h2 id=\"developer-architecture-notes\" id=\"developer-architecture-notes\">Developer Architecture Notes<a class=\"heading-anchor\" href=\"#developer-architecture-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"authentication-architecture\" id=\"authentication-architecture\">Authentication Architecture<a class=\"heading-anchor\" href=\"#authentication-architecture\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris separates authentication into two logical phases using <a href=\"https:\/\/quarkus.io\/guides\/security-overview\">Quarkus Security<\/a>:<\/p>\n<ol>\n<li>Credential extraction \u2013 parsing headers and tokens<\/li>\n<li>Credential authentication \u2013 validating identity and assigning roles<\/li>\n<\/ol>\n<h3 id=\"key-interfaces\" id=\"key-interfaces\">Key Interfaces<a class=\"heading-anchor\" href=\"#key-interfaces\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/Authenticator.java\"><code>Authenticator<\/code><\/a>: A core interface used to authenticate credentials and resolve principal and principal roles. Roles may be derived from OIDC claims or internal mappings.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/InternalPolarisToken.java\"><code>InternalPolarisToken<\/code><\/a>: Used in internal auth and inherits from <code>PrincipalCredential<\/code>.<\/p>"},{"title":"Authentication Development Details","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/managing-security\/external-idp\/idp-dev-notes\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/managing-security\/external-idp\/idp-dev-notes\/","description":"<h2 id=\"developer-architecture-notes\" id=\"developer-architecture-notes\">Developer Architecture Notes<a class=\"heading-anchor\" href=\"#developer-architecture-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"authentication-architecture\" id=\"authentication-architecture\">Authentication Architecture<a class=\"heading-anchor\" href=\"#authentication-architecture\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris separates authentication into two logical phases using <a href=\"https:\/\/quarkus.io\/guides\/security-overview\">Quarkus Security<\/a>:<\/p>\n<ol>\n<li>Credential extraction \u2013 parsing headers and tokens<\/li>\n<li>Credential authentication \u2013 validating identity and assigning roles<\/li>\n<\/ol>\n<h3 id=\"key-interfaces\" id=\"key-interfaces\">Key Interfaces<a class=\"heading-anchor\" href=\"#key-interfaces\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/Authenticator.java\"><code>Authenticator<\/code><\/a>: A core interface used to authenticate credentials and resolve principal and principal roles. Roles may be derived from OIDC claims or internal mappings.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/InternalPolarisToken.java\"><code>InternalPolarisToken<\/code><\/a>: Used in internal auth and inherits from <code>PrincipalCredential<\/code>.<\/p>"},{"title":"Authentication Development Details","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/managing-security\/external-idp\/idp-dev-notes\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/managing-security\/external-idp\/idp-dev-notes\/","description":"<h2 id=\"developer-architecture-notes\" id=\"developer-architecture-notes\">Developer Architecture Notes<a class=\"heading-anchor\" href=\"#developer-architecture-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"authentication-architecture\" id=\"authentication-architecture\">Authentication Architecture<a class=\"heading-anchor\" href=\"#authentication-architecture\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris separates authentication into two logical phases using <a href=\"https:\/\/quarkus.io\/guides\/security-overview\">Quarkus Security<\/a>:<\/p>\n<ol>\n<li>Credential extraction \u2013 parsing headers and tokens<\/li>\n<li>Credential authentication \u2013 validating identity and assigning roles<\/li>\n<\/ol>\n<h3 id=\"key-interfaces\" id=\"key-interfaces\">Key Interfaces<a class=\"heading-anchor\" href=\"#key-interfaces\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/Authenticator.java\"><code>Authenticator<\/code><\/a>: A core interface used to authenticate credentials and resolve principal and principal roles. Roles may be derived from OIDC claims or internal mappings.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/InternalPolarisToken.java\"><code>InternalPolarisToken<\/code><\/a>: Used in internal auth and inherits from <code>PrincipalCredential<\/code>.<\/p>"},{"title":"Authentication Development Details","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/managing-security\/external-idp\/idp-dev-notes\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/managing-security\/external-idp\/idp-dev-notes\/","description":"<h2 id=\"developer-architecture-notes\" id=\"developer-architecture-notes\">Developer Architecture Notes<a class=\"heading-anchor\" href=\"#developer-architecture-notes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"authentication-architecture\" id=\"authentication-architecture\">Authentication Architecture<a class=\"heading-anchor\" href=\"#authentication-architecture\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris separates authentication into two logical phases using <a href=\"https:\/\/quarkus.io\/guides\/security-overview\">Quarkus Security<\/a>:<\/p>\n<ol>\n<li>Credential extraction \u2013 parsing headers and tokens<\/li>\n<li>Credential authentication \u2013 validating identity and assigning roles<\/li>\n<\/ol>\n<h3 id=\"key-interfaces\" id=\"key-interfaces\">Key Interfaces<a class=\"heading-anchor\" href=\"#key-interfaces\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/Authenticator.java\"><code>Authenticator<\/code><\/a>: A core interface used to authenticate credentials and resolve principal and principal roles. Roles may be derived from OIDC claims or internal mappings.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/runtime\/service\/src\/main\/java\/org\/apache\/polaris\/service\/auth\/InternalPolarisToken.java\"><code>InternalPolarisToken<\/code><\/a>: Used in internal auth and inherits from <code>PrincipalCredential<\/code>.<\/p>"},{"title":"Deploying Polaris on Amazon Web Services (AWS)","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/aws.amazon.com\/rds\/postgresql\/\">Amazon RDS for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>There must be at least two subnets created in the VPC and region in which your EC2 instance reside. The span of subnets MUST include at least 2 availability zones (AZs) within the same region.<\/li>\n<li>Your EC2 instance must be enabled with <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-instance-settings\">IMDSv1 or IMDSv2 with 2+ hop limit<\/a>.<\/li>\n<li>The AWS identity that you will use to run this script must have the following AWS permissions:\n<ul>\n<li>&ldquo;ec2:DescribeInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBInstance&rdquo;<\/li>\n<li>&ldquo;rds:DescribeDBInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBSubnetGroup&rdquo;<\/li>\n<li>&ldquo;sts:AssumeRole&rdquo; on the same role as the Instance Profile role of the EC2 instance on which you are running this script. Additionally, you should ensure that the Instance Profile contains a trust policy that allows the role to trust itself to be assumed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">POSTGRES_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>your_secure_password <span style=\"color:#8f5902;font-style:italic\"># Optional: If not set, a random password will be generated<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"environment-variables\" id=\"environment-variables\">Environment Variables<a class=\"heading-anchor\" href=\"#environment-variables\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The deployment script accepts the following environment variables:<\/p>"},{"title":"Deploying Polaris on Amazon Web Services (AWS)","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/aws.amazon.com\/rds\/postgresql\/\">Amazon RDS for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>There must be at least two subnets created in the VPC and region in which your EC2 instance reside. The span of subnets MUST include at least 2 availability zones (AZs) within the same region.<\/li>\n<li>Your EC2 instance must be enabled with <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-instance-settings\">IMDSv1 or IMDSv2 with 2+ hop limit<\/a>.<\/li>\n<li>The AWS identity that you will use to run this script must have the following AWS permissions:\n<ul>\n<li>&ldquo;ec2:DescribeInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBInstance&rdquo;<\/li>\n<li>&ldquo;rds:DescribeDBInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBSubnetGroup&rdquo;<\/li>\n<li>&ldquo;sts:AssumeRole&rdquo; on the same role as the Instance Profile role of the EC2 instance on which you are running this script. Additionally, you should ensure that the Instance Profile contains a trust policy that allows the role to trust itself to be assumed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of Polaris! For further information regarding how to use Polaris,\ncheck out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/\">Creating a Catalog<\/a> and\n<a href=\"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/using-polaris\/\">Using Polaris<\/a> pages.<\/p>"},{"title":"Deploying Polaris on Amazon Web Services (AWS)","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/aws.amazon.com\/rds\/postgresql\/\">Amazon RDS for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>There must be at least two subnets created in the VPC and region in which your EC2 instance reside. The span of subnets MUST include at least 2 availability zones (AZs) within the same region.<\/li>\n<li>Your EC2 instance must be enabled with <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-instance-settings\">IMDSv1 or IMDSv2 with 2+ hop limit<\/a>.<\/li>\n<li>The AWS identity that you will use to run this script must have the following AWS permissions:\n<ul>\n<li>&ldquo;ec2:DescribeInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBInstance&rdquo;<\/li>\n<li>&ldquo;rds:DescribeDBInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBSubnetGroup&rdquo;<\/li>\n<li>&ldquo;sts:AssumeRole&rdquo; on the same role as the Instance Profile role of the EC2 instance on which you are running this script. Additionally, you should ensure that the Instance Profile contains a trust policy that allows the role to trust itself to be assumed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of Polaris! For further information regarding how to use Polaris,\ncheck out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/\">Creating a Catalog<\/a> and\n<a href=\"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/using-polaris\/\">Using Polaris<\/a> pages.<\/p>"},{"title":"Deploying Polaris on Amazon Web Services (AWS)","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/aws.amazon.com\/rds\/postgresql\/\">Amazon RDS for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>There must be at least two subnets created in the VPC and region in which your EC2 instance reside. The span of subnets MUST include at least 2 availability zones (AZs) within the same region.<\/li>\n<li>Your EC2 instance must be enabled with <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-instance-settings\">IMDSv1 or IMDSv2 with 2+ hop limit<\/a>.<\/li>\n<li>The AWS identity that you will use to run this script must have the following AWS permissions:\n<ul>\n<li>&ldquo;ec2:DescribeInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBInstance&rdquo;<\/li>\n<li>&ldquo;rds:DescribeDBInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBSubnetGroup&rdquo;<\/li>\n<li>&ldquo;sts:AssumeRole&rdquo; on the same role as the Instance Profile role of the EC2 instance on which you are running this script. Additionally, you should ensure that the Instance Profile contains a trust policy that allows the role to trust itself to be assumed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">POSTGRES_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>your_secure_password <span style=\"color:#8f5902;font-style:italic\"># Optional: If not set, a random password will be generated<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"environment-variables\" id=\"environment-variables\">Environment Variables<a class=\"heading-anchor\" href=\"#environment-variables\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The deployment script accepts the following environment variables:<\/p>"},{"title":"Deploying Polaris on Amazon Web Services (AWS)","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/aws.amazon.com\/rds\/postgresql\/\">Amazon RDS for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>There must be at least two subnets created in the VPC and region in which your EC2 instance reside. The span of subnets MUST include at least 2 availability zones (AZs) within the same region.<\/li>\n<li>Your EC2 instance must be enabled with <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-instance-settings\">IMDSv1 or IMDSv2 with 2+ hop limit<\/a>.<\/li>\n<li>The AWS identity that you will use to run this script must have the following AWS permissions:\n<ul>\n<li>&ldquo;ec2:DescribeInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBInstance&rdquo;<\/li>\n<li>&ldquo;rds:DescribeDBInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBSubnetGroup&rdquo;<\/li>\n<li>&ldquo;sts:AssumeRole&rdquo; on the same role as the Instance Profile role of the EC2 instance on which you are running this script. Additionally, you should ensure that the Instance Profile contains a trust policy that allows the role to trust itself to be assumed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">POSTGRES_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>your_secure_password <span style=\"color:#8f5902;font-style:italic\"># Optional: If not set, a random password will be generated<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"environment-variables\" id=\"environment-variables\">Environment Variables<a class=\"heading-anchor\" href=\"#environment-variables\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The deployment script accepts the following environment variables:<\/p>"},{"title":"Deploying Polaris on Amazon Web Services (AWS)","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-aws\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/aws.amazon.com\/rds\/postgresql\/\">Amazon RDS for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>There must be at least two subnets created in the VPC and region in which your EC2 instance reside. The span of subnets MUST include at least 2 availability zones (AZs) within the same region.<\/li>\n<li>Your EC2 instance must be enabled with <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-instance-settings\">IMDSv1 or IMDSv2 with 2+ hop limit<\/a>.<\/li>\n<li>The AWS identity that you will use to run this script must have the following AWS permissions:\n<ul>\n<li>&ldquo;ec2:DescribeInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBInstance&rdquo;<\/li>\n<li>&ldquo;rds:DescribeDBInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBSubnetGroup&rdquo;<\/li>\n<li>&ldquo;sts:AssumeRole&rdquo; on the same role as the Instance Profile role of the EC2 instance on which you are running this script. Additionally, you should ensure that the Instance Profile contains a trust policy that allows the role to trust itself to be assumed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">POSTGRES_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>your_secure_password <span style=\"color:#8f5902;font-style:italic\"># Optional: If not set, a random password will be generated<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"environment-variables\" id=\"environment-variables\">Environment Variables<a class=\"heading-anchor\" href=\"#environment-variables\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The deployment script accepts the following environment variables:<\/p>"},{"title":"Deploying Polaris on Amazon Web Services (AWS)","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/deploying-polaris\/quickstart-deploy-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/deploying-polaris\/quickstart-deploy-aws\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/aws.amazon.com\/rds\/postgresql\/\">Amazon RDS for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>There must be at least two subnets created in the VPC and region in which your EC2 instance reside. The span of subnets MUST include at least 2 availability zones (AZs) within the same region.<\/li>\n<li>Your EC2 instance must be enabled with <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-instance-settings\">IMDSv1 or IMDSv2 with 2+ hop limit<\/a>.<\/li>\n<li>The AWS identity that you will use to run this script must have the following AWS permissions:\n<ul>\n<li>&ldquo;ec2:DescribeInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBInstance&rdquo;<\/li>\n<li>&ldquo;rds:DescribeDBInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBSubnetGroup&rdquo;<\/li>\n<li>&ldquo;sts:AssumeRole&rdquo; on the same role as the Instance Profile role of the EC2 instance on which you are running this script. Additionally, you should ensure that the Instance Profile contains a trust policy that allows the role to trust itself to be assumed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>chmod +x getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of1 Polaris! For details on how to use Polaris, check out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/using-polaris\/\">Using Polaris<\/a> page.<\/p>"},{"title":"Deploying Polaris on Amazon Web Services (AWS)","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/deploying-polaris\/quickstart-deploy-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/deploying-polaris\/quickstart-deploy-aws\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/aws.amazon.com\/rds\/postgresql\/\">Amazon RDS for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>There must be at least two subnets created in the VPC and region in which your EC2 instance reside. The span of subnets MUST include at least 2 availability zones (AZs) within the same region.<\/li>\n<li>Your EC2 instance must be enabled with <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-instance-settings\">IMDSv1 or IMDSv2 with 2+ hop limit<\/a>.<\/li>\n<li>The AWS identity that you will use to run this script must have the following AWS permissions:\n<ul>\n<li>&ldquo;ec2:DescribeInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBInstance&rdquo;<\/li>\n<li>&ldquo;rds:DescribeDBInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBSubnetGroup&rdquo;<\/li>\n<li>&ldquo;sts:AssumeRole&rdquo; on the same role as the Instance Profile role of the EC2 instance on which you are running this script. Additionally, you should ensure that the Instance Profile contains a trust policy that allows the role to trust itself to be assumed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>chmod +x getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of1 Polaris! For details on how to use Polaris, check out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/using-polaris\/\">Using Polaris<\/a> page.<\/p>"},{"title":"Deploying Polaris on Amazon Web Services (AWS)","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/deploying-polaris\/quickstart-deploy-aws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/deploying-polaris\/quickstart-deploy-aws\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/aws.amazon.com\/rds\/postgresql\/\">Amazon RDS for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>There must be at least two subnets created in the VPC and region in which your EC2 instance reside. The span of subnets MUST include at least 2 availability zones (AZs) within the same region.<\/li>\n<li>Your EC2 instance must be enabled with <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-instance-settings\">IMDSv1 or IMDSv2 with 2+ hop limit<\/a>.<\/li>\n<li>The AWS identity that you will use to run this script must have the following AWS permissions:\n<ul>\n<li>&ldquo;ec2:DescribeInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBInstance&rdquo;<\/li>\n<li>&ldquo;rds:DescribeDBInstances&rdquo;<\/li>\n<li>&ldquo;rds:CreateDBSubnetGroup&rdquo;<\/li>\n<li>&ldquo;sts:AssumeRole&rdquo; on the same role as the Instance Profile role of the EC2 instance on which you are running this script. Additionally, you should ensure that the Instance Profile contains a trust policy that allows the role to trust itself to be assumed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>chmod +x getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-aws.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of1 Polaris! For details on how to use Polaris, check out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/using-polaris\/\">Using Polaris<\/a> page.<\/p>"},{"title":"Deploying Polaris on Azure","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","description":"<p>Build and launch Polaris using the Azure Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL - Flexible Server<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>"},{"title":"Deploying Polaris on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","description":"<p>Build and launch Polaris using the Azure Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL - Flexible Server<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>"},{"title":"Deploying Polaris on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","description":"<p>Build and launch Polaris using the Azure Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL - Flexible Server<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>"},{"title":"Deploying Polaris on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","description":"<p>Build and launch Polaris using the Azure Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL - Flexible Server<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>"},{"title":"Deploying Polaris on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","description":"<p>Build and launch Polaris using the Azure Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL - Flexible Server<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>"},{"title":"Deploying Polaris on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-azure\/","description":"<p>Build and launch Polaris using the Azure Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL - Flexible Server<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>"},{"title":"Deploying Polaris on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/deploying-polaris\/quickstart-deploy-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/deploying-polaris\/quickstart-deploy-azure\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL - Flexible Server<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>"},{"title":"Deploying Polaris on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/deploying-polaris\/quickstart-deploy-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/deploying-polaris\/quickstart-deploy-azure\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL - Flexible Server<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>"},{"title":"Deploying Polaris on Azure","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/deploying-polaris\/quickstart-deploy-azure\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/deploying-polaris\/quickstart-deploy-azure\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL - Flexible Server<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>"},{"title":"Deploying Polaris on Google Cloud Platform (GCP)","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/deploying-polaris\/quickstart-deploy-gcp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/deploying-polaris\/quickstart-deploy-gcp\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start a <a href=\"https:\/\/cloud.google.com\/sql\/docs\/postgres\">Cloud SQL for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>Install the <code>gcloud<\/code> CLI, if it is not already installed on the GCP VM. Instructions to download the <code>gcloud<\/code> CLI can be found <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/install\">here<\/a>.<\/li>\n<li>Ensure the <code>Cloud SQL Admin API<\/code> has been enabled in your project and that your VM&rsquo;s Principal has access to the correct role: <code>roles\/cloudsql.admin<\/code>.<\/li>\n<li>Ensure the VM&rsquo;s Principal has access to at least Read-only scope on Compute Engine: <code>compute.readonly<\/code>.<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>chmod +x getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of Polaris! For further information regarding how to use Polaris, check out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/using-polaris\/\">Using Polaris<\/a> page.<\/p>"},{"title":"Deploying Polaris on Google Cloud Platform (GCP)","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/deploying-polaris\/quickstart-deploy-gcp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/deploying-polaris\/quickstart-deploy-gcp\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start a <a href=\"https:\/\/cloud.google.com\/sql\/docs\/postgres\">Cloud SQL for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>Install the <code>gcloud<\/code> CLI, if it is not already installed on the GCP VM. Instructions to download the <code>gcloud<\/code> CLI can be found <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/install\">here<\/a>.<\/li>\n<li>Ensure the <code>Cloud SQL Admin API<\/code> has been enabled in your project and that your VM&rsquo;s Principal has access to the correct role: <code>roles\/cloudsql.admin<\/code>.<\/li>\n<li>Ensure the VM&rsquo;s Principal has access to at least Read-only scope on Compute Engine: <code>compute.readonly<\/code>.<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>chmod +x getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of Polaris! For further information regarding how to use Polaris, check out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/using-polaris\/\">Using Polaris<\/a> page.<\/p>"},{"title":"Deploying Polaris on Google Cloud Platform (GCP)","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/deploying-polaris\/quickstart-deploy-gcp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/deploying-polaris\/quickstart-deploy-gcp\/","description":"<p>Build and launch Polaris using the AWS Startup Script at the location provided in the command below. This script will start a <a href=\"https:\/\/cloud.google.com\/sql\/docs\/postgres\">Cloud SQL for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>Install the <code>gcloud<\/code> CLI, if it is not already installed on the GCP VM. Instructions to download the <code>gcloud<\/code> CLI can be found <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/install\">here<\/a>.<\/li>\n<li>Ensure the <code>Cloud SQL Admin API<\/code> has been enabled in your project and that your VM&rsquo;s Principal has access to the correct role: <code>roles\/cloudsql.admin<\/code>.<\/li>\n<li>Ensure the VM&rsquo;s Principal has access to at least Read-only scope on Compute Engine: <code>compute.readonly<\/code>.<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>chmod +x getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of Polaris! For further information regarding how to use Polaris, check out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/using-polaris\/\">Using Polaris<\/a> page.<\/p>"},{"title":"Deploying Polaris on Google Cloud Platform (GCP)","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","description":"<p>Build and launch Polaris using the GCP Startup Script at the location provided in the command below. This script will start a <a href=\"https:\/\/cloud.google.com\/sql\/docs\/postgres\">Cloud SQL for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>Install the <code>gcloud<\/code> CLI, if it is not already installed on the GCP VM. Instructions to download the <code>gcloud<\/code> CLI can be found <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/install\">here<\/a>.<\/li>\n<li>Ensure the <code>Cloud SQL Admin API<\/code> has been enabled in your project and that your VM&rsquo;s Principal has access to the correct role: <code>roles\/cloudsql.admin<\/code>.<\/li>\n<li>Ensure the VM&rsquo;s Principal has access to at least Read-only scope on Compute Engine: <code>compute.readonly<\/code>.<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">POSTGRES_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>your_secure_password <span style=\"color:#8f5902;font-style:italic\"># Optional: If not set, a random password will be generated<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"environment-variables\" id=\"environment-variables\">Environment Variables<a class=\"heading-anchor\" href=\"#environment-variables\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The deployment script accepts the following environment variables:<\/p>"},{"title":"Deploying Polaris on Google Cloud Platform (GCP)","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","description":"<p>Build and launch Polaris using the GCP Startup Script at the location provided in the command below. This script will start a <a href=\"https:\/\/cloud.google.com\/sql\/docs\/postgres\">Cloud SQL for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>Install the <code>gcloud<\/code> CLI, if it is not already installed on the GCP VM. Instructions to download the <code>gcloud<\/code> CLI can be found <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/install\">here<\/a>.<\/li>\n<li>Ensure the <code>Cloud SQL Admin API<\/code> has been enabled in your project and that your VM&rsquo;s Principal has access to the correct role: <code>roles\/cloudsql.admin<\/code>.<\/li>\n<li>Ensure the VM&rsquo;s Principal has access to at least Read-only scope on Compute Engine: <code>compute.readonly<\/code>.<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of Polaris! For further information regarding how to use Polaris,\ncheck out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/creating-a-catalog\/\">Creating a Catalog<\/a> and\n<a href=\"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/using-polaris\/\">Using Polaris<\/a> pages.<\/p>"},{"title":"Deploying Polaris on Google Cloud Platform (GCP)","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","description":"<p>Build and launch Polaris using the GCP Startup Script at the location provided in the command below. This script will start a <a href=\"https:\/\/cloud.google.com\/sql\/docs\/postgres\">Cloud SQL for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>Install the <code>gcloud<\/code> CLI, if it is not already installed on the GCP VM. Instructions to download the <code>gcloud<\/code> CLI can be found <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/install\">here<\/a>.<\/li>\n<li>Ensure the <code>Cloud SQL Admin API<\/code> has been enabled in your project and that your VM&rsquo;s Principal has access to the correct role: <code>roles\/cloudsql.admin<\/code>.<\/li>\n<li>Ensure the VM&rsquo;s Principal has access to at least Read-only scope on Compute Engine: <code>compute.readonly<\/code>.<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"next-steps\" id=\"next-steps\">Next Steps<a class=\"heading-anchor\" href=\"#next-steps\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Congrats, you now have a running instance of Polaris! For further information regarding how to use Polaris,\ncheck out the <a href=\"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/creating-a-catalog\/\">Creating a Catalog<\/a> and\n<a href=\"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/using-polaris\/\">Using Polaris<\/a> pages.<\/p>"},{"title":"Deploying Polaris on Google Cloud Platform (GCP)","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","description":"<p>Build and launch Polaris using the GCP Startup Script at the location provided in the command below. This script will start a <a href=\"https:\/\/cloud.google.com\/sql\/docs\/postgres\">Cloud SQL for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>Install the <code>gcloud<\/code> CLI, if it is not already installed on the GCP VM. Instructions to download the <code>gcloud<\/code> CLI can be found <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/install\">here<\/a>.<\/li>\n<li>Ensure the <code>Cloud SQL Admin API<\/code> has been enabled in your project and that your VM&rsquo;s Principal has access to the correct role: <code>roles\/cloudsql.admin<\/code>.<\/li>\n<li>Ensure the VM&rsquo;s Principal has access to at least Read-only scope on Compute Engine: <code>compute.readonly<\/code>.<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">POSTGRES_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>your_secure_password <span style=\"color:#8f5902;font-style:italic\"># Optional: If not set, a random password will be generated<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"environment-variables\" id=\"environment-variables\">Environment Variables<a class=\"heading-anchor\" href=\"#environment-variables\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The deployment script accepts the following environment variables:<\/p>"},{"title":"Deploying Polaris on Google Cloud Platform (GCP)","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","description":"<p>Build and launch Polaris using the GCP Startup Script at the location provided in the command below. This script will start a <a href=\"https:\/\/cloud.google.com\/sql\/docs\/postgres\">Cloud SQL for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>Install the <code>gcloud<\/code> CLI, if it is not already installed on the GCP VM. Instructions to download the <code>gcloud<\/code> CLI can be found <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/install\">here<\/a>.<\/li>\n<li>Ensure the <code>Cloud SQL Admin API<\/code> has been enabled in your project and that your VM&rsquo;s Principal has access to the correct role: <code>roles\/cloudsql.admin<\/code>.<\/li>\n<li>Ensure the VM&rsquo;s Principal has access to at least Read-only scope on Compute Engine: <code>compute.readonly<\/code>.<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">POSTGRES_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>your_secure_password <span style=\"color:#8f5902;font-style:italic\"># Optional: If not set, a random password will be generated<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"environment-variables\" id=\"environment-variables\">Environment Variables<a class=\"heading-anchor\" href=\"#environment-variables\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The deployment script accepts the following environment variables:<\/p>"},{"title":"Deploying Polaris on Google Cloud Platform (GCP)","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/deploying-polaris\/cloud-deploy\/deploy-gcp\/","description":"<p>Build and launch Polaris using the GCP Startup Script at the location provided in the command below. This script will start a <a href=\"https:\/\/cloud.google.com\/sql\/docs\/postgres\">Cloud SQL for PostgreSQL<\/a> instance, which will be used as the backend Postgres instance holding all Polaris data.\nAdditionally, Polaris will be bootstrapped to use this database and Docker containers will be spun up for Spark SQL and Trino.<\/p>\n<p>The requirements to run the script below are:<\/p>\n<ul>\n<li>Install the <code>gcloud<\/code> CLI, if it is not already installed on the GCP VM. Instructions to download the <code>gcloud<\/code> CLI can be found <a href=\"https:\/\/cloud.google.com\/sdk\/docs\/install\">here<\/a>.<\/li>\n<li>Ensure the <code>Cloud SQL Admin API<\/code> has been enabled in your project and that your VM&rsquo;s Principal has access to the correct role: <code>roles\/cloudsql.admin<\/code>.<\/li>\n<li>Ensure the VM&rsquo;s Principal has access to at least Read-only scope on Compute Engine: <code>compute.readonly<\/code>.<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">POSTGRES_PASSWORD<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>your_secure_password <span style=\"color:#8f5902;font-style:italic\"># Optional: If not set, a random password will be generated<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">5<\/span><span>.\/getting-started\/assets\/cloud_providers\/deploy-gcp.sh\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"environment-variables\" id=\"environment-variables\">Environment Variables<a class=\"heading-anchor\" href=\"#environment-variables\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The deployment script accepts the following environment variables:<\/p>"},{"title":"Deploying Polaris on MinIO","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/minio\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/minio\/","description":"<p>In this guide we walk through setting up a simple Polaris Server with local <a href=\"https:\/\/www.min.io\/\">MinIO<\/a> storage.<\/p>\n<p>Similar configurations are expected to work with other S3-compatible systems that also have the\n<a href=\"https:\/\/docs.aws.amazon.com\/STS\/latest\/APIReference\/welcome.html\">STS<\/a> API.<\/p>\n<h1 id=\"setup\" id=\"setup\">Setup<a class=\"heading-anchor\" href=\"#setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>Clone the Polaris source repository, then build a docker image for Polaris.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew :polaris-server:assemble -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>Start MinIO with Polaris using the <code>docker compose<\/code> example.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>docker compose -f getting-started\/minio\/docker-compose.yml up\n<\/span><\/span><\/code><\/pre><\/div><p>The compose script will start MinIO on default ports (API on 9000, UI on 9001)\nplus a Polaris Server pre-configured to that MinIO instance.<\/p>"},{"title":"Realm","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/realm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/realm\/","description":"<p>This page explains what a realm is and what it is used for in Polaris.<\/p>\n<h3 id=\"what-is-it\" id=\"what-is-it\">What is it?<a class=\"heading-anchor\" href=\"#what-is-it\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>A realm in Polaris serves as logical partitioning mechanism within the catalog system. This isolation allows for multitenancy, enabling different teams, environments or organizations to operate independently within the same Polaris deployment.<\/p>\n<h3 id=\"key-characteristics\" id=\"key-characteristics\">Key Characteristics<a class=\"heading-anchor\" href=\"#key-characteristics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p><strong>Isolation:<\/strong> Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.<\/p>"},{"title":"Realm","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/realm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/realm\/","description":"<p>This page explains what a realm is and what it is used for in Polaris.<\/p>\n<h3 id=\"what-is-it\" id=\"what-is-it\">What is it?<a class=\"heading-anchor\" href=\"#what-is-it\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>A realm in Polaris serves as logical partitioning mechanism within the catalog system. This isolation allows for multitenancy, enabling different teams, environments or organizations to operate independently within the same Polaris deployment.<\/p>\n<h3 id=\"key-characteristics\" id=\"key-characteristics\">Key Characteristics<a class=\"heading-anchor\" href=\"#key-characteristics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p><strong>Isolation:<\/strong> Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.<\/p>"},{"title":"Realm","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/realm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/realm\/","description":"<p>This page explains what a realm is and what it is used for in Polaris.<\/p>\n<h3 id=\"what-is-it\" id=\"what-is-it\">What is it?<a class=\"heading-anchor\" href=\"#what-is-it\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>A realm in Polaris serves as logical partitioning mechanism within the catalog system. This isolation allows for multitenancy, enabling different teams, environments or organizations to operate independently within the same Polaris deployment.<\/p>\n<h3 id=\"key-characteristics\" id=\"key-characteristics\">Key Characteristics<a class=\"heading-anchor\" href=\"#key-characteristics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p><strong>Isolation:<\/strong> Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.<\/p>"},{"title":"Realm","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/realm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/realm\/","description":"<p>This page explains what a realm is and what it is used for in Polaris.<\/p>\n<h3 id=\"what-is-it\" id=\"what-is-it\">What is it?<a class=\"heading-anchor\" href=\"#what-is-it\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>A realm in Polaris serves as logical partitioning mechanism within the catalog system. This isolation allows for multitenancy, enabling different teams, environments or organizations to operate independently within the same Polaris deployment.<\/p>\n<h3 id=\"key-characteristics\" id=\"key-characteristics\">Key Characteristics<a class=\"heading-anchor\" href=\"#key-characteristics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p><strong>Isolation:<\/strong> Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.<\/p>"},{"title":"Realm","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/realm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/realm\/","description":"<p>This page explains what a realm is and what it is used for in Polaris.<\/p>\n<h3 id=\"what-is-it\" id=\"what-is-it\">What is it?<a class=\"heading-anchor\" href=\"#what-is-it\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>A realm in Polaris serves as logical partitioning mechanism within the catalog system. This isolation allows for multitenancy, enabling different teams, environments or organizations to operate independently within the same Polaris deployment.<\/p>\n<h3 id=\"key-characteristics\" id=\"key-characteristics\">Key Characteristics<a class=\"heading-anchor\" href=\"#key-characteristics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p><strong>Isolation:<\/strong> Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.<\/p>"},{"title":"Realm","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/realm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/realm\/","description":"<p>This page explains what a realm is and what it is used for in Polaris.<\/p>\n<h3 id=\"what-is-it\" id=\"what-is-it\">What is it?<a class=\"heading-anchor\" href=\"#what-is-it\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>A realm in Polaris serves as logical partitioning mechanism within the catalog system. This isolation allows for multitenancy, enabling different teams, environments or organizations to operate independently within the same Polaris deployment.<\/p>\n<h3 id=\"key-characteristics\" id=\"key-characteristics\">Key Characteristics<a class=\"heading-anchor\" href=\"#key-characteristics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p><strong>Isolation:<\/strong> Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.<\/p>"},{"title":"Realm","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/realm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/realm\/","description":"<p>This page explains what a realm is and what it is used for in Polaris.<\/p>\n<h3 id=\"what-is-it\" id=\"what-is-it\">What is it?<a class=\"heading-anchor\" href=\"#what-is-it\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>A realm in Polaris serves as logical partitioning mechanism within the catalog system. This isolation allows for multitenancy, enabling different teams, environments or organizations to operate independently within the same Polaris deployment.<\/p>\n<h3 id=\"key-characteristics\" id=\"key-characteristics\">Key Characteristics<a class=\"heading-anchor\" href=\"#key-characteristics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p><strong>Isolation:<\/strong> Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.<\/p>"},{"title":"Realm","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/realm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/realm\/","description":"<p>This page explains what a realm is and what it is used for in Polaris.<\/p>\n<h3 id=\"what-is-it\" id=\"what-is-it\">What is it?<a class=\"heading-anchor\" href=\"#what-is-it\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>A realm in Polaris serves as logical partitioning mechanism within the catalog system. This isolation allows for multitenancy, enabling different teams, environments or organizations to operate independently within the same Polaris deployment.<\/p>\n<h3 id=\"key-characteristics\" id=\"key-characteristics\">Key Characteristics<a class=\"heading-anchor\" href=\"#key-characteristics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p><strong>Isolation:<\/strong> Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.<\/p>"},{"title":"Realm","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/realm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/realm\/","description":"<p>This page explains what a realm is and what it is used for in Polaris.<\/p>\n<h3 id=\"what-is-it\" id=\"what-is-it\">What is it?<a class=\"heading-anchor\" href=\"#what-is-it\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>A realm in Polaris serves as logical partitioning mechanism within the catalog system. This isolation allows for multitenancy, enabling different teams, environments or organizations to operate independently within the same Polaris deployment.<\/p>\n<h3 id=\"key-characteristics\" id=\"key-characteristics\">Key Characteristics<a class=\"heading-anchor\" href=\"#key-characteristics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p><strong>Isolation:<\/strong> Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.<\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/community\/chat-bylaws\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/chat-bylaws\/","description":"<!--\n Licensed to the Apache Software Foundation (ASF) under one\n or more contributor license agreements. See the NOTICE file\n distributed with this work for additional information\n regarding copyright ownership. The ASF licenses this file\n to you under the Apache License, Version 2.0 (the\n \"License\"); you may not use this file except in compliance\n with the License. You may obtain a copy of the License at\n\n http:\/\/www.apache.org\/licenses\/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing,\n software distributed under the License is distributed on an\n \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n KIND, either express or implied. See the License for the\n specific language governing permissions and limitations\n under the License.\n-->\n<h1 id=\"apache-polaris---project-chat-bylaws\" id=\"apache-polaris---project-chat-bylaws\">Apache Polaris - Project Chat Bylaws<a class=\"heading-anchor\" href=\"#apache-polaris---project-chat-bylaws\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>Apache Polaris is a top level project at the Apache Software Foundation.<\/p>"},{"title":"Getting Started with Apache Polaris and Apache Flink","link":"https:\/\/polaris.apache.org\/guides\/flink\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/flink\/","description":"<p>This getting started guide provides a <code>docker-compose<\/code> file to set up <a href=\"https:\/\/flink.apache.org\/\">Apache Flink<\/a> with Apache Polaris. Apache Polaris is configured as an Iceberg REST Catalog in Flink.<\/p>\n<ol>\n<li>\n<p>Build the Polaris server image if it&rsquo;s not already present locally:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris.<\/p>\n<h2 id=\"entity-name-constraints\" id=\"entity-name-constraints\">Entity name constraints<a class=\"heading-anchor\" href=\"#entity-name-constraints\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The REST layer enforces the following rules for entity names (namespace levels, table names, view names, and generic table names). Names that violate these rules are rejected with HTTP 400.<\/p>\n<p>A valid entity name:<\/p>\n<ul>\n<li>is not empty;<\/li>\n<li>is not <code>.<\/code> or <code>..<\/code>;<\/li>\n<li>does not contain ISO control characters (U+0000\u2013U+001F or U+007F\u2013U+009F);<\/li>\n<li>does not contain any of the following characters: <code>\/:*?&quot;&lt;&gt;|#+`<\/code>;<\/li>\n<li>does not start or end with whitespace.<\/li>\n<\/ul>\n<p>These constraints apply to <strong>create<\/strong>, <strong>register<\/strong>, and <strong>rename<\/strong> operations. Existing entities whose names pre-date this validation are not affected by read or update operations.<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/releases\/0.9.0\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/0.9.0\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris (Incubating).<\/p>\n<h2 id=\"catalog\" id=\"catalog\">Catalog<a class=\"heading-anchor\" href=\"#catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A catalog is a top-level entity in Polaris that may contain other entities like <a href=\"#namespace\">namespaces<\/a> and <a href=\"#table\">tables<\/a>. These map directly to <a href=\"https:\/\/iceberg.apache.org\/concepts\/catalog\/\">Apache Iceberg catalogs<\/a>.<\/p>\n<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/polaris-regtests\/client\/python\/docs\/CreateCatalogRequest.md\/%25!s(MISSING)\">the API docs<\/a>.<\/p>\n<h3 id=\"storage-type\" id=\"storage-type\">Storage Type<a class=\"heading-anchor\" href=\"#storage-type\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>All catalogs in Polaris are associated with a <em>storage type<\/em>. Valid Storage Types are <code>S3<\/code>, <code>Azure<\/code>, and <code>GCS<\/code>. The <code>FILE<\/code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris (Incubating).<\/p>\n<h2 id=\"catalog\" id=\"catalog\">Catalog<a class=\"heading-anchor\" href=\"#catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A catalog is a top-level entity in Polaris that may contain other entities like <a href=\"#namespace\">namespaces<\/a> and <a href=\"#table\">tables<\/a>. These map directly to <a href=\"https:\/\/iceberg.apache.org\/concepts\/catalog\/\">Apache Iceberg catalogs<\/a>.<\/p>\n<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/polaris-client\/python\/docs\/CreateCatalogRequest.md\/%25!s(MISSING)\">the API docs<\/a>.<\/p>\n<h3 id=\"storage-type\" id=\"storage-type\">Storage Type<a class=\"heading-anchor\" href=\"#storage-type\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>All catalogs in Polaris are associated with a <em>storage type<\/em>. Valid Storage Types are <code>S3<\/code>, <code>Azure<\/code>, and <code>GCS<\/code>. The <code>FILE<\/code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris (Incubating).<\/p>\n<h2 id=\"catalog\" id=\"catalog\">Catalog<a class=\"heading-anchor\" href=\"#catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A catalog is a top-level entity in Polaris that may contain other entities like <a href=\"#namespace\">namespaces<\/a> and <a href=\"#table\">tables<\/a>. These map directly to <a href=\"https:\/\/iceberg.apache.org\/concepts\/catalog\/\">Apache Iceberg catalogs<\/a>.<\/p>\n<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/polaris-client\/python\/docs\/CreateCatalogRequest.md\/%25!s(MISSING)\">the API docs<\/a>.<\/p>\n<h3 id=\"storage-type\" id=\"storage-type\">Storage Type<a class=\"heading-anchor\" href=\"#storage-type\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>All catalogs in Polaris are associated with a <em>storage type<\/em>. Valid Storage Types are <code>S3<\/code>, <code>Azure<\/code>, and <code>GCS<\/code>. The <code>FILE<\/code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris (Incubating).<\/p>\n<h2 id=\"catalog\" id=\"catalog\">Catalog<a class=\"heading-anchor\" href=\"#catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A catalog is a top-level entity in Polaris that may contain other entities like <a href=\"#namespace\">namespaces<\/a> and <a href=\"#table\">tables<\/a>. These map directly to <a href=\"https:\/\/iceberg.apache.org\/terms\/#catalog\">Apache Iceberg catalogs<\/a>.<\/p>\n<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/spec\/polaris-management-service.yml\">the CreateCatalogRequest OpenAPI<\/a>.<\/p>\n<h3 id=\"storage-type\" id=\"storage-type\">Storage Type<a class=\"heading-anchor\" href=\"#storage-type\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>All catalogs in Polaris are associated with a <em>storage type<\/em>. Valid Storage Types are <code>S3<\/code>, <code>Azure<\/code>, and <code>GCS<\/code>. The <code>FILE<\/code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris (Incubating).<\/p>\n<h2 id=\"catalog\" id=\"catalog\">Catalog<a class=\"heading-anchor\" href=\"#catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A catalog is a top-level entity in Polaris that may contain other entities like <a href=\"#namespace\">namespaces<\/a> and <a href=\"#table\">tables<\/a>. These map directly to <a href=\"https:\/\/iceberg.apache.org\/terms\/#catalog\">Apache Iceberg catalogs<\/a>.<\/p>\n<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/spec\/polaris-management-service.yml\">the CreateCatalogRequest OpenAPI<\/a>.<\/p>\n<h3 id=\"storage-type\" id=\"storage-type\">Storage Type<a class=\"heading-anchor\" href=\"#storage-type\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>All catalogs in Polaris are associated with a <em>storage type<\/em>. Valid Storage Types are <code>S3<\/code>, <code>Azure<\/code>, and <code>GCS<\/code>. The <code>FILE<\/code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris (Incubating).<\/p>\n<h2 id=\"catalog\" id=\"catalog\">Catalog<a class=\"heading-anchor\" href=\"#catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A catalog is a top-level entity in Polaris that may contain other entities like <a href=\"#namespace\">namespaces<\/a> and <a href=\"#table\">tables<\/a>. These map directly to <a href=\"https:\/\/iceberg.apache.org\/terms\/#catalog\">Apache Iceberg catalogs<\/a>.<\/p>\n<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/spec\/polaris-management-service.yml\">the CreateCatalogRequest OpenAPI<\/a>.<\/p>\n<h3 id=\"storage-type\" id=\"storage-type\">Storage Type<a class=\"heading-anchor\" href=\"#storage-type\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>All catalogs in Polaris are associated with a <em>storage type<\/em>. Valid Storage Types are <code>S3<\/code>, <code>Azure<\/code>, and <code>GCS<\/code>. The <code>FILE<\/code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris.<\/p>\n<h2 id=\"catalog\" id=\"catalog\">Catalog<a class=\"heading-anchor\" href=\"#catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A catalog is a top-level entity in Polaris that may contain other entities like <a href=\"#namespace\">namespaces<\/a> and <a href=\"#table\">tables<\/a>. These map directly to <a href=\"https:\/\/iceberg.apache.org\/terms\/#catalog\">Apache Iceberg catalogs<\/a>.<\/p>\n<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/spec\/polaris-management-service.yml\">the CreateCatalogRequest OpenAPI<\/a>.<\/p>\n<h3 id=\"storage-type\" id=\"storage-type\">Storage Type<a class=\"heading-anchor\" href=\"#storage-type\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>All catalogs in Polaris are associated with a <em>storage type<\/em>. Valid Storage Types are <code>S3<\/code>, <code>Azure<\/code>, and <code>GCS<\/code>. The <code>FILE<\/code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris.<\/p>\n<h2 id=\"catalog\" id=\"catalog\">Catalog<a class=\"heading-anchor\" href=\"#catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A catalog is a top-level entity in Polaris that may contain other entities like <a href=\"#namespace\">namespaces<\/a> and <a href=\"#table\">tables<\/a>. These map directly to <a href=\"https:\/\/iceberg.apache.org\/terms\/#catalog\">Apache Iceberg catalogs<\/a>.<\/p>\n<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/spec\/polaris-management-service.yml\">the CreateCatalogRequest OpenAPI<\/a>.<\/p>\n<h3 id=\"storage-type\" id=\"storage-type\">Storage Type<a class=\"heading-anchor\" href=\"#storage-type\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>All catalogs in Polaris are associated with a <em>storage type<\/em>. Valid Storage Types are <code>S3<\/code>, <code>Azure<\/code>, and <code>GCS<\/code>. The <code>FILE<\/code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.<\/p>"},{"title":"Entities","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/entities\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/entities\/","description":"<p>This page documents various entities that can be managed in Apache Polaris.<\/p>\n<h2 id=\"catalog\" id=\"catalog\">Catalog<a class=\"heading-anchor\" href=\"#catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A catalog is a top-level entity in Polaris that may contain other entities like <a href=\"#namespace\">namespaces<\/a> and <a href=\"#table\">tables<\/a>. These map directly to <a href=\"https:\/\/iceberg.apache.org\/terms\/#catalog\">Apache Iceberg catalogs<\/a>.<\/p>\n<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/spec\/polaris-management-service.yml\">the CreateCatalogRequest OpenAPI<\/a>.<\/p>\n<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Warning<\/p>\n Catalog properties are client-visible configuration values. Polaris returns them to authenticated\ncatalog clients through the Iceberg REST <code>\/config<\/code> response. Use catalog properties only for\nnon-sensitive client configuration. Do not store passwords, tokens, access keys, or other secrets\nin catalog properties.\n<\/div>\n\n<h3 id=\"storage-type\" id=\"storage-type\">Storage Type<a class=\"heading-anchor\" href=\"#storage-type\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>All catalogs in Polaris are associated with a <em>storage type<\/em>. Valid Storage Types are <code>S3<\/code>, <code>Azure<\/code>, and <code>GCS<\/code>. The <code>FILE<\/code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.<\/p>"},{"title":"Persistence","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/persistence\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/persistence\/","description":"<p>This page describes how to configure persistence for Polaris when deploying with the Helm chart.\nFor general information on persistence in Polaris, see the <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/metastores\/\">Metastores<\/a> page.<\/p>\n<p>Polaris supports three metastore implementations:<\/p>\n<ul>\n<li><a href=\"#in-memory-metastore\">In-Memory<\/a> - for testing only<\/li>\n<li><a href=\"#postgresql-jdbc-metastore\">PostgreSQL (JDBC)<\/a> - recommended for production<\/li>\n<li><a href=\"#mongodb-nosql-metastore\">MongoDB (NoSQL)<\/a> - experimental (beta)<\/li>\n<\/ul>\n<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Warning<\/p>\n The default <code>in-memory<\/code> metastore is <strong>not suitable for production<\/strong>. Data will be lost when pods restart, and you cannot run multiple replicas.\n<\/div>\n\n<h2 id=\"in-memory-metastore\" id=\"in-memory-metastore\">In-Memory Metastore<a class=\"heading-anchor\" href=\"#in-memory-metastore\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The in-memory metastore is the default and requires no configuration. It is useful for quick testing and development:<\/p>"},{"title":"Persistence","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/persistence\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/persistence\/","description":"<p>This page describes how to configure persistence for Polaris when deploying with the Helm chart.\nFor general information on persistence in Polaris, see the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/metastores\/\">Metastores<\/a> page.<\/p>\n<p>Polaris supports three metastore implementations:<\/p>\n<ul>\n<li><a href=\"#in-memory-metastore\">In-Memory<\/a> - for testing only<\/li>\n<li><a href=\"#postgresql-jdbc-metastore\">PostgreSQL (JDBC)<\/a> - recommended for production<\/li>\n<li><a href=\"#mongodb-nosql-metastore\">MongoDB (NoSQL)<\/a> - experimental (beta)<\/li>\n<\/ul>\n<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Warning<\/p>\n The default <code>in-memory<\/code> metastore is <strong>not suitable for production<\/strong>. Data will be lost when pods restart, and you cannot run multiple replicas.\n<\/div>\n\n<h2 id=\"in-memory-metastore\" id=\"in-memory-metastore\">In-Memory Metastore<a class=\"heading-anchor\" href=\"#in-memory-metastore\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The in-memory metastore is the default and requires no configuration. It is useful for quick testing and development:<\/p>"},{"title":"Persistence","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/persistence\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/persistence\/","description":"<p>This page describes how to configure persistence for Polaris when deploying with the Helm chart.\nFor general information on persistence in Polaris, see the <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/metastores\/\">Metastores<\/a> page.<\/p>\n<p>Polaris supports three metastore implementations:<\/p>\n<ul>\n<li><a href=\"#in-memory-metastore\">In-Memory<\/a> - for testing only<\/li>\n<li><a href=\"#postgresql-jdbc-metastore\">PostgreSQL (JDBC)<\/a> - recommended for production<\/li>\n<li><a href=\"#mongodb-nosql-metastore\">MongoDB (NoSQL)<\/a> - experimental (beta)<\/li>\n<\/ul>\n<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Warning<\/p>\n The default <code>in-memory<\/code> metastore is <strong>not suitable for production<\/strong>. Data will be lost when pods restart, and you cannot run multiple replicas.\n<\/div>\n\n<h2 id=\"in-memory-metastore\" id=\"in-memory-metastore\">In-Memory Metastore<a class=\"heading-anchor\" href=\"#in-memory-metastore\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The in-memory metastore is the default and requires no configuration. It is useful for quick testing and development:<\/p>"},{"title":"Persistence","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/persistence\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/persistence\/","description":"<p>This page describes how to configure persistence for Polaris when deploying with the Helm chart.\nFor general information on persistence in Polaris, see the <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/metastores\/\">Metastores<\/a> page.<\/p>\n<p>Polaris supports three metastore implementations:<\/p>\n<ul>\n<li><a href=\"#in-memory-metastore\">In-Memory<\/a> - for testing only<\/li>\n<li><a href=\"#postgresql-jdbc-metastore\">PostgreSQL (JDBC)<\/a> - recommended for production<\/li>\n<li><a href=\"#mongodb-nosql-metastore\">MongoDB (NoSQL)<\/a> - experimental (beta)<\/li>\n<\/ul>\n<div class=\"alert alert-warning\"><p class=\"alert-heading\">\n \u26a0\ufe0f Warning<\/p>\n The default <code>in-memory<\/code> metastore is <strong>not suitable for production<\/strong>. Data will be lost when pods restart, and you cannot run multiple replicas.\n<\/div>\n\n<h2 id=\"in-memory-metastore\" id=\"in-memory-metastore\">In-Memory Metastore<a class=\"heading-anchor\" href=\"#in-memory-metastore\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The in-memory metastore is the default and requires no configuration. It is useful for quick testing and development:<\/p>"},{"title":"Getting Started with Apache Polaris, External Authentication and Keycloak","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/using-polaris\/keycloak-idp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/using-polaris\/keycloak-idp\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses Keycloak as an <strong>external<\/strong> identity provider for Polaris. The &ldquo;iceberg&rdquo; realm is automatically\ncreated and configured from the <code>iceberg-realm.json<\/code> file.<\/p>\n<p>This Keycloak realm contains 1 client definition: <code>client1:s3cr3t<\/code>. It is configured to return tokens with the following\nfixed claims:<\/p>\n<ul>\n<li><code>principal_id<\/code>: the principal ID of the user. It is always set to zero (0) in this example.<\/li>\n<li><code>principal_name<\/code>: the principal name of the user. It is always set to &ldquo;root&rdquo; in this example.<\/li>\n<li><code>principal_roles<\/code>: the principal roles of the user. It is always set to <code>[&quot;server_admin&quot;, &quot;catalog_admin&quot;]<\/code> in this\nexample.<\/li>\n<\/ul>\n<p>This is obviously not a realistic configuration. In a real-world scenario, you would configure Keycloak to return the\nactual principal ID, name and roles of the user. Note that principals and principal roles must have been created in\nPolaris beforehand, and the principal ID, name and roles must match the ones returned by Keycloak.<\/p>"},{"title":"Getting Started with Apache Polaris, External Authentication and Keycloak","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/using-polaris\/keycloak-idp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/using-polaris\/keycloak-idp\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses Keycloak as an <strong>external<\/strong> identity provider for Polaris. The &ldquo;iceberg&rdquo; realm is automatically\ncreated and configured from the <code>iceberg-realm.json<\/code> file.<\/p>\n<p>This Keycloak realm contains 1 client definition: <code>client1:s3cr3t<\/code>. It is configured to return tokens with the following\nfixed claims:<\/p>\n<ul>\n<li><code>principal_id<\/code>: the principal ID of the user. It is always set to zero (0) in this example.<\/li>\n<li><code>principal_name<\/code>: the principal name of the user. It is always set to &ldquo;root&rdquo; in this example.<\/li>\n<li><code>principal_roles<\/code>: the principal roles of the user. It is always set to <code>[&quot;server_admin&quot;, &quot;catalog_admin&quot;]<\/code> in this\nexample.<\/li>\n<\/ul>\n<p>This is obviously not a realistic configuration. In a real-world scenario, you would configure Keycloak to return the\nactual principal ID, name and roles of the user. Note that principals and principal roles must have been created in\nPolaris beforehand, and the principal ID, name and roles must match the ones returned by Keycloak.<\/p>"},{"title":"Getting Started with Apache Polaris, External Authentication and Keycloak","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/using-polaris\/keycloak-idp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/using-polaris\/keycloak-idp\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses Keycloak as an <strong>external<\/strong> identity provider for Polaris. The &ldquo;iceberg&rdquo; realm is automatically\ncreated and configured from the <code>iceberg-realm.json<\/code> file.<\/p>\n<p>This Keycloak realm contains 1 client definition: <code>client1:s3cr3t<\/code>. It is configured to return tokens with the following\nfixed claims:<\/p>\n<ul>\n<li><code>principal_id<\/code>: the principal ID of the user. It is always set to zero (0) in this example.<\/li>\n<li><code>principal_name<\/code>: the principal name of the user. It is always set to &ldquo;root&rdquo; in this example.<\/li>\n<li><code>principal_roles<\/code>: the principal roles of the user. It is always set to <code>[&quot;server_admin&quot;, &quot;catalog_admin&quot;]<\/code> in this\nexample.<\/li>\n<\/ul>\n<p>This is obviously not a realistic configuration. In a real-world scenario, you would configure Keycloak to return the\nactual principal ID, name and roles of the user. Note that principals and principal roles must have been created in\nPolaris beforehand, and the principal ID, name and roles must match the ones returned by Keycloak.<\/p>"},{"title":"Getting Started with Apache Polaris, External Authentication and Keycloak","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/using-polaris\/keycloak-idp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/using-polaris\/keycloak-idp\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses Keycloak as an <strong>external<\/strong> identity provider for Polaris. The &ldquo;iceberg&rdquo; realm is automatically\ncreated and configured from the <code>iceberg-realm.json<\/code> file.<\/p>\n<p>This Keycloak realm contains 1 client definition: <code>client1:s3cr3t<\/code>. It is configured to return tokens with the following\nfixed claims:<\/p>\n<ul>\n<li><code>principal_id<\/code>: the principal ID of the user. It is always set to zero (0) in this example.<\/li>\n<li><code>principal_name<\/code>: the principal name of the user. It is always set to &ldquo;root&rdquo; in this example.<\/li>\n<li><code>principal_roles<\/code>: the principal roles of the user. It is always set to <code>[&quot;server_admin&quot;, &quot;catalog_admin&quot;]<\/code> in this\nexample.<\/li>\n<\/ul>\n<p>This is obviously not a realistic configuration. In a real-world scenario, you would configure Keycloak to return the\nactual principal ID, name and roles of the user. Note that principals and principal roles must have been created in\nPolaris beforehand, and the principal ID, name and roles must match the ones returned by Keycloak.<\/p>"},{"title":"Getting Started with Apache Polaris, External Authentication and Keycloak","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/using-polaris\/keycloak-idp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/using-polaris\/keycloak-idp\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses Keycloak as an <strong>external<\/strong> identity provider for Polaris. The &ldquo;iceberg&rdquo; realm is automatically\ncreated and configured from the <code>iceberg-realm.json<\/code> file.<\/p>\n<p>This Keycloak realm contains 1 client definition: <code>client1:s3cr3t<\/code>. It is configured to return tokens with the following\nfixed claims:<\/p>\n<ul>\n<li><code>principal_id<\/code>: the principal ID of the user. It is always set to zero (0) in this example.<\/li>\n<li><code>principal_name<\/code>: the principal name of the user. It is always set to &ldquo;root&rdquo; in this example.<\/li>\n<li><code>principal_roles<\/code>: the principal roles of the user. It is always set to <code>[&quot;server_admin&quot;, &quot;catalog_admin&quot;]<\/code> in this\nexample.<\/li>\n<\/ul>\n<p>This is obviously not a realistic configuration. In a real-world scenario, you would configure Keycloak to return the\nactual principal ID, name and roles of the user. Note that principals and principal roles must have been created in\nPolaris beforehand, and the principal ID, name and roles must match the ones returned by Keycloak.<\/p>"},{"title":"Getting Started with Apache Polaris, External Authentication and Keycloak","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/using-polaris\/keycloak-idp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/using-polaris\/keycloak-idp\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This example uses Keycloak as an <strong>external<\/strong> identity provider for Polaris. The &ldquo;iceberg&rdquo; realm is automatically\ncreated and configured from the <code>iceberg-realm.json<\/code> file.<\/p>\n<p>This Keycloak realm contains 1 client definition: <code>client1:s3cr3t<\/code>. It is configured to return tokens with the following\nfixed claims:<\/p>\n<ul>\n<li><code>principal_id<\/code>: the principal ID of the user. It is always set to zero (0) in this example.<\/li>\n<li><code>principal_name<\/code>: the principal name of the user. It is always set to &ldquo;root&rdquo; in this example.<\/li>\n<li><code>principal_roles<\/code>: the principal roles of the user. It is always set to <code>[&quot;server_admin&quot;, &quot;catalog_admin&quot;]<\/code> in this\nexample.<\/li>\n<\/ul>\n<p>This is obviously not a realistic configuration. In a real-world scenario, you would configure Keycloak to return the\nactual principal ID, name and roles of the user. Note that principals and principal roles must have been created in\nPolaris beforehand, and the principal ID, name and roles must match the ones returned by Keycloak.<\/p>"},{"title":"Using Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/using-polaris\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/getting-started\/using-polaris\/","description":"<h2 id=\"setup\" id=\"setup\">Setup<a class=\"heading-anchor\" href=\"#setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Ensure your <code>CLIENT_ID<\/code> &amp; <code>CLIENT_SECRET<\/code> variables are already defined, as they were required for starting the Polaris server earlier.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>YOUR_CLIENT_ID\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>YOUR_CLIENT_SECRET\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"defining-a-catalog\" id=\"defining-a-catalog\">Defining a Catalog<a class=\"heading-anchor\" href=\"#defining-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>In Polaris, the <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.0\/entities\/#catalog\">catalog<\/a> is the top-level entity that objects like <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.0\/entities\/#table\">tables<\/a> and <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.0\/entities\/#view\">views<\/a> are organized under. With a Polaris service running, you can create a catalog like so:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> --storage-type s3 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --role-arn <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> quickstart_catalog\n<\/span><\/span><\/code><\/pre><\/div><p>This will create a new catalog called <strong>quickstart_catalog<\/strong>. If you are using one of the Getting Started locally-built Docker images, we have already created a catalog named <code>quickstart_catalog<\/code> for you.<\/p>"},{"title":"Using Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/using-polaris\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/getting-started\/using-polaris\/","description":"<h2 id=\"setup\" id=\"setup\">Setup<a class=\"heading-anchor\" href=\"#setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Ensure your <code>CLIENT_ID<\/code> &amp; <code>CLIENT_SECRET<\/code> variables are already defined, as they were required for starting the Polaris server earlier.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>YOUR_CLIENT_ID\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>YOUR_CLIENT_SECRET\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"defining-a-catalog\" id=\"defining-a-catalog\">Defining a Catalog<a class=\"heading-anchor\" href=\"#defining-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>In Polaris, the <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.1\/entities\/#catalog\">catalog<\/a> is the top-level entity that objects like <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.1\/entities\/#table\">tables<\/a> and <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.1\/entities\/#view\">views<\/a> are organized under. With a Polaris service running, you can create a catalog like so:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> --storage-type s3 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --role-arn <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> quickstart_catalog\n<\/span><\/span><\/code><\/pre><\/div><p>This will create a new catalog called <strong>quickstart_catalog<\/strong>. If you are using one of the Getting Started locally-built Docker images, we have already created a catalog named <code>quickstart_catalog<\/code> for you.<\/p>"},{"title":"Using Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/using-polaris\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/getting-started\/using-polaris\/","description":"<h2 id=\"setup\" id=\"setup\">Setup<a class=\"heading-anchor\" href=\"#setup\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Ensure your <code>CLIENT_ID<\/code> &amp; <code>CLIENT_SECRET<\/code> variables are already defined, as they were required for starting the Polaris server earlier.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>YOUR_CLIENT_ID\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>YOUR_CLIENT_SECRET\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"defining-a-catalog\" id=\"defining-a-catalog\">Defining a Catalog<a class=\"heading-anchor\" href=\"#defining-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>In Polaris, the <a href=\"https:\/\/polaris.apache.org\/releases\/1.1.0\/entities\/#catalog\">catalog<\/a> is the top-level entity that objects like <a href=\"https:\/\/polaris.apache.org\/releases\/1.1.0\/entities\/#table\">tables<\/a> and <a href=\"https:\/\/polaris.apache.org\/releases\/1.1.0\/entities\/#view\">views<\/a> are organized under. With a Polaris service running, you can create a catalog like so:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span><span style=\"color:#204a87\">cd<\/span> ~\/polaris\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span>.\/polaris <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span> --client-id <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span> --client-secret <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span> catalogs <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span> create <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span> --storage-type s3 <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span> --default-base-location <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">DEFAULT_BASE_LOCATION<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span> --role-arn <span style=\"color:#4e9a06\">${<\/span><span style=\"color:#000\">ROLE_ARN<\/span><span style=\"color:#4e9a06\">}<\/span> <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span> quickstart_catalog\n<\/span><\/span><\/code><\/pre><\/div><p>This will create a new catalog called <strong>quickstart_catalog<\/strong>. If you are using one of the Getting Started locally-built Docker images, we have already created a catalog named <code>quickstart_catalog<\/code> for you.<\/p>"},{"title":"Getting Started with Apache Polaris, Prometheus and Jaeger","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/using-polaris\/telemetry-tools\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/getting-started\/using-polaris\/telemetry-tools\/","description":"<p>This example requires <code>jq<\/code> to be installed on your machine.<\/p>\n<ol>\n<li>\n<p>Build the Polaris image if it&rsquo;s not already present locally:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>docker compose -f getting-started\/telemetry\/docker-compose.yml up\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>To access Polaris from the host machine, first request an access token:<\/p>"},{"title":"Getting Started with Apache Polaris, Prometheus and Jaeger","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/using-polaris\/telemetry-tools\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/getting-started\/using-polaris\/telemetry-tools\/","description":"<p>This example requires <code>jq<\/code> to be installed on your machine.<\/p>\n<ol>\n<li>\n<p>Build the Polaris image if it&rsquo;s not already present locally:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">ASSETS_PATH<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87;font-weight:bold\">$(<\/span><span style=\"color:#204a87\">pwd<\/span><span style=\"color:#204a87;font-weight:bold\">)<\/span>\/getting-started\/assets\/\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_ID<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>root\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span><span style=\"color:#204a87\">export<\/span> <span style=\"color:#000\">CLIENT_SECRET<\/span><span style=\"color:#ce5c00;font-weight:bold\">=<\/span>s3cr3t\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span>docker compose -f getting-started\/telemetry\/docker-compose.yml up\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>To access Polaris from the host machine, first request an access token:<\/p>"},{"title":"Getting Started with Apache Polaris, Prometheus and Jaeger","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/using-polaris\/telemetry-tools\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/getting-started\/using-polaris\/telemetry-tools\/","description":"<p>This example requires <code>jq<\/code> to be installed on your machine.<\/p>\n<ol>\n<li>\n<p>Build the Polaris image if it&rsquo;s not already present locally:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>docker compose -f getting-started\/telemetry\/docker-compose.yml up\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>To access Polaris from the host machine, first request an access token:<\/p>"},{"title":"Getting Started with Apache Polaris, Prometheus and Jaeger","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/using-polaris\/telemetry-tools\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/getting-started\/using-polaris\/telemetry-tools\/","description":"<p>This example requires <code>jq<\/code> to be installed on your machine.<\/p>\n<ol>\n<li>\n<p>Build the Polaris image if it&rsquo;s not already present locally:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>docker compose -f getting-started\/telemetry\/docker-compose.yml up\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>To access Polaris from the host machine, first request an access token:<\/p>"},{"title":"Getting Started with Apache Polaris, Prometheus and Jaeger","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/using-polaris\/telemetry-tools\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/getting-started\/using-polaris\/telemetry-tools\/","description":"<p>This example requires <code>jq<\/code> to be installed on your machine.<\/p>\n<ol>\n<li>\n<p>Build the Polaris image if it&rsquo;s not already present locally:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>docker compose -f getting-started\/telemetry\/docker-compose.yml up\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>To access Polaris from the host machine, first request an access token:<\/p>"},{"title":"Getting Started with Apache Polaris, Prometheus and Jaeger","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/using-polaris\/telemetry-tools\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/getting-started\/using-polaris\/telemetry-tools\/","description":"<p>This example requires <code>jq<\/code> to be installed on your machine.<\/p>\n<ol>\n<li>\n<p>Build the Polaris image if it&rsquo;s not already present locally:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>.\/gradlew <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span> :polaris-server:assemble <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">3<\/span><span> :polaris-server:quarkusAppPartsBuild --rerun <span style=\"color:#4e9a06\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">4<\/span><span> -Dquarkus.container-image.build<span style=\"color:#ce5c00;font-weight:bold\">=<\/span><span style=\"color:#204a87\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>Start the docker compose group by running the following command from the root of the repository:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>docker compose -f getting-started\/telemetry\/docker-compose.yml up\n<\/span><\/span><\/code><\/pre><\/div><\/li>\n<li>\n<p>To access Polaris from the host machine, first request an access token:<\/p>"},{"title":"Policy","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/policy\/","description":"<p>The Polaris Policy framework empowers organizations to centrally define, manage, and enforce fine-grained governance, lifecycle, and operational rules across all data resources in the catalog.<\/p>\n<p>With the policy API, you can:<\/p>\n<ul>\n<li>Create and manage policies<\/li>\n<li>Attach policies to specific resources (catalogs, namespaces, tables, or views)<\/li>\n<li>Check applicable policies for any given resource<\/li>\n<\/ul>\n<h2 id=\"what-is-a-policy\" id=\"what-is-a-policy\">What is a Policy?<a class=\"heading-anchor\" href=\"#what-is-a-policy\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under\npredefined conditions. Each policy contains:<\/p>"},{"title":"Policy","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/policy\/","description":"<p>The Polaris Policy framework empowers organizations to centrally define, manage, and enforce fine-grained governance, lifecycle, and operational rules across all data resources in the catalog.<\/p>\n<p>With the policy API, you can:<\/p>\n<ul>\n<li>Create and manage policies<\/li>\n<li>Attach policies to specific resources (catalogs, namespaces, tables, or views)<\/li>\n<li>Check applicable policies for any given resource<\/li>\n<\/ul>\n<h2 id=\"what-is-a-policy\" id=\"what-is-a-policy\">What is a Policy?<a class=\"heading-anchor\" href=\"#what-is-a-policy\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under\npredefined conditions. Each policy contains:<\/p>"},{"title":"Policy","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/policy\/","description":"<p>The Polaris Policy framework empowers organizations to centrally define, manage, and enforce fine-grained governance, lifecycle, and operational rules across all data resources in the catalog.<\/p>\n<p>With the policy API, you can:<\/p>\n<ul>\n<li>Create and manage policies<\/li>\n<li>Attach policies to specific resources (catalogs, namespaces, tables, or views)<\/li>\n<li>Check applicable policies for any given resource<\/li>\n<\/ul>\n<h2 id=\"what-is-a-policy\" id=\"what-is-a-policy\">What is a Policy?<a class=\"heading-anchor\" href=\"#what-is-a-policy\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under\npredefined conditions. Each policy contains:<\/p>"},{"title":"Policy","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/policy\/","description":"<p>The Polaris Policy framework empowers organizations to centrally define, manage, and enforce fine-grained governance, lifecycle, and operational rules across all data resources in the catalog.<\/p>\n<p>With the policy API, you can:<\/p>\n<ul>\n<li>Create and manage policies<\/li>\n<li>Attach policies to specific resources (catalogs, namespaces, tables, or views)<\/li>\n<li>Check applicable policies for any given resource<\/li>\n<\/ul>\n<h2 id=\"what-is-a-policy\" id=\"what-is-a-policy\">What is a Policy?<a class=\"heading-anchor\" href=\"#what-is-a-policy\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under\npredefined conditions. Each policy contains:<\/p>"},{"title":"Policy","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/policy\/","description":"<p>The Polaris Policy framework empowers organizations to centrally define, manage, and enforce fine-grained governance, lifecycle, and operational rules across all data resources in the catalog.<\/p>\n<p>With the policy API, you can:<\/p>\n<ul>\n<li>Create and manage policies<\/li>\n<li>Attach policies to specific resources (catalogs, namespaces, tables, or views)<\/li>\n<li>Check applicable policies for any given resource<\/li>\n<\/ul>\n<h2 id=\"what-is-a-policy\" id=\"what-is-a-policy\">What is a Policy?<a class=\"heading-anchor\" href=\"#what-is-a-policy\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under\npredefined conditions. Each policy contains:<\/p>"},{"title":"Policy","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/policy\/","description":"<p>The Polaris Policy framework empowers organizations to centrally define, manage, and enforce fine-grained governance, lifecycle, and operational rules across all data resources in the catalog.<\/p>\n<p>With the policy API, you can:<\/p>\n<ul>\n<li>Create and manage policies<\/li>\n<li>Attach policies to specific resources (catalogs, namespaces, tables, or views)<\/li>\n<li>Check applicable policies for any given resource<\/li>\n<\/ul>\n<h2 id=\"what-is-a-policy\" id=\"what-is-a-policy\">What is a Policy?<a class=\"heading-anchor\" href=\"#what-is-a-policy\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under\npredefined conditions. Each policy contains:<\/p>"},{"title":"Policy","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/policy\/","description":"<p>The Polaris Policy framework empowers organizations to centrally define, manage, and enforce fine-grained governance, lifecycle, and operational rules across all data resources in the catalog.<\/p>\n<p>With the policy API, you can:<\/p>\n<ul>\n<li>Create and manage policies<\/li>\n<li>Attach policies to specific resources (catalogs, namespaces, tables, or views)<\/li>\n<li>Check applicable policies for any given resource<\/li>\n<\/ul>\n<h2 id=\"what-is-a-policy\" id=\"what-is-a-policy\">What is a Policy?<a class=\"heading-anchor\" href=\"#what-is-a-policy\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under\npredefined conditions. Each policy contains:<\/p>"},{"title":"Policy","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/policy\/","description":"<p>The Polaris Policy framework empowers organizations to centrally define, manage, and enforce fine-grained governance, lifecycle, and operational rules across all data resources in the catalog.<\/p>\n<p>With the policy API, you can:<\/p>\n<ul>\n<li>Create and manage policies<\/li>\n<li>Attach policies to specific resources (catalogs, namespaces, tables, or views)<\/li>\n<li>Check applicable policies for any given resource<\/li>\n<\/ul>\n<h2 id=\"what-is-a-policy\" id=\"what-is-a-policy\">What is a Policy?<a class=\"heading-anchor\" href=\"#what-is-a-policy\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under\npredefined conditions. Each policy contains:<\/p>"},{"title":"Policy","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/policy\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/policy\/","description":"<p>The Polaris Policy framework empowers organizations to centrally define, manage, and enforce fine-grained governance, lifecycle, and operational rules across all data resources in the catalog.<\/p>\n<p>With the policy API, you can:<\/p>\n<ul>\n<li>Create and manage policies<\/li>\n<li>Attach policies to specific resources (catalogs, namespaces, tables, or views)<\/li>\n<li>Check applicable policies for any given resource<\/li>\n<\/ul>\n<h2 id=\"what-is-a-policy\" id=\"what-is-a-policy\">What is a Policy?<a class=\"heading-anchor\" href=\"#what-is-a-policy\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under\npredefined conditions. Each policy contains:<\/p>"},{"title":"Generic Table","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/generic-table\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/generic-table\/","description":"<p>The generic tables are non-Iceberg tables. Table can be multiple formats including Delta, CSV, etc. With this framework, you can:<\/p>\n<ul>\n<li>Create a generic table under a namespace<\/li>\n<li>Load a generic table<\/li>\n<li>Drop a generic table<\/li>\n<li>List all generic tables under a namespace<\/li>\n<\/ul>\n<div class=\"alert alert-primary\"><p class=\"alert-heading\">\n \u2757Important<\/p>\n Generic tables are in beta. Please use it with caution and report any issue if encountered.\n<\/div>\n\n<h2 id=\"what-is-a-generic-table\" id=\"what-is-a-generic-table\">What is a Generic Table?<a class=\"heading-anchor\" href=\"#what-is-a-generic-table\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A generic table is an entity that defines the following fields:<\/p>"},{"title":"Generic Table","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/generic-table\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/generic-table\/","description":"<p>The Generic Table in Apache Polaris is designed to provide support for non-Iceberg tables across different table formats includes delta, csv etc. It currently provides the following capabilities:<\/p>\n<ul>\n<li>Create a generic table under a namespace<\/li>\n<li>Load a generic table<\/li>\n<li>Drop a generic table<\/li>\n<li>List all generic tables under a namespace<\/li>\n<\/ul>\n<h2 id=\"what-is-a-generic-table\" id=\"what-is-a-generic-table\">What is a Generic Table?<a class=\"heading-anchor\" href=\"#what-is-a-generic-table\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A generic table in Polaris is an entity that defines the following fields:<\/p>"},{"title":"Generic Table","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/generic-table\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/generic-table\/","description":"<p>The generic tables are non-Iceberg tables. Table can be multiple formats including Delta, CSV, etc. With this framework, you can:<\/p>\n<ul>\n<li>Create a generic table under a namespace<\/li>\n<li>Load a generic table<\/li>\n<li>Drop a generic table<\/li>\n<li>List all generic tables under a namespace<\/li>\n<\/ul>\n<div class=\"alert alert-primary\"><p class=\"alert-heading\">\n \u2757Important<\/p>\n Generic tables are in beta. Please use it with caution and report any issue if encountered.\n<\/div>\n\n<h2 id=\"what-is-a-generic-table\" id=\"what-is-a-generic-table\">What is a Generic Table?<a class=\"heading-anchor\" href=\"#what-is-a-generic-table\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A generic table is an entity that defines the following fields:<\/p>"},{"title":"Generic Table","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/generic-table\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/generic-table\/","description":"<p>The generic tables are non-Iceberg tables. Table can be multiple formats including Delta, CSV, etc. With this framework, you can:<\/p>\n<ul>\n<li>Create a generic table under a namespace<\/li>\n<li>Load a generic table<\/li>\n<li>Drop a generic table<\/li>\n<li>List all generic tables under a namespace<\/li>\n<\/ul>\n<div class=\"alert alert-primary\"><p class=\"alert-heading\">\n \u2757Important<\/p>\n Generic tables are in beta. Please use it with caution and report any issue if encountered.\n<\/div>\n\n<h2 id=\"what-is-a-generic-table\" id=\"what-is-a-generic-table\">What is a Generic Table?<a class=\"heading-anchor\" href=\"#what-is-a-generic-table\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A generic table is an entity that defines the following fields:<\/p>"},{"title":"Generic Table","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/generic-table\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/generic-table\/","description":"<p>The generic tables are non-Iceberg tables. Table can be multiple formats including Delta, CSV, etc. With this framework, you can:<\/p>\n<ul>\n<li>Create a generic table under a namespace<\/li>\n<li>Load a generic table<\/li>\n<li>Drop a generic table<\/li>\n<li>List all generic tables under a namespace<\/li>\n<\/ul>\n<div class=\"alert alert-primary\"><p class=\"alert-heading\">\n \u2757Important<\/p>\n Generic tables are in beta. Please use it with caution and report any issue if encountered.\n<\/div>\n\n<h2 id=\"what-is-a-generic-table\" id=\"what-is-a-generic-table\">What is a Generic Table?<a class=\"heading-anchor\" href=\"#what-is-a-generic-table\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A generic table is an entity that defines the following fields:<\/p>"},{"title":"Generic Table (Beta)","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/generic-table\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/generic-table\/","description":"<p>The Generic Table in Apache Polaris is designed to provide support for non-Iceberg tables across different table formats includes delta, csv etc. It currently provides the following capabilities:<\/p>\n<ul>\n<li>Create a generic table under a namespace<\/li>\n<li>Load a generic table<\/li>\n<li>Drop a generic table<\/li>\n<li>List all generic tables under a namespace<\/li>\n<\/ul>\n<p><strong>NOTE<\/strong> The current generic table is in beta release. Please use it with caution and report any issue if encountered.<\/p>"},{"title":"Generic Table (Beta)","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/generic-table\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/generic-table\/","description":"<p>The Generic Table in Apache Polaris is designed to provide support for non-Iceberg tables across different table formats includes delta, csv etc. It currently provides the following capabilities:<\/p>\n<ul>\n<li>Create a generic table under a namespace<\/li>\n<li>Load a generic table<\/li>\n<li>Drop a generic table<\/li>\n<li>List all generic tables under a namespace<\/li>\n<\/ul>\n<p><strong>NOTE<\/strong> The current generic table is in beta release. Please use it with caution and report any issue if encountered.<\/p>"},{"title":"Generic Table (Beta)","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/generic-table\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/generic-table\/","description":"<p>The Generic Table in Apache Polaris is designed to provide support for non-Iceberg tables across different table formats includes delta, csv etc. It currently provides the following capabilities:<\/p>\n<ul>\n<li>Create a generic table under a namespace<\/li>\n<li>Load a generic table<\/li>\n<li>Drop a generic table<\/li>\n<li>List all generic tables under a namespace<\/li>\n<\/ul>\n<p><strong>NOTE<\/strong> The current generic table is in beta release. Please use it with caution and report any issue if encountered.<\/p>"},{"title":"Generic Table (Beta)","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/generic-table\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/generic-table\/","description":"<p>The Generic Table in Apache Polaris is designed to provide support for non-Iceberg tables across different table formats includes delta, csv etc. It currently provides the following capabilities:<\/p>\n<ul>\n<li>Create a generic table under a namespace<\/li>\n<li>Load a generic table<\/li>\n<li>Drop a generic table<\/li>\n<li>List all generic tables under a namespace<\/li>\n<\/ul>\n<p><strong>NOTE<\/strong> The current generic table is in beta release. Please use it with caution and report any issue if encountered.<\/p>"},{"title":"Telemetry","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/telemetry\/","description":"<h2 id=\"metrics\" id=\"metrics\">Metrics<a class=\"heading-anchor\" href=\"#metrics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Metrics are published using <a href=\"https:\/\/quarkus.io\/guides\/telemetry-micrometer\">Micrometer<\/a>; they are available from Polaris&rsquo;s management interface\n(port 8182 by default) under the path <code>\/q\/metrics<\/code>. For example, if the server is running on\nlocalhost, the metrics can be accessed via http:\/\/localhost:8182\/q\/metrics.<\/p>\n<p>Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:\n<a href=\"https:\/\/prometheus.io\">Prometheus<\/a> for more information.<\/p>\n<p>Additional tags can be added to the metrics by setting the <code>polaris.metrics.tags.*<\/code> property. Each\ntag is a key-value pair, where the key is the tag name and the value is the tag value. For example,\nto add a tag <code>environment=prod<\/code> to all metrics, set <code>polaris.metrics.tags.environment=prod<\/code>. Many\ntags can be added, such as below:<\/p>"},{"title":"Telemetry","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/telemetry\/","description":"<h2 id=\"metrics\" id=\"metrics\">Metrics<a class=\"heading-anchor\" href=\"#metrics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Metrics are published using <a href=\"https:\/\/quarkus.io\/guides\/telemetry-micrometer\">Micrometer<\/a>; they are available from Polaris&rsquo;s management interface\n(port 8282 by default) under the path <code>\/q\/metrics<\/code>. For example, if the server is running on\nlocalhost, the metrics can be accessed via http:\/\/localhost:8282\/q\/metrics.<\/p>\n<p>Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:\n<a href=\"https:\/\/prometheus.io\">Prometheus<\/a> for more information.<\/p>\n<p>Additional tags can be added to the metrics by setting the <code>polaris.metrics.tags.*<\/code> property. Each\ntag is a key-value pair, where the key is the tag name and the value is the tag value. For example,\nto add a tag <code>environment=prod<\/code> to all metrics, set <code>polaris.metrics.tags.environment=prod<\/code>. Many\ntags can be added, such as below:<\/p>"},{"title":"Telemetry","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/telemetry\/","description":"<h2 id=\"metrics\" id=\"metrics\">Metrics<a class=\"heading-anchor\" href=\"#metrics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Metrics are published using <a href=\"https:\/\/quarkus.io\/guides\/telemetry-micrometer\">Micrometer<\/a>; they are available from Polaris&rsquo;s management interface\n(port 8282 by default) under the path <code>\/q\/metrics<\/code>. For example, if the server is running on\nlocalhost, the metrics can be accessed via http:\/\/localhost:8282\/q\/metrics.<\/p>\n<p>Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:\n<a href=\"https:\/\/prometheus.io\">Prometheus<\/a> for more information.<\/p>\n<p>Additional tags can be added to the metrics by setting the <code>polaris.metrics.tags.*<\/code> property. Each\ntag is a key-value pair, where the key is the tag name and the value is the tag value. For example,\nto add a tag <code>environment=prod<\/code> to all metrics, set <code>polaris.metrics.tags.environment=prod<\/code>. Many\ntags can be added, such as below:<\/p>"},{"title":"Telemetry","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/telemetry\/","description":"<h2 id=\"metrics\" id=\"metrics\">Metrics<a class=\"heading-anchor\" href=\"#metrics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Metrics are published using <a href=\"https:\/\/quarkus.io\/guides\/telemetry-micrometer\">Micrometer<\/a>; they are available from Polaris&rsquo;s management interface\n(port 8282 by default) under the path <code>\/q\/metrics<\/code>. For example, if the server is running on\nlocalhost, the metrics can be accessed via http:\/\/localhost:8282\/q\/metrics.<\/p>\n<p>Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:\n<a href=\"https:\/\/prometheus.io\">Prometheus<\/a> for more information.<\/p>\n<p>Additional tags can be added to the metrics by setting the <code>polaris.metrics.tags.*<\/code> property. Each\ntag is a key-value pair, where the key is the tag name and the value is the tag value. For example,\nto add a tag <code>environment=prod<\/code> to all metrics, set <code>polaris.metrics.tags.environment=prod<\/code>. Many\ntags can be added, such as below:<\/p>"},{"title":"Telemetry","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/telemetry\/","description":"<h2 id=\"metrics\" id=\"metrics\">Metrics<a class=\"heading-anchor\" href=\"#metrics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Metrics are published using <a href=\"https:\/\/quarkus.io\/guides\/telemetry-micrometer\">Micrometer<\/a>; they are available from Polaris&rsquo;s management interface\n(port 8282 by default) under the path <code>\/q\/metrics<\/code>. For example, if the server is running on\nlocalhost, the metrics can be accessed via http:\/\/localhost:8282\/q\/metrics.<\/p>\n<p>Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:\n<a href=\"https:\/\/prometheus.io\">Prometheus<\/a> for more information.<\/p>\n<p>Additional tags can be added to the metrics by setting the <code>polaris.metrics.tags.*<\/code> property. Each\ntag is a key-value pair, where the key is the tag name and the value is the tag value. For example,\nto add a tag <code>environment=prod<\/code> to all metrics, set <code>polaris.metrics.tags.environment=prod<\/code>. Many\ntags can be added, such as below:<\/p>"},{"title":"Telemetry","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/telemetry\/","description":"<h2 id=\"metrics\" id=\"metrics\">Metrics<a class=\"heading-anchor\" href=\"#metrics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Metrics are published using <a href=\"https:\/\/quarkus.io\/guides\/telemetry-micrometer\">Micrometer<\/a>; they are available from Polaris&rsquo;s management interface\n(port 8282 by default) under the path <code>\/q\/metrics<\/code>. For example, if the server is running on\nlocalhost, the metrics can be accessed via http:\/\/localhost:8282\/q\/metrics.<\/p>\n<p>Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:\n<a href=\"https:\/\/prometheus.io\">Prometheus<\/a> for more information.<\/p>\n<p>Additional tags can be added to the metrics by setting the <code>polaris.metrics.tags.*<\/code> property. Each\ntag is a key-value pair, where the key is the tag name and the value is the tag value. For example,\nto add a tag <code>environment=prod<\/code> to all metrics, set <code>polaris.metrics.tags.environment=prod<\/code>. Many\ntags can be added, such as below:<\/p>"},{"title":"Telemetry","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/","description":"<h2 id=\"metrics\" id=\"metrics\">Metrics<a class=\"heading-anchor\" href=\"#metrics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Metrics are published using <a href=\"https:\/\/quarkus.io\/guides\/telemetry-micrometer\">Micrometer<\/a>; they are available from Polaris&rsquo;s management interface\n(port 8182 by default) under the path <code>\/q\/metrics<\/code>. For example, if the server is running on\nlocalhost, the metrics can be accessed via http:\/\/localhost:8182\/q\/metrics.<\/p>\n<p>Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:\n<a href=\"https:\/\/prometheus.io\">Prometheus<\/a> for more information.<\/p>\n<p>Additional tags can be added to the metrics by setting the <code>polaris.metrics.tags.*<\/code> property. Each\ntag is a key-value pair, where the key is the tag name and the value is the tag value. For example,\nto add a tag <code>environment=prod<\/code> to all metrics, set <code>polaris.metrics.tags.environment=prod<\/code>. Many\ntags can be added, such as below:<\/p>"},{"title":"Telemetry","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/telemetry\/","description":"<h2 id=\"metrics\" id=\"metrics\">Metrics<a class=\"heading-anchor\" href=\"#metrics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Metrics are published using <a href=\"https:\/\/quarkus.io\/guides\/telemetry-micrometer\">Micrometer<\/a>; they are available from Polaris&rsquo;s management interface\n(port 8182 by default) under the path <code>\/q\/metrics<\/code>. For example, if the server is running on\nlocalhost, the metrics can be accessed via http:\/\/localhost:8182\/q\/metrics.<\/p>\n<p>Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:\n<a href=\"https:\/\/prometheus.io\">Prometheus<\/a> for more information.<\/p>\n<p>Additional tags can be added to the metrics by setting the <code>polaris.metrics.tags.*<\/code> property. Each\ntag is a key-value pair, where the key is the tag name and the value is the tag value. For example,\nto add a tag <code>environment=prod<\/code> to all metrics, set <code>polaris.metrics.tags.environment=prod<\/code>. Many\ntags can be added, such as below:<\/p>"},{"title":"Telemetry","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/telemetry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/telemetry\/","description":"<h2 id=\"metrics\" id=\"metrics\">Metrics<a class=\"heading-anchor\" href=\"#metrics\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Metrics are published using <a href=\"https:\/\/quarkus.io\/guides\/telemetry-micrometer\">Micrometer<\/a>; they are available from Polaris&rsquo;s management interface\n(port 8182 by default) under the path <code>\/q\/metrics<\/code>. For example, if the server is running on\nlocalhost, the metrics can be accessed via http:\/\/localhost:8182\/q\/metrics.<\/p>\n<p>Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:\n<a href=\"https:\/\/prometheus.io\">Prometheus<\/a> for more information.<\/p>\n<p>Additional tags can be added to the metrics by setting the <code>polaris.metrics.tags.*<\/code> property. Each\ntag is a key-value pair, where the key is the tag name and the value is the tag value. For example,\nto add a tag <code>environment=prod<\/code> to all metrics, set <code>polaris.metrics.tags.environment=prod<\/code>. Many\ntags can be added, such as below:<\/p>"},{"title":"Access Control","link":"https:\/\/polaris.apache.org\/releases\/0.9.0\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/0.9.0\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris (Incubating).<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to service principals by assigning catalog roles to principal roles.<\/p>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>\n<ul>\n<li><strong>Securable object<\/strong><\/li>\n<li><strong>Principal role<\/strong><\/li>\n<li><strong>Catalog role<\/strong><\/li>\n<li><strong>Privilege<\/strong><\/li>\n<\/ul>\n<h2 id=\"securable-object\" id=\"securable-object\">Securable object<a class=\"heading-anchor\" href=\"#securable-object\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A securable object is an object to which access can be granted. Polaris\nhas the following securable objects:<\/p>"},{"title":"Access Control","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris (Incubating).<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to service principals by assigning catalog roles to principal roles.<\/p>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>\n<ul>\n<li><strong>Securable object<\/strong><\/li>\n<li><strong>Principal role<\/strong><\/li>\n<li><strong>Catalog role<\/strong><\/li>\n<li><strong>Privilege<\/strong><\/li>\n<\/ul>\n<h2 id=\"securable-object\" id=\"securable-object\">Securable object<a class=\"heading-anchor\" href=\"#securable-object\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A securable object is an object to which access can be granted. Polaris\nhas the following securable objects:<\/p>"},{"title":"Access Control","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris (Incubating).<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to service principals by assigning catalog roles to principal roles.<\/p>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>\n<ul>\n<li><strong>Securable object<\/strong><\/li>\n<li><strong>Principal role<\/strong><\/li>\n<li><strong>Catalog role<\/strong><\/li>\n<li><strong>Privilege<\/strong><\/li>\n<\/ul>\n<h2 id=\"securable-object\" id=\"securable-object\">Securable object<a class=\"heading-anchor\" href=\"#securable-object\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A securable object is an object to which access can be granted. Polaris\nhas the following securable objects:<\/p>"},{"title":"Access Control","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/access-control\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/access-control\/","description":"<p>This section provides information about how access control works for Apache Polaris (Incubating).<\/p>\n<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles\nand then grants access to resources to principals by assigning catalog roles to principal roles.<\/p>\n<p>These are the key concepts to understanding access control in Polaris:<\/p>\n<ul>\n<li><strong>Securable object<\/strong><\/li>\n<li><strong>Principal role<\/strong><\/li>\n<li><strong>Catalog role<\/strong><\/li>\n<li><strong>Privilege<\/strong><\/li>\n<\/ul>\n<h2 id=\"securable-object\" id=\"securable-object\">Securable object<a class=\"heading-anchor\" href=\"#securable-object\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A securable object is an object to which access can be granted. Polaris\nhas the following securable objects:<\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/community\/community-guidelines\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/community-guidelines\/","description":"<h1 id=\"community-guidelines\" id=\"community-guidelines\">Community Guidelines<a class=\"heading-anchor\" href=\"#community-guidelines\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>We value and appreciate the diverse contributions and ideas from the community. To maintain a welcoming and inclusive environment, we kindly ask you to adhere to the following guidelines:<\/p>\n<ul>\n<li>Be respectful and considerate of other community members. Treat everyone with respect and professionalism.<\/li>\n<li>Refrain from engaging in offensive, discriminatory, or harassing behavior.<\/li>\n<li>Be patient and understanding towards others, especially newcomers who may be learning.<\/li>\n<li>Stay constructive and provide helpful feedback.<\/li>\n<li>Engage in meaningful and relevant discussions related to the project.<\/li>\n<li>Avoid spamming, excessive self-promotion, or advertising unrelated content.<\/li>\n<li>Use clear and consise language to facilitate effective communication.<\/li>\n<\/ul>\n<p>You can also take a look on the <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/CODE_OF_CONDUCT.md\">Code of Conduct<\/a>, and the ASF <a href=\"https:\/\/www.apache.org\/foundation\/policies\/conduct.html\">Code of Conduct<\/a>.<\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/community\/contributing-guidelines\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/contributing-guidelines\/","description":"<!--\n Licensed to the Apache Software Foundation (ASF) under one\n or more contributor license agreements. See the NOTICE file\n distributed with this work for additional information\n regarding copyright ownership. The ASF licenses this file\n to you under the Apache License, Version 2.0 (the\n \"License\"); you may not use this file except in compliance\n with the License. You may obtain a copy of the License at\n\n http:\/\/www.apache.org\/licenses\/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing,\n software distributed under the License is distributed on an\n \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n KIND, either express or implied. See the License for the\n specific language governing permissions and limitations\n under the License.\n-->\n<h1 id=\"contributing-to-apache-polaris\" id=\"contributing-to-apache-polaris\">Contributing to Apache Polaris<a class=\"heading-anchor\" href=\"#contributing-to-apache-polaris\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>Thank you for considering contributing to Apache Polaris. Any contribution (code, test cases, documentation, use cases, &hellip;) is valuable!<\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/community\/security-advisories\/cve-2026-42809\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/security-advisories\/cve-2026-42809\/","description":"<h1 id=\"cve-2026-42809---stage-create-credential-vending-pre-validation-credential-minting\" id=\"cve-2026-42809---stage-create-credential-vending-pre-validation-credential-minting\">CVE-2026-42809 - Stage-Create Credential Vending (pre-validation credential minting)<a class=\"heading-anchor\" href=\"#cve-2026-42809---stage-create-credential-vending-pre-validation-credential-minting\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<h2 id=\"abstract\" id=\"abstract\">Abstract<a class=\"heading-anchor\" href=\"#abstract\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>An authenticated Apache Polaris user with permission to create a table can use a staged table creation request to obtain temporary storage credentials for any storage location reachable by the catalog&rsquo;s configured role, regardless of whether they have permission to access that location. Polaris issues credentials before validating the requested location, allowing an attacker to target arbitrary storage paths including entire buckets.<\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/community\/security-advisories\/cve-2026-42810\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/security-advisories\/cve-2026-42810\/","description":"<h1 id=\"cve-2026-42810---aws-s3-iam-wildcard-injection\" id=\"cve-2026-42810---aws-s3-iam-wildcard-injection\">CVE-2026-42810 - AWS S3 IAM Wildcard Injection<a class=\"heading-anchor\" href=\"#cve-2026-42810---aws-s3-iam-wildcard-injection\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<h2 id=\"abstract\" id=\"abstract\">Abstract<a class=\"heading-anchor\" href=\"#abstract\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>An authenticated Apache Polaris user with permission to create a table can use wildcard characters (*) in namespace or table names to broaden the scope of vended AWS S3 credentials beyond the intended table path. Because * is treated as a wildcard in S3 IAM policy resource patterns and prefix conditions, temporary credentials issued for a crafted table can match other tables&rsquo; storage paths, allowing cross-table read, write, and delete access. This issue only affects Polaris deployments using AWS S3 for credential vending.<\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/community\/security-advisories\/cve-2026-42811\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/security-advisories\/cve-2026-42811\/","description":"<h1 id=\"cve-2026-42811---gcs-cel-expression-injection\" id=\"cve-2026-42811---gcs-cel-expression-injection\">CVE-2026-42811 - GCS CEL Expression Injection<a class=\"heading-anchor\" href=\"#cve-2026-42811---gcs-cel-expression-injection\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<h2 id=\"abstract\" id=\"abstract\">Abstract<a class=\"heading-anchor\" href=\"#abstract\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>An authenticated Apache Polaris user with permission to create a table can use a crafted table name containing CEL expression syntax to bypass GCS credential path restrictions, gaining Google Cloud Storage credentials scoped to the entire configured bucket rather than a single table&rsquo;s path. This issue only affects Polaris deployments using Google Cloud Storage for credential vending.<\/p>\n<h2 id=\"severity\" id=\"severity\">Severity<a class=\"heading-anchor\" href=\"#severity\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p><strong>Important<\/strong><\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/community\/security-advisories\/cve-2026-42812\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/security-advisories\/cve-2026-42812\/","description":"<h1 id=\"cve-2026-42812---writemetadatapath-location-escape\" id=\"cve-2026-42812---writemetadatapath-location-escape\">CVE-2026-42812 - write.metadata.path Location Escape<a class=\"heading-anchor\" href=\"#cve-2026-42812---writemetadatapath-location-escape\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<h2 id=\"abstract\" id=\"abstract\">Abstract<a class=\"heading-anchor\" href=\"#abstract\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>A user with permissions to alter a table can use write.metadata.path to cause Polaris to write a metadata.json file to any location within the catalog&rsquo;s allowed locations. If ALLOW_UNSTRUCTURED_TABLE_LOCATION is enabled, the user can then gain credentials scoped to this location.<\/p>\n<h2 id=\"severity\" id=\"severity\">Severity<a class=\"heading-anchor\" href=\"#severity\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p><strong>Important<\/strong><\/p>\n<h2 id=\"affected-versions\" id=\"affected-versions\">Affected versions<a class=\"heading-anchor\" href=\"#affected-versions\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Apache Polaris &lt; 1.4.1<\/li>\n<\/ul>\n<h2 id=\"description\" id=\"description\">Description<a class=\"heading-anchor\" href=\"#description\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>In Apache Iceberg, the table&rsquo;s metadata files are control files: they tell readers\nwhich data files belong to the table and which table version to read.<\/p>"},{"title":"Polaris Benchmarks","link":"https:\/\/polaris.apache.org\/tools\/polaris-benchmarks\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/tools\/polaris-benchmarks\/","description":"<p>Polaris Benchmarks is a tool to measure the performance of Polaris.\nIt can be used for comparing the performance of different Polaris instances or for monitoring the performance of a Polaris instance over time.<\/p>\n<p>To use this tool, please see this <a href=\"https:\/\/github.com\/apache\/polaris-tools\/blob\/main\/benchmarks\/README.md\">guide<\/a>.<\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/community\/security-report\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/community\/security-report\/","description":"<h1 id=\"security-report\" id=\"security-report\">Security Report<a class=\"heading-anchor\" href=\"#security-report\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>Adhering to the specifications of The ASF, the Apache Polaris community maintains a highly proactive and open attitude towards addressing security issues.<\/p>\n<p>We strongly recommend that users first report such issues on the <a href=\"mailto:security@apache.org\">security@apache.org<\/a> and <a href=\"mailto:private@polaris.apache.org\">private@polaris.apache.org<\/a>, using the procedure details on <a href=\"https:\/\/www.apache.org\/security\/committers.html\">The ASF Security page<\/a>.<\/p>\n<p>Please note that the <a href=\"mailto:security@apache.org\">security@apache.org<\/a> and <a href=\"mailto:private@polaris.apache.org\">private@polaris.apache.org<\/a> mailing lists are reserved for reporting undisclosed security vulnerabilities and following the vulnerability resolution process.\nRegular issue reports should be directed to GitHub Issue or the <a href=\"mailto:dev@polaris.apache.org\">dev@polaris.apache.org<\/a> mailing list.<\/p>"},{"title":"Services & Networking","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/networking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/networking\/","description":"<p>This guide describes the Kubernetes services created by the Polaris Helm chart and how to configure external access using the Gateway API or Ingress.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udca1 Tip<\/p>\n The <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Kubernetes Gateway API<\/a> is the recommended approach for exposing Polaris externally. It provides a more expressive, extensible, and role-oriented API compared to Ingress, and is the future direction for Kubernetes traffic management.\n<\/div>\n\n<h2 id=\"services\" id=\"services\">Services<a class=\"heading-anchor\" href=\"#services\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Polaris Helm chart creates the following services by default:<\/p>"},{"title":"Services & Networking","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/","description":"<p>This guide describes the Kubernetes services created by the Polaris Helm chart and how to configure external access using the Gateway API or Ingress.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udca1 Tip<\/p>\n The <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Kubernetes Gateway API<\/a> is the recommended approach for exposing Polaris externally. It provides a more expressive, extensible, and role-oriented API compared to Ingress, and is the future direction for Kubernetes traffic management.\n<\/div>\n\n<h2 id=\"services\" id=\"services\">Services<a class=\"heading-anchor\" href=\"#services\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Polaris Helm chart creates the following services by default:<\/p>"},{"title":"Services & Networking","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/networking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/networking\/","description":"<p>This guide describes the Kubernetes services created by the Polaris Helm chart and how to configure external access using the Gateway API or Ingress.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udca1 Tip<\/p>\n The <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Kubernetes Gateway API<\/a> is the recommended approach for exposing Polaris externally. It provides a more expressive, extensible, and role-oriented API compared to Ingress, and is the future direction for Kubernetes traffic management.\n<\/div>\n\n<h2 id=\"services\" id=\"services\">Services<a class=\"heading-anchor\" href=\"#services\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Polaris Helm chart creates the following services by default:<\/p>"},{"title":"Services & Networking","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/networking\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/networking\/","description":"<p>This guide describes the Kubernetes services created by the Polaris Helm chart and how to configure external access using the Gateway API or Ingress.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udca1 Tip<\/p>\n The <a href=\"https:\/\/gateway-api.sigs.k8s.io\/\">Kubernetes Gateway API<\/a> is the recommended approach for exposing Polaris externally. It provides a more expressive, extensible, and role-oriented API compared to Ingress, and is the future direction for Kubernetes traffic management.\n<\/div>\n\n<h2 id=\"services\" id=\"services\">Services<a class=\"heading-anchor\" href=\"#services\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Polaris Helm chart creates the following services by default:<\/p>"},{"title":"Configuring Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/configuration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/configuration\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This page provides information on how to configure Apache Polaris (Incubating). Unless stated\notherwise, this information is valid both for Polaris Docker images (and Kubernetes deployments) as\nwell as for Polaris binary distributions.<\/p>\n<blockquote>\n<p>Note: for Production tips and best practices, refer to <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.0\/configuring-polaris-for-production\/\">Configuring Polaris for Production<\/a>.<\/p>\n<\/blockquote>\n<p>First off, Polaris server runs on Quarkus, and uses its configuration mechanisms. Read Quarkus\n<a href=\"https:\/\/quarkus.io\/guides\/config\">configuration guide<\/a> to get familiar with the basics.<\/p>\n<p>Quarkus aggregates configuration properties from multiple sources, applying them in a specific order\nof precedence. When a property is defined in multiple sources, the value from the source with the\nhigher priority overrides those from lower-priority sources.<\/p>"},{"title":"Configuring Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/configuration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/configuration\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This page provides information on how to configure Apache Polaris (Incubating). Unless stated\notherwise, this information is valid both for Polaris Docker images (and Kubernetes deployments) as\nwell as for Polaris binary distributions.<\/p>\n<blockquote>\n<p>Note: for Production tips and best practices, refer to <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.1\/configuring-polaris-for-production\/\">Configuring Polaris for Production<\/a>.<\/p>\n<\/blockquote>\n<p>First off, Polaris server runs on Quarkus, and uses its configuration mechanisms. Read Quarkus\n<a href=\"https:\/\/quarkus.io\/guides\/config\">configuration guide<\/a> to get familiar with the basics.<\/p>\n<p>Quarkus aggregates configuration properties from multiple sources, applying them in a specific order\nof precedence. When a property is defined in multiple sources, the value from the source with the\nhigher priority overrides those from lower-priority sources.<\/p>"},{"title":"Configuring Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/configuration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/configuration\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This page provides information on how to configure Apache Polaris (Incubating). Unless stated\notherwise, this information is valid both for Polaris Docker images (and Kubernetes deployments) as\nwell as for Polaris binary distributions.<\/p>\n<div class=\"td-alert td-alert--md alert alert-note\" role=\"alert\"><div class=\"td-alert-heading alert-heading\" role=\"heading\">Note<\/div>\n <div class=\"td-alert-body\">\n <p>For Production tips and best practices, refer to <a href=\"https:\/\/polaris.apache.org\/releases\/1.1.0\/configuring-polaris-for-production\/\">Configuring Polaris for Production<\/a>.<\/p>\n <\/div>\n<\/div>\n<p>First off, Polaris server runs on Quarkus, and uses its configuration mechanisms. Read Quarkus\n<a href=\"https:\/\/quarkus.io\/guides\/config\">configuration guide<\/a> to get familiar with the basics.<\/p>"},{"title":"Configuring Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/configuration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/configuration\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This page provides information on how to configure Apache Polaris (Incubating). Unless stated\notherwise, this information is valid both for Polaris Docker images (and Kubernetes deployments) as\nwell as for Polaris binary distributions.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n For Production tips and best practices, refer to <a href=\"https:\/\/polaris.apache.org\/releases\/1.2.0\/configuring-polaris-for-production\/\">Configuring Polaris for Production<\/a>.\n<\/div>\n\n<p>First off, Polaris server runs on Quarkus, and uses its configuration mechanisms. Read Quarkus\n<a href=\"https:\/\/quarkus.io\/guides\/config\">configuration guide<\/a> to get familiar with the basics.<\/p>"},{"title":"Configuring Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/configuration\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/configuration\/","description":"<h2 id=\"overview\" id=\"overview\">Overview<a class=\"heading-anchor\" href=\"#overview\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This page provides information on how to configure Apache Polaris (Incubating). Unless stated\notherwise, this information is valid both for Polaris Docker images (and Kubernetes deployments) as\nwell as for Polaris binary distributions.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n For Production tips and best practices, refer to <a href=\"https:\/\/polaris.apache.org\/releases\/1.3.0\/configuring-polaris-for-production\/\">Configuring Polaris for Production<\/a>.\n<\/div>\n\n<p>First off, Polaris server runs on Quarkus, and uses its configuration mechanisms. Read Quarkus\n<a href=\"https:\/\/quarkus.io\/guides\/config\">configuration guide<\/a> to get familiar with the basics.<\/p>"},{"title":"External Identity Providers","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/external-idp\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/external-idp\/","description":"<p>Apache Polaris supports authentication via external identity providers (IdPs) using OpenID Connect (OIDC) in addition to the internal authentication system. This feature enables flexible identity federation with enterprise IdPs and allows gradual migration or hybrid authentication strategies across realms in Polaris.<\/p>\n<h2 id=\"authentication-types\" id=\"authentication-types\">Authentication Types<a class=\"heading-anchor\" href=\"#authentication-types\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris supports three authentication modes:<\/p>\n<ol>\n<li><code>internal<\/code> (Default)\n<ul>\n<li>Only Polaris internal authentication is used.<\/li>\n<\/ul>\n<\/li>\n<li><code>external<\/code>\n<ul>\n<li>Authenticates using external OIDC providers (via Quarkus OIDC).<\/li>\n<li>Disables the internal token endpoint (returns HTTP 501).<\/li>\n<\/ul>\n<\/li>\n<li><code>mixed<\/code>\n<ul>\n<li>Tries internal authentication first; if this fails, it falls back to OIDC.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Authentication can be configured globally or per realm by setting the following properties:<\/p>"},{"title":"Configuring GCS Cloud Storage","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","description":"<p>This page provides guidance for configuring GCS Cloud Storage provider for use with Polaris. It covers credential vending, IAM roles, ACL requirements, and best practices to ensure secure and reliable integration.<\/p>\n<p>All catalog operations in Polaris for Google Cloud Storage (GCS)\u2014including listing, reading, and writing objects\u2014are performed using credential vending, which issues scoped (vended) tokens for secure access.<\/p>\n<p>Polaris requires both IAM roles and <a href=\"https:\/\/docs.cloud.google.com\/storage\/docs\/hns-overview\">Hierarchical Namespace (HNS)<\/a> ACLs (if HNS is enabled) to be properly configured. Even with the correct IAM role (e.g., <code>roles\/storage.objectAdmin<\/code>), access to paths such as <code>gs:\/\/&lt;bucket&gt;\/idsp_ns\/sample_table4\/<\/code> may fail with 403 errors if HNS ACLs are missing for scoped tokens. The original access token may work, but scoped (vended) tokens require HNS ACLs on the base path or relevant subpath.<\/p>"},{"title":"Configuring GCS Cloud Storage","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","description":"<p>This page provides guidance for configuring GCS Cloud Storage provider for use with Polaris. It covers credential vending, IAM roles, ACL requirements, and best practices to ensure secure and reliable integration.<\/p>\n<p>All catalog operations in Polaris for Google Cloud Storage (GCS)\u2014including listing, reading, and writing objects\u2014are performed using credential vending, which issues scoped (vended) tokens for secure access.<\/p>\n<p>Polaris requires both IAM roles and <a href=\"https:\/\/docs.cloud.google.com\/storage\/docs\/hns-overview\">Hierarchical Namespace (HNS)<\/a> ACLs (if HNS is enabled) to be properly configured. Even with the correct IAM role (e.g., <code>roles\/storage.objectAdmin<\/code>), access to paths such as <code>gs:\/\/&lt;bucket&gt;\/idsp_ns\/sample_table4\/<\/code> may fail with 403 errors if HNS ACLs are missing for scoped tokens. The original access token may work, but scoped (vended) tokens require HNS ACLs on the base path or relevant subpath.<\/p>"},{"title":"Configuring GCS Cloud Storage","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","description":"<p>This page provides guidance for configuring GCS Cloud Storage provider for use with Polaris. It covers credential vending, IAM roles, ACL requirements, and best practices to ensure secure and reliable integration.<\/p>\n<p>All catalog operations in Polaris for Google Cloud Storage (GCS)\u2014including listing, reading, and writing objects\u2014are performed using credential vending, which issues scoped (vended) tokens for secure access.<\/p>\n<p>Polaris requires both IAM roles and <a href=\"https:\/\/docs.cloud.google.com\/storage\/docs\/hns-overview\">Hierarchical Namespace (HNS)<\/a> ACLs (if HNS is enabled) to be properly configured. Even with the correct IAM role (e.g., <code>roles\/storage.objectAdmin<\/code>), access to paths such as <code>gs:\/\/&lt;bucket&gt;\/idsp_ns\/sample_table4\/<\/code> may fail with 403 errors if HNS ACLs are missing for scoped tokens. The original access token may work, but scoped (vended) tokens require HNS ACLs on the base path or relevant subpath.<\/p>"},{"title":"Configuring GCS Cloud Storage","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/configuration\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/configuration\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","description":"<p>This page provides guidance for configuring GCS Cloud Storage provider for use with Polaris. It covers credential vending, IAM roles, ACL requirements, and best practices to ensure secure and reliable integration.<\/p>\n<p>All catalog operations in Polaris for Google Cloud Storage (GCS)\u2014including listing, reading, and writing objects\u2014are performed using credential vending, which issues scoped (vended) tokens for secure access.<\/p>\n<p>Polaris requires both IAM roles and <a href=\"https:\/\/docs.cloud.google.com\/storage\/docs\/hns-overview\">Hierarchical Namespace (HNS)<\/a> ACLs (if HNS is enabled) to be properly configured. Even with the correct IAM role (e.g., <code>roles\/storage.objectAdmin<\/code>), access to paths such as <code>gs:\/\/&lt;bucket&gt;\/idsp_ns\/sample_table4\/<\/code> may fail with 403 errors if HNS ACLs are missing for scoped tokens. The original access token may work, but scoped (vended) tokens require HNS ACLs on the base path or relevant subpath.<\/p>"},{"title":"Configuring GCS Cloud Storage","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/configuration\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/configuration\/configuring-polaris-for-production\/configuring-gcs-cloud-storage-specific\/","description":"<p>This page provides guidance for configuring GCS Cloud Storage provider for use with Polaris. It covers credential vending, IAM roles, ACL requirements, and best practices to ensure secure and reliable integration.<\/p>\n<p>All catalog operations in Polaris for Google Cloud Storage (GCS)\u2014including listing, reading, and writing objects\u2014are performed using credential vending, which issues scoped (vended) tokens for secure access.<\/p>\n<p>Polaris requires both IAM roles and <a href=\"https:\/\/docs.cloud.google.com\/storage\/docs\/hns-overview\">Hierarchical Namespace (HNS)<\/a> ACLs (if HNS is enabled) to be properly configured. Even with the correct IAM role (e.g., <code>roles\/storage.objectAdmin<\/code>), access to paths such as <code>gs:\/\/&lt;bucket&gt;\/idsp_ns\/sample_table4\/<\/code> may fail with 403 errors if HNS ACLs are missing for scoped tokens. The original access token may work, but scoped (vended) tokens require HNS ACLs on the base path or relevant subpath.<\/p>"},{"title":"Configuring Apache Polaris (Incubating) for Production","link":"https:\/\/polaris.apache.org\/releases\/0.9.0\/configuring-polaris-for-production\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/0.9.0\/configuring-polaris-for-production\/","description":"<p>The default <code>polaris-server.yml<\/code> configuration is intended for development and testing. When deploying Polaris in production, there are several best practices to keep in mind.<\/p>\n<h2 id=\"security\" id=\"security\">Security<a class=\"heading-anchor\" href=\"#security\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"configurations\" id=\"configurations\">Configurations<a class=\"heading-anchor\" href=\"#configurations\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Notable configuration used to secure a Polaris deployment are outlined below.<\/p>\n<h4 id=\"oauth2\" id=\"oauth2\">oauth2<a class=\"heading-anchor\" href=\"#oauth2\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<div class=\"td-alert td-alert--md alert alert-warning\" role=\"alert\"><div class=\"td-alert-heading alert-heading\" role=\"heading\"><br><\/div>\n <div class=\"td-alert-body\">\n <p>Ensure that the <code>tokenBroker<\/code> setting reflects the token broker specified in <code>authenticator<\/code> below.<\/p>\n <\/div>\n<\/div>\n<ul>\n<li>Configure <a href=\"https:\/\/oauth.net\/2\/\">OAuth<\/a> with this setting. Remove the <code>TestInlineBearerTokenPolarisAuthenticator<\/code> option and uncomment the <code>DefaultPolarisAuthenticator<\/code> authenticator option beneath it.<\/li>\n<li>Then, configure the token broker. You can configure the token broker to use either <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/b482617bf8cc508b37dbedf3ebc81a9408160a5e\/polaris-service\/src\/main\/java\/io\/polaris\/service\/auth\/JWTRSAKeyPair.java#L24\">asymmetric<\/a> or <a href=\"https:\/\/github.com\/apache\/polaris\/blob\/b482617bf8cc508b37dbedf3ebc81a9408160a5e\/polaris-service\/src\/main\/java\/io\/polaris\/service\/auth\/JWTSymmetricKeyBroker.java#L23\">symmetric<\/a> keys.<\/li>\n<\/ul>\n<h4 id=\"authenticatortokenbroker\" id=\"authenticatortokenbroker\">authenticator.tokenBroker<a class=\"heading-anchor\" href=\"#authenticatortokenbroker\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h4>\n<div class=\"td-alert td-alert--md alert alert-warning\" role=\"alert\"><div class=\"td-alert-heading alert-heading\" role=\"heading\"><br><\/div>\n <div class=\"td-alert-body\">\n <p>Ensure that the <code>tokenBroker<\/code> setting reflects the token broker specified in <code>oauth2<\/code> above.<\/p>"},{"title":"Configuring Polaris for Production","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/configuring-polaris-for-production\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/configuring-polaris-for-production\/","description":"<p>The default server configuration is intended for development and testing. When you deploy Polaris in production,\nreview and apply the following checklist:<\/p>\n<ul>\n<li><input disabled=\"\" type=\"checkbox\"> Configure OAuth2 keys<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Enforce realm header validation (<code>require-header=true<\/code>)<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Use a durable metastore (JDBC + PostgreSQL)<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Bootstrap valid realms in the metastore<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Disable local FILE storage<\/li>\n<\/ul>\n<h3 id=\"configure-oauth2\" id=\"configure-oauth2\">Configure OAuth2<a class=\"heading-anchor\" href=\"#configure-oauth2\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris authentication requires specifying a token broker factory type. Two implementations are\nsupported out of the box:<\/p>"},{"title":"Configuring Polaris for Production","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/configuring-polaris-for-production\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/configuring-polaris-for-production\/","description":"<p>The default server configuration is intended for development and testing. When you deploy Polaris in production,\nreview and apply the following checklist:<\/p>\n<ul>\n<li><input disabled=\"\" type=\"checkbox\"> Configure OAuth2 keys<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Enforce realm header validation (<code>require-header=true<\/code>)<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Use a durable metastore (JDBC + PostgreSQL)<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Bootstrap valid realms in the metastore<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Disable local FILE storage<\/li>\n<\/ul>\n<h3 id=\"configure-oauth2\" id=\"configure-oauth2\">Configure OAuth2<a class=\"heading-anchor\" href=\"#configure-oauth2\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris authentication requires specifying a token broker factory type. Two implementations are\nsupported out of the box:<\/p>"},{"title":"Configuring Polaris for Production","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/configuring-polaris-for-production\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/configuring-polaris-for-production\/","description":"<p>The default server configuration is intended for development and testing. When you deploy Polaris in production,\nreview and apply the following checklist:<\/p>\n<ul>\n<li><input disabled=\"\" type=\"checkbox\"> Configure OAuth2 keys<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Enforce realm header validation (<code>require-header=true<\/code>)<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Use a durable metastore (JDBC + PostgreSQL)<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Bootstrap valid realms in the metastore<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Disable local FILE storage<\/li>\n<\/ul>\n<h3 id=\"configure-oauth2\" id=\"configure-oauth2\">Configure OAuth2<a class=\"heading-anchor\" href=\"#configure-oauth2\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris authentication requires specifying a token broker factory type. Two implementations are\nsupported out of the box:<\/p>"},{"title":"Configuring Polaris for Production","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/configuring-polaris-for-production\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/configuring-polaris-for-production\/","description":"<p>The default server configuration is intended for development and testing. When you deploy Polaris in production,\nreview and apply the following checklist:<\/p>\n<ul>\n<li><input disabled=\"\" type=\"checkbox\"> Configure OAuth2 keys<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Enforce realm header validation (<code>require-header=true<\/code>)<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Use a durable metastore (JDBC + PostgreSQL)<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Bootstrap valid realms in the metastore<\/li>\n<li><input disabled=\"\" type=\"checkbox\"> Disable local FILE storage<\/li>\n<\/ul>\n<h3 id=\"configure-oauth2\" id=\"configure-oauth2\">Configure OAuth2<a class=\"heading-anchor\" href=\"#configure-oauth2\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Polaris authentication requires specifying a token broker factory type. Two implementations are\nsupported out of the box:<\/p>"},{"title":"Configuring S3 Storage","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuring-polaris-for-production\/configuring-aws-s3-cloud-storage-specific\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuring-polaris-for-production\/configuring-aws-s3-cloud-storage-specific\/","description":"<p>This page covers configuring AWS S3, and S3-compatible object stores (MinIO, Apache Ozone S3\ngateway, Ceph RGW, and similar), as the storage backend for a Polaris catalog. On AWS S3, all read\nand write operations are performed using credential vending: Polaris assumes a customer IAM role\nvia STS and returns scoped, short-lived credentials to the client. The IAM role, its trust policy,\nand the bucket itself must be set up before the catalog is created.<\/p>"},{"title":"Configuring Azure Blob Cloud Storage","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuring-polaris-for-production\/configuring-azure-blob-cloud-storage-specific\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuring-polaris-for-production\/configuring-azure-blob-cloud-storage-specific\/","description":"<p>This page covers configuring Azure Blob Storage and Azure Data Lake Storage Gen2 (ADLS Gen2) as\nthe storage backend for a Polaris catalog. Polaris authenticates against Azure with the credentials\nof a service principal that has data-plane access to the target storage account, and then vends\nshort-lived SAS tokens to clients on each table-load request.<\/p>\n<h2 id=\"service-principal-and-polaris-credentials\" id=\"service-principal-and-polaris-credentials\">Service principal and Polaris credentials<a class=\"heading-anchor\" href=\"#service-principal-and-polaris-credentials\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris uses the Azure SDK&rsquo;s <code>DefaultAzureCredential<\/code> chain, which by default reads the\nservice-principal credentials from environment variables. Create a service principal with data\naccess to the storage account and pass its credentials to the Polaris process:<\/p>"},{"title":"Polaris Spark Client","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/polaris-spark-client\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/polaris-spark-client\/","description":"<p>Polaris provides a Spark client to manage non-Iceberg tables through <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/generic-table\/\">Generic Tables<\/a>.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n <p>The Spark client can manage Iceberg tables and non-Iceberg tables.<\/p>\n<p>Users who only use Iceberg tables do not need to use this client and can use the Iceberg-provided Spark client.<\/p>\n\n<\/div>\n\n<p>This page documents how to connect Spark with Polaris Service using the Polaris Spark client.<\/p>\n<h2 id=\"quick-start-with-local-polaris-service\" id=\"quick-start-with-local-polaris-service\">Quick Start with Local Polaris Service<a class=\"heading-anchor\" href=\"#quick-start-with-local-polaris-service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>If you want to quickly try out the functionality with a local Polaris service, simply check out the Polaris repo\nand follow the instructions in the Spark plugin getting-started\n<a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/plugins\/spark\/v3.5\/getting-started\/README.md\">README<\/a>.<\/p>"},{"title":"Polaris Spark Client","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/polaris-spark-client\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/polaris-spark-client\/","description":"<p>Apache Polaris now provides Catalog support for Generic Tables (non-Iceberg tables), please check out\nthe <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.0\/polaris-catalog-service\/\">Catalog API Spec<\/a> for Generic Table API specs.<\/p>\n<p>Along with the Generic Table Catalog support, Polaris is also releasing a Spark client, which helps to\nprovide an end-to-end solution for Apache Spark to manage Delta tables using Polaris.<\/p>\n<p>Note the Polaris Spark client is able to handle both Iceberg and Delta tables, not just Delta.<\/p>\n<p>This page documents how to connect Spark with Polaris Service using the Polaris Spark client.<\/p>"},{"title":"Polaris Spark Client","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/polaris-spark-client\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/polaris-spark-client\/","description":"<p>Apache Polaris now provides Catalog support for Generic Tables (non-Iceberg tables), please check out\nthe <a href=\"https:\/\/polaris.apache.org\/releases\/1.0.1\/polaris-catalog-service\/\">Catalog API Spec<\/a> for Generic Table API specs.<\/p>\n<p>Along with the Generic Table Catalog support, Polaris is also releasing a Spark client, which helps to\nprovide an end-to-end solution for Apache Spark to manage Delta tables using Polaris.<\/p>\n<p>Note the Polaris Spark client is able to handle both Iceberg and Delta tables, not just Delta.<\/p>\n<p>This page documents how to connect Spark with Polaris Service using the Polaris Spark client.<\/p>"},{"title":"Polaris Spark Client","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/polaris-spark-client\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/polaris-spark-client\/","description":"<p>Apache Polaris now provides Catalog support for Generic Tables (non-Iceberg tables), please check out\nthe <a href=\"https:\/\/polaris.apache.org\/releases\/1.1.0\/polaris-catalog-service\/\">Catalog API Spec<\/a> for Generic Table API specs.<\/p>\n<p>Along with the Generic Table Catalog support, Polaris is also releasing a Spark client, which helps to\nprovide an end-to-end solution for Apache Spark to manage Delta tables using Polaris.<\/p>\n<p>Note the Polaris Spark client is able to handle both Iceberg and Delta tables, not just Delta.<\/p>\n<p>This page documents how to connect Spark with Polaris Service using the Polaris Spark client.<\/p>"},{"title":"Polaris Spark Client","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/polaris-spark-client\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/polaris-spark-client\/","description":"<p>Apache Polaris now provides Catalog support for Generic Tables (non-Iceberg tables), please check out\nthe <a href=\"https:\/\/polaris.apache.org\/releases\/1.2.0\/polaris-api-specs\/polaris-catalog-api\/\">Polaris Catalog OpenAPI Spec<\/a> for Generic Table API specs.<\/p>\n<p>Along with the Generic Table Catalog support, Polaris is also releasing a Spark client, which helps to\nprovide an end-to-end solution for Apache Spark to manage Delta tables using Polaris.<\/p>\n<p>Note the Polaris Spark client is able to handle both Iceberg and Delta tables, not just Delta.<\/p>"},{"title":"Polaris Spark Client","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/polaris-spark-client\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/polaris-spark-client\/","description":"<p>Apache Polaris now provides Catalog support for Generic Tables (non-Iceberg tables), please check out\nthe <a href=\"https:\/\/polaris.apache.org\/releases\/1.3.0\/polaris-api-specs\/polaris-catalog-api\/\">Polaris Catalog OpenAPI Spec<\/a> for Generic Table API specs.<\/p>\n<p>Along with the Generic Table Catalog support, Polaris is also releasing a Spark client, which helps to\nprovide an end-to-end solution for Apache Spark to manage Delta tables using Polaris.<\/p>\n<p>Note the Polaris Spark client is able to handle both Iceberg and Delta tables, not just Delta.<\/p>"},{"title":"Polaris Spark Client","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/polaris-spark-client\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/polaris-spark-client\/","description":"<p>Polaris provides a Spark client to manage non-Iceberg tables through <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/generic-table\/\">Generic Tables<\/a>.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n <p>The Spark client can manage Iceberg tables and non-Iceberg tables.<\/p>\n<p>Users who only use Iceberg tables do not need to use this client and can use the Iceberg-provided Spark client.<\/p>\n\n<\/div>\n\n<p>This page documents how to connect Spark with Polaris Service using the Polaris Spark client.<\/p>\n<h2 id=\"quick-start-with-local-polaris-service\" id=\"quick-start-with-local-polaris-service\">Quick Start with Local Polaris Service<a class=\"heading-anchor\" href=\"#quick-start-with-local-polaris-service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>If you want to quickly try out the functionality with a local Polaris service, simply check out the Polaris repo\nand follow the instructions in the Spark plugin getting-started\n<a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/plugins\/spark\/v3.5\/getting-started\/README.md\">README<\/a>.<\/p>"},{"title":"Polaris Spark Client","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/polaris-spark-client\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/polaris-spark-client\/","description":"<p>Polaris provides a Spark client to manage non-Iceberg tables through <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.1\/generic-table\/\">Generic Tables<\/a>.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n <p>The Spark client can manage Iceberg tables and non-Iceberg tables.<\/p>\n<p>Users who only use Iceberg tables do not need to use this client and can use the Iceberg-provided Spark client.<\/p>\n\n<\/div>\n\n<p>This page documents how to connect Spark with Polaris Service using the Polaris Spark client.<\/p>\n<h2 id=\"quick-start-with-local-polaris-service\" id=\"quick-start-with-local-polaris-service\">Quick Start with Local Polaris Service<a class=\"heading-anchor\" href=\"#quick-start-with-local-polaris-service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>If you want to quickly try out the functionality with a local Polaris service, simply check out the Polaris repo\nand follow the instructions in the Spark plugin getting-started\n<a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/plugins\/spark\/v3.5\/getting-started\/README.md\">README<\/a>.<\/p>"},{"title":"Polaris Spark Client","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/polaris-spark-client\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/polaris-spark-client\/","description":"<p>Polaris provides a Spark client to manage non-Iceberg tables through <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/generic-table\/\">Generic Tables<\/a>.<\/p>\n<div class=\"alert alert-info\"><p class=\"alert-heading\">\n \ud83d\udcdd Note<\/p>\n <p>The Spark client can manage Iceberg tables and non-Iceberg tables.<\/p>\n<p>Users who only use Iceberg tables do not need to use this client and can use the Iceberg-provided Spark client.<\/p>\n\n<\/div>\n\n<p>This page documents how to connect Spark with Polaris Service using the Polaris Spark client.<\/p>\n<h2 id=\"quick-start-with-local-polaris-service\" id=\"quick-start-with-local-polaris-service\">Quick Start with Local Polaris Service<a class=\"heading-anchor\" href=\"#quick-start-with-local-polaris-service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>If you want to quickly try out the functionality with a local Polaris service, simply check out the Polaris repo\nand follow the instructions in the Spark plugin getting-started\n<a href=\"https:\/\/github.com\/apache\/polaris\/blob\/main\/plugins\/spark\/v3.5\/getting-started\/README.md\">README<\/a>.<\/p>"},{"title":"Polaris Helm Chart","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/helm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/helm\/","description":"<!---\n This README.md file was generated with:\n https:\/\/github.com\/norwoodj\/helm-docs\n Do not modify the README.md file directly, please modify README.md.gotmpl instead.\n To re-generate the README.md file, install helm-docs then run from the repo root:\n helm-docs --chart-search-root=helm\n-->\n<p><img src=\"https:\/\/img.shields.io\/badge\/Version-1.1.0--incubating-informational?style=flat-square\" alt=\"Version: 1.1.0-incubating\"> <img src=\"https:\/\/img.shields.io\/badge\/Type-application-informational?style=flat-square\" alt=\"Type: application\"> <img src=\"https:\/\/img.shields.io\/badge\/AppVersion-1.1.0--incubating-informational?style=flat-square\" alt=\"AppVersion: 1.1.0-incubating\"><\/p>\n<p>A Helm chart for Apache Polaris (incubating).<\/p>\n<p><strong>Homepage:<\/strong> <a href=\"https:\/\/polaris.apache.org\/\">https:\/\/polaris.apache.org\/<\/a><\/p>\n<h2 id=\"source-code\" id=\"source-code\">Source Code<a class=\"heading-anchor\" href=\"#source-code\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/apache\/polaris\">https:\/\/github.com\/apache\/polaris<\/a><\/li>\n<\/ul>\n<h2 id=\"installation\" id=\"installation\">Installation<a class=\"heading-anchor\" href=\"#installation\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"running-locally-with-a-minikube-cluster\" id=\"running-locally-with-a-minikube-cluster\">Running locally with a Minikube cluster<a class=\"heading-anchor\" href=\"#running-locally-with-a-minikube-cluster\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The below instructions assume Minikube and Helm are installed.<\/p>"},{"title":"Polaris Helm Chart","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/helm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/helm\/","description":"<!---\n This README.md file was generated with:\n https:\/\/github.com\/norwoodj\/helm-docs\n Do not modify the README.md file directly, please modify README.md.gotmpl instead.\n To re-generate the README.md file, install helm-docs then run from the repo root:\n helm-docs --chart-search-root=helm\n-->\n<p><img src=\"https:\/\/img.shields.io\/badge\/Version-1.2.0--incubating--SNAPSHOT-informational?style=flat-square\" alt=\"Version: 1.2.0-incubating-SNAPSHOT\"> <img src=\"https:\/\/img.shields.io\/badge\/Type-application-informational?style=flat-square\" alt=\"Type: application\"> <img src=\"https:\/\/img.shields.io\/badge\/AppVersion-1.2.0--incubating--SNAPSHOT-informational?style=flat-square\" alt=\"AppVersion: 1.2.0-incubating-SNAPSHOT\"><\/p>\n<p>A Helm chart for Apache Polaris (incubating).<\/p>\n<p><strong>Homepage:<\/strong> <a href=\"https:\/\/polaris.apache.org\/\">https:\/\/polaris.apache.org\/<\/a><\/p>\n<h2 id=\"source-code\" id=\"source-code\">Source Code<a class=\"heading-anchor\" href=\"#source-code\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/apache\/polaris\">https:\/\/github.com\/apache\/polaris<\/a><\/li>\n<\/ul>\n<h2 id=\"installation\" id=\"installation\">Installation<a class=\"heading-anchor\" href=\"#installation\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"running-locally-with-a-minikube-cluster\" id=\"running-locally-with-a-minikube-cluster\">Running locally with a Minikube cluster<a class=\"heading-anchor\" href=\"#running-locally-with-a-minikube-cluster\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>The below instructions assume Minikube and Helm are installed.<\/p>"},{"title":"Polaris Helm Chart","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/helm\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/helm\/","description":"<!---\n This README.md file was generated with:\n https:\/\/github.com\/norwoodj\/helm-docs\n Do not modify the README.md file directly, please modify README.md.gotmpl instead.\n To re-generate the README.md file, install helm-docs then run from the repo root:\n helm-docs --chart-search-root=helm\n-->\n<p><img src=\"https:\/\/img.shields.io\/badge\/Version-1.2.0--incubating--SNAPSHOT-informational?style=flat-square\" alt=\"Version: 1.2.0-incubating-SNAPSHOT\"> <img src=\"https:\/\/img.shields.io\/badge\/Type-application-informational?style=flat-square\" alt=\"Type: application\"> <img src=\"https:\/\/img.shields.io\/badge\/AppVersion-1.2.0--incubating--SNAPSHOT-informational?style=flat-square\" alt=\"AppVersion: 1.2.0-incubating-SNAPSHOT\"><\/p>\n<p>A Helm chart for Apache Polaris (incubating).<\/p>\n<p><strong>Homepage:<\/strong> <a href=\"https:\/\/polaris.apache.org\/\">https:\/\/polaris.apache.org\/<\/a><\/p>\n<h2 id=\"source-code\" id=\"source-code\">Source Code<a class=\"heading-anchor\" href=\"#source-code\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/apache\/polaris\">https:\/\/github.com\/apache\/polaris<\/a><\/li>\n<\/ul>\n<h2 id=\"installation\" id=\"installation\">Installation<a class=\"heading-anchor\" href=\"#installation\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The instructions below are for the local Minikube cluster. They assume Minikube and Helm are installed.<\/p>"},{"title":"Metastores","link":"https:\/\/polaris.apache.org\/releases\/0.9.0\/metastores\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/0.9.0\/metastores\/","description":"<p>This page documents important configurations for connecting to production database through <a href=\"https:\/\/eclipse.dev\/eclipselink\/\">EclipseLink<\/a>.<\/p>\n<h2 id=\"polaris-server-configuration\" id=\"polaris-server-configuration\">Polaris Server Configuration<a class=\"heading-anchor\" href=\"#polaris-server-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Configure the <code>metaStoreManager<\/code> section in the Polaris configuration (<code>polaris-server.yml<\/code> by default) as follows:<\/p>\n<pre tabindex=\"0\"><code>metaStoreManager:\n type: eclipse-link\n conf-file: META-INF\/persistence.xml\n persistence-unit: polaris\n<\/code><\/pre><p><code>conf-file<\/code> must point to an <a href=\"https:\/\/eclipse.dev\/eclipselink\/documentation\/2.5\/solutions\/testingjpa002.htm\">EclipseLink configuration file<\/a><\/p>\n<p>By default, <code>conf-file<\/code> points to the embedded resource file <code>META-INF\/persistence.xml<\/code> in the <code>polaris-eclipselink<\/code> module.<\/p>\n<p>In order to specify a configuration file outside the classpath, follow these steps.<\/p>\n<ol>\n<li>Place <code>persistence.xml<\/code> into a jar file: <code>jar cvf \/tmp\/conf.jar persistence.xml<\/code><\/li>\n<li>Use <code>conf-file: \/tmp\/conf.jar!\/persistence.xml<\/code><\/li>\n<\/ol>\n<h2 id=\"eclipselink-configuration---persistencexml\" id=\"eclipselink-configuration---persistencexml\">EclipseLink Configuration - persistence.xml<a class=\"heading-anchor\" href=\"#eclipselink-configuration---persistencexml\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The configuration file <code>persistence.xml<\/code> is used to set up the database connection properties, which can differ depending on the type of database and its configuration.<\/p>"},{"title":"Metastores","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/metastores\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/metastores\/","description":"<p>This page explains how to configure and use Polaris metastores with either the recommended Relational JDBC or the\ndeprecated EclipseLink persistence backends.<\/p>\n<h2 id=\"relational-jdbc\" id=\"relational-jdbc\">Relational JDBC<a class=\"heading-anchor\" href=\"#relational-jdbc\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This implementation leverages Quarkus for datasource management and supports configuration through\nenvironment variables or JVM -D flags at startup. For more information, refer to the <a href=\"https:\/\/quarkus.io\/guides\/config-reference#env-file\">Quarkus configuration reference<\/a>.<\/p>\n<pre tabindex=\"0\"><code>POLARIS_PERSISTENCE_TYPE=relational-jdbc\n\nQUARKUS_DATASOURCE_DB_KIND=postgresql\nQUARKUS_DATASOURCE_USERNAME=&lt;your-username&gt;\nQUARKUS_DATASOURCE_PASSWORD=&lt;your-password&gt;\nQUARKUS_DATASOURCE_JDBC_URL=&lt;jdbc-url-of-postgres&gt;\n<\/code><\/pre><p>The Relational JDBC metastore currently relies on a Quarkus-managed datasource and supports only PostgresSQL and H2 databases. This limitation is similar to that of EclipseLink, primarily due to underlying schema differences. At this time, official documentation is provided exclusively for usage with PostgreSQL.\nPlease refer to the documentation here:\n<a href=\"https:\/\/quarkus.io\/guides\/datasource\">Configure data sources in Quarkus<\/a><\/p>"},{"title":"Metastores","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/metastores\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/metastores\/","description":"<p>This page explains how to configure and use Polaris metastores with either the recommended Relational JDBC or the\ndeprecated EclipseLink persistence backends.<\/p>\n<h2 id=\"relational-jdbc\" id=\"relational-jdbc\">Relational JDBC<a class=\"heading-anchor\" href=\"#relational-jdbc\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This implementation leverages Quarkus for datasource management and supports configuration through\nenvironment variables or JVM -D flags at startup. For more information, refer to the <a href=\"https:\/\/quarkus.io\/guides\/config-reference#env-file\">Quarkus configuration reference<\/a>.<\/p>\n<pre tabindex=\"0\"><code>POLARIS_PERSISTENCE_TYPE=relational-jdbc\n\nQUARKUS_DATASOURCE_DB_KIND=postgresql\nQUARKUS_DATASOURCE_USERNAME=&lt;your-username&gt;\nQUARKUS_DATASOURCE_PASSWORD=&lt;your-password&gt;\nQUARKUS_DATASOURCE_JDBC_URL=&lt;jdbc-url-of-postgres&gt;\n<\/code><\/pre><p>The Relational JDBC metastore currently relies on a Quarkus-managed datasource and supports only PostgresSQL and H2 databases. This limitation is similar to that of EclipseLink, primarily due to underlying schema differences. At this time, official documentation is provided exclusively for usage with PostgreSQL.\nPlease refer to the documentation here:\n<a href=\"https:\/\/quarkus.io\/guides\/datasource\">Configure data sources in Quarkus<\/a><\/p>"},{"title":"Metastores","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/metastores\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/metastores\/","description":"<p>This page explains how to configure and use Polaris metastores with either the recommended Relational JDBC or the\ndeprecated EclipseLink persistence backends.<\/p>\n<h2 id=\"relational-jdbc\" id=\"relational-jdbc\">Relational JDBC<a class=\"heading-anchor\" href=\"#relational-jdbc\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This implementation leverages Quarkus for datasource management and supports configuration through\nenvironment variables or JVM -D flags at startup. For more information, refer to the <a href=\"https:\/\/quarkus.io\/guides\/config-reference#env-file\">Quarkus configuration reference<\/a>.<\/p>\n<pre tabindex=\"0\"><code>POLARIS_PERSISTENCE_TYPE=relational-jdbc\n\nQUARKUS_DATASOURCE_USERNAME=&lt;your-username&gt;\nQUARKUS_DATASOURCE_PASSWORD=&lt;your-password&gt;\nQUARKUS_DATASOURCE_JDBC_URL=&lt;jdbc-url-of-postgres&gt;\n<\/code><\/pre><p>The Relational JDBC metastore currently relies on a Quarkus-managed datasource and supports only PostgresSQL and H2 databases. This limitation is similar to that of EclipseLink, primarily due to underlying schema differences. At this time, official documentation is provided exclusively for usage with PostgreSQL.\nPlease refer to the documentation here:\n<a href=\"https:\/\/quarkus.io\/guides\/datasource\">Configure data sources in Quarkus<\/a><\/p>"},{"title":"Metastores","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/metastores\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/metastores\/","description":"<p>This page explains how to configure and use Polaris metastores with either the recommended Relational JDBC or the\ndeprecated EclipseLink persistence backends.<\/p>\n<h2 id=\"relational-jdbc\" id=\"relational-jdbc\">Relational JDBC<a class=\"heading-anchor\" href=\"#relational-jdbc\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This implementation leverages Quarkus for datasource management and supports configuration through\nenvironment variables or JVM -D flags at startup. For more information, refer to the <a href=\"https:\/\/quarkus.io\/guides\/config-reference#env-file\">Quarkus configuration reference<\/a>.<\/p>\n<p>We have 2 options for configuring the persistence backend:<\/p>\n<h3 id=\"1-relational-jdbc-metastore-with-username-and-password\" id=\"1-relational-jdbc-metastore-with-username-and-password\">1. Relational JDBC metastore with username and password<a class=\"heading-anchor\" href=\"#1-relational-jdbc-metastore-with-username-and-password\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>using environment variables:<\/p>"},{"title":"Metastores","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/metastores\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/metastores\/","description":"<p>This page explains how to configure and use Polaris metastores with the recommended Relational JDBC backend.<\/p>\n<h2 id=\"relational-jdbc\" id=\"relational-jdbc\">Relational JDBC<a class=\"heading-anchor\" href=\"#relational-jdbc\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>This implementation leverages Quarkus for datasource management and supports configuration through\nenvironment variables or JVM -D flags at startup. For more information, refer to the <a href=\"https:\/\/quarkus.io\/guides\/config-reference#env-file\">Quarkus configuration reference<\/a>.<\/p>\n<p>We have 2 options for configuring the persistence backend:<\/p>\n<h3 id=\"1-relational-jdbc-metastore-with-username-and-password\" id=\"1-relational-jdbc-metastore-with-username-and-password\">1. Relational JDBC metastore with username and password<a class=\"heading-anchor\" href=\"#1-relational-jdbc-metastore-with-username-and-password\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>using environment variables:<\/p>\n<pre tabindex=\"0\"><code>POLARIS_PERSISTENCE_TYPE=relational-jdbc\n\nQUARKUS_DATASOURCE_USERNAME=&lt;your-username&gt;\nQUARKUS_DATASOURCE_PASSWORD=&lt;your-password&gt;\nQUARKUS_DATASOURCE_JDBC_URL=&lt;jdbc-url-of-postgres&gt;\n<\/code><\/pre><p>using properties file:<\/p>"},{"title":"Iceberg REST Federation","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/federation\/iceberg-rest-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/federation\/iceberg-rest-federation\/","description":"<p>Polaris can federate an external Iceberg REST catalog (e.g., another Polaris deployment, AWS Glue, or a custom Iceberg\nREST implementation), enabling a Polaris service to access table and view entities managed by remote Iceberg REST Catalogs.<\/p>\n<h2 id=\"runtime-requirements\" id=\"runtime-requirements\">Runtime requirements<a class=\"heading-anchor\" href=\"#runtime-requirements\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><strong>REST endpoint:<\/strong> The remote service must expose the Iceberg REST specification. Configure\nfirewalls so Polaris can reach the base URI you provide in the connection config.<\/li>\n<li><strong>Authentication:<\/strong> Polaris forwards requests using the credentials defined in\n<code>ConnectionConfigInfo.AuthenticationParameters<\/code>. OAuth2 client credentials, bearer tokens, and AWS\nSigV4 are supported; choose the scheme the remote service expects.<\/li>\n<\/ul>\n<h2 id=\"feature-configuration\" id=\"feature-configuration\">Feature configuration<a class=\"heading-anchor\" href=\"#feature-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The catalog federation feature is disabled by default. Enable the necessary feature flag in your application.properties\nfile (or equivalent configuration mechanism such as environment variables or a Kubernetes ConfigMap):<\/p>"},{"title":"Iceberg REST Federation","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/federation\/iceberg-rest-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/federation\/iceberg-rest-federation\/","description":"<p>Polaris can federate an external Iceberg REST catalog (e.g., another Polaris deployment, AWS Glue, or a custom Iceberg\nREST implementation), enabling a Polaris service to access table and view entities managed by remote Iceberg REST Catalogs.<\/p>\n<h2 id=\"runtime-requirements\" id=\"runtime-requirements\">Runtime requirements<a class=\"heading-anchor\" href=\"#runtime-requirements\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><strong>REST endpoint:<\/strong> The remote service must expose the Iceberg REST specification. Configure\nfirewalls so Polaris can reach the base URI you provide in the connection config.<\/li>\n<li><strong>Authentication:<\/strong> Polaris forwards requests using the credentials defined in\n<code>ConnectionConfigInfo.AuthenticationParameters<\/code>. OAuth2 client credentials, bearer tokens, and AWS\nSigV4 are supported; choose the scheme the remote service expects.<\/li>\n<\/ul>\n<h2 id=\"creating-a-federated-rest-catalog\" id=\"creating-a-federated-rest-catalog\">Creating a federated REST catalog<a class=\"heading-anchor\" href=\"#creating-a-federated-rest-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The snippet below registers an external catalog that forwards to a remote Polaris server using OAuth2\nclient credentials. <code>iceberg-remote-catalog-name<\/code> is optional; supply it when the remote server multiplexes\nmultiple logical catalogs under one URI.<\/p>"},{"title":"Iceberg REST Federation","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/federation\/iceberg-rest-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/federation\/iceberg-rest-federation\/","description":"<p>Polaris can federate an external Iceberg REST catalog (e.g., another Polaris deployment, AWS Glue, or a custom Iceberg\nREST implementation), enabling a Polaris service to access table and view entities managed by remote Iceberg REST Catalogs.<\/p>\n<h2 id=\"runtime-requirements\" id=\"runtime-requirements\">Runtime requirements<a class=\"heading-anchor\" href=\"#runtime-requirements\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><strong>REST endpoint:<\/strong> The remote service must expose the Iceberg REST specification. Configure\nfirewalls so Polaris can reach the base URI you provide in the connection config.<\/li>\n<li><strong>Authentication:<\/strong> Polaris forwards requests using the credentials defined in\n<code>ConnectionConfigInfo.AuthenticationParameters<\/code>. OAuth2 client credentials, bearer tokens, and AWS\nSigV4 are supported; choose the scheme the remote service expects.<\/li>\n<\/ul>\n<h2 id=\"creating-a-federated-rest-catalog\" id=\"creating-a-federated-rest-catalog\">Creating a federated REST catalog<a class=\"heading-anchor\" href=\"#creating-a-federated-rest-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The snippet below registers an external catalog that forwards to a remote Polaris server using OAuth2\nclient credentials. <code>iceberg-remote-catalog-name<\/code> is optional; supply it when the remote server multiplexes\nmultiple logical catalogs under one URI.<\/p>"},{"title":"Iceberg REST Federation","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/federation\/iceberg-rest-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/federation\/iceberg-rest-federation\/","description":"<p>Polaris can federate an external Iceberg REST catalog (e.g., another Polaris deployment, AWS Glue, or a custom Iceberg\nREST implementation), enabling a Polaris service to access table and view entities managed by remote Iceberg REST Catalogs.<\/p>\n<h2 id=\"runtime-requirements\" id=\"runtime-requirements\">Runtime requirements<a class=\"heading-anchor\" href=\"#runtime-requirements\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><strong>REST endpoint:<\/strong> The remote service must expose the Iceberg REST specification. Configure\nfirewalls so Polaris can reach the base URI you provide in the connection config.<\/li>\n<li><strong>Authentication:<\/strong> Polaris forwards requests using the credentials defined in\n<code>ConnectionConfigInfo.AuthenticationParameters<\/code>. OAuth2 client credentials, bearer tokens, and AWS\nSigV4 are supported; choose the scheme the remote service expects.<\/li>\n<\/ul>\n<h2 id=\"feature-configuration\" id=\"feature-configuration\">Feature configuration<a class=\"heading-anchor\" href=\"#feature-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The catalog federation feature is disabled by default. Enable the necessary feature flag in your application.properties\nfile (or equivalent configuration mechanism such as environment variables or a Kubernetes ConfigMap):<\/p>"},{"title":"Iceberg REST Federation","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/federation\/iceberg-rest-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/federation\/iceberg-rest-federation\/","description":"<p>Polaris can federate an external Iceberg REST catalog (e.g., another Polaris deployment, AWS Glue, or a custom Iceberg\nREST implementation), enabling a Polaris service to access table and view entities managed by remote Iceberg REST Catalogs.<\/p>\n<h2 id=\"runtime-requirements\" id=\"runtime-requirements\">Runtime requirements<a class=\"heading-anchor\" href=\"#runtime-requirements\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><strong>REST endpoint:<\/strong> The remote service must expose the Iceberg REST specification. Configure\nfirewalls so Polaris can reach the base URI you provide in the connection config.<\/li>\n<li><strong>Authentication:<\/strong> Polaris forwards requests using the credentials defined in\n<code>ConnectionConfigInfo.AuthenticationParameters<\/code>. OAuth2 client credentials, bearer tokens, and AWS\nSigV4 are supported; choose the scheme the remote service expects.<\/li>\n<\/ul>\n<h2 id=\"feature-configuration\" id=\"feature-configuration\">Feature configuration<a class=\"heading-anchor\" href=\"#feature-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The catalog federation feature is disabled by default. Enable the necessary feature flag in your application.properties\nfile (or equivalent configuration mechanism such as environment variables or a Kubernetes ConfigMap):<\/p>"},{"title":"Iceberg REST Federation","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/federation\/iceberg-rest-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/federation\/iceberg-rest-federation\/","description":"<p>Polaris can federate an external Iceberg REST catalog (e.g., another Polaris deployment, AWS Glue, or a custom Iceberg\nREST implementation), enabling a Polaris service to access table and view entities managed by remote Iceberg REST Catalogs.<\/p>\n<h2 id=\"runtime-requirements\" id=\"runtime-requirements\">Runtime requirements<a class=\"heading-anchor\" href=\"#runtime-requirements\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li><strong>REST endpoint:<\/strong> The remote service must expose the Iceberg REST specification. Configure\nfirewalls so Polaris can reach the base URI you provide in the connection config.<\/li>\n<li><strong>Authentication:<\/strong> Polaris forwards requests using the credentials defined in\n<code>ConnectionConfigInfo.AuthenticationParameters<\/code>. OAuth2 client credentials, bearer tokens, and AWS\nSigV4 are supported; choose the scheme the remote service expects.<\/li>\n<\/ul>\n<h2 id=\"feature-configuration\" id=\"feature-configuration\">Feature configuration<a class=\"heading-anchor\" href=\"#feature-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The catalog federation feature is disabled by default. Enable the necessary feature flag in your application.properties\nfile (or equivalent configuration mechanism such as environment variables or a Kubernetes ConfigMap):<\/p>"},{"title":"Hive Metastore Federation","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/federation\/hive-metastore-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/federation\/hive-metastore-federation\/","description":"<p>Polaris can federate catalog operations to an existing Hive Metastore (HMS). This lets an external\nHMS remain the source of truth for table metadata while Polaris brokers access, policies, and\nmulti-engine connectivity.<\/p>\n<h2 id=\"build-time-enablement\" id=\"build-time-enablement\">Build-time enablement<a class=\"heading-anchor\" href=\"#build-time-enablement\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Hive factory is packaged as an optional extension and is not baked into default server builds.\nInclude it when assembling the runtime or container images by setting the <code>NonRESTCatalogs<\/code> Gradle\nproperty to include <code>HIVE<\/code> (and any other non-REST backends you need):<\/p>"},{"title":"Hive Metastore Federation","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/federation\/hive-metastore-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/federation\/hive-metastore-federation\/","description":"<p>Polaris can federate catalog operations to an existing Hive Metastore (HMS). This lets an external\nHMS remain the source of truth for table metadata while Polaris brokers access, policies, and\nmulti-engine connectivity.<\/p>\n<h2 id=\"build-time-enablement\" id=\"build-time-enablement\">Build-time enablement<a class=\"heading-anchor\" href=\"#build-time-enablement\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Hive factory is packaged as an optional extension and is not baked into default server builds.\nInclude it when assembling the runtime or container images by setting the <code>NonRESTCatalogs<\/code> Gradle\nproperty to include <code>HIVE<\/code> (and any other non-REST backends you need):<\/p>"},{"title":"Hive Metastore Federation","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/federation\/hive-metastore-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/federation\/hive-metastore-federation\/","description":"<p>Polaris can federate catalog operations to an existing Hive Metastore (HMS). This lets an external\nHMS remain the source of truth for table metadata while Polaris brokers access, policies, and\nmulti-engine connectivity.<\/p>\n<h2 id=\"build-time-enablement\" id=\"build-time-enablement\">Build-time enablement<a class=\"heading-anchor\" href=\"#build-time-enablement\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Hive factory is packaged as an optional extension and is not baked into default server builds.\nInclude it when assembling the runtime or container images by setting the <code>NonRESTCatalogs<\/code> Gradle\nproperty to include <code>HIVE<\/code> (and any other non-REST backends you need):<\/p>"},{"title":"Hive Metastore Federation","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/federation\/hive-metastore-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/federation\/hive-metastore-federation\/","description":"<p>Polaris can federate catalog operations to an existing Hive Metastore (HMS). This lets an external\nHMS remain the source of truth for table metadata while Polaris brokers access, policies, and\nmulti-engine connectivity.<\/p>\n<h2 id=\"build-time-enablement\" id=\"build-time-enablement\">Build-time enablement<a class=\"heading-anchor\" href=\"#build-time-enablement\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Hive factory is packaged as an optional extension and is not baked into default server builds.\nInclude it when assembling the runtime or container images by setting the <code>NonRESTCatalogs<\/code> Gradle\nproperty to include <code>HIVE<\/code> (and any other non-REST backends you need):<\/p>"},{"title":"Hive Metastore Federation","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/federation\/hive-metastore-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/federation\/hive-metastore-federation\/","description":"<p>Polaris can federate catalog operations to an existing Hive Metastore (HMS). This lets an external\nHMS remain the source of truth for table metadata while Polaris brokers access, policies, and\nmulti-engine connectivity.<\/p>\n<h2 id=\"build-time-enablement\" id=\"build-time-enablement\">Build-time enablement<a class=\"heading-anchor\" href=\"#build-time-enablement\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Hive factory is packaged as an optional extension and is not baked into default server builds.\nInclude it when assembling the runtime or container images by setting the <code>NonRESTCatalogs<\/code> Gradle\nproperty to include <code>HIVE<\/code> (and any other non-REST backends you need):<\/p>"},{"title":"Hive Metastore Federation","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/federation\/hive-metastore-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/federation\/hive-metastore-federation\/","description":"<p>Polaris can federate catalog operations to an existing Hive Metastore (HMS). This lets an external\nHMS remain the source of truth for table metadata while Polaris brokers access, policies, and\nmulti-engine connectivity.<\/p>\n<h2 id=\"build-time-enablement\" id=\"build-time-enablement\">Build-time enablement<a class=\"heading-anchor\" href=\"#build-time-enablement\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The Hive factory is packaged as an optional extension and is not baked into default server builds.\nInclude it when assembling the runtime or container images by setting the <code>NonRESTCatalogs<\/code> Gradle\nproperty to include <code>HIVE<\/code> (and any other non-REST backends you need):<\/p>"},{"title":"BigQuery Metastore Federation","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/federation\/bigquery-metastore-federation\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/federation\/bigquery-metastore-federation\/","description":"<p>Polaris can federate catalog operations to a BigQuery Metastore catalog. This lets BigQuery Metastore\nremain the source of truth for Iceberg table metadata while Polaris brokers access, policies, and\nmulti-engine connectivity.<\/p>\n<h2 id=\"build-time-enablement\" id=\"build-time-enablement\">Build-time enablement<a class=\"heading-anchor\" href=\"#build-time-enablement\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The BigQuery factory is packaged as an optional extension and is not baked into default server\nbuilds. Include it when assembling the runtime or container images by setting the <code>NonRESTCatalogs<\/code>\nGradle property to include <code>BIGQUERY<\/code> (and any other non-REST backends you need):<\/p>"},{"title":"Development & Testing","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/dev\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/dev\/","description":"<p>This guide provides instructions for developers who want to work with the Polaris Helm chart locally, including setting up a local Kubernetes cluster, building from source, and running tests.<\/p>\n<h2 id=\"local-development-with-minikube\" id=\"local-development-with-minikube\">Local Development with Minikube<a class=\"heading-anchor\" href=\"#local-development-with-minikube\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li><a href=\"https:\/\/minikube.sigs.k8s.io\/docs\/start\/\">Minikube<\/a> installed<\/li>\n<li><a href=\"https:\/\/helm.sh\/docs\/intro\/install\/\">Helm<\/a> 3.x or 4.x installed<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/\">kubectl<\/a> installed<\/li>\n<\/ul>\n<h3 id=\"starting-minikube\" id=\"starting-minikube\">Starting Minikube<a class=\"heading-anchor\" href=\"#starting-minikube\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Start a local Minikube cluster:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>minikube start\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"installing-from-the-official-repository\" id=\"installing-from-the-official-repository\">Installing from the Official Repository<a class=\"heading-anchor\" href=\"#installing-from-the-official-repository\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Add the official Polaris Helm repository and install the chart:<\/p>"},{"title":"Development & Testing","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/dev\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/dev\/","description":"<p>This guide provides instructions for developers who want to work with the Polaris Helm chart locally, including setting up a local Kubernetes cluster, building from source, and running tests.<\/p>\n<h2 id=\"local-development-with-minikube\" id=\"local-development-with-minikube\">Local Development with Minikube<a class=\"heading-anchor\" href=\"#local-development-with-minikube\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li><a href=\"https:\/\/minikube.sigs.k8s.io\/docs\/start\/\">Minikube<\/a> installed<\/li>\n<li><a href=\"https:\/\/helm.sh\/docs\/intro\/install\/\">Helm<\/a> 3.x or 4.x installed<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/\">kubectl<\/a> installed<\/li>\n<\/ul>\n<h3 id=\"starting-minikube\" id=\"starting-minikube\">Starting Minikube<a class=\"heading-anchor\" href=\"#starting-minikube\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Start a local Minikube cluster:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>minikube start\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"installing-from-the-official-repository\" id=\"installing-from-the-official-repository\">Installing from the Official Repository<a class=\"heading-anchor\" href=\"#installing-from-the-official-repository\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Add the official Polaris Helm repository and install the chart:<\/p>"},{"title":"Development & Testing","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/dev\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/dev\/","description":"<p>This guide provides instructions for developers who want to work with the Polaris Helm chart locally, including setting up a local Kubernetes cluster, building from source, and running tests.<\/p>\n<h2 id=\"local-development-with-minikube\" id=\"local-development-with-minikube\">Local Development with Minikube<a class=\"heading-anchor\" href=\"#local-development-with-minikube\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li><a href=\"https:\/\/minikube.sigs.k8s.io\/docs\/start\/\">Minikube<\/a> installed<\/li>\n<li><a href=\"https:\/\/helm.sh\/docs\/intro\/install\/\">Helm<\/a> 3.x or 4.x installed<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/\">kubectl<\/a> installed<\/li>\n<\/ul>\n<h3 id=\"starting-minikube\" id=\"starting-minikube\">Starting Minikube<a class=\"heading-anchor\" href=\"#starting-minikube\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Start a local Minikube cluster:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>minikube start\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"installing-from-the-official-repository\" id=\"installing-from-the-official-repository\">Installing from the Official Repository<a class=\"heading-anchor\" href=\"#installing-from-the-official-repository\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Add the official Polaris Helm repository and install the chart:<\/p>"},{"title":"Development & Testing","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/dev\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/dev\/","description":"<p>This guide provides instructions for developers who want to work with the Polaris Helm chart locally, including setting up a local Kubernetes cluster, building from source, and running tests.<\/p>\n<h2 id=\"local-development-with-minikube\" id=\"local-development-with-minikube\">Local Development with Minikube<a class=\"heading-anchor\" href=\"#local-development-with-minikube\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"prerequisites\" id=\"prerequisites\">Prerequisites<a class=\"heading-anchor\" href=\"#prerequisites\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<ul>\n<li><a href=\"https:\/\/minikube.sigs.k8s.io\/docs\/start\/\">Minikube<\/a> installed<\/li>\n<li><a href=\"https:\/\/helm.sh\/docs\/intro\/install\/\">Helm<\/a> 3.x or 4.x installed<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/\">kubectl<\/a> installed<\/li>\n<\/ul>\n<h3 id=\"starting-minikube\" id=\"starting-minikube\">Starting Minikube<a class=\"heading-anchor\" href=\"#starting-minikube\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Start a local Minikube cluster:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>minikube start\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"installing-from-the-official-repository\" id=\"installing-from-the-official-repository\">Installing from the Official Repository<a class=\"heading-anchor\" href=\"#installing-from-the-official-repository\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Add the official Polaris Helm repository and install the chart:<\/p>"},{"title":"Apache Polaris Management Service OpenAPI","link":"https:\/\/polaris.apache.org\/releases\/0.9.0\/polaris-management-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/0.9.0\/polaris-management-service\/","description":"<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-0.9.0-incubating\/spec\/polaris-management-service.yml\" \/>"},{"title":"Apache Polaris Management Service OpenAPI","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/polaris-management-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/polaris-management-service\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.0.0-incubating\/spec\/polaris-management-service.yml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.0.0-incubating\/spec\/polaris-management-service.yml\" \/>"},{"title":"Apache Polaris Management Service OpenAPI","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/polaris-management-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/polaris-management-service\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.0.1-incubating\/spec\/polaris-management-service.yml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.0.1-incubating\/spec\/polaris-management-service.yml\" \/>"},{"title":"Apache Polaris Management Service OpenAPI","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/polaris-management-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/polaris-management-service\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.1.0-incubating\/spec\/polaris-management-service.yml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.1.0-incubating\/spec\/polaris-management-service.yml\" \/>"},{"title":{},"link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/polaris-catalog-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/polaris-catalog-service\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.0.0-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.0.0-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml\" \/>"},{"title":{},"link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/polaris-catalog-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/polaris-catalog-service\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.0.1-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.0.1-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml\" \/>"},{"title":{},"link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/polaris-catalog-service\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/polaris-catalog-service\/","description":"<style>\n #redoc input { height: 64px; }\n #redoc span[type=\"put\"], span[type=\"get\"], span[type=\"delete\"], span[type=\"post\"], span[type=\"options\"], span[type=\"patch\"], span[type=\"basic\"], span[type=\"link\"], span[type=\"head\"] {\n border-radius: 4px;\n }\n #redoc h2 { margin-top: 0px;}\n<\/style>\n\n\n<style>\n #myBtn {\n display: none;\n position: fixed;\n bottom: 20px;\n right: 30px;\n z-index: 99;\n font-size: 18px;\n border: none;\n outline: none;\n background-color: #30638E;\n color: white;\n cursor: pointer;\n padding: 15px;\n border-radius: 4px;\n }\n\n #myBtn:hover {\n background-color: #555;\n }\n<\/style>\n<button onclick=\"topFunction()\" id=\"myBtn\" title=\"Go to top\">Top<\/button>\n<script>\n \n var mybutton = document.getElementById(\"myBtn\");\n\n \n window.onscroll = function() {scrollFunction()};\n\n function scrollFunction() {\n if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {\n mybutton.style.display = \"block\";\n } else {\n mybutton.style.display = \"none\";\n }\n }\n\n \n function topFunction() {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n }\n<\/script>\n\n\n\n<style>\n body {\n margin: 0;\n padding: 0;\n }\n<\/style>\n\n\n<div id=\"redoc-container\">\n<redoc spec-url='https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.1.0-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml' hide-hostname=\"true\" suppress-warnings=\"true\" lazy-rendering native-scrollbars scroll-y-offset=\".js-navbar-scroll\" ZgotmplZ><\/redoc>\n<\/div>\n\n\n<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-1.1.0-incubating\/spec\/generated\/bundled-polaris-catalog-service.yaml\" \/>"},{"title":"Apache Iceberg OpenAPI","link":"https:\/\/polaris.apache.org\/releases\/0.9.0\/rest-catalog-open-api\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/0.9.0\/rest-catalog-open-api\/","description":"<meta http-equiv=\"refresh\" content=\"0; url=http:\/\/editor-next.swagger.io\/?url=https:\/\/raw.githubusercontent.com\/apache\/polaris\/refs\/tags\/apache-polaris-0.9.0-incubating\/spec\/rest-catalog-open-api.yaml\" \/>"},{"title":"Values Reference","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/reference\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/reference\/","description":"<h3 id=\"deployment\" id=\"deployment\">Deployment<a class=\"heading-anchor\" href=\"#deployment\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>replicaCount<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>The number of replicas to deploy (horizontal scaling). Beware that replicas are stateless; don&rsquo;t set this number &gt; 1 when using in-memory meta store manager. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/production\/#scaling\">Scaling<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>deploymentAnnotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Annotations to apply to polaris deployment.<\/td>\n <\/tr>\n <tr>\n <td>revisionHistoryLimit<\/td>\n <td>int<\/td>\n <td><code>nil<\/code><\/td>\n <td>The number of old ReplicaSets to retain to allow rollback (if not set, the default Kubernetes value is set to 10).<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"image\" id=\"image\">Image<a class=\"heading-anchor\" href=\"#image\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>image.repository<\/td>\n <td>string<\/td>\n <td><code>&quot;apache\/polaris&quot;<\/code><\/td>\n <td>The image repository to pull from.<\/td>\n <\/tr>\n <tr>\n <td>image.pullPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;IfNotPresent&quot;<\/code><\/td>\n <td>The image pull policy.<\/td>\n <\/tr>\n <tr>\n <td>image.tag<\/td>\n <td>string<\/td>\n <td><code>&quot;latest&quot;<\/code><\/td>\n <td>The image tag.<\/td>\n <\/tr>\n <tr>\n <td>image.configDir<\/td>\n <td>string<\/td>\n <td><code>&quot;\/deployments\/config&quot;<\/code><\/td>\n <td>The path to the directory where the application.properties file, and other configuration files, if any, should be mounted.<\/td>\n <\/tr>\n <tr>\n <td>imagePullSecrets<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>References to secrets in the same namespace to use for pulling any of the images used by this chart. Each entry is a string referring to an existing secret in the namespace. The secret must contain a <code>.dockerconfigjson<\/code> key with a base64-encoded Docker configuration file. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/pull-image-private-registry\/\">Pulling from Private Registry<\/a> for more information.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"service-account\" id=\"service-account\">Service Account<a class=\"heading-anchor\" href=\"#service-account\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>serviceAccount.create<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether a service account should be created.<\/td>\n <\/tr>\n <tr>\n <td>serviceAccount.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service account.<\/td>\n <\/tr>\n <tr>\n <td>serviceAccount.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the service account to use. If not set and create is true, a name is generated using the fullname template.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"pod-configuration\" id=\"pod-configuration\">Pod Configuration<a class=\"heading-anchor\" href=\"#pod-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>podAnnotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to apply to polaris pods.<\/td>\n <\/tr>\n <tr>\n <td>hostUsers<\/td>\n <td>bool<\/td>\n <td><code>nil<\/code><\/td>\n <td>Specifies whether a pod should use the host&rsquo;s user namespace (Linux-only feature). See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/user-namespaces\/\">User Namespaces<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>podLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Labels to apply to polaris pods.<\/td>\n <\/tr>\n <tr>\n <td>configMapLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Labels to apply to polaris configmap.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether a pod disruption budget should be created.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.minAvailable<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The minimum number of pods that should remain available during disruptions. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 50%). IMPORTANT: Cannot be used simultaneously with maxUnavailable.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.maxUnavailable<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of pods that can be unavailable during disruptions. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 50%). IMPORTANT: Cannot be used simultaneously with minAvailable.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the pod disruption budget.<\/td>\n <\/tr>\n <tr>\n <td>podSecurityContext<\/td>\n <td>object<\/td>\n <td><code>{&quot;fsGroup&quot;:10001,&quot;seccompProfile&quot;:{&quot;type&quot;:&quot;RuntimeDefault&quot;}}<\/code><\/td>\n <td>Security context for the polaris pod. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/security-context\/\">Security Context<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>containerSecurityContext<\/td>\n <td>object<\/td>\n <td><code>{&quot;allowPrivilegeEscalation&quot;:false,&quot;capabilities&quot;:{&quot;drop&quot;:[&quot;ALL&quot;]},&quot;runAsNonRoot&quot;:true,&quot;runAsUser&quot;:10000,&quot;seccompProfile&quot;:{&quot;type&quot;:&quot;RuntimeDefault&quot;}}<\/code><\/td>\n <td>Security context for the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/security-context\/\">Security Context<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>containerLifecycle<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Lifecycle hooks for the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/container-lifecycle-hooks\/\">Container Lifecycle Hooks<\/a>. Use this to configure a preStop hook for graceful shutdown, e.g.: containerLifecycle: preStop: exec: command: [&quot;\/bin\/sh&quot;, &ldquo;-c&rdquo;, &ldquo;sleep 30&rdquo;]<\/td>\n <\/tr>\n <tr>\n <td>terminationGracePeriodSeconds<\/td>\n <td>int<\/td>\n <td><code>nil<\/code><\/td>\n <td>Duration in seconds the pod needs to terminate gracefully. Must be greater than the preStop hook duration. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/pod-lifecycle\/#pod-termination\">Termination of Pods<\/a>. When using a preStop hook, set this to at least the preStop sleep time plus the expected request completion time.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"service\" id=\"service\">Service<a class=\"heading-anchor\" href=\"#service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>service.type<\/td>\n <td>string<\/td>\n <td><code>&quot;ClusterIP&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. The default value is ClusterIP. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-http&quot;<\/code><\/td>\n <td>The name of the port. Required.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8181<\/code><\/td>\n <td>The port the service listens on. By default, the HTTP port is 8181.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>service.sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the service. Valid values are: None, ClientIP. The default value is None. ClientIP enables sticky sessions based on the client&rsquo;s IP address. This is generally beneficial to Polaris deployments, but some testing may be required in order to make sure that the load is distributed evenly among the pods. Also, this setting affects only internal clients, not external ones. If Ingress is enabled, it is recommended to set sessionAffinity to None.<\/td>\n <\/tr>\n <tr>\n <td>service.clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>You can specify your own cluster IP address If you define a Service that has the .spec.clusterIP set to &ldquo;None&rdquo; then Kubernetes does not assign an IP address. Instead, DNS records for the service will return the IP addresses of each pod targeted by the server. This is called a headless service. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/service\/#headless-services\">Headless Services<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>service.internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed. Valid values are Cluster and Local. The default value is Cluster. Set the field to Cluster to route traffic to all ready endpoints. Set the field to Local to only route to ready node-local endpoints. If the traffic policy is Local and there are no node-local endpoints, traffic is dropped by kube-proxy.<\/td>\n <\/tr>\n <tr>\n <td>service.externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed. Valid values are Cluster and Local. The default value is Cluster. Set the field to Cluster to route traffic to all ready endpoints. Set the field to Local to only route to ready node-local endpoints. If the traffic policy is Local and there are no node-local endpoints, traffic is dropped by kube-proxy.<\/td>\n <\/tr>\n <tr>\n <td>service.trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field provides another way to influence traffic routing within a Kubernetes Service. While traffic policies focus on strict semantic guarantees, traffic distribution allows you to express preferences such as routing to topologically closer endpoints. The only valid value is: PreferClose. The default value is implementation-specific.<\/td>\n <\/tr>\n <tr>\n <td>service.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"management-service\" id=\"management-service\">Management Service<a class=\"heading-anchor\" href=\"#management-service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>managementService.type<\/td>\n <td>string<\/td>\n <td><code>&quot;ClusterIP&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. The default value is ClusterIP.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-mgmt&quot;<\/code><\/td>\n <td>The name of the management port. Required.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8182<\/code><\/td>\n <td>The port the management service listens on. By default, the management interface is exposed on HTTP port 8182.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>managementService.clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>By default, the management service is headless, i.e. it does not have a cluster IP. This is generally the right option for exposing health checks and metrics, e.g. for metrics scraping and service monitoring.<\/td>\n <\/tr>\n <tr>\n <td>managementService.sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the service.<\/td>\n <\/tr>\n <tr>\n <td>managementService.internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>managementService.externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>managementService.trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field.<\/td>\n <\/tr>\n <tr>\n <td>managementService.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"extra-services\" id=\"extra-services\">Extra Services<a class=\"heading-anchor\" href=\"#extra-services\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>extraServices[0].nameSuffix<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The suffix to append to the service name. Required. It must be unique. If it does not start with a hyphen, a hyphen will be inserted between the base service name and the suffix.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].type<\/td>\n <td>string<\/td>\n <td><code>&quot;LoadBalancer&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-extra&quot;<\/code><\/td>\n <td>The name of the port. Required.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8183<\/code><\/td>\n <td>The port the extra service listens on.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this extra service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The cluster IP for the extra service.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the extra service. Valid values are: None, ClientIP. The default value is None.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the extra service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"ingress\" id=\"ingress\">Ingress<a class=\"heading-anchor\" href=\"#ingress\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>ingress.className<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Specifies the ingressClassName; leave empty if you don&rsquo;t want to customize it. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>ingress.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether an ingress should be created.<\/td>\n <\/tr>\n <tr>\n <td>ingress.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the ingress.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].host<\/td>\n <td>string<\/td>\n <td><code>&quot;chart-example.local&quot;<\/code><\/td>\n <td>The host name. Required.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].paths[0].path<\/td>\n <td>string<\/td>\n <td><code>&quot;\/&quot;<\/code><\/td>\n <td>The path to match.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].paths[0].pathType<\/td>\n <td>string<\/td>\n <td><code>&quot;Prefix&quot;<\/code><\/td>\n <td>The type of path. Valid values are: Exact, Prefix, and ImplementationSpecific.<\/td>\n <\/tr>\n <tr>\n <td>ingress.tls[0].secretName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the TLS secret to use to terminate TLS traffic on port 443. Required.<\/td>\n <\/tr>\n <tr>\n <td>ingress.tls[0].hosts<\/td>\n <td>list<\/td>\n <td><code>[&quot;chart-example1.local&quot;,&quot;chart-example2.local&quot;]<\/code><\/td>\n <td>A list of hosts in the certificate.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"gateway\" id=\"gateway\">Gateway<a class=\"heading-anchor\" href=\"#gateway\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>gateway.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether a Gateway should be created. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>gateway.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the Gateway.<\/td>\n <\/tr>\n <tr>\n <td>gateway.className<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the GatewayClass to use.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;http&quot;<\/code><\/td>\n <td>The name of the listener. Required.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;HTTP&quot;<\/code><\/td>\n <td>Protocol specifies the network protocol this listener expects to receive.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].port<\/td>\n <td>int<\/td>\n <td><code>80<\/code><\/td>\n <td>The port number to use for the listener.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].hostname<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Hostname specifies the virtual hostname to match for protocol types that define this concept. When unspecified, all hostnames are matched.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].allowedRoutes<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>AllowedRoutes defines the types of routes that MAY be attached to a Listener and the trusted namespaces where those Route resources MAY be present.<\/td>\n <\/tr>\n <tr>\n <td>gateway.addresses<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Optional addresses to request for the Gateway.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"httproute\" id=\"httproute\">HTTPRoute<a class=\"heading-anchor\" href=\"#httproute\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>httproute.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether an HTTPRoute should be created. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>httproute.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the HTTPRoute.<\/td>\n <\/tr>\n <tr>\n <td>httproute.gatewayName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Name of the Gateway resource to attach to. Required.<\/td>\n <\/tr>\n <tr>\n <td>httproute.gatewayNamespace<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>Namespace where the Gateway is deployed. Required.<\/td>\n <\/tr>\n <tr>\n <td>httproute.sectionName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Section name within the gateway to use (optional).<\/td>\n <\/tr>\n <tr>\n <td>httproute.hosts<\/td>\n <td>list<\/td>\n <td><code>[&quot;chart-example.local&quot;]<\/code><\/td>\n <td>A list of hostnames that the HTTPRoute should match.<\/td>\n <\/tr>\n <tr>\n <td>httproute.exposeManagementEndpoints<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Enable to expose the management endpoints on your httproute. This is required if you want to use the management service for health checks and metrics scraping external to the cluster.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"resources-and-autoscaling\" id=\"resources-and-autoscaling\">Resources and Autoscaling<a class=\"heading-anchor\" href=\"#resources-and-autoscaling\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>resources<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Configures the resources requests and limits for polaris pods. This chart does not specify default resources and leaves this as a conscious choice for the user. This also increases chances charts run on environments with little resources, such as Minikube. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/production\/#resource-management\">Resource Management<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether automatic horizontal scaling should be enabled. Do not enable this when using in-memory version store type. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/helm-chart\/production\/#scaling\">Scaling<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.minReplicas<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>The minimum number of replicas to maintain.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.maxReplicas<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>The maximum number of replicas to maintain.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.targetCPUUtilizationPercentage<\/td>\n <td>int<\/td>\n <td><code>80<\/code><\/td>\n <td>Optional; set to zero or empty to disable.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.targetMemoryUtilizationPercentage<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Optional; set to zero or empty to disable.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"scheduling\" id=\"scheduling\">Scheduling<a class=\"heading-anchor\" href=\"#scheduling\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>priorityClassName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Priority class name for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/pod-priority-preemption\/#pod-priority\">Pod Priority<\/a><\/td>\n <\/tr>\n <tr>\n <td>nodeSelector<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Node labels which must match for the polaris pod to be scheduled on that node. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#nodeselector\">Node Selector<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>tolerations<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>A list of tolerations to apply to polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/taint-and-toleration\/\">Taints and Tolerations<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>affinity<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Affinity and anti-affinity for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#affinity-and-anti-affinity\">Affinity and Anti-Affinity<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>topologySpreadConstraints<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Topology spread constraints for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/topology-spread-constraints\/#topologyspreadconstraints-field\">Topology Spread Constraints<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"probes\" id=\"probes\">Probes<a class=\"heading-anchor\" href=\"#probes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>livenessProbe.initialDelaySeconds<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>Number of seconds after the container has started before liveness probes are initiated. Minimum value is 0.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.periodSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>How often (in seconds) to perform the probe. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.successThreshold<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>Minimum consecutive successes for the probe to be considered successful after having failed. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.failureThreshold<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.timeoutSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>Number of seconds after which the probe times out. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.terminationGracePeriodSeconds<\/td>\n <td>int<\/td>\n <td><code>30<\/code><\/td>\n <td>Optional duration in seconds the pod needs to terminate gracefully upon probe failure. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.initialDelaySeconds<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>Number of seconds after the container has started before readiness probes are initiated. Minimum value is 0.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.periodSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>How often (in seconds) to perform the probe. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.successThreshold<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>Minimum consecutive successes for the probe to be considered successful after having failed. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.failureThreshold<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.timeoutSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>Number of seconds after which the probe times out. Minimum value is 1.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"advanced-configuration\" id=\"advanced-configuration\">Advanced Configuration<a class=\"heading-anchor\" href=\"#advanced-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>advancedConfig<\/td>\n <td>object<\/td>\n <td><code>{&quot;quarkus.http.access-log.enabled&quot;:true}<\/code><\/td>\n <td>Advanced configuration. You can pass here any valid Polaris or Quarkus configuration property. Any property that is defined here takes precedence over all the other configuration values generated by this chart. Properties can be passed &ldquo;flattened&rdquo; or as nested YAML objects (see examples below). Refer to Polaris <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuration-reference\">Configuration reference<\/a> for a complete list of Polaris configuration properties, and to the <a href=\"https:\/\/quarkus.io\/guides\/all-config\">Quarkus Configuration Reference<\/a> for a complete list of Quarkus configuration properties.<\/td>\n <\/tr>\n <tr>\n <td>extraEnv<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Advanced configuration via Environment Variables. Extra environment variables to add to the Polaris server container. You can pass here any valid EnvVar object: <a href=\"https:\/\/kubernetes.io\/docs\/reference\/generated\/kubernetes-api\/v1.27\/#envvar-v1-core\">EnvVar API<\/a> This can be useful to get configuration values from Kubernetes secrets or config maps.<\/td>\n <\/tr>\n <tr>\n <td>envFrom<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Bulk import environment variables from Secrets or ConfigMaps. Defines sources to populate environment variables using Kubernetes <code>envFrom<\/code>. Each referenced Secret or ConfigMap will expose all its key-value pairs as environment variables inside the Polaris container. <a href=\"https:\/\/kubernetes.io\/docs\/reference\/generated\/kubernetes-api\/v1.27\/#envfromsource-v1-core\">EnvFrom API<\/a><\/td>\n <\/tr>\n <tr>\n <td>extraVolumes<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Extra volumes to add to the polaris pod. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">Volumes<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>extraVolumeMounts<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Extra volume mounts to add to the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">Volumes<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>extraInitContainers<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Add additional init containers to the polaris pod(s) See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/init-containers\/\">Init Containers<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"observability\" id=\"observability\">Observability<a class=\"heading-anchor\" href=\"#observability\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>tracing.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether tracing for the polaris server should be enabled. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/telemetry\/#traces\">Traces<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>tracing.endpoint<\/td>\n <td>string<\/td>\n <td><code>&quot;http:\/\/otlp-collector:4317&quot;<\/code><\/td>\n <td>The collector endpoint URL to connect to (required). The endpoint URL must have either the http:\/\/ or the https:\/\/ scheme. The collector must talk the OpenTelemetry protocol (OTLP) and the port must be its gRPC port (by default 4317). See <a href=\"https:\/\/quarkus.io\/guides\/opentelemetry\">Quarkus OpenTelemetry<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>tracing.sample<\/td>\n <td>string<\/td>\n <td><code>&quot;1.0d&quot;<\/code><\/td>\n <td>Which requests should be sampled. Valid values are: &ldquo;all&rdquo;, &ldquo;none&rdquo;, or a ratio between 0.0 and &ldquo;1.0d&rdquo; (inclusive). E.g. &ldquo;0.5d&rdquo; means that 50% of the requests will be sampled. Note: avoid entering numbers here, always prefer a string representation of the ratio.<\/td>\n <\/tr>\n <tr>\n <td>tracing.attributes<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Resource attributes to identify the polaris service among other tracing sources. See <a href=\"https:\/\/opentelemetry.io\/docs\/reference\/specification\/resource\/semantic_conventions\/#service\">OpenTelemetry Semantic Conventions<\/a>. If left empty, traces will be attached to a service named &ldquo;Apache Polaris&rdquo;; to change this, provide a service.name attribute here.<\/td>\n <\/tr>\n <tr>\n <td>metrics.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether metrics for the polaris server should be enabled. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/telemetry\/#metrics\">Metrics<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>metrics.tags<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional tags (dimensional labels) to add to the metrics.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether a ServiceMonitor for Prometheus operator should be created.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.interval<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The scrape interval; leave empty to let Prometheus decide. Must be a valid duration, e.g. 1d, 1h30m, 5m, 10s.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.labels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Labels for the created ServiceMonitor so that Prometheus operator can properly pick it up.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.metricRelabelings<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Relabeling rules to apply to metrics. Refer to <a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/configuration\/configuration\/#relabel_config\">relabel_config<\/a> for details.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"logging\" id=\"logging\">Logging<a class=\"heading-anchor\" href=\"#logging\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>logging.level<\/td>\n <td>string<\/td>\n <td><code>&quot;INFO&quot;<\/code><\/td>\n <td>The log level of the root category, which is used as the default log level for all categories.<\/td>\n <\/tr>\n <tr>\n <td>logging.requestIdHeaderName<\/td>\n <td>string<\/td>\n <td><code>&quot;X-Request-ID&quot;<\/code><\/td>\n <td>The header name to use for the request ID.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Whether to enable the console appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.threshold<\/td>\n <td>string<\/td>\n <td><code>&quot;ALL&quot;<\/code><\/td>\n <td>The log level of the console appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.json<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to log in JSON format.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.format<\/td>\n <td>string<\/td>\n <td><code>&quot;%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n&quot;<\/code><\/td>\n <td>The log format to use. Ignored if JSON format is enabled. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/telemetry\/#logging\">Logging<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to enable the file appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.threshold<\/td>\n <td>string<\/td>\n <td><code>&quot;ALL&quot;<\/code><\/td>\n <td>The log level of the file appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.json<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to log in JSON format.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.format<\/td>\n <td>string<\/td>\n <td><code>&quot;%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n&quot;<\/code><\/td>\n <td>The log format to use. Ignored if JSON format is enabled. See <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/telemetry\/#logging\">Logging<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.logsDir<\/td>\n <td>string<\/td>\n <td><code>&quot;\/deployments\/logs&quot;<\/code><\/td>\n <td>The local directory where log files are stored. The persistent volume claim will be mounted here.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.fileName<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris.log&quot;<\/code><\/td>\n <td>The log file name.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.maxFileSize<\/td>\n <td>string<\/td>\n <td><code>&quot;100Mi&quot;<\/code><\/td>\n <td>The maximum size of the log file before it is rotated. Should be expressed as a Kubernetes quantity.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.maxBackupIndex<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>The maximum number of backup files to keep.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.fileSuffix<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>An optional suffix to append to the rotated log files. If present, the rotated log files will be grouped in time buckets, and each bucket will contain at most maxBackupIndex files. The suffix must be in a date-time format that is understood by DateTimeFormatter. If the suffix ends with .gz or .zip, the rotated files will also be compressed using the corresponding algorithm.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.className<\/td>\n <td>string<\/td>\n <td><code>&quot;standard&quot;<\/code><\/td>\n <td>The storage class name of the persistent volume claim to create.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.size<\/td>\n <td>string<\/td>\n <td><code>&quot;512Gi&quot;<\/code><\/td>\n <td>The size of the persistent volume claim to create.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.selectorLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Labels to add to the persistent volume claim spec selector; a persistent volume with matching labels must exist. Leave empty if using dynamic provisioning.<\/td>\n <\/tr>\n <tr>\n <td>logging.categories<\/td>\n <td>object<\/td>\n <td><code>{&quot;org.apache&quot;:{&quot;iceberg.rest&quot;:&quot;INFO&quot;,&quot;polaris&quot;:&quot;INFO&quot;}}<\/code><\/td>\n <td>Configuration for specific log categories. Keys are category names (e.g., <code>org.apache.polaris<\/code>), values are log levels. Log levels can be passed &ldquo;flattened&rdquo; or as nested YAML objects (see examples below).<\/td>\n <\/tr>\n <tr>\n <td>logging.mdc<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Configuration for MDC (Mapped Diagnostic Context). Values specified here will be added to the log context of all incoming requests and can be used in log patterns. MDC values can be passed &ldquo;flattened&rdquo; or as nested YAML objects.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"realm-context\" id=\"realm-context\">Realm Context<a class=\"heading-anchor\" href=\"#realm-context\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>realmContext.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of realm context resolver to use. Two built-in types are supported: default and test; test is not recommended for production as it does not perform any realm validation.<\/td>\n <\/tr>\n <tr>\n <td>realmContext.realms<\/td>\n <td>list<\/td>\n <td><code>[&quot;POLARIS&quot;]<\/code><\/td>\n <td>List of valid realms, for use with the default realm context resolver. The first realm in the list is the default realm. Realms not in this list will be rejected.<\/td>\n <\/tr>\n <tr>\n <td>realmContext.requireHeader<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to require the realm header in requests. When set to true, requests without the realm header will be rejected. When set to false, the default realm will be used instead. It is recommended to set this to true in production environments.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"features\" id=\"features\">Features<a class=\"heading-anchor\" href=\"#features\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>features<\/td>\n <td>object<\/td>\n <td><code>{&quot;SUPPORTED_CATALOG_STORAGE_TYPES&quot;:[&quot;S3&quot;,&quot;GCS&quot;,&quot;AZURE&quot;],&quot;realmOverrides&quot;:{}}<\/code><\/td>\n <td>Features to enable or disable globally. If a feature is not present in the map, the default built-in value is used. Refer to Polaris <a href=\"https:\/\/polaris.apache.org\/in-dev\/unreleased\/configuration\/configuration-reference\">Configuration reference<\/a> for a complete list of available features.<\/td>\n <\/tr>\n <tr>\n <td>features.realmOverrides<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Features to enable or disable per realm. This field is a map of maps. The realm name is the key, and the value is a map of feature names to values. If a feature is not present in the map, the global value is used.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"persistence\" id=\"persistence\">Persistence<a class=\"heading-anchor\" href=\"#persistence\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>persistence.type<\/td>\n <td>string<\/td>\n <td><code>&quot;in-memory&quot;<\/code><\/td>\n <td>The type of persistence to use. Three built-in types are supported: in-memory, relational-jdbc, and nosql (beta).<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The secret name to pull database connection properties from<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.username<\/td>\n <td>string<\/td>\n <td><code>&quot;username&quot;<\/code><\/td>\n <td>The secret key holding the database username for authentication<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.password<\/td>\n <td>string<\/td>\n <td><code>&quot;password&quot;<\/code><\/td>\n <td>The secret key holding the database password for authentication<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.jdbcUrl<\/td>\n <td>string<\/td>\n <td><code>&quot;jdbcUrl&quot;<\/code><\/td>\n <td>The secret key holding the database JDBC connection URL<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.backend<\/td>\n <td>string<\/td>\n <td><code>&quot;MongoDb&quot;<\/code><\/td>\n <td>The NoSQL backend to use. Two built-in types are supported: MongoDb and InMemory. Only MongoDb is supported for production use.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.database<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris&quot;<\/code><\/td>\n <td>The MongoDB database name to use.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The secret name to pull the MongoDB connection string from.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.secret.connectionString<\/td>\n <td>string<\/td>\n <td><code>&quot;connectionString&quot;<\/code><\/td>\n <td>The secret key holding the MongoDB connection string.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"file-io\" id=\"file-io\">File IO<a class=\"heading-anchor\" href=\"#file-io\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>fileIo.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of file IO to use. Two built-in types are supported: default and wasb. The wasb one translates WASB paths to ABFS ones.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"storage\" id=\"storage\">Storage<a class=\"heading-anchor\" href=\"#storage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>storage.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull storage credentials from.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.awsAccessKeyId<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the AWS access key ID from. Only required when using AWS.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.awsSecretAccessKey<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the AWS secret access key from. Only required when using AWS.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.gcpToken<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the GCP token from. Only required when using GCP.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.gcpTokenLifespan<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the GCP token expiration time from. Only required when using GCP. Must be a valid ISO 8601 duration. The default is PT1H (1 hour).<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"authentication\" id=\"authentication\">Authentication<a class=\"heading-anchor\" href=\"#authentication\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>authentication.type<\/td>\n <td>string<\/td>\n <td><code>&quot;internal&quot;<\/code><\/td>\n <td>The type of authentication to use. Three built-in types are supported: internal, external, and mixed.<\/td>\n <\/tr>\n <tr>\n <td>authentication.authenticator.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of authenticator to use.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenService.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The token service implementation to use. Two built-in types are supported: default and disabled. Only relevant when using internal (or mixed) authentication. When using external authentication, the token service is always disabled.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.type<\/td>\n <td>string<\/td>\n <td><code>&quot;rsa-key-pair&quot;<\/code><\/td>\n <td>The token broker implementation to use. Two built-in types are supported: rsa-key-pair and symmetric-key. Only relevant when using internal (or mixed) authentication. When using external authentication, the token broker is not used.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.maxTokenGeneration<\/td>\n <td>string<\/td>\n <td><code>&quot;PT1H&quot;<\/code><\/td>\n <td>Maximum token generation duration (e.g., PT1H for 1 hour).<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull the keys from. If not provided, a key pair will be generated. This is not recommended for production.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.rsaKeyPair.publicKey<\/td>\n <td>string<\/td>\n <td><code>&quot;public.pem&quot;<\/code><\/td>\n <td>Key name inside the secret for the RSA public key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.rsaKeyPair.privateKey<\/td>\n <td>string<\/td>\n <td><code>&quot;private.pem&quot;<\/code><\/td>\n <td>Key name inside the secret for the RSA private key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.symmetricKey.secretKey<\/td>\n <td>string<\/td>\n <td><code>&quot;symmetric.key&quot;<\/code><\/td>\n <td>Key name inside the secret for the symmetric key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.realmOverrides<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Authentication configuration overrides per realm.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"oidc\" id=\"oidc\">OIDC<a class=\"heading-anchor\" href=\"#oidc\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>oidc.authServeUrl<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The authentication server URL. Must be provided if at least one realm is configured for external authentication.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.id<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris&quot;<\/code><\/td>\n <td>The client ID to use when contacting the authentication server&rsquo;s introspection endpoint in order to validate tokens.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull the client secret from. If not provided, the client is assumed to not require a client secret when contacting the introspection endpoint.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.secret.key<\/td>\n <td>string<\/td>\n <td><code>&quot;clientSecret&quot;<\/code><\/td>\n <td>The key name inside the secret to pull the client secret from.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The <code>PrincipalMapper<\/code> implementation to use. Only one built-in type is supported: default.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.idClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The path to the claim that contains the principal ID. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_id&rdquo; would look for the &ldquo;principal_id&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. Optional. Either this option or <code>nameClaimPath<\/code> (or both) must be provided.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.nameClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The claim that contains the principal name. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_name&rdquo; would look for the &ldquo;principal_name&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. Optional. Either this option or <code>idClaimPath<\/code> (or both) must be provided.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The <code>PrincipalRolesMapper<\/code> implementation to use. Only one built-in type is supported: default.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.rolesClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The path to the claim that contains the principal roles. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_roles&rdquo; would look for the &ldquo;principal_roles&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. If not set, Quarkus looks for roles in standard locations. See <a href=\"https:\/\/quarkus.io\/guides\/security-oidc-bearer-token-authentication#token-claims-and-security-identity-roles\">Quarkus OIDC Token Claims<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.filter<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>A regular expression that matches the role names in the identity. Only roles that match this regex will be included in the Polaris-specific roles.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.mappings<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>A list of regex mappings that will be applied to each role name in the identity. This can be used to transform the role names in the identity into role names as expected by Polaris. The default Authenticator expects the security identity to expose role names in the format <code>POLARIS_ROLE:&lt;role name&gt;<\/code>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"cors\" id=\"cors\">CORS<a class=\"heading-anchor\" href=\"#cors\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>cors.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether the CORS filter should be enabled. See <a href=\"https:\/\/quarkus.io\/guides\/http-reference#cors-filter\">CORS<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedOrigins<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Origins allowed for CORS, e.g. <a href=\"http:\/\/polaris.apache.org\">http:\/\/polaris.apache.org<\/a>, http:\/\/localhost:8181. In case an entry of the list is surrounded by forward slashes, it is interpreted as a regular expression.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedMethods<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP methods allowed for CORS, ex: GET, PUT, POST. If this is not set or empty, all requested methods are considered allowed.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedHeaders<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP headers allowed for CORS, ex: X-Custom, Content-Disposition. If this is not set or empty, all requested headers are considered allowed.<\/td>\n <\/tr>\n <tr>\n <td>cors.exposedHeaders<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP headers exposed to the client, ex: X-Custom, Content-Disposition. The default is an empty list.<\/td>\n <\/tr>\n <tr>\n <td>cors.accessControlMaxAge<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The <code>Access-Control-Max-Age<\/code> response header value indicating how long the results of a pre-flight request can be cached. Must be a valid duration.<\/td>\n <\/tr>\n <tr>\n <td>cors.accessControlAllowCredentials<\/td>\n <td>bool<\/td>\n <td><code>nil<\/code><\/td>\n <td>The <code>Access-Control-Allow-Credentials<\/code> response header. The value of this header will default to <code>true<\/code> if <code>allowedOrigins<\/code> property is set and there is a match with the precise <code>Origin<\/code> header.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"rate-limiter\" id=\"rate-limiter\">Rate Limiter<a class=\"heading-anchor\" href=\"#rate-limiter\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>rateLimiter.type<\/td>\n <td>string<\/td>\n <td><code>&quot;no-op&quot;<\/code><\/td>\n <td>The type of rate limiter filter to use. Two built-in types are supported: default and no-op.<\/td>\n <\/tr>\n <tr>\n <td>rateLimiter.tokenBucket.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of the token bucket rate limiter. Only the default type is supported out of the box.<\/td>\n <\/tr>\n <tr>\n <td>rateLimiter.tokenBucket.requestsPerSecond<\/td>\n <td>int<\/td>\n <td><code>9999<\/code><\/td>\n <td>The maximum number of requests (permits) per second allowed for each realm.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"tasks\" id=\"tasks\">Tasks<a class=\"heading-anchor\" href=\"#tasks\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>tasks.maxConcurrentTasks<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of concurrent tasks that can be executed at the same time. If unspecified or zero, defaults to the number of available cores.<\/td>\n <\/tr>\n <tr>\n <td>tasks.maxQueuedTasks<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of tasks that can be queued up for execution. If unspecified or zero, defaults to Integer.MAX_VALUE.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>"},{"title":"Values Reference","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/reference\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/reference\/","description":"<h3 id=\"deployment\" id=\"deployment\">Deployment<a class=\"heading-anchor\" href=\"#deployment\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>replicaCount<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>The number of replicas to deploy (horizontal scaling). Beware that replicas are stateless; don&rsquo;t set this number &gt; 1 when using in-memory meta store manager. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/production\/#scaling\">Scaling<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>deploymentAnnotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Annotations to apply to polaris deployment.<\/td>\n <\/tr>\n <tr>\n <td>revisionHistoryLimit<\/td>\n <td>int<\/td>\n <td><code>nil<\/code><\/td>\n <td>The number of old ReplicaSets to retain to allow rollback (if not set, the default Kubernetes value is set to 10).<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"image\" id=\"image\">Image<a class=\"heading-anchor\" href=\"#image\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>image.repository<\/td>\n <td>string<\/td>\n <td><code>&quot;apache\/polaris&quot;<\/code><\/td>\n <td>The image repository to pull from.<\/td>\n <\/tr>\n <tr>\n <td>image.pullPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;IfNotPresent&quot;<\/code><\/td>\n <td>The image pull policy.<\/td>\n <\/tr>\n <tr>\n <td>image.tag<\/td>\n <td>string<\/td>\n <td><code>&quot;1.4.0&quot;<\/code><\/td>\n <td>The image tag.<\/td>\n <\/tr>\n <tr>\n <td>image.configDir<\/td>\n <td>string<\/td>\n <td><code>&quot;\/deployments\/config&quot;<\/code><\/td>\n <td>The path to the directory where the application.properties file, and other configuration files, if any, should be mounted.<\/td>\n <\/tr>\n <tr>\n <td>imagePullSecrets<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>References to secrets in the same namespace to use for pulling any of the images used by this chart. Each entry is a string referring to an existing secret in the namespace. The secret must contain a <code>.dockerconfigjson<\/code> key with a base64-encoded Docker configuration file. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/pull-image-private-registry\/\">Pulling from Private Registry<\/a> for more information.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"service-account\" id=\"service-account\">Service Account<a class=\"heading-anchor\" href=\"#service-account\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>serviceAccount.create<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether a service account should be created.<\/td>\n <\/tr>\n <tr>\n <td>serviceAccount.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service account.<\/td>\n <\/tr>\n <tr>\n <td>serviceAccount.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the service account to use. If not set and create is true, a name is generated using the fullname template.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"pod-configuration\" id=\"pod-configuration\">Pod Configuration<a class=\"heading-anchor\" href=\"#pod-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>podAnnotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to apply to polaris pods.<\/td>\n <\/tr>\n <tr>\n <td>podLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Labels to apply to polaris pods.<\/td>\n <\/tr>\n <tr>\n <td>configMapLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Labels to apply to polaris configmap.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether a pod disruption budget should be created.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.minAvailable<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The minimum number of pods that should remain available during disruptions. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 50%). IMPORTANT: Cannot be used simultaneously with maxUnavailable.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.maxUnavailable<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of pods that can be unavailable during disruptions. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 50%). IMPORTANT: Cannot be used simultaneously with minAvailable.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the pod disruption budget.<\/td>\n <\/tr>\n <tr>\n <td>podSecurityContext<\/td>\n <td>object<\/td>\n <td><code>{&quot;fsGroup&quot;:10001,&quot;seccompProfile&quot;:{&quot;type&quot;:&quot;RuntimeDefault&quot;}}<\/code><\/td>\n <td>Security context for the polaris pod. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/security-context\/\">Security Context<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>containerSecurityContext<\/td>\n <td>object<\/td>\n <td><code>{&quot;allowPrivilegeEscalation&quot;:false,&quot;capabilities&quot;:{&quot;drop&quot;:[&quot;ALL&quot;]},&quot;runAsNonRoot&quot;:true,&quot;runAsUser&quot;:10000,&quot;seccompProfile&quot;:{&quot;type&quot;:&quot;RuntimeDefault&quot;}}<\/code><\/td>\n <td>Security context for the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/security-context\/\">Security Context<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"service\" id=\"service\">Service<a class=\"heading-anchor\" href=\"#service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>service.type<\/td>\n <td>string<\/td>\n <td><code>&quot;ClusterIP&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. The default value is ClusterIP. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-http&quot;<\/code><\/td>\n <td>The name of the port. Required.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8181<\/code><\/td>\n <td>The port the service listens on. By default, the HTTP port is 8181.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>service.sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the service. Valid values are: None, ClientIP. The default value is None. ClientIP enables sticky sessions based on the client&rsquo;s IP address. This is generally beneficial to Polaris deployments, but some testing may be required in order to make sure that the load is distributed evenly among the pods. Also, this setting affects only internal clients, not external ones. If Ingress is enabled, it is recommended to set sessionAffinity to None.<\/td>\n <\/tr>\n <tr>\n <td>service.clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>You can specify your own cluster IP address If you define a Service that has the .spec.clusterIP set to &ldquo;None&rdquo; then Kubernetes does not assign an IP address. Instead, DNS records for the service will return the IP addresses of each pod targeted by the server. This is called a headless service. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/service\/#headless-services\">Headless Services<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>service.internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed. Valid values are Cluster and Local. The default value is Cluster. Set the field to Cluster to route traffic to all ready endpoints. Set the field to Local to only route to ready node-local endpoints. If the traffic policy is Local and there are no node-local endpoints, traffic is dropped by kube-proxy.<\/td>\n <\/tr>\n <tr>\n <td>service.externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed. Valid values are Cluster and Local. The default value is Cluster. Set the field to Cluster to route traffic to all ready endpoints. Set the field to Local to only route to ready node-local endpoints. If the traffic policy is Local and there are no node-local endpoints, traffic is dropped by kube-proxy.<\/td>\n <\/tr>\n <tr>\n <td>service.trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field provides another way to influence traffic routing within a Kubernetes Service. While traffic policies focus on strict semantic guarantees, traffic distribution allows you to express preferences such as routing to topologically closer endpoints. The only valid value is: PreferClose. The default value is implementation-specific.<\/td>\n <\/tr>\n <tr>\n <td>service.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"management-service\" id=\"management-service\">Management Service<a class=\"heading-anchor\" href=\"#management-service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>managementService.type<\/td>\n <td>string<\/td>\n <td><code>&quot;ClusterIP&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. The default value is ClusterIP.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-mgmt&quot;<\/code><\/td>\n <td>The name of the management port. Required.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8182<\/code><\/td>\n <td>The port the management service listens on. By default, the management interface is exposed on HTTP port 8182.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>managementService.clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>By default, the management service is headless, i.e. it does not have a cluster IP. This is generally the right option for exposing health checks and metrics, e.g. for metrics scraping and service monitoring.<\/td>\n <\/tr>\n <tr>\n <td>managementService.sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the service.<\/td>\n <\/tr>\n <tr>\n <td>managementService.internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>managementService.externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>managementService.trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field.<\/td>\n <\/tr>\n <tr>\n <td>managementService.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"extra-services\" id=\"extra-services\">Extra Services<a class=\"heading-anchor\" href=\"#extra-services\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>extraServices[0].nameSuffix<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The suffix to append to the service name. Required. It must be unique. If it does not start with a hyphen, a hyphen will be inserted between the base service name and the suffix.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].type<\/td>\n <td>string<\/td>\n <td><code>&quot;LoadBalancer&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-extra&quot;<\/code><\/td>\n <td>The name of the port. Required.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8183<\/code><\/td>\n <td>The port the extra service listens on.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this extra service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The cluster IP for the extra service.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the extra service. Valid values are: None, ClientIP. The default value is None.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the extra service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"ingress\" id=\"ingress\">Ingress<a class=\"heading-anchor\" href=\"#ingress\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>ingress.className<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Specifies the ingressClassName; leave empty if you don&rsquo;t want to customize it. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>ingress.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether an ingress should be created.<\/td>\n <\/tr>\n <tr>\n <td>ingress.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the ingress.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].host<\/td>\n <td>string<\/td>\n <td><code>&quot;chart-example.local&quot;<\/code><\/td>\n <td>The host name. Required.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].paths[0].path<\/td>\n <td>string<\/td>\n <td><code>&quot;\/&quot;<\/code><\/td>\n <td>The path to match.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].paths[0].pathType<\/td>\n <td>string<\/td>\n <td><code>&quot;Prefix&quot;<\/code><\/td>\n <td>The type of path. Valid values are: Exact, Prefix, and ImplementationSpecific.<\/td>\n <\/tr>\n <tr>\n <td>ingress.tls[0].secretName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the TLS secret to use to terminate TLS traffic on port 443. Required.<\/td>\n <\/tr>\n <tr>\n <td>ingress.tls[0].hosts<\/td>\n <td>list<\/td>\n <td><code>[&quot;chart-example1.local&quot;,&quot;chart-example2.local&quot;]<\/code><\/td>\n <td>A list of hosts in the certificate.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"gateway\" id=\"gateway\">Gateway<a class=\"heading-anchor\" href=\"#gateway\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>gateway.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether a Gateway should be created. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>gateway.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the Gateway.<\/td>\n <\/tr>\n <tr>\n <td>gateway.className<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the GatewayClass to use.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;http&quot;<\/code><\/td>\n <td>The name of the listener. Required.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;HTTP&quot;<\/code><\/td>\n <td>Protocol specifies the network protocol this listener expects to receive.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].port<\/td>\n <td>int<\/td>\n <td><code>80<\/code><\/td>\n <td>The port number to use for the listener.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].hostname<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Hostname specifies the virtual hostname to match for protocol types that define this concept. When unspecified, all hostnames are matched.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].allowedRoutes<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>AllowedRoutes defines the types of routes that MAY be attached to a Listener and the trusted namespaces where those Route resources MAY be present.<\/td>\n <\/tr>\n <tr>\n <td>gateway.addresses<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Optional addresses to request for the Gateway.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"httproute\" id=\"httproute\">HTTPRoute<a class=\"heading-anchor\" href=\"#httproute\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>httproute.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether an HTTPRoute should be created. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>httproute.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the HTTPRoute.<\/td>\n <\/tr>\n <tr>\n <td>httproute.gatewayName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Name of the Gateway resource to attach to. Required.<\/td>\n <\/tr>\n <tr>\n <td>httproute.gatewayNamespace<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>Namespace where the Gateway is deployed. Required.<\/td>\n <\/tr>\n <tr>\n <td>httproute.sectionName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Section name within the gateway to use (optional).<\/td>\n <\/tr>\n <tr>\n <td>httproute.hosts<\/td>\n <td>list<\/td>\n <td><code>[&quot;chart-example.local&quot;]<\/code><\/td>\n <td>A list of hostnames that the HTTPRoute should match.<\/td>\n <\/tr>\n <tr>\n <td>httproute.exposeManagementEndpoints<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Enable to expose the management endpoints on your httproute. This is required if you want to use the management service for health checks and metrics scraping external to the cluster.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"resources-and-autoscaling\" id=\"resources-and-autoscaling\">Resources and Autoscaling<a class=\"heading-anchor\" href=\"#resources-and-autoscaling\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>resources<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Configures the resources requests and limits for polaris pods. This chart does not specify default resources and leaves this as a conscious choice for the user. This also increases chances charts run on environments with little resources, such as Minikube. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/production\/#resource-management\">Resource Management<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether automatic horizontal scaling should be enabled. Do not enable this when using in-memory version store type. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/production\/#scaling\">Scaling<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.minReplicas<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>The minimum number of replicas to maintain.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.maxReplicas<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>The maximum number of replicas to maintain.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.targetCPUUtilizationPercentage<\/td>\n <td>int<\/td>\n <td><code>80<\/code><\/td>\n <td>Optional; set to zero or empty to disable.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.targetMemoryUtilizationPercentage<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Optional; set to zero or empty to disable.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"scheduling\" id=\"scheduling\">Scheduling<a class=\"heading-anchor\" href=\"#scheduling\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>priorityClassName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Priority class name for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/pod-priority-preemption\/#pod-priority\">Pod Priority<\/a><\/td>\n <\/tr>\n <tr>\n <td>nodeSelector<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Node labels which must match for the polaris pod to be scheduled on that node. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#nodeselector\">Node Selector<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>tolerations<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>A list of tolerations to apply to polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/taint-and-toleration\/\">Taints and Tolerations<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>affinity<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Affinity and anti-affinity for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#affinity-and-anti-affinity\">Affinity and Anti-Affinity<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>topologySpreadConstraints<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Topology spread constraints for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/topology-spread-constraints\/#topologyspreadconstraints-field\">Topology Spread Constraints<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"probes\" id=\"probes\">Probes<a class=\"heading-anchor\" href=\"#probes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>livenessProbe.initialDelaySeconds<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>Number of seconds after the container has started before liveness probes are initiated. Minimum value is 0.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.periodSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>How often (in seconds) to perform the probe. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.successThreshold<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>Minimum consecutive successes for the probe to be considered successful after having failed. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.failureThreshold<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.timeoutSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>Number of seconds after which the probe times out. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.terminationGracePeriodSeconds<\/td>\n <td>int<\/td>\n <td><code>30<\/code><\/td>\n <td>Optional duration in seconds the pod needs to terminate gracefully upon probe failure. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.initialDelaySeconds<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>Number of seconds after the container has started before readiness probes are initiated. Minimum value is 0.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.periodSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>How often (in seconds) to perform the probe. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.successThreshold<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>Minimum consecutive successes for the probe to be considered successful after having failed. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.failureThreshold<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.timeoutSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>Number of seconds after which the probe times out. Minimum value is 1.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"advanced-configuration\" id=\"advanced-configuration\">Advanced Configuration<a class=\"heading-anchor\" href=\"#advanced-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>advancedConfig<\/td>\n <td>object<\/td>\n <td><code>{&quot;quarkus.http.access-log.enabled&quot;:true}<\/code><\/td>\n <td>Advanced configuration. You can pass here any valid Polaris or Quarkus configuration property. Any property that is defined here takes precedence over all the other configuration values generated by this chart. Properties can be passed &ldquo;flattened&rdquo; or as nested YAML objects (see examples below). Refer to Polaris <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuration-reference\">Configuration reference<\/a> for a complete list of Polaris configuration properties, and to the <a href=\"https:\/\/quarkus.io\/guides\/all-config\">Quarkus Configuration Reference<\/a> for a complete list of Quarkus configuration properties.<\/td>\n <\/tr>\n <tr>\n <td>extraEnv<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Advanced configuration via Environment Variables. Extra environment variables to add to the Polaris server container. You can pass here any valid EnvVar object: <a href=\"https:\/\/kubernetes.io\/docs\/reference\/generated\/kubernetes-api\/v1.27\/#envvar-v1-core\">EnvVar API<\/a> This can be useful to get configuration values from Kubernetes secrets or config maps.<\/td>\n <\/tr>\n <tr>\n <td>extraVolumes<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Extra volumes to add to the polaris pod. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">Volumes<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>extraVolumeMounts<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Extra volume mounts to add to the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">Volumes<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>extraInitContainers<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Add additional init containers to the polaris pod(s) See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/init-containers\/\">Init Containers<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"observability\" id=\"observability\">Observability<a class=\"heading-anchor\" href=\"#observability\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>tracing.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether tracing for the polaris server should be enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/#traces\">Traces<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>tracing.endpoint<\/td>\n <td>string<\/td>\n <td><code>&quot;http:\/\/otlp-collector:4317&quot;<\/code><\/td>\n <td>The collector endpoint URL to connect to (required). The endpoint URL must have either the http:\/\/ or the https:\/\/ scheme. The collector must talk the OpenTelemetry protocol (OTLP) and the port must be its gRPC port (by default 4317). See <a href=\"https:\/\/quarkus.io\/guides\/opentelemetry\">Quarkus OpenTelemetry<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>tracing.sample<\/td>\n <td>string<\/td>\n <td><code>&quot;1.0d&quot;<\/code><\/td>\n <td>Which requests should be sampled. Valid values are: &ldquo;all&rdquo;, &ldquo;none&rdquo;, or a ratio between 0.0 and &ldquo;1.0d&rdquo; (inclusive). E.g. &ldquo;0.5d&rdquo; means that 50% of the requests will be sampled. Note: avoid entering numbers here, always prefer a string representation of the ratio.<\/td>\n <\/tr>\n <tr>\n <td>tracing.attributes<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Resource attributes to identify the polaris service among other tracing sources. See <a href=\"https:\/\/opentelemetry.io\/docs\/reference\/specification\/resource\/semantic_conventions\/#service\">OpenTelemetry Semantic Conventions<\/a>. If left empty, traces will be attached to a service named &ldquo;Apache Polaris&rdquo;; to change this, provide a service.name attribute here.<\/td>\n <\/tr>\n <tr>\n <td>metrics.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether metrics for the polaris server should be enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/#metrics\">Metrics<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>metrics.tags<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional tags (dimensional labels) to add to the metrics.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether a ServiceMonitor for Prometheus operator should be created.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.interval<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The scrape interval; leave empty to let Prometheus decide. Must be a valid duration, e.g. 1d, 1h30m, 5m, 10s.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.labels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Labels for the created ServiceMonitor so that Prometheus operator can properly pick it up.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.metricRelabelings<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Relabeling rules to apply to metrics. Refer to <a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/configuration\/configuration\/#relabel_config\">relabel_config<\/a> for details.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"logging\" id=\"logging\">Logging<a class=\"heading-anchor\" href=\"#logging\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>logging.level<\/td>\n <td>string<\/td>\n <td><code>&quot;INFO&quot;<\/code><\/td>\n <td>The log level of the root category, which is used as the default log level for all categories.<\/td>\n <\/tr>\n <tr>\n <td>logging.requestIdHeaderName<\/td>\n <td>string<\/td>\n <td><code>&quot;X-Request-ID&quot;<\/code><\/td>\n <td>The header name to use for the request ID.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Whether to enable the console appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.threshold<\/td>\n <td>string<\/td>\n <td><code>&quot;ALL&quot;<\/code><\/td>\n <td>The log level of the console appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.json<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to log in JSON format.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.format<\/td>\n <td>string<\/td>\n <td><code>&quot;%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n&quot;<\/code><\/td>\n <td>The log format to use. Ignored if JSON format is enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/#logging\">Logging<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to enable the file appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.threshold<\/td>\n <td>string<\/td>\n <td><code>&quot;ALL&quot;<\/code><\/td>\n <td>The log level of the file appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.json<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to log in JSON format.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.format<\/td>\n <td>string<\/td>\n <td><code>&quot;%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n&quot;<\/code><\/td>\n <td>The log format to use. Ignored if JSON format is enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/#logging\">Logging<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.logsDir<\/td>\n <td>string<\/td>\n <td><code>&quot;\/deployments\/logs&quot;<\/code><\/td>\n <td>The local directory where log files are stored. The persistent volume claim will be mounted here.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.fileName<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris.log&quot;<\/code><\/td>\n <td>The log file name.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.maxFileSize<\/td>\n <td>string<\/td>\n <td><code>&quot;100Mi&quot;<\/code><\/td>\n <td>The maximum size of the log file before it is rotated. Should be expressed as a Kubernetes quantity.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.maxBackupIndex<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>The maximum number of backup files to keep.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.fileSuffix<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>An optional suffix to append to the rotated log files. If present, the rotated log files will be grouped in time buckets, and each bucket will contain at most maxBackupIndex files. The suffix must be in a date-time format that is understood by DateTimeFormatter. If the suffix ends with .gz or .zip, the rotated files will also be compressed using the corresponding algorithm.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.className<\/td>\n <td>string<\/td>\n <td><code>&quot;standard&quot;<\/code><\/td>\n <td>The storage class name of the persistent volume claim to create.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.size<\/td>\n <td>string<\/td>\n <td><code>&quot;512Gi&quot;<\/code><\/td>\n <td>The size of the persistent volume claim to create.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.selectorLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Labels to add to the persistent volume claim spec selector; a persistent volume with matching labels must exist. Leave empty if using dynamic provisioning.<\/td>\n <\/tr>\n <tr>\n <td>logging.categories<\/td>\n <td>object<\/td>\n <td><code>{&quot;org.apache&quot;:{&quot;iceberg.rest&quot;:&quot;INFO&quot;,&quot;polaris&quot;:&quot;INFO&quot;}}<\/code><\/td>\n <td>Configuration for specific log categories. Keys are category names (e.g., <code>org.apache.polaris<\/code>), values are log levels. Log levels can be passed &ldquo;flattened&rdquo; or as nested YAML objects (see examples below).<\/td>\n <\/tr>\n <tr>\n <td>logging.mdc<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Configuration for MDC (Mapped Diagnostic Context). Values specified here will be added to the log context of all incoming requests and can be used in log patterns. MDC values can be passed &ldquo;flattened&rdquo; or as nested YAML objects.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"realm-context\" id=\"realm-context\">Realm Context<a class=\"heading-anchor\" href=\"#realm-context\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>realmContext.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of realm context resolver to use. Two built-in types are supported: default and test; test is not recommended for production as it does not perform any realm validation.<\/td>\n <\/tr>\n <tr>\n <td>realmContext.realms<\/td>\n <td>list<\/td>\n <td><code>[&quot;POLARIS&quot;]<\/code><\/td>\n <td>List of valid realms, for use with the default realm context resolver. The first realm in the list is the default realm. Realms not in this list will be rejected.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"features\" id=\"features\">Features<a class=\"heading-anchor\" href=\"#features\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>features<\/td>\n <td>object<\/td>\n <td><code>{&quot;SUPPORTED_CATALOG_STORAGE_TYPES&quot;:[&quot;S3&quot;,&quot;GCS&quot;,&quot;AZURE&quot;],&quot;realmOverrides&quot;:{}}<\/code><\/td>\n <td>Features to enable or disable globally. If a feature is not present in the map, the default built-in value is used. Refer to Polaris <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuration-reference\">Configuration reference<\/a> for a complete list of available features.<\/td>\n <\/tr>\n <tr>\n <td>features.realmOverrides<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Features to enable or disable per realm. This field is a map of maps. The realm name is the key, and the value is a map of feature names to values. If a feature is not present in the map, the global value is used.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"persistence\" id=\"persistence\">Persistence<a class=\"heading-anchor\" href=\"#persistence\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>persistence.type<\/td>\n <td>string<\/td>\n <td><code>&quot;in-memory&quot;<\/code><\/td>\n <td>The type of persistence to use. Three built-in types are supported: in-memory, relational-jdbc, and nosql (beta).<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The secret name to pull database connection properties from<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.username<\/td>\n <td>string<\/td>\n <td><code>&quot;username&quot;<\/code><\/td>\n <td>The secret key holding the database username for authentication<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.password<\/td>\n <td>string<\/td>\n <td><code>&quot;password&quot;<\/code><\/td>\n <td>The secret key holding the database password for authentication<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.jdbcUrl<\/td>\n <td>string<\/td>\n <td><code>&quot;jdbcUrl&quot;<\/code><\/td>\n <td>The secret key holding the database JDBC connection URL<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.backend<\/td>\n <td>string<\/td>\n <td><code>&quot;MongoDb&quot;<\/code><\/td>\n <td>The NoSQL backend to use. Two built-in types are supported: MongoDb and InMemory. Only MongoDb is supported for production use.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.database<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris&quot;<\/code><\/td>\n <td>The MongoDB database name to use.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The secret name to pull the MongoDB connection string from.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.secret.connectionString<\/td>\n <td>string<\/td>\n <td><code>&quot;connectionString&quot;<\/code><\/td>\n <td>The secret key holding the MongoDB connection string.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"file-io\" id=\"file-io\">File IO<a class=\"heading-anchor\" href=\"#file-io\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>fileIo.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of file IO to use. Two built-in types are supported: default and wasb. The wasb one translates WASB paths to ABFS ones.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"storage\" id=\"storage\">Storage<a class=\"heading-anchor\" href=\"#storage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>storage.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull storage credentials from.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.awsAccessKeyId<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the AWS access key ID from. Only required when using AWS.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.awsSecretAccessKey<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the AWS secret access key from. Only required when using AWS.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.gcpToken<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the GCP token from. Only required when using GCP.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.gcpTokenLifespan<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the GCP token expiration time from. Only required when using GCP. Must be a valid ISO 8601 duration. The default is PT1H (1 hour).<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"authentication\" id=\"authentication\">Authentication<a class=\"heading-anchor\" href=\"#authentication\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>authentication.type<\/td>\n <td>string<\/td>\n <td><code>&quot;internal&quot;<\/code><\/td>\n <td>The type of authentication to use. Three built-in types are supported: internal, external, and mixed.<\/td>\n <\/tr>\n <tr>\n <td>authentication.authenticator.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of authenticator to use.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenService.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The token service implementation to use. Two built-in types are supported: default and disabled. Only relevant when using internal (or mixed) authentication. When using external authentication, the token service is always disabled.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.type<\/td>\n <td>string<\/td>\n <td><code>&quot;rsa-key-pair&quot;<\/code><\/td>\n <td>The token broker implementation to use. Two built-in types are supported: rsa-key-pair and symmetric-key. Only relevant when using internal (or mixed) authentication. When using external authentication, the token broker is not used.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.maxTokenGeneration<\/td>\n <td>string<\/td>\n <td><code>&quot;PT1H&quot;<\/code><\/td>\n <td>Maximum token generation duration (e.g., PT1H for 1 hour).<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull the keys from. If not provided, a key pair will be generated. This is not recommended for production.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.rsaKeyPair.publicKey<\/td>\n <td>string<\/td>\n <td><code>&quot;public.pem&quot;<\/code><\/td>\n <td>Key name inside the secret for the RSA public key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.rsaKeyPair.privateKey<\/td>\n <td>string<\/td>\n <td><code>&quot;private.pem&quot;<\/code><\/td>\n <td>Key name inside the secret for the RSA private key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.symmetricKey.secretKey<\/td>\n <td>string<\/td>\n <td><code>&quot;symmetric.key&quot;<\/code><\/td>\n <td>Key name inside the secret for the symmetric key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.realmOverrides<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Authentication configuration overrides per realm.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"oidc\" id=\"oidc\">OIDC<a class=\"heading-anchor\" href=\"#oidc\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>oidc.authServeUrl<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The authentication server URL. Must be provided if at least one realm is configured for external authentication.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.id<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris&quot;<\/code><\/td>\n <td>The client ID to use when contacting the authentication server&rsquo;s introspection endpoint in order to validate tokens.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull the client secret from. If not provided, the client is assumed to not require a client secret when contacting the introspection endpoint.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.secret.key<\/td>\n <td>string<\/td>\n <td><code>&quot;clientSecret&quot;<\/code><\/td>\n <td>The key name inside the secret to pull the client secret from.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The <code>PrincipalMapper<\/code> implementation to use. Only one built-in type is supported: default.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.idClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The path to the claim that contains the principal ID. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_id&rdquo; would look for the &ldquo;principal_id&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. Optional. Either this option or <code>nameClaimPath<\/code> (or both) must be provided.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.nameClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The claim that contains the principal name. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_name&rdquo; would look for the &ldquo;principal_name&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. Optional. Either this option or <code>idClaimPath<\/code> (or both) must be provided.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The <code>PrincipalRolesMapper<\/code> implementation to use. Only one built-in type is supported: default.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.rolesClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The path to the claim that contains the principal roles. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_roles&rdquo; would look for the &ldquo;principal_roles&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. If not set, Quarkus looks for roles in standard locations. See <a href=\"https:\/\/quarkus.io\/guides\/security-oidc-bearer-token-authentication#token-claims-and-security-identity-roles\">Quarkus OIDC Token Claims<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.filter<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>A regular expression that matches the role names in the identity. Only roles that match this regex will be included in the Polaris-specific roles.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.mappings<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>A list of regex mappings that will be applied to each role name in the identity. This can be used to transform the role names in the identity into role names as expected by Polaris. The default Authenticator expects the security identity to expose role names in the format <code>POLARIS_ROLE:&lt;role name&gt;<\/code>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"cors\" id=\"cors\">CORS<a class=\"heading-anchor\" href=\"#cors\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>cors.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether the CORS filter should be enabled. See <a href=\"https:\/\/quarkus.io\/guides\/http-reference#cors-filter\">CORS<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedOrigins<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Origins allowed for CORS, e.g. <a href=\"http:\/\/polaris.apache.org\">http:\/\/polaris.apache.org<\/a>, http:\/\/localhost:8181. In case an entry of the list is surrounded by forward slashes, it is interpreted as a regular expression.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedMethods<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP methods allowed for CORS, ex: GET, PUT, POST. If this is not set or empty, all requested methods are considered allowed.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedHeaders<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP headers allowed for CORS, ex: X-Custom, Content-Disposition. If this is not set or empty, all requested headers are considered allowed.<\/td>\n <\/tr>\n <tr>\n <td>cors.exposedHeaders<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP headers exposed to the client, ex: X-Custom, Content-Disposition. The default is an empty list.<\/td>\n <\/tr>\n <tr>\n <td>cors.accessControlMaxAge<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The <code>Access-Control-Max-Age<\/code> response header value indicating how long the results of a pre-flight request can be cached. Must be a valid duration.<\/td>\n <\/tr>\n <tr>\n <td>cors.accessControlAllowCredentials<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The <code>Access-Control-Allow-Credentials<\/code> response header. The value of this header will default to <code>true<\/code> if <code>allowedOrigins<\/code> property is set and there is a match with the precise <code>Origin<\/code> header.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"rate-limiter\" id=\"rate-limiter\">Rate Limiter<a class=\"heading-anchor\" href=\"#rate-limiter\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>rateLimiter.type<\/td>\n <td>string<\/td>\n <td><code>&quot;no-op&quot;<\/code><\/td>\n <td>The type of rate limiter filter to use. Two built-in types are supported: default and no-op.<\/td>\n <\/tr>\n <tr>\n <td>rateLimiter.tokenBucket.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of the token bucket rate limiter. Only the default type is supported out of the box.<\/td>\n <\/tr>\n <tr>\n <td>rateLimiter.tokenBucket.requestsPerSecond<\/td>\n <td>int<\/td>\n <td><code>9999<\/code><\/td>\n <td>The maximum number of requests (permits) per second allowed for each realm.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"tasks\" id=\"tasks\">Tasks<a class=\"heading-anchor\" href=\"#tasks\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>tasks.maxConcurrentTasks<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of concurrent tasks that can be executed at the same time. If unspecified or zero, defaults to the number of available cores.<\/td>\n <\/tr>\n <tr>\n <td>tasks.maxQueuedTasks<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of tasks that can be queued up for execution. If unspecified or zero, defaults to Integer.MAX_VALUE.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>"},{"title":"Values Reference","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/reference\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/helm-chart\/reference\/","description":"<h3 id=\"deployment\" id=\"deployment\">Deployment<a class=\"heading-anchor\" href=\"#deployment\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>replicaCount<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>The number of replicas to deploy (horizontal scaling). Beware that replicas are stateless; don&rsquo;t set this number &gt; 1 when using in-memory meta store manager. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/production\/#scaling\">Scaling<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>deploymentAnnotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Annotations to apply to polaris deployment.<\/td>\n <\/tr>\n <tr>\n <td>revisionHistoryLimit<\/td>\n <td>int<\/td>\n <td><code>nil<\/code><\/td>\n <td>The number of old ReplicaSets to retain to allow rollback (if not set, the default Kubernetes value is set to 10).<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"image\" id=\"image\">Image<a class=\"heading-anchor\" href=\"#image\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>image.repository<\/td>\n <td>string<\/td>\n <td><code>&quot;apache\/polaris&quot;<\/code><\/td>\n <td>The image repository to pull from.<\/td>\n <\/tr>\n <tr>\n <td>image.pullPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;IfNotPresent&quot;<\/code><\/td>\n <td>The image pull policy.<\/td>\n <\/tr>\n <tr>\n <td>image.tag<\/td>\n <td>string<\/td>\n <td><code>&quot;1.4.0&quot;<\/code><\/td>\n <td>The image tag.<\/td>\n <\/tr>\n <tr>\n <td>image.configDir<\/td>\n <td>string<\/td>\n <td><code>&quot;\/deployments\/config&quot;<\/code><\/td>\n <td>The path to the directory where the application.properties file, and other configuration files, if any, should be mounted.<\/td>\n <\/tr>\n <tr>\n <td>imagePullSecrets<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>References to secrets in the same namespace to use for pulling any of the images used by this chart. Each entry is a string referring to an existing secret in the namespace. The secret must contain a <code>.dockerconfigjson<\/code> key with a base64-encoded Docker configuration file. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/pull-image-private-registry\/\">Pulling from Private Registry<\/a> for more information.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"service-account\" id=\"service-account\">Service Account<a class=\"heading-anchor\" href=\"#service-account\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>serviceAccount.create<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether a service account should be created.<\/td>\n <\/tr>\n <tr>\n <td>serviceAccount.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service account.<\/td>\n <\/tr>\n <tr>\n <td>serviceAccount.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the service account to use. If not set and create is true, a name is generated using the fullname template.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"pod-configuration\" id=\"pod-configuration\">Pod Configuration<a class=\"heading-anchor\" href=\"#pod-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>podAnnotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to apply to polaris pods.<\/td>\n <\/tr>\n <tr>\n <td>podLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Labels to apply to polaris pods.<\/td>\n <\/tr>\n <tr>\n <td>configMapLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Labels to apply to polaris configmap.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether a pod disruption budget should be created.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.minAvailable<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The minimum number of pods that should remain available during disruptions. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 50%). IMPORTANT: Cannot be used simultaneously with maxUnavailable.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.maxUnavailable<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of pods that can be unavailable during disruptions. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 50%). IMPORTANT: Cannot be used simultaneously with minAvailable.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the pod disruption budget.<\/td>\n <\/tr>\n <tr>\n <td>podSecurityContext<\/td>\n <td>object<\/td>\n <td><code>{&quot;fsGroup&quot;:10001,&quot;seccompProfile&quot;:{&quot;type&quot;:&quot;RuntimeDefault&quot;}}<\/code><\/td>\n <td>Security context for the polaris pod. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/security-context\/\">Security Context<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>containerSecurityContext<\/td>\n <td>object<\/td>\n <td><code>{&quot;allowPrivilegeEscalation&quot;:false,&quot;capabilities&quot;:{&quot;drop&quot;:[&quot;ALL&quot;]},&quot;runAsNonRoot&quot;:true,&quot;runAsUser&quot;:10000,&quot;seccompProfile&quot;:{&quot;type&quot;:&quot;RuntimeDefault&quot;}}<\/code><\/td>\n <td>Security context for the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/security-context\/\">Security Context<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"service\" id=\"service\">Service<a class=\"heading-anchor\" href=\"#service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>service.type<\/td>\n <td>string<\/td>\n <td><code>&quot;ClusterIP&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. The default value is ClusterIP. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-http&quot;<\/code><\/td>\n <td>The name of the port. Required.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8181<\/code><\/td>\n <td>The port the service listens on. By default, the HTTP port is 8181.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>service.sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the service. Valid values are: None, ClientIP. The default value is None. ClientIP enables sticky sessions based on the client&rsquo;s IP address. This is generally beneficial to Polaris deployments, but some testing may be required in order to make sure that the load is distributed evenly among the pods. Also, this setting affects only internal clients, not external ones. If Ingress is enabled, it is recommended to set sessionAffinity to None.<\/td>\n <\/tr>\n <tr>\n <td>service.clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>You can specify your own cluster IP address If you define a Service that has the .spec.clusterIP set to &ldquo;None&rdquo; then Kubernetes does not assign an IP address. Instead, DNS records for the service will return the IP addresses of each pod targeted by the server. This is called a headless service. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/service\/#headless-services\">Headless Services<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>service.internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed. Valid values are Cluster and Local. The default value is Cluster. Set the field to Cluster to route traffic to all ready endpoints. Set the field to Local to only route to ready node-local endpoints. If the traffic policy is Local and there are no node-local endpoints, traffic is dropped by kube-proxy.<\/td>\n <\/tr>\n <tr>\n <td>service.externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed. Valid values are Cluster and Local. The default value is Cluster. Set the field to Cluster to route traffic to all ready endpoints. Set the field to Local to only route to ready node-local endpoints. If the traffic policy is Local and there are no node-local endpoints, traffic is dropped by kube-proxy.<\/td>\n <\/tr>\n <tr>\n <td>service.trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field provides another way to influence traffic routing within a Kubernetes Service. While traffic policies focus on strict semantic guarantees, traffic distribution allows you to express preferences such as routing to topologically closer endpoints. The only valid value is: PreferClose. The default value is implementation-specific.<\/td>\n <\/tr>\n <tr>\n <td>service.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"management-service\" id=\"management-service\">Management Service<a class=\"heading-anchor\" href=\"#management-service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>managementService.type<\/td>\n <td>string<\/td>\n <td><code>&quot;ClusterIP&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. The default value is ClusterIP.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-mgmt&quot;<\/code><\/td>\n <td>The name of the management port. Required.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8182<\/code><\/td>\n <td>The port the management service listens on. By default, the management interface is exposed on HTTP port 8182.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>managementService.clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>By default, the management service is headless, i.e. it does not have a cluster IP. This is generally the right option for exposing health checks and metrics, e.g. for metrics scraping and service monitoring.<\/td>\n <\/tr>\n <tr>\n <td>managementService.sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the service.<\/td>\n <\/tr>\n <tr>\n <td>managementService.internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>managementService.externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>managementService.trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field.<\/td>\n <\/tr>\n <tr>\n <td>managementService.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"extra-services\" id=\"extra-services\">Extra Services<a class=\"heading-anchor\" href=\"#extra-services\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>extraServices[0].nameSuffix<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The suffix to append to the service name. Required. It must be unique. If it does not start with a hyphen, a hyphen will be inserted between the base service name and the suffix.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].type<\/td>\n <td>string<\/td>\n <td><code>&quot;LoadBalancer&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-extra&quot;<\/code><\/td>\n <td>The name of the port. Required.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8183<\/code><\/td>\n <td>The port the extra service listens on.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this extra service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The cluster IP for the extra service.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the extra service. Valid values are: None, ClientIP. The default value is None.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the extra service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"ingress\" id=\"ingress\">Ingress<a class=\"heading-anchor\" href=\"#ingress\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>ingress.className<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Specifies the ingressClassName; leave empty if you don&rsquo;t want to customize it. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>ingress.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether an ingress should be created.<\/td>\n <\/tr>\n <tr>\n <td>ingress.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the ingress.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].host<\/td>\n <td>string<\/td>\n <td><code>&quot;chart-example.local&quot;<\/code><\/td>\n <td>The host name. Required.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].paths[0].path<\/td>\n <td>string<\/td>\n <td><code>&quot;\/&quot;<\/code><\/td>\n <td>The path to match.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].paths[0].pathType<\/td>\n <td>string<\/td>\n <td><code>&quot;Prefix&quot;<\/code><\/td>\n <td>The type of path. Valid values are: Exact, Prefix, and ImplementationSpecific.<\/td>\n <\/tr>\n <tr>\n <td>ingress.tls[0].secretName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the TLS secret to use to terminate TLS traffic on port 443. Required.<\/td>\n <\/tr>\n <tr>\n <td>ingress.tls[0].hosts<\/td>\n <td>list<\/td>\n <td><code>[&quot;chart-example1.local&quot;,&quot;chart-example2.local&quot;]<\/code><\/td>\n <td>A list of hosts in the certificate.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"gateway\" id=\"gateway\">Gateway<a class=\"heading-anchor\" href=\"#gateway\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>gateway.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether a Gateway should be created. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>gateway.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the Gateway.<\/td>\n <\/tr>\n <tr>\n <td>gateway.className<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the GatewayClass to use.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;http&quot;<\/code><\/td>\n <td>The name of the listener. Required.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;HTTP&quot;<\/code><\/td>\n <td>Protocol specifies the network protocol this listener expects to receive.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].port<\/td>\n <td>int<\/td>\n <td><code>80<\/code><\/td>\n <td>The port number to use for the listener.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].hostname<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Hostname specifies the virtual hostname to match for protocol types that define this concept. When unspecified, all hostnames are matched.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].allowedRoutes<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>AllowedRoutes defines the types of routes that MAY be attached to a Listener and the trusted namespaces where those Route resources MAY be present.<\/td>\n <\/tr>\n <tr>\n <td>gateway.addresses<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Optional addresses to request for the Gateway.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"httproute\" id=\"httproute\">HTTPRoute<a class=\"heading-anchor\" href=\"#httproute\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>httproute.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether an HTTPRoute should be created. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>httproute.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the HTTPRoute.<\/td>\n <\/tr>\n <tr>\n <td>httproute.gatewayName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Name of the Gateway resource to attach to. Required.<\/td>\n <\/tr>\n <tr>\n <td>httproute.gatewayNamespace<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>Namespace where the Gateway is deployed. Required.<\/td>\n <\/tr>\n <tr>\n <td>httproute.sectionName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Section name within the gateway to use (optional).<\/td>\n <\/tr>\n <tr>\n <td>httproute.hosts<\/td>\n <td>list<\/td>\n <td><code>[&quot;chart-example.local&quot;]<\/code><\/td>\n <td>A list of hostnames that the HTTPRoute should match.<\/td>\n <\/tr>\n <tr>\n <td>httproute.exposeManagementEndpoints<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Enable to expose the management endpoints on your httproute. This is required if you want to use the management service for health checks and metrics scraping external to the cluster.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"resources-and-autoscaling\" id=\"resources-and-autoscaling\">Resources and Autoscaling<a class=\"heading-anchor\" href=\"#resources-and-autoscaling\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>resources<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Configures the resources requests and limits for polaris pods. This chart does not specify default resources and leaves this as a conscious choice for the user. This also increases chances charts run on environments with little resources, such as Minikube. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/production\/#resource-management\">Resource Management<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether automatic horizontal scaling should be enabled. Do not enable this when using in-memory version store type. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/helm-chart\/production\/#scaling\">Scaling<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.minReplicas<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>The minimum number of replicas to maintain.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.maxReplicas<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>The maximum number of replicas to maintain.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.targetCPUUtilizationPercentage<\/td>\n <td>int<\/td>\n <td><code>80<\/code><\/td>\n <td>Optional; set to zero or empty to disable.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.targetMemoryUtilizationPercentage<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Optional; set to zero or empty to disable.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"scheduling\" id=\"scheduling\">Scheduling<a class=\"heading-anchor\" href=\"#scheduling\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>priorityClassName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Priority class name for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/pod-priority-preemption\/#pod-priority\">Pod Priority<\/a><\/td>\n <\/tr>\n <tr>\n <td>nodeSelector<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Node labels which must match for the polaris pod to be scheduled on that node. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#nodeselector\">Node Selector<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>tolerations<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>A list of tolerations to apply to polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/taint-and-toleration\/\">Taints and Tolerations<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>affinity<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Affinity and anti-affinity for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#affinity-and-anti-affinity\">Affinity and Anti-Affinity<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>topologySpreadConstraints<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Topology spread constraints for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/topology-spread-constraints\/#topologyspreadconstraints-field\">Topology Spread Constraints<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"probes\" id=\"probes\">Probes<a class=\"heading-anchor\" href=\"#probes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>livenessProbe.initialDelaySeconds<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>Number of seconds after the container has started before liveness probes are initiated. Minimum value is 0.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.periodSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>How often (in seconds) to perform the probe. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.successThreshold<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>Minimum consecutive successes for the probe to be considered successful after having failed. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.failureThreshold<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.timeoutSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>Number of seconds after which the probe times out. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.terminationGracePeriodSeconds<\/td>\n <td>int<\/td>\n <td><code>30<\/code><\/td>\n <td>Optional duration in seconds the pod needs to terminate gracefully upon probe failure. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.initialDelaySeconds<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>Number of seconds after the container has started before readiness probes are initiated. Minimum value is 0.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.periodSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>How often (in seconds) to perform the probe. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.successThreshold<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>Minimum consecutive successes for the probe to be considered successful after having failed. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.failureThreshold<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.timeoutSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>Number of seconds after which the probe times out. Minimum value is 1.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"advanced-configuration\" id=\"advanced-configuration\">Advanced Configuration<a class=\"heading-anchor\" href=\"#advanced-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>advancedConfig<\/td>\n <td>object<\/td>\n <td><code>{&quot;quarkus.http.access-log.enabled&quot;:true}<\/code><\/td>\n <td>Advanced configuration. You can pass here any valid Polaris or Quarkus configuration property. Any property that is defined here takes precedence over all the other configuration values generated by this chart. Properties can be passed &ldquo;flattened&rdquo; or as nested YAML objects (see examples below). Refer to Polaris <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuration-reference\">Configuration reference<\/a> for a complete list of Polaris configuration properties, and to the <a href=\"https:\/\/quarkus.io\/guides\/all-config\">Quarkus Configuration Reference<\/a> for a complete list of Quarkus configuration properties.<\/td>\n <\/tr>\n <tr>\n <td>extraEnv<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Advanced configuration via Environment Variables. Extra environment variables to add to the Polaris server container. You can pass here any valid EnvVar object: <a href=\"https:\/\/kubernetes.io\/docs\/reference\/generated\/kubernetes-api\/v1.27\/#envvar-v1-core\">EnvVar API<\/a> This can be useful to get configuration values from Kubernetes secrets or config maps.<\/td>\n <\/tr>\n <tr>\n <td>extraVolumes<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Extra volumes to add to the polaris pod. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">Volumes<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>extraVolumeMounts<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Extra volume mounts to add to the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">Volumes<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>extraInitContainers<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Add additional init containers to the polaris pod(s) See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/init-containers\/\">Init Containers<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"observability\" id=\"observability\">Observability<a class=\"heading-anchor\" href=\"#observability\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>tracing.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether tracing for the polaris server should be enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/#traces\">Traces<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>tracing.endpoint<\/td>\n <td>string<\/td>\n <td><code>&quot;http:\/\/otlp-collector:4317&quot;<\/code><\/td>\n <td>The collector endpoint URL to connect to (required). The endpoint URL must have either the http:\/\/ or the https:\/\/ scheme. The collector must talk the OpenTelemetry protocol (OTLP) and the port must be its gRPC port (by default 4317). See <a href=\"https:\/\/quarkus.io\/guides\/opentelemetry\">Quarkus OpenTelemetry<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>tracing.sample<\/td>\n <td>string<\/td>\n <td><code>&quot;1.0d&quot;<\/code><\/td>\n <td>Which requests should be sampled. Valid values are: &ldquo;all&rdquo;, &ldquo;none&rdquo;, or a ratio between 0.0 and &ldquo;1.0d&rdquo; (inclusive). E.g. &ldquo;0.5d&rdquo; means that 50% of the requests will be sampled. Note: avoid entering numbers here, always prefer a string representation of the ratio.<\/td>\n <\/tr>\n <tr>\n <td>tracing.attributes<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Resource attributes to identify the polaris service among other tracing sources. See <a href=\"https:\/\/opentelemetry.io\/docs\/reference\/specification\/resource\/semantic_conventions\/#service\">OpenTelemetry Semantic Conventions<\/a>. If left empty, traces will be attached to a service named &ldquo;Apache Polaris&rdquo;; to change this, provide a service.name attribute here.<\/td>\n <\/tr>\n <tr>\n <td>metrics.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether metrics for the polaris server should be enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/#metrics\">Metrics<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>metrics.tags<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional tags (dimensional labels) to add to the metrics.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether a ServiceMonitor for Prometheus operator should be created.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.interval<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The scrape interval; leave empty to let Prometheus decide. Must be a valid duration, e.g. 1d, 1h30m, 5m, 10s.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.labels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Labels for the created ServiceMonitor so that Prometheus operator can properly pick it up.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.metricRelabelings<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Relabeling rules to apply to metrics. Refer to <a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/configuration\/configuration\/#relabel_config\">relabel_config<\/a> for details.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"logging\" id=\"logging\">Logging<a class=\"heading-anchor\" href=\"#logging\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>logging.level<\/td>\n <td>string<\/td>\n <td><code>&quot;INFO&quot;<\/code><\/td>\n <td>The log level of the root category, which is used as the default log level for all categories.<\/td>\n <\/tr>\n <tr>\n <td>logging.requestIdHeaderName<\/td>\n <td>string<\/td>\n <td><code>&quot;X-Request-ID&quot;<\/code><\/td>\n <td>The header name to use for the request ID.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Whether to enable the console appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.threshold<\/td>\n <td>string<\/td>\n <td><code>&quot;ALL&quot;<\/code><\/td>\n <td>The log level of the console appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.json<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to log in JSON format.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.format<\/td>\n <td>string<\/td>\n <td><code>&quot;%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n&quot;<\/code><\/td>\n <td>The log format to use. Ignored if JSON format is enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/#logging\">Logging<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to enable the file appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.threshold<\/td>\n <td>string<\/td>\n <td><code>&quot;ALL&quot;<\/code><\/td>\n <td>The log level of the file appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.json<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to log in JSON format.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.format<\/td>\n <td>string<\/td>\n <td><code>&quot;%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n&quot;<\/code><\/td>\n <td>The log format to use. Ignored if JSON format is enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/telemetry\/#logging\">Logging<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.logsDir<\/td>\n <td>string<\/td>\n <td><code>&quot;\/deployments\/logs&quot;<\/code><\/td>\n <td>The local directory where log files are stored. The persistent volume claim will be mounted here.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.fileName<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris.log&quot;<\/code><\/td>\n <td>The log file name.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.maxFileSize<\/td>\n <td>string<\/td>\n <td><code>&quot;100Mi&quot;<\/code><\/td>\n <td>The maximum size of the log file before it is rotated. Should be expressed as a Kubernetes quantity.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.maxBackupIndex<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>The maximum number of backup files to keep.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.fileSuffix<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>An optional suffix to append to the rotated log files. If present, the rotated log files will be grouped in time buckets, and each bucket will contain at most maxBackupIndex files. The suffix must be in a date-time format that is understood by DateTimeFormatter. If the suffix ends with .gz or .zip, the rotated files will also be compressed using the corresponding algorithm.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.className<\/td>\n <td>string<\/td>\n <td><code>&quot;standard&quot;<\/code><\/td>\n <td>The storage class name of the persistent volume claim to create.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.size<\/td>\n <td>string<\/td>\n <td><code>&quot;512Gi&quot;<\/code><\/td>\n <td>The size of the persistent volume claim to create.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.selectorLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Labels to add to the persistent volume claim spec selector; a persistent volume with matching labels must exist. Leave empty if using dynamic provisioning.<\/td>\n <\/tr>\n <tr>\n <td>logging.categories<\/td>\n <td>object<\/td>\n <td><code>{&quot;org.apache&quot;:{&quot;iceberg.rest&quot;:&quot;INFO&quot;,&quot;polaris&quot;:&quot;INFO&quot;}}<\/code><\/td>\n <td>Configuration for specific log categories. Keys are category names (e.g., <code>org.apache.polaris<\/code>), values are log levels. Log levels can be passed &ldquo;flattened&rdquo; or as nested YAML objects (see examples below).<\/td>\n <\/tr>\n <tr>\n <td>logging.mdc<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Configuration for MDC (Mapped Diagnostic Context). Values specified here will be added to the log context of all incoming requests and can be used in log patterns. MDC values can be passed &ldquo;flattened&rdquo; or as nested YAML objects.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"realm-context\" id=\"realm-context\">Realm Context<a class=\"heading-anchor\" href=\"#realm-context\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>realmContext.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of realm context resolver to use. Two built-in types are supported: default and test; test is not recommended for production as it does not perform any realm validation.<\/td>\n <\/tr>\n <tr>\n <td>realmContext.realms<\/td>\n <td>list<\/td>\n <td><code>[&quot;POLARIS&quot;]<\/code><\/td>\n <td>List of valid realms, for use with the default realm context resolver. The first realm in the list is the default realm. Realms not in this list will be rejected.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"features\" id=\"features\">Features<a class=\"heading-anchor\" href=\"#features\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>features<\/td>\n <td>object<\/td>\n <td><code>{&quot;SUPPORTED_CATALOG_STORAGE_TYPES&quot;:[&quot;S3&quot;,&quot;GCS&quot;,&quot;AZURE&quot;],&quot;realmOverrides&quot;:{}}<\/code><\/td>\n <td>Features to enable or disable globally. If a feature is not present in the map, the default built-in value is used. Refer to Polaris <a href=\"https:\/\/polaris.apache.org\/releases\/1.4.0\/configuration\/configuration-reference\">Configuration reference<\/a> for a complete list of available features.<\/td>\n <\/tr>\n <tr>\n <td>features.realmOverrides<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Features to enable or disable per realm. This field is a map of maps. The realm name is the key, and the value is a map of feature names to values. If a feature is not present in the map, the global value is used.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"persistence\" id=\"persistence\">Persistence<a class=\"heading-anchor\" href=\"#persistence\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>persistence.type<\/td>\n <td>string<\/td>\n <td><code>&quot;in-memory&quot;<\/code><\/td>\n <td>The type of persistence to use. Three built-in types are supported: in-memory, relational-jdbc, and nosql (beta).<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The secret name to pull database connection properties from<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.username<\/td>\n <td>string<\/td>\n <td><code>&quot;username&quot;<\/code><\/td>\n <td>The secret key holding the database username for authentication<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.password<\/td>\n <td>string<\/td>\n <td><code>&quot;password&quot;<\/code><\/td>\n <td>The secret key holding the database password for authentication<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.jdbcUrl<\/td>\n <td>string<\/td>\n <td><code>&quot;jdbcUrl&quot;<\/code><\/td>\n <td>The secret key holding the database JDBC connection URL<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.backend<\/td>\n <td>string<\/td>\n <td><code>&quot;MongoDb&quot;<\/code><\/td>\n <td>The NoSQL backend to use. Two built-in types are supported: MongoDb and InMemory. Only MongoDb is supported for production use.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.database<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris&quot;<\/code><\/td>\n <td>The MongoDB database name to use.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The secret name to pull the MongoDB connection string from.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.secret.connectionString<\/td>\n <td>string<\/td>\n <td><code>&quot;connectionString&quot;<\/code><\/td>\n <td>The secret key holding the MongoDB connection string.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"file-io\" id=\"file-io\">File IO<a class=\"heading-anchor\" href=\"#file-io\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>fileIo.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of file IO to use. Two built-in types are supported: default and wasb. The wasb one translates WASB paths to ABFS ones.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"storage\" id=\"storage\">Storage<a class=\"heading-anchor\" href=\"#storage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>storage.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull storage credentials from.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.awsAccessKeyId<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the AWS access key ID from. Only required when using AWS.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.awsSecretAccessKey<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the AWS secret access key from. Only required when using AWS.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.gcpToken<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the GCP token from. Only required when using GCP.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.gcpTokenLifespan<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the GCP token expiration time from. Only required when using GCP. Must be a valid ISO 8601 duration. The default is PT1H (1 hour).<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"authentication\" id=\"authentication\">Authentication<a class=\"heading-anchor\" href=\"#authentication\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>authentication.type<\/td>\n <td>string<\/td>\n <td><code>&quot;internal&quot;<\/code><\/td>\n <td>The type of authentication to use. Three built-in types are supported: internal, external, and mixed.<\/td>\n <\/tr>\n <tr>\n <td>authentication.authenticator.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of authenticator to use.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenService.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The token service implementation to use. Two built-in types are supported: default and disabled. Only relevant when using internal (or mixed) authentication. When using external authentication, the token service is always disabled.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.type<\/td>\n <td>string<\/td>\n <td><code>&quot;rsa-key-pair&quot;<\/code><\/td>\n <td>The token broker implementation to use. Two built-in types are supported: rsa-key-pair and symmetric-key. Only relevant when using internal (or mixed) authentication. When using external authentication, the token broker is not used.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.maxTokenGeneration<\/td>\n <td>string<\/td>\n <td><code>&quot;PT1H&quot;<\/code><\/td>\n <td>Maximum token generation duration (e.g., PT1H for 1 hour).<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull the keys from. If not provided, a key pair will be generated. This is not recommended for production.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.rsaKeyPair.publicKey<\/td>\n <td>string<\/td>\n <td><code>&quot;public.pem&quot;<\/code><\/td>\n <td>Key name inside the secret for the RSA public key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.rsaKeyPair.privateKey<\/td>\n <td>string<\/td>\n <td><code>&quot;private.pem&quot;<\/code><\/td>\n <td>Key name inside the secret for the RSA private key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.symmetricKey.secretKey<\/td>\n <td>string<\/td>\n <td><code>&quot;symmetric.key&quot;<\/code><\/td>\n <td>Key name inside the secret for the symmetric key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.realmOverrides<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Authentication configuration overrides per realm.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"oidc\" id=\"oidc\">OIDC<a class=\"heading-anchor\" href=\"#oidc\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>oidc.authServeUrl<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The authentication server URL. Must be provided if at least one realm is configured for external authentication.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.id<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris&quot;<\/code><\/td>\n <td>The client ID to use when contacting the authentication server&rsquo;s introspection endpoint in order to validate tokens.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull the client secret from. If not provided, the client is assumed to not require a client secret when contacting the introspection endpoint.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.secret.key<\/td>\n <td>string<\/td>\n <td><code>&quot;clientSecret&quot;<\/code><\/td>\n <td>The key name inside the secret to pull the client secret from.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The <code>PrincipalMapper<\/code> implementation to use. Only one built-in type is supported: default.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.idClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The path to the claim that contains the principal ID. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_id&rdquo; would look for the &ldquo;principal_id&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. Optional. Either this option or <code>nameClaimPath<\/code> (or both) must be provided.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.nameClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The claim that contains the principal name. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_name&rdquo; would look for the &ldquo;principal_name&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. Optional. Either this option or <code>idClaimPath<\/code> (or both) must be provided.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The <code>PrincipalRolesMapper<\/code> implementation to use. Only one built-in type is supported: default.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.rolesClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The path to the claim that contains the principal roles. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_roles&rdquo; would look for the &ldquo;principal_roles&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. If not set, Quarkus looks for roles in standard locations. See <a href=\"https:\/\/quarkus.io\/guides\/security-oidc-bearer-token-authentication#token-claims-and-security-identity-roles\">Quarkus OIDC Token Claims<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.filter<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>A regular expression that matches the role names in the identity. Only roles that match this regex will be included in the Polaris-specific roles.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.mappings<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>A list of regex mappings that will be applied to each role name in the identity. This can be used to transform the role names in the identity into role names as expected by Polaris. The default Authenticator expects the security identity to expose role names in the format <code>POLARIS_ROLE:&lt;role name&gt;<\/code>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"cors\" id=\"cors\">CORS<a class=\"heading-anchor\" href=\"#cors\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>cors.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether the CORS filter should be enabled. See <a href=\"https:\/\/quarkus.io\/guides\/http-reference#cors-filter\">CORS<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedOrigins<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Origins allowed for CORS, e.g. <a href=\"http:\/\/polaris.apache.org\">http:\/\/polaris.apache.org<\/a>, http:\/\/localhost:8181. In case an entry of the list is surrounded by forward slashes, it is interpreted as a regular expression.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedMethods<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP methods allowed for CORS, ex: GET, PUT, POST. If this is not set or empty, all requested methods are considered allowed.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedHeaders<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP headers allowed for CORS, ex: X-Custom, Content-Disposition. If this is not set or empty, all requested headers are considered allowed.<\/td>\n <\/tr>\n <tr>\n <td>cors.exposedHeaders<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP headers exposed to the client, ex: X-Custom, Content-Disposition. The default is an empty list.<\/td>\n <\/tr>\n <tr>\n <td>cors.accessControlMaxAge<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The <code>Access-Control-Max-Age<\/code> response header value indicating how long the results of a pre-flight request can be cached. Must be a valid duration.<\/td>\n <\/tr>\n <tr>\n <td>cors.accessControlAllowCredentials<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The <code>Access-Control-Allow-Credentials<\/code> response header. The value of this header will default to <code>true<\/code> if <code>allowedOrigins<\/code> property is set and there is a match with the precise <code>Origin<\/code> header.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"rate-limiter\" id=\"rate-limiter\">Rate Limiter<a class=\"heading-anchor\" href=\"#rate-limiter\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>rateLimiter.type<\/td>\n <td>string<\/td>\n <td><code>&quot;no-op&quot;<\/code><\/td>\n <td>The type of rate limiter filter to use. Two built-in types are supported: default and no-op.<\/td>\n <\/tr>\n <tr>\n <td>rateLimiter.tokenBucket.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of the token bucket rate limiter. Only the default type is supported out of the box.<\/td>\n <\/tr>\n <tr>\n <td>rateLimiter.tokenBucket.requestsPerSecond<\/td>\n <td>int<\/td>\n <td><code>9999<\/code><\/td>\n <td>The maximum number of requests (permits) per second allowed for each realm.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"tasks\" id=\"tasks\">Tasks<a class=\"heading-anchor\" href=\"#tasks\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>tasks.maxConcurrentTasks<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of concurrent tasks that can be executed at the same time. If unspecified or zero, defaults to the number of available cores.<\/td>\n <\/tr>\n <tr>\n <td>tasks.maxQueuedTasks<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of tasks that can be queued up for execution. If unspecified or zero, defaults to Integer.MAX_VALUE.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>"},{"title":"Values Reference","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/reference\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/reference\/","description":"<h3 id=\"deployment\" id=\"deployment\">Deployment<a class=\"heading-anchor\" href=\"#deployment\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>replicaCount<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>The number of replicas to deploy (horizontal scaling). Beware that replicas are stateless; don&rsquo;t set this number &gt; 1 when using in-memory meta store manager. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/production\/#scaling\">Scaling<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>deploymentAnnotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Annotations to apply to polaris deployment.<\/td>\n <\/tr>\n <tr>\n <td>revisionHistoryLimit<\/td>\n <td>int<\/td>\n <td><code>nil<\/code><\/td>\n <td>The number of old ReplicaSets to retain to allow rollback (if not set, the default Kubernetes value is set to 10).<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"image\" id=\"image\">Image<a class=\"heading-anchor\" href=\"#image\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>image.repository<\/td>\n <td>string<\/td>\n <td><code>&quot;apache\/polaris&quot;<\/code><\/td>\n <td>The image repository to pull from.<\/td>\n <\/tr>\n <tr>\n <td>image.pullPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;IfNotPresent&quot;<\/code><\/td>\n <td>The image pull policy.<\/td>\n <\/tr>\n <tr>\n <td>image.tag<\/td>\n <td>string<\/td>\n <td><code>&quot;1.5.0&quot;<\/code><\/td>\n <td>The image tag.<\/td>\n <\/tr>\n <tr>\n <td>image.configDir<\/td>\n <td>string<\/td>\n <td><code>&quot;\/deployments\/config&quot;<\/code><\/td>\n <td>The path to the directory where the application.properties file, and other configuration files, if any, should be mounted.<\/td>\n <\/tr>\n <tr>\n <td>imagePullSecrets<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>References to secrets in the same namespace to use for pulling any of the images used by this chart. Each entry is a string referring to an existing secret in the namespace. The secret must contain a <code>.dockerconfigjson<\/code> key with a base64-encoded Docker configuration file. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/pull-image-private-registry\/\">Pulling from Private Registry<\/a> for more information.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"service-account\" id=\"service-account\">Service Account<a class=\"heading-anchor\" href=\"#service-account\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>serviceAccount.create<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether a service account should be created.<\/td>\n <\/tr>\n <tr>\n <td>serviceAccount.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service account.<\/td>\n <\/tr>\n <tr>\n <td>serviceAccount.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the service account to use. If not set and create is true, a name is generated using the fullname template.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"pod-configuration\" id=\"pod-configuration\">Pod Configuration<a class=\"heading-anchor\" href=\"#pod-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>podAnnotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to apply to polaris pods.<\/td>\n <\/tr>\n <tr>\n <td>podLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Labels to apply to polaris pods.<\/td>\n <\/tr>\n <tr>\n <td>configMapLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional Labels to apply to polaris configmap.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether a pod disruption budget should be created.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.minAvailable<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The minimum number of pods that should remain available during disruptions. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 50%). IMPORTANT: Cannot be used simultaneously with maxUnavailable.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.maxUnavailable<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of pods that can be unavailable during disruptions. Can be an absolute number (ex: 5) or a percentage of desired pods (ex: 50%). IMPORTANT: Cannot be used simultaneously with minAvailable.<\/td>\n <\/tr>\n <tr>\n <td>podDisruptionBudget.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the pod disruption budget.<\/td>\n <\/tr>\n <tr>\n <td>podSecurityContext<\/td>\n <td>object<\/td>\n <td><code>{&quot;fsGroup&quot;:10001,&quot;seccompProfile&quot;:{&quot;type&quot;:&quot;RuntimeDefault&quot;}}<\/code><\/td>\n <td>Security context for the polaris pod. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/security-context\/\">Security Context<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>containerSecurityContext<\/td>\n <td>object<\/td>\n <td><code>{&quot;allowPrivilegeEscalation&quot;:false,&quot;capabilities&quot;:{&quot;drop&quot;:[&quot;ALL&quot;]},&quot;runAsNonRoot&quot;:true,&quot;runAsUser&quot;:10000,&quot;seccompProfile&quot;:{&quot;type&quot;:&quot;RuntimeDefault&quot;}}<\/code><\/td>\n <td>Security context for the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/security-context\/\">Security Context<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>containerLifecycle<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Lifecycle hooks for the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/container-lifecycle-hooks\/\">Container Lifecycle Hooks<\/a>. Use this to configure a preStop hook for graceful shutdown, e.g.: containerLifecycle: preStop: exec: command: [&quot;\/bin\/sh&quot;, &ldquo;-c&rdquo;, &ldquo;sleep 30&rdquo;]<\/td>\n <\/tr>\n <tr>\n <td>terminationGracePeriodSeconds<\/td>\n <td>int<\/td>\n <td><code>nil<\/code><\/td>\n <td>Duration in seconds the pod needs to terminate gracefully. Must be greater than the preStop hook duration. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/pod-lifecycle\/#pod-termination\">Termination of Pods<\/a>. When using a preStop hook, set this to at least the preStop sleep time plus the expected request completion time.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"service\" id=\"service\">Service<a class=\"heading-anchor\" href=\"#service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>service.type<\/td>\n <td>string<\/td>\n <td><code>&quot;ClusterIP&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. The default value is ClusterIP. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-http&quot;<\/code><\/td>\n <td>The name of the port. Required.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8181<\/code><\/td>\n <td>The port the service listens on. By default, the HTTP port is 8181.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>service.ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>service.sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the service. Valid values are: None, ClientIP. The default value is None. ClientIP enables sticky sessions based on the client&rsquo;s IP address. This is generally beneficial to Polaris deployments, but some testing may be required in order to make sure that the load is distributed evenly among the pods. Also, this setting affects only internal clients, not external ones. If Ingress is enabled, it is recommended to set sessionAffinity to None.<\/td>\n <\/tr>\n <tr>\n <td>service.clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>You can specify your own cluster IP address If you define a Service that has the .spec.clusterIP set to &ldquo;None&rdquo; then Kubernetes does not assign an IP address. Instead, DNS records for the service will return the IP addresses of each pod targeted by the server. This is called a headless service. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/service\/#headless-services\">Headless Services<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>service.internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed. Valid values are Cluster and Local. The default value is Cluster. Set the field to Cluster to route traffic to all ready endpoints. Set the field to Local to only route to ready node-local endpoints. If the traffic policy is Local and there are no node-local endpoints, traffic is dropped by kube-proxy.<\/td>\n <\/tr>\n <tr>\n <td>service.externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed. Valid values are Cluster and Local. The default value is Cluster. Set the field to Cluster to route traffic to all ready endpoints. Set the field to Local to only route to ready node-local endpoints. If the traffic policy is Local and there are no node-local endpoints, traffic is dropped by kube-proxy.<\/td>\n <\/tr>\n <tr>\n <td>service.trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field provides another way to influence traffic routing within a Kubernetes Service. While traffic policies focus on strict semantic guarantees, traffic distribution allows you to express preferences such as routing to topologically closer endpoints. The only valid value is: PreferClose. The default value is implementation-specific.<\/td>\n <\/tr>\n <tr>\n <td>service.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"management-service\" id=\"management-service\">Management Service<a class=\"heading-anchor\" href=\"#management-service\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>managementService.type<\/td>\n <td>string<\/td>\n <td><code>&quot;ClusterIP&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer. The default value is ClusterIP.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-mgmt&quot;<\/code><\/td>\n <td>The name of the management port. Required.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8182<\/code><\/td>\n <td>The port the management service listens on. By default, the management interface is exposed on HTTP port 8182.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>managementService.ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>managementService.clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>By default, the management service is headless, i.e. it does not have a cluster IP. This is generally the right option for exposing health checks and metrics, e.g. for metrics scraping and service monitoring.<\/td>\n <\/tr>\n <tr>\n <td>managementService.sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the service.<\/td>\n <\/tr>\n <tr>\n <td>managementService.internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>managementService.externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>managementService.trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field.<\/td>\n <\/tr>\n <tr>\n <td>managementService.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"extra-services\" id=\"extra-services\">Extra Services<a class=\"heading-anchor\" href=\"#extra-services\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>extraServices[0].nameSuffix<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The suffix to append to the service name. Required. It must be unique. If it does not start with a hyphen, a hyphen will be inserted between the base service name and the suffix.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].type<\/td>\n <td>string<\/td>\n <td><code>&quot;LoadBalancer&quot;<\/code><\/td>\n <td>The type of service to create. Valid values are: ExternalName, ClusterIP, NodePort, and LoadBalancer.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris-extra&quot;<\/code><\/td>\n <td>The name of the port. Required.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].port<\/td>\n <td>int<\/td>\n <td><code>8183<\/code><\/td>\n <td>The port the extra service listens on.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].targetPort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Number of the port to access on the pods targeted by the service. If this is not specified or zero, the value of the &lsquo;port&rsquo; field is used.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].nodePort<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The port on each node on which this extra service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If not specified or zero, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].ports[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;TCP&quot;<\/code><\/td>\n <td>The IP protocol for this port. Supports &ldquo;TCP&rdquo;, &ldquo;UDP&rdquo;, and &ldquo;SCTP&rdquo;. Default is TCP.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].clusterIP<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The cluster IP for the extra service.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].sessionAffinity<\/td>\n <td>string<\/td>\n <td><code>&quot;None&quot;<\/code><\/td>\n <td>The session affinity for the extra service. Valid values are: None, ClientIP. The default value is None.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].internalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from internal sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].externalTrafficPolicy<\/td>\n <td>string<\/td>\n <td><code>&quot;Cluster&quot;<\/code><\/td>\n <td>Controls how traffic from external sources is routed.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].trafficDistribution<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>The traffic distribution field.<\/td>\n <\/tr>\n <tr>\n <td>extraServices[0].annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the extra service.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"ingress\" id=\"ingress\">Ingress<a class=\"heading-anchor\" href=\"#ingress\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>ingress.className<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Specifies the ingressClassName; leave empty if you don&rsquo;t want to customize it. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>ingress.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether an ingress should be created.<\/td>\n <\/tr>\n <tr>\n <td>ingress.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the ingress.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].host<\/td>\n <td>string<\/td>\n <td><code>&quot;chart-example.local&quot;<\/code><\/td>\n <td>The host name. Required.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].paths[0].path<\/td>\n <td>string<\/td>\n <td><code>&quot;\/&quot;<\/code><\/td>\n <td>The path to match.<\/td>\n <\/tr>\n <tr>\n <td>ingress.hosts[0].paths[0].pathType<\/td>\n <td>string<\/td>\n <td><code>&quot;Prefix&quot;<\/code><\/td>\n <td>The type of path. Valid values are: Exact, Prefix, and ImplementationSpecific.<\/td>\n <\/tr>\n <tr>\n <td>ingress.tls[0].secretName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the TLS secret to use to terminate TLS traffic on port 443. Required.<\/td>\n <\/tr>\n <tr>\n <td>ingress.tls[0].hosts<\/td>\n <td>list<\/td>\n <td><code>[&quot;chart-example1.local&quot;,&quot;chart-example2.local&quot;]<\/code><\/td>\n <td>A list of hosts in the certificate.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"gateway\" id=\"gateway\">Gateway<a class=\"heading-anchor\" href=\"#gateway\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>gateway.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether a Gateway should be created. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>gateway.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the Gateway.<\/td>\n <\/tr>\n <tr>\n <td>gateway.className<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the GatewayClass to use.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].name<\/td>\n <td>string<\/td>\n <td><code>&quot;http&quot;<\/code><\/td>\n <td>The name of the listener. Required.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].protocol<\/td>\n <td>string<\/td>\n <td><code>&quot;HTTP&quot;<\/code><\/td>\n <td>Protocol specifies the network protocol this listener expects to receive.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].port<\/td>\n <td>int<\/td>\n <td><code>80<\/code><\/td>\n <td>The port number to use for the listener.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].hostname<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Hostname specifies the virtual hostname to match for protocol types that define this concept. When unspecified, all hostnames are matched.<\/td>\n <\/tr>\n <tr>\n <td>gateway.listeners[0].allowedRoutes<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>AllowedRoutes defines the types of routes that MAY be attached to a Listener and the trusted namespaces where those Route resources MAY be present.<\/td>\n <\/tr>\n <tr>\n <td>gateway.addresses<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Optional addresses to request for the Gateway.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"httproute\" id=\"httproute\">HTTPRoute<a class=\"heading-anchor\" href=\"#httproute\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>httproute.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether an HTTPRoute should be created. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/networking\/\">Networking<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>httproute.annotations<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Annotations to add to the HTTPRoute.<\/td>\n <\/tr>\n <tr>\n <td>httproute.gatewayName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Name of the Gateway resource to attach to. Required.<\/td>\n <\/tr>\n <tr>\n <td>httproute.gatewayNamespace<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>Namespace where the Gateway is deployed. Required.<\/td>\n <\/tr>\n <tr>\n <td>httproute.sectionName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Section name within the gateway to use (optional).<\/td>\n <\/tr>\n <tr>\n <td>httproute.hosts<\/td>\n <td>list<\/td>\n <td><code>[&quot;chart-example.local&quot;]<\/code><\/td>\n <td>A list of hostnames that the HTTPRoute should match.<\/td>\n <\/tr>\n <tr>\n <td>httproute.exposeManagementEndpoints<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Enable to expose the management endpoints on your httproute. This is required if you want to use the management service for health checks and metrics scraping external to the cluster.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"resources-and-autoscaling\" id=\"resources-and-autoscaling\">Resources and Autoscaling<a class=\"heading-anchor\" href=\"#resources-and-autoscaling\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>resources<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Configures the resources requests and limits for polaris pods. This chart does not specify default resources and leaves this as a conscious choice for the user. This also increases chances charts run on environments with little resources, such as Minikube. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/production\/#resource-management\">Resource Management<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether automatic horizontal scaling should be enabled. Do not enable this when using in-memory version store type. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/helm-chart\/production\/#scaling\">Scaling<\/a> for production recommendations.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.minReplicas<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>The minimum number of replicas to maintain.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.maxReplicas<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>The maximum number of replicas to maintain.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.targetCPUUtilizationPercentage<\/td>\n <td>int<\/td>\n <td><code>80<\/code><\/td>\n <td>Optional; set to zero or empty to disable.<\/td>\n <\/tr>\n <tr>\n <td>autoscaling.targetMemoryUtilizationPercentage<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>Optional; set to zero or empty to disable.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"scheduling\" id=\"scheduling\">Scheduling<a class=\"heading-anchor\" href=\"#scheduling\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>priorityClassName<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>Priority class name for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/pod-priority-preemption\/#pod-priority\">Pod Priority<\/a><\/td>\n <\/tr>\n <tr>\n <td>nodeSelector<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Node labels which must match for the polaris pod to be scheduled on that node. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#nodeselector\">Node Selector<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>tolerations<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>A list of tolerations to apply to polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/taint-and-toleration\/\">Taints and Tolerations<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>affinity<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Affinity and anti-affinity for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#affinity-and-anti-affinity\">Affinity and Anti-Affinity<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>topologySpreadConstraints<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Topology spread constraints for polaris pods. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/topology-spread-constraints\/#topologyspreadconstraints-field\">Topology Spread Constraints<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"probes\" id=\"probes\">Probes<a class=\"heading-anchor\" href=\"#probes\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>livenessProbe.initialDelaySeconds<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>Number of seconds after the container has started before liveness probes are initiated. Minimum value is 0.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.periodSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>How often (in seconds) to perform the probe. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.successThreshold<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>Minimum consecutive successes for the probe to be considered successful after having failed. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.failureThreshold<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.timeoutSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>Number of seconds after which the probe times out. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>livenessProbe.terminationGracePeriodSeconds<\/td>\n <td>int<\/td>\n <td><code>30<\/code><\/td>\n <td>Optional duration in seconds the pod needs to terminate gracefully upon probe failure. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.initialDelaySeconds<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>Number of seconds after the container has started before readiness probes are initiated. Minimum value is 0.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.periodSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>How often (in seconds) to perform the probe. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.successThreshold<\/td>\n <td>int<\/td>\n <td><code>1<\/code><\/td>\n <td>Minimum consecutive successes for the probe to be considered successful after having failed. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.failureThreshold<\/td>\n <td>int<\/td>\n <td><code>3<\/code><\/td>\n <td>Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.<\/td>\n <\/tr>\n <tr>\n <td>readinessProbe.timeoutSeconds<\/td>\n <td>int<\/td>\n <td><code>10<\/code><\/td>\n <td>Number of seconds after which the probe times out. Minimum value is 1.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"advanced-configuration\" id=\"advanced-configuration\">Advanced Configuration<a class=\"heading-anchor\" href=\"#advanced-configuration\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>advancedConfig<\/td>\n <td>object<\/td>\n <td><code>{&quot;quarkus.http.access-log.enabled&quot;:true}<\/code><\/td>\n <td>Advanced configuration. You can pass here any valid Polaris or Quarkus configuration property. Any property that is defined here takes precedence over all the other configuration values generated by this chart. Properties can be passed &ldquo;flattened&rdquo; or as nested YAML objects (see examples below). Refer to Polaris <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/configuration\/configuration-reference\">Configuration reference<\/a> for a complete list of Polaris configuration properties, and to the <a href=\"https:\/\/quarkus.io\/guides\/all-config\">Quarkus Configuration Reference<\/a> for a complete list of Quarkus configuration properties.<\/td>\n <\/tr>\n <tr>\n <td>extraEnv<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Advanced configuration via Environment Variables. Extra environment variables to add to the Polaris server container. You can pass here any valid EnvVar object: <a href=\"https:\/\/kubernetes.io\/docs\/reference\/generated\/kubernetes-api\/v1.27\/#envvar-v1-core\">EnvVar API<\/a> This can be useful to get configuration values from Kubernetes secrets or config maps.<\/td>\n <\/tr>\n <tr>\n <td>envFrom<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Bulk import environment variables from Secrets or ConfigMaps. Defines sources to populate environment variables using Kubernetes <code>envFrom<\/code>. Each referenced Secret or ConfigMap will expose all its key-value pairs as environment variables inside the Polaris container. <a href=\"https:\/\/kubernetes.io\/docs\/reference\/generated\/kubernetes-api\/v1.27\/#envfromsource-v1-core\">EnvFrom API<\/a><\/td>\n <\/tr>\n <tr>\n <td>extraVolumes<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Extra volumes to add to the polaris pod. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">Volumes<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>extraVolumeMounts<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Extra volume mounts to add to the polaris container. See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/\">Volumes<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>extraInitContainers<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Add additional init containers to the polaris pod(s) See <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/init-containers\/\">Init Containers<\/a>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"observability\" id=\"observability\">Observability<a class=\"heading-anchor\" href=\"#observability\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>tracing.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether tracing for the polaris server should be enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/telemetry\/#traces\">Traces<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>tracing.endpoint<\/td>\n <td>string<\/td>\n <td><code>&quot;http:\/\/otlp-collector:4317&quot;<\/code><\/td>\n <td>The collector endpoint URL to connect to (required). The endpoint URL must have either the http:\/\/ or the https:\/\/ scheme. The collector must talk the OpenTelemetry protocol (OTLP) and the port must be its gRPC port (by default 4317). See <a href=\"https:\/\/quarkus.io\/guides\/opentelemetry\">Quarkus OpenTelemetry<\/a> for more information.<\/td>\n <\/tr>\n <tr>\n <td>tracing.sample<\/td>\n <td>string<\/td>\n <td><code>&quot;1.0d&quot;<\/code><\/td>\n <td>Which requests should be sampled. Valid values are: &ldquo;all&rdquo;, &ldquo;none&rdquo;, or a ratio between 0.0 and &ldquo;1.0d&rdquo; (inclusive). E.g. &ldquo;0.5d&rdquo; means that 50% of the requests will be sampled. Note: avoid entering numbers here, always prefer a string representation of the ratio.<\/td>\n <\/tr>\n <tr>\n <td>tracing.attributes<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Resource attributes to identify the polaris service among other tracing sources. See <a href=\"https:\/\/opentelemetry.io\/docs\/reference\/specification\/resource\/semantic_conventions\/#service\">OpenTelemetry Semantic Conventions<\/a>. If left empty, traces will be attached to a service named &ldquo;Apache Polaris&rdquo;; to change this, provide a service.name attribute here.<\/td>\n <\/tr>\n <tr>\n <td>metrics.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether metrics for the polaris server should be enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/telemetry\/#metrics\">Metrics<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>metrics.tags<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Additional tags (dimensional labels) to add to the metrics.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Specifies whether a ServiceMonitor for Prometheus operator should be created.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.interval<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The scrape interval; leave empty to let Prometheus decide. Must be a valid duration, e.g. 1d, 1h30m, 5m, 10s.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.labels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Labels for the created ServiceMonitor so that Prometheus operator can properly pick it up.<\/td>\n <\/tr>\n <tr>\n <td>serviceMonitor.metricRelabelings<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Relabeling rules to apply to metrics. Refer to <a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/configuration\/configuration\/#relabel_config\">relabel_config<\/a> for details.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"logging\" id=\"logging\">Logging<a class=\"heading-anchor\" href=\"#logging\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>logging.level<\/td>\n <td>string<\/td>\n <td><code>&quot;INFO&quot;<\/code><\/td>\n <td>The log level of the root category, which is used as the default log level for all categories.<\/td>\n <\/tr>\n <tr>\n <td>logging.requestIdHeaderName<\/td>\n <td>string<\/td>\n <td><code>&quot;X-Request-ID&quot;<\/code><\/td>\n <td>The header name to use for the request ID.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.enabled<\/td>\n <td>bool<\/td>\n <td><code>true<\/code><\/td>\n <td>Whether to enable the console appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.threshold<\/td>\n <td>string<\/td>\n <td><code>&quot;ALL&quot;<\/code><\/td>\n <td>The log level of the console appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.json<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to log in JSON format.<\/td>\n <\/tr>\n <tr>\n <td>logging.console.format<\/td>\n <td>string<\/td>\n <td><code>&quot;%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n&quot;<\/code><\/td>\n <td>The log format to use. Ignored if JSON format is enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/telemetry\/#logging\">Logging<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to enable the file appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.threshold<\/td>\n <td>string<\/td>\n <td><code>&quot;ALL&quot;<\/code><\/td>\n <td>The log level of the file appender.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.json<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to log in JSON format.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.format<\/td>\n <td>string<\/td>\n <td><code>&quot;%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] [%X{requestId},%X{realmId}] [%X{traceId},%X{parentId},%X{spanId},%X{sampled}] (%t) %s%e%n&quot;<\/code><\/td>\n <td>The log format to use. Ignored if JSON format is enabled. See <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/telemetry\/#logging\">Logging<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.logsDir<\/td>\n <td>string<\/td>\n <td><code>&quot;\/deployments\/logs&quot;<\/code><\/td>\n <td>The local directory where log files are stored. The persistent volume claim will be mounted here.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.fileName<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris.log&quot;<\/code><\/td>\n <td>The log file name.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.maxFileSize<\/td>\n <td>string<\/td>\n <td><code>&quot;100Mi&quot;<\/code><\/td>\n <td>The maximum size of the log file before it is rotated. Should be expressed as a Kubernetes quantity.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.maxBackupIndex<\/td>\n <td>int<\/td>\n <td><code>5<\/code><\/td>\n <td>The maximum number of backup files to keep.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.rotation.fileSuffix<\/td>\n <td>string<\/td>\n <td><code>nil<\/code><\/td>\n <td>An optional suffix to append to the rotated log files. If present, the rotated log files will be grouped in time buckets, and each bucket will contain at most maxBackupIndex files. The suffix must be in a date-time format that is understood by DateTimeFormatter. If the suffix ends with .gz or .zip, the rotated files will also be compressed using the corresponding algorithm.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.className<\/td>\n <td>string<\/td>\n <td><code>&quot;standard&quot;<\/code><\/td>\n <td>The storage class name of the persistent volume claim to create.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.size<\/td>\n <td>string<\/td>\n <td><code>&quot;512Gi&quot;<\/code><\/td>\n <td>The size of the persistent volume claim to create.<\/td>\n <\/tr>\n <tr>\n <td>logging.file.storage.selectorLabels<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Labels to add to the persistent volume claim spec selector; a persistent volume with matching labels must exist. Leave empty if using dynamic provisioning.<\/td>\n <\/tr>\n <tr>\n <td>logging.categories<\/td>\n <td>object<\/td>\n <td><code>{&quot;org.apache&quot;:{&quot;iceberg.rest&quot;:&quot;INFO&quot;,&quot;polaris&quot;:&quot;INFO&quot;}}<\/code><\/td>\n <td>Configuration for specific log categories. Keys are category names (e.g., <code>org.apache.polaris<\/code>), values are log levels. Log levels can be passed &ldquo;flattened&rdquo; or as nested YAML objects (see examples below).<\/td>\n <\/tr>\n <tr>\n <td>logging.mdc<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Configuration for MDC (Mapped Diagnostic Context). Values specified here will be added to the log context of all incoming requests and can be used in log patterns. MDC values can be passed &ldquo;flattened&rdquo; or as nested YAML objects.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"realm-context\" id=\"realm-context\">Realm Context<a class=\"heading-anchor\" href=\"#realm-context\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>realmContext.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of realm context resolver to use. Two built-in types are supported: default and test; test is not recommended for production as it does not perform any realm validation.<\/td>\n <\/tr>\n <tr>\n <td>realmContext.realms<\/td>\n <td>list<\/td>\n <td><code>[&quot;POLARIS&quot;]<\/code><\/td>\n <td>List of valid realms, for use with the default realm context resolver. The first realm in the list is the default realm. Realms not in this list will be rejected.<\/td>\n <\/tr>\n <tr>\n <td>realmContext.requireHeader<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Whether to require the realm header in requests. When set to true, requests without the realm header will be rejected. When set to false, the default realm will be used instead. It is recommended to set this to true in production environments.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"features\" id=\"features\">Features<a class=\"heading-anchor\" href=\"#features\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>features<\/td>\n <td>object<\/td>\n <td><code>{&quot;SUPPORTED_CATALOG_STORAGE_TYPES&quot;:[&quot;S3&quot;,&quot;GCS&quot;,&quot;AZURE&quot;],&quot;realmOverrides&quot;:{}}<\/code><\/td>\n <td>Features to enable or disable globally. If a feature is not present in the map, the default built-in value is used. Refer to Polaris <a href=\"https:\/\/polaris.apache.org\/releases\/1.5.0\/configuration\/configuration-reference\">Configuration reference<\/a> for a complete list of available features.<\/td>\n <\/tr>\n <tr>\n <td>features.realmOverrides<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Features to enable or disable per realm. This field is a map of maps. The realm name is the key, and the value is a map of feature names to values. If a feature is not present in the map, the global value is used.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"persistence\" id=\"persistence\">Persistence<a class=\"heading-anchor\" href=\"#persistence\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>persistence.type<\/td>\n <td>string<\/td>\n <td><code>&quot;in-memory&quot;<\/code><\/td>\n <td>The type of persistence to use. Three built-in types are supported: in-memory, relational-jdbc, and nosql (beta).<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The secret name to pull database connection properties from<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.username<\/td>\n <td>string<\/td>\n <td><code>&quot;username&quot;<\/code><\/td>\n <td>The secret key holding the database username for authentication<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.password<\/td>\n <td>string<\/td>\n <td><code>&quot;password&quot;<\/code><\/td>\n <td>The secret key holding the database password for authentication<\/td>\n <\/tr>\n <tr>\n <td>persistence.relationalJdbc.secret.jdbcUrl<\/td>\n <td>string<\/td>\n <td><code>&quot;jdbcUrl&quot;<\/code><\/td>\n <td>The secret key holding the database JDBC connection URL<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.backend<\/td>\n <td>string<\/td>\n <td><code>&quot;MongoDb&quot;<\/code><\/td>\n <td>The NoSQL backend to use. Two built-in types are supported: MongoDb and InMemory. Only MongoDb is supported for production use.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.database<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris&quot;<\/code><\/td>\n <td>The MongoDB database name to use.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The secret name to pull the MongoDB connection string from.<\/td>\n <\/tr>\n <tr>\n <td>persistence.nosql.secret.connectionString<\/td>\n <td>string<\/td>\n <td><code>&quot;connectionString&quot;<\/code><\/td>\n <td>The secret key holding the MongoDB connection string.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"file-io\" id=\"file-io\">File IO<a class=\"heading-anchor\" href=\"#file-io\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>fileIo.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of file IO to use. Two built-in types are supported: default and wasb. The wasb one translates WASB paths to ABFS ones.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"storage\" id=\"storage\">Storage<a class=\"heading-anchor\" href=\"#storage\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>storage.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull storage credentials from.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.awsAccessKeyId<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the AWS access key ID from. Only required when using AWS.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.awsSecretAccessKey<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the AWS secret access key from. Only required when using AWS.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.gcpToken<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the GCP token from. Only required when using GCP.<\/td>\n <\/tr>\n <tr>\n <td>storage.secret.gcpTokenLifespan<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The key in the secret to pull the GCP token expiration time from. Only required when using GCP. Must be a valid ISO 8601 duration. The default is PT1H (1 hour).<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"authentication\" id=\"authentication\">Authentication<a class=\"heading-anchor\" href=\"#authentication\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>authentication.type<\/td>\n <td>string<\/td>\n <td><code>&quot;internal&quot;<\/code><\/td>\n <td>The type of authentication to use. Three built-in types are supported: internal, external, and mixed.<\/td>\n <\/tr>\n <tr>\n <td>authentication.authenticator.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of authenticator to use.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenService.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The token service implementation to use. Two built-in types are supported: default and disabled. Only relevant when using internal (or mixed) authentication. When using external authentication, the token service is always disabled.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.type<\/td>\n <td>string<\/td>\n <td><code>&quot;rsa-key-pair&quot;<\/code><\/td>\n <td>The token broker implementation to use. Two built-in types are supported: rsa-key-pair and symmetric-key. Only relevant when using internal (or mixed) authentication. When using external authentication, the token broker is not used.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.maxTokenGeneration<\/td>\n <td>string<\/td>\n <td><code>&quot;PT1H&quot;<\/code><\/td>\n <td>Maximum token generation duration (e.g., PT1H for 1 hour).<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull the keys from. If not provided, a key pair will be generated. This is not recommended for production.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.rsaKeyPair.publicKey<\/td>\n <td>string<\/td>\n <td><code>&quot;public.pem&quot;<\/code><\/td>\n <td>Key name inside the secret for the RSA public key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.rsaKeyPair.privateKey<\/td>\n <td>string<\/td>\n <td><code>&quot;private.pem&quot;<\/code><\/td>\n <td>Key name inside the secret for the RSA private key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.tokenBroker.secret.symmetricKey.secretKey<\/td>\n <td>string<\/td>\n <td><code>&quot;symmetric.key&quot;<\/code><\/td>\n <td>Key name inside the secret for the symmetric key.<\/td>\n <\/tr>\n <tr>\n <td>authentication.realmOverrides<\/td>\n <td>object<\/td>\n <td><code>{}<\/code><\/td>\n <td>Authentication configuration overrides per realm.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"oidc\" id=\"oidc\">OIDC<a class=\"heading-anchor\" href=\"#oidc\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>oidc.authServeUrl<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The authentication server URL. Must be provided if at least one realm is configured for external authentication.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.id<\/td>\n <td>string<\/td>\n <td><code>&quot;polaris&quot;<\/code><\/td>\n <td>The client ID to use when contacting the authentication server&rsquo;s introspection endpoint in order to validate tokens.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.secret.name<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The name of the secret to pull the client secret from. If not provided, the client is assumed to not require a client secret when contacting the introspection endpoint.<\/td>\n <\/tr>\n <tr>\n <td>oidc.client.secret.key<\/td>\n <td>string<\/td>\n <td><code>&quot;clientSecret&quot;<\/code><\/td>\n <td>The key name inside the secret to pull the client secret from.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The <code>PrincipalMapper<\/code> implementation to use. Only one built-in type is supported: default.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.idClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The path to the claim that contains the principal ID. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_id&rdquo; would look for the &ldquo;principal_id&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. Optional. Either this option or <code>nameClaimPath<\/code> (or both) must be provided.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalMapper.nameClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The claim that contains the principal name. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_name&rdquo; would look for the &ldquo;principal_name&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. Optional. Either this option or <code>idClaimPath<\/code> (or both) must be provided.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The <code>PrincipalRolesMapper<\/code> implementation to use. Only one built-in type is supported: default.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.rolesClaimPath<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The path to the claim that contains the principal roles. Nested paths can be expressed using &ldquo;\/&rdquo; as a separator, e.g. &ldquo;polaris\/principal_roles&rdquo; would look for the &ldquo;principal_roles&rdquo; field inside the &ldquo;polaris&rdquo; object in the token claims. If not set, Quarkus looks for roles in standard locations. See <a href=\"https:\/\/quarkus.io\/guides\/security-oidc-bearer-token-authentication#token-claims-and-security-identity-roles\">Quarkus OIDC Token Claims<\/a>.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.filter<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>A regular expression that matches the role names in the identity. Only roles that match this regex will be included in the Polaris-specific roles.<\/td>\n <\/tr>\n <tr>\n <td>oidc.principalRolesMapper.mappings<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>A list of regex mappings that will be applied to each role name in the identity. This can be used to transform the role names in the identity into role names as expected by Polaris. The default Authenticator expects the security identity to expose role names in the format <code>POLARIS_ROLE:&lt;role name&gt;<\/code>.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"cors\" id=\"cors\">CORS<a class=\"heading-anchor\" href=\"#cors\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>cors.enabled<\/td>\n <td>bool<\/td>\n <td><code>false<\/code><\/td>\n <td>Specifies whether the CORS filter should be enabled. See <a href=\"https:\/\/quarkus.io\/guides\/http-reference#cors-filter\">CORS<\/a> for details.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedOrigins<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>Origins allowed for CORS, e.g. <a href=\"http:\/\/polaris.apache.org\">http:\/\/polaris.apache.org<\/a>, http:\/\/localhost:8181. In case an entry of the list is surrounded by forward slashes, it is interpreted as a regular expression.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedMethods<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP methods allowed for CORS, ex: GET, PUT, POST. If this is not set or empty, all requested methods are considered allowed.<\/td>\n <\/tr>\n <tr>\n <td>cors.allowedHeaders<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP headers allowed for CORS, ex: X-Custom, Content-Disposition. If this is not set or empty, all requested headers are considered allowed.<\/td>\n <\/tr>\n <tr>\n <td>cors.exposedHeaders<\/td>\n <td>list<\/td>\n <td><code>[]<\/code><\/td>\n <td>HTTP headers exposed to the client, ex: X-Custom, Content-Disposition. The default is an empty list.<\/td>\n <\/tr>\n <tr>\n <td>cors.accessControlMaxAge<\/td>\n <td>string<\/td>\n <td><code>&quot;&quot;<\/code><\/td>\n <td>The <code>Access-Control-Max-Age<\/code> response header value indicating how long the results of a pre-flight request can be cached. Must be a valid duration.<\/td>\n <\/tr>\n <tr>\n <td>cors.accessControlAllowCredentials<\/td>\n <td>bool<\/td>\n <td><code>nil<\/code><\/td>\n <td>The <code>Access-Control-Allow-Credentials<\/code> response header. The value of this header will default to <code>true<\/code> if <code>allowedOrigins<\/code> property is set and there is a match with the precise <code>Origin<\/code> header.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"rate-limiter\" id=\"rate-limiter\">Rate Limiter<a class=\"heading-anchor\" href=\"#rate-limiter\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>rateLimiter.type<\/td>\n <td>string<\/td>\n <td><code>&quot;no-op&quot;<\/code><\/td>\n <td>The type of rate limiter filter to use. Two built-in types are supported: default and no-op.<\/td>\n <\/tr>\n <tr>\n <td>rateLimiter.tokenBucket.type<\/td>\n <td>string<\/td>\n <td><code>&quot;default&quot;<\/code><\/td>\n <td>The type of the token bucket rate limiter. Only the default type is supported out of the box.<\/td>\n <\/tr>\n <tr>\n <td>rateLimiter.tokenBucket.requestsPerSecond<\/td>\n <td>int<\/td>\n <td><code>9999<\/code><\/td>\n <td>The maximum number of requests (permits) per second allowed for each realm.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"tasks\" id=\"tasks\">Tasks<a class=\"heading-anchor\" href=\"#tasks\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<table>\n <thead>\n <tr>\n <th>Key<\/th>\n <th>Type<\/th>\n <th>Default<\/th>\n <th>Description<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>tasks.maxConcurrentTasks<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of concurrent tasks that can be executed at the same time. If unspecified or zero, defaults to the number of available cores.<\/td>\n <\/tr>\n <tr>\n <td>tasks.maxQueuedTasks<\/td>\n <td>int<\/td>\n <td><code>0<\/code><\/td>\n <td>The maximum number of tasks that can be queued up for execution. If unspecified or zero, defaults to Integer.MAX_VALUE.<\/td>\n <\/tr>\n <\/tbody>\n<\/table>"},{"title":"Polaris Console","link":"https:\/\/polaris.apache.org\/tools\/polaris-console\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/tools\/polaris-console\/","description":"<p>The Polaris Console is a modern web interface for the Polaris server.<\/p>\n<p>You can find more details about Polaris Console on the <a href=\"https:\/\/github.com\/apache\/polaris-tools\/blob\/main\/console\/README.md\">README.md<\/a>.<\/p>"},{"title":"Polaris Synchronizer","link":"https:\/\/polaris.apache.org\/tools\/polaris-synchronizer\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/tools\/polaris-synchronizer\/","description":"<p>The Polaris Synchronizer is a tool to migrate entities from one Polaris instance to another.<\/p>\n<p>To use this tool, please see this <a href=\"https:\/\/github.com\/apache\/polaris-tools\/blob\/main\/polaris-synchronizer\/README.md\">guide<\/a>.<\/p>"},{"title":"Polaris Evolution","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/evolution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/evolution\/","description":"<p>This page discusses what can be expected from Apache Polaris as the project evolves.<\/p>\n<h2 id=\"using-polaris-as-a-catalog\" id=\"using-polaris-as-a-catalog\">Using Polaris as a Catalog<a class=\"heading-anchor\" href=\"#using-polaris-as-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,\nit implements the Iceberg REST Catalog API and its own REST APIs.<\/p>\n<p>Revisions of the Iceberg REST Catalog API are controlled by the <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>\ncommunity. Polaris attempts to accurately implement this specification. Nonetheless,\noptional REST Catalog features may or may not be supported immediately. In general,\nthere is no guarantee that Polaris releases always implement the latest version of\nthe Iceberg REST Catalog API.<\/p>"},{"title":"Polaris Evolution","link":"https:\/\/polaris.apache.org\/releases\/1.0.0\/evolution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.0\/evolution\/","description":"<p>This page discusses what can be expected from Apache Polaris as the project evolves.<\/p>\n<h2 id=\"using-polaris-as-a-catalog\" id=\"using-polaris-as-a-catalog\">Using Polaris as a Catalog<a class=\"heading-anchor\" href=\"#using-polaris-as-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,\nit implements the Iceberg REST Catalog API and its own REST APIs.<\/p>\n<p>Revisions of the Iceberg REST Catalog API are controlled by the <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>\ncommunity. Polaris attempts to accurately implement this specification. Nonetheless,\noptional REST Catalog features may or may not be supported immediately. In general,\nthere is no guarantee that Polaris releases always implement the latest version of\nthe Iceberg REST Catalog API.<\/p>"},{"title":"Polaris Evolution","link":"https:\/\/polaris.apache.org\/releases\/1.0.1\/evolution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.0.1\/evolution\/","description":"<p>This page discusses what can be expected from Apache Polaris as the project evolves.<\/p>\n<h2 id=\"using-polaris-as-a-catalog\" id=\"using-polaris-as-a-catalog\">Using Polaris as a Catalog<a class=\"heading-anchor\" href=\"#using-polaris-as-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,\nit implements the Iceberg REST Catalog API and its own REST APIs.<\/p>\n<p>Revisions of the Iceberg REST Catalog API are controlled by the <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>\ncommunity. Polaris attempts to accurately implement this specification. Nonetheless,\noptional REST Catalog features may or may not be supported immediately. In general,\nthere is no guarantee that Polaris releases always implement the latest version of\nthe Iceberg REST Catalog API.<\/p>"},{"title":"Polaris Evolution","link":"https:\/\/polaris.apache.org\/releases\/1.1.0\/evolution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.1.0\/evolution\/","description":"<p>This page discusses what can be expected from Apache Polaris as the project evolves.<\/p>\n<h2 id=\"using-polaris-as-a-catalog\" id=\"using-polaris-as-a-catalog\">Using Polaris as a Catalog<a class=\"heading-anchor\" href=\"#using-polaris-as-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,\nit implements the Iceberg REST Catalog API and its own REST APIs.<\/p>\n<p>Revisions of the Iceberg REST Catalog API are controlled by the <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>\ncommunity. Polaris attempts to accurately implement this specification. Nonetheless,\noptional REST Catalog features may or may not be supported immediately. In general,\nthere is no guarantee that Polaris releases always implement the latest version of\nthe Iceberg REST Catalog API.<\/p>"},{"title":"Polaris Evolution","link":"https:\/\/polaris.apache.org\/releases\/1.2.0\/evolution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.2.0\/evolution\/","description":"<p>This page discusses what can be expected from Apache Polaris as the project evolves.<\/p>\n<h2 id=\"using-polaris-as-a-catalog\" id=\"using-polaris-as-a-catalog\">Using Polaris as a Catalog<a class=\"heading-anchor\" href=\"#using-polaris-as-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,\nit implements the Iceberg REST Catalog API and its own REST APIs.<\/p>\n<p>Revisions of the Iceberg REST Catalog API are controlled by the <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>\ncommunity. Polaris attempts to accurately implement this specification. Nonetheless,\noptional REST Catalog features may or may not be supported immediately. In general,\nthere is no guarantee that Polaris releases always implement the latest version of\nthe Iceberg REST Catalog API.<\/p>"},{"title":"Polaris Evolution","link":"https:\/\/polaris.apache.org\/releases\/1.3.0\/evolution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.3.0\/evolution\/","description":"<p>This page discusses what can be expected from Apache Polaris as the project evolves.<\/p>\n<h2 id=\"using-polaris-as-a-catalog\" id=\"using-polaris-as-a-catalog\">Using Polaris as a Catalog<a class=\"heading-anchor\" href=\"#using-polaris-as-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,\nit implements the Iceberg REST Catalog API and its own REST APIs.<\/p>\n<p>Revisions of the Iceberg REST Catalog API are controlled by the <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>\ncommunity. Polaris attempts to accurately implement this specification. Nonetheless,\noptional REST Catalog features may or may not be supported immediately. In general,\nthere is no guarantee that Polaris releases always implement the latest version of\nthe Iceberg REST Catalog API.<\/p>"},{"title":"Polaris Evolution","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/evolution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/evolution\/","description":"<p>This page discusses what can be expected from Apache Polaris as the project evolves.<\/p>\n<h2 id=\"using-polaris-as-a-catalog\" id=\"using-polaris-as-a-catalog\">Using Polaris as a Catalog<a class=\"heading-anchor\" href=\"#using-polaris-as-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,\nit implements the Iceberg REST Catalog API and its own REST APIs.<\/p>\n<p>Revisions of the Iceberg REST Catalog API are controlled by the <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>\ncommunity. Polaris attempts to accurately implement this specification. Nonetheless,\noptional REST Catalog features may or may not be supported immediately. In general,\nthere is no guarantee that Polaris releases always implement the latest version of\nthe Iceberg REST Catalog API.<\/p>"},{"title":"Polaris Evolution","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/evolution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/evolution\/","description":"<p>This page discusses what can be expected from Apache Polaris as the project evolves.<\/p>\n<h2 id=\"using-polaris-as-a-catalog\" id=\"using-polaris-as-a-catalog\">Using Polaris as a Catalog<a class=\"heading-anchor\" href=\"#using-polaris-as-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,\nit implements the Iceberg REST Catalog API and its own REST APIs.<\/p>\n<p>Revisions of the Iceberg REST Catalog API are controlled by the <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>\ncommunity. Polaris attempts to accurately implement this specification. Nonetheless,\noptional REST Catalog features may or may not be supported immediately. In general,\nthere is no guarantee that Polaris releases always implement the latest version of\nthe Iceberg REST Catalog API.<\/p>"},{"title":"Polaris Evolution","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/evolution\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/evolution\/","description":"<p>This page discusses what can be expected from Apache Polaris as the project evolves.<\/p>\n<h2 id=\"using-polaris-as-a-catalog\" id=\"using-polaris-as-a-catalog\">Using Polaris as a Catalog<a class=\"heading-anchor\" href=\"#using-polaris-as-a-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,\nit implements the Iceberg REST Catalog API and its own REST APIs.<\/p>\n<p>Revisions of the Iceberg REST Catalog API are controlled by the <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>\ncommunity. Polaris attempts to accurately implement this specification. Nonetheless,\noptional REST Catalog features may or may not be supported immediately. In general,\nthere is no guarantee that Polaris releases always implement the latest version of\nthe Iceberg REST Catalog API.<\/p>"},{"title":"Building a Custom Server Based on Polaris","link":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/downstream-build\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/in-dev\/unreleased\/downstream-build\/","description":"<p>This page highlights a few keys points for building custom servers based on Apache Polaris.<\/p>\n<p>Polaris produces several jars. These jars may be used to build custom catalog server\naccording to the terms of the license included in Polaris distributions.<\/p>\n<h2 id=\"general-principles\" id=\"general-principles\">General Principles<a class=\"heading-anchor\" href=\"#general-principles\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Create a module in your project (Maven, Gradle or any other build tool) for a\n<a href=\"https:\/\/code.quarkus.io\/\">Quarkus Application<\/a>.<\/li>\n<li>Include <code>polaris-runtime-service<\/code> as a runtime or compile-time dependency.<\/li>\n<li>Include \/ exclude other dependencies according to the project&rsquo;s needs (e.g., an alternative JDBC driver).<\/li>\n<li>Do not include <code>polaris-runtime-defaults<\/code> or <code>polaris-server<\/code> as dependencies.<\/li>\n<li>Provide your own <code>application.properties<\/code> file for your Quarkus build.<\/li>\n<li>Define your own Quarkus Application Name and Version (do not use &ldquo;Apache Polaris&rdquo; as the application name).<\/li>\n<\/ul>\n<h2 id=\"background\" id=\"background\">Background<a class=\"heading-anchor\" href=\"#background\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The <code>polaris-server<\/code> module is intended to be a particular way to build a Polaris server. It includes\ndependencies that are considered essential for the Apache Polaris distribution. This is not necessarily\nthe case for downstream builds, which may want to exclude some features and include others (perhaps\ncustom implementations of some Polaris SPI interfaces).<\/p>"},{"title":"Building a Custom Server Based on Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.4.0\/downstream-build\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.0\/downstream-build\/","description":"<p>This page highlights a few keys points for building custom servers based on Apache Polaris.<\/p>\n<p>Polaris produces several jars. These jars may be used to build custom catalog server\naccording to the terms of the license included in Polaris distributions.<\/p>\n<h2 id=\"general-principles\" id=\"general-principles\">General Principles<a class=\"heading-anchor\" href=\"#general-principles\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Create a module in your project (Maven, Gradle or any other build tool) for a\n<a href=\"https:\/\/code.quarkus.io\/\">Quarkus Application<\/a>.<\/li>\n<li>Include <code>polaris-runtime-service<\/code> as a runtime or compile-time dependency.<\/li>\n<li>Include \/ exclude other dependencies according to the project&rsquo;s needs (e.g., an alternative JDBC driver).<\/li>\n<li>Do not include <code>polaris-runtime-defaults<\/code> or <code>polaris-server<\/code> as dependencies.<\/li>\n<li>Provide your own <code>application.properties<\/code> file for your Quarkus build.<\/li>\n<li>Define your own Quarkus Application Name and Version (do not use &ldquo;Apache Polaris&rdquo; as the application name).<\/li>\n<\/ul>\n<h2 id=\"background\" id=\"background\">Background<a class=\"heading-anchor\" href=\"#background\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The <code>polaris-server<\/code> module is intended to be a particular way to build a Polaris server. It includes\ndependencies that are considered essential for the Apache Polaris distribution. This is not necessarily\nthe case for downstream builds, which may want to exclude some features and include others (perhaps\ncustom implementations of some Polaris SPI interfaces).<\/p>"},{"title":"Building a Custom Server Based on Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.4.1\/downstream-build\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.4.1\/downstream-build\/","description":"<p>This page highlights a few keys points for building custom servers based on Apache Polaris.<\/p>\n<p>Polaris produces several jars. These jars may be used to build custom catalog server\naccording to the terms of the license included in Polaris distributions.<\/p>\n<h2 id=\"general-principles\" id=\"general-principles\">General Principles<a class=\"heading-anchor\" href=\"#general-principles\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Create a module in your project (Maven, Gradle or any other build tool) for a\n<a href=\"https:\/\/code.quarkus.io\/\">Quarkus Application<\/a>.<\/li>\n<li>Include <code>polaris-runtime-service<\/code> as a runtime or compile-time dependency.<\/li>\n<li>Include \/ exclude other dependencies according to the project&rsquo;s needs (e.g., an alternative JDBC driver).<\/li>\n<li>Do not include <code>polaris-runtime-defaults<\/code> or <code>polaris-server<\/code> as dependencies.<\/li>\n<li>Provide your own <code>application.properties<\/code> file for your Quarkus build.<\/li>\n<li>Define your own Quarkus Application Name and Version (do not use &ldquo;Apache Polaris&rdquo; as the application name).<\/li>\n<\/ul>\n<h2 id=\"background\" id=\"background\">Background<a class=\"heading-anchor\" href=\"#background\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The <code>polaris-server<\/code> module is intended to be a particular way to build a Polaris server. It includes\ndependencies that are considered essential for the Apache Polaris distribution. This is not necessarily\nthe case for downstream builds, which may want to exclude some features and include others (perhaps\ncustom implementations of some Polaris SPI interfaces).<\/p>"},{"title":"Building a Custom Server Based on Polaris","link":"https:\/\/polaris.apache.org\/releases\/1.5.0\/downstream-build\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/1.5.0\/downstream-build\/","description":"<p>This page highlights a few keys points for building custom servers based on Apache Polaris.<\/p>\n<p>Polaris produces several jars. These jars may be used to build custom catalog server\naccording to the terms of the license included in Polaris distributions.<\/p>\n<h2 id=\"general-principles\" id=\"general-principles\">General Principles<a class=\"heading-anchor\" href=\"#general-principles\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<ul>\n<li>Create a module in your project (Maven, Gradle or any other build tool) for a\n<a href=\"https:\/\/code.quarkus.io\/\">Quarkus Application<\/a>.<\/li>\n<li>Include <code>polaris-runtime-service<\/code> as a runtime or compile-time dependency.<\/li>\n<li>Include \/ exclude other dependencies according to the project&rsquo;s needs (e.g., an alternative JDBC driver).<\/li>\n<li>Do not include <code>polaris-runtime-defaults<\/code> or <code>polaris-server<\/code> as dependencies.<\/li>\n<li>Provide your own <code>application.properties<\/code> file for your Quarkus build.<\/li>\n<li>Define your own Quarkus Application Name and Version (do not use &ldquo;Apache Polaris&rdquo; as the application name).<\/li>\n<\/ul>\n<h2 id=\"background\" id=\"background\">Background<a class=\"heading-anchor\" href=\"#background\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The <code>polaris-server<\/code> module is intended to be a particular way to build a Polaris server. It includes\ndependencies that are considered essential for the Apache Polaris distribution. This is not necessarily\nthe case for downstream builds, which may want to exclude some features and include others (perhaps\ncustom implementations of some Polaris SPI interfaces).<\/p>"},{"title":"Build a Local Open Data Lakehouse with k3d, Apache Ozone, Apache Polaris and Trino","link":"https:\/\/polaris.apache.org\/blog\/2026\/04\/04\/build-a-local-open-data-lakehouse-with-k3d-apache-ozone-apache-polaris-and-trino\/","pubDate":"Sat, 04 Apr 2026 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2026\/04\/04\/build-a-local-open-data-lakehouse-with-k3d-apache-ozone-apache-polaris-and-trino\/","description":"<blockquote>\n<p><strong>TL;DR<\/strong> \u2014 Spin up a fully integrated, locally-running open data lakehouse on your laptop\nin under 30 minutes using Kubernetes in Docker (k3d), Apache Ozone as S3-compatible\nobject storage, Apache Polaris as the Iceberg REST catalog and Trino as the SQL query\nengine. No cloud account required.<\/p>\n<\/blockquote>\n<hr>\n<h2 id=\"why-this-stack\" id=\"why-this-stack\">Why This Stack?<a class=\"heading-anchor\" href=\"#why-this-stack\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The modern open data lakehouse is built on open standards: <strong>Apache Iceberg<\/strong> as the table\nformat, a <strong>REST catalog<\/strong> to manage metadata, object storage for the actual files and a\ndecoupled compute engine for queries. This separation lets you swap any layer without\nrewriting the others.<\/p>"},{"title":"Introducing the setup Command in Apache Polaris","link":"https:\/\/polaris.apache.org\/blog\/2026\/03\/29\/introducing-the-setup-command-in-apache-polaris\/","pubDate":"Sun, 29 Mar 2026 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2026\/03\/29\/introducing-the-setup-command-in-apache-polaris\/","description":"<h2 id=\"introduction\" id=\"introduction\">Introduction<a class=\"heading-anchor\" href=\"#introduction\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>As data platforms grow, managing Apache Polaris entities\u2014such as catalogs, principals, and their associated roles\u2014quickly becomes a complex orchestration problem. Traditionally, setting up a new Apache Polaris environment meant executing a series of individual CLI commands or API calls.<\/p>\n<p>To simplify this workflow, the Apache Polaris Python CLI now includes a <code>setup<\/code> command. This feature introduces an infrastructure-as-code approach, allowing you to define your Polaris configuration in a single YAML file and apply it with a single command.<\/p>"},{"title":"Apache Polaris Graduates to Top Level Project!","link":"https:\/\/polaris.apache.org\/blog\/2026\/02\/19\/apache-polaris-graduates-to-top-level-project\/","pubDate":"Thu, 19 Feb 2026 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2026\/02\/19\/apache-polaris-graduates-to-top-level-project\/","description":"<p>We are thrilled to announce that <strong>Apache Polaris<\/strong> has officially graduated from the Apache Incubator to\nbecome a <strong>Top Level Project (TLP)<\/strong> at the Apache Software Foundation (ASF).<\/p>\n<p>This milestone marks a significant pivotal point for the project, moving from a promising proposal to a mature,\ncommunity-governed standard for data cataloging and access control in the open data lakehouse.<\/p>\n<h3 id=\"what-is-apache-polaris\" id=\"what-is-apache-polaris\">What is Apache Polaris?<a class=\"heading-anchor\" href=\"#what-is-apache-polaris\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>For those who are new to the project, Polaris is a <strong>cloud-native, open-source catalog for Apache Iceberg<\/strong>.\nIt provides a centralized service to manage your data across different engines and clouds,\nensuring that your Iceberg tables remain interoperable and secure.<\/p>"},{"title":"Floe and Apache Polaris: Policy-Driven Table Maintenance for Apache Iceberg","link":"https:\/\/polaris.apache.org\/blog\/2026\/02\/04\/floe-and-apache-polaris-policy-driven-table-maintenance-for-apache-iceberg\/","pubDate":"Wed, 04 Feb 2026 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2026\/02\/04\/floe-and-apache-polaris-policy-driven-table-maintenance-for-apache-iceberg\/","description":"<h2 id=\"introduction\" id=\"introduction\">Introduction<a class=\"heading-anchor\" href=\"#introduction\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>Iceberg tables accumulate technical debt over time. Small files multiply as streaming jobs append data in micro-batches. Delete files pile up from CDC workloads. Snapshots grow unbounded, bloating metadata. Without regular maintenance, query performance degrades, storage costs rise, and planning times stretch from milliseconds to seconds.<\/p>\n<p>Apache Polaris provides a vendor-neutral Iceberg catalog with governance and access control, but it does not execute maintenance operations. The catalog manages metadata and enforces permissions. Compaction, snapshot expiration, orphan cleanup, and manifest optimization remain the user&rsquo;s responsibility.<\/p>"},{"title":"Mapping Legacy and Heterogeneous Datalakes in Apache Polaris","link":"https:\/\/polaris.apache.org\/blog\/2026\/01\/12\/mapping-legacy-and-heterogeneous-datalakes-in-apache-polaris\/","pubDate":"Mon, 12 Jan 2026 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2026\/01\/12\/mapping-legacy-and-heterogeneous-datalakes-in-apache-polaris\/","description":"<h2 id=\"introduction\" id=\"introduction\">Introduction<a class=\"heading-anchor\" href=\"#introduction\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>The data lake community and major engines such as Spark, Snowflake, and Trino are standardizing on the Iceberg REST catalog protocol for data discovery and access. While this shift provides the foundation for a modern lakehouse with transactions and centralized governance, many organizations still maintain significant volumes of data managed by legacy Hadoop\/Hive catalogs or heterogeneous data lakes, resulting in siloed data environments with specialized query stacks.<\/p>"},{"title":"Apache Polaris and Lance: Bringing AI-Native Storage to the Open Multimodal Lakehouse","link":"https:\/\/polaris.apache.org\/blog\/2026\/01\/06\/apache-polaris-and-lance-bringing-ai-native-storage-to-the-open-multimodal-lakehouse\/","pubDate":"Tue, 06 Jan 2026 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2026\/01\/06\/apache-polaris-and-lance-bringing-ai-native-storage-to-the-open-multimodal-lakehouse\/","description":"<h2 id=\"introduction\" id=\"introduction\">Introduction<a class=\"heading-anchor\" href=\"#introduction\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>We are excited to announce the integration between Apache Polaris and the Lance ecosystem,\nenabling users to manage Lance tables through the Apache Polaris Generic Table API.\nThis integration brings AI-native columnar storage to the open multimodal lakehouse,\nallowing organizations to leverage Apache Polaris as a unified catalog for both Iceberg and Lance tables.<\/p>\n<h2 id=\"what-is-lance\" id=\"what-is-lance\">What is Lance?<a class=\"heading-anchor\" href=\"#what-is-lance\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p><a href=\"https:\/\/lance.org\">Lance<\/a> is an open lakehouse format designed for multimodal AI workloads.\nIt contains a file format, table format, and catalog spec that allows you to build a complete\nmultimodal lakehouse on top of object storage to power your AI workflows.\nThe key features of Lance include:<\/p>"},{"title":"Securing S3 data with AWS KMS","link":"https:\/\/polaris.apache.org\/blog\/2025\/12\/24\/securing-s3-data-with-aws-kms\/","pubDate":"Wed, 24 Dec 2025 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2025\/12\/24\/securing-s3-data-with-aws-kms\/","description":"<h2 id=\"introduction\" id=\"introduction\">Introduction<a class=\"heading-anchor\" href=\"#introduction\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>AWS <a href=\"https:\/\/docs.aws.amazon.com\/kms\/latest\/developerguide\/overview.html\">Key Management Service<\/a> (KMS) provides\na way to encrypt S3 data in AWS without exposing raw key material outside AWS services.<\/p>\n<p>Apache Polaris supports using KMS in its catalogs backed by AWS S3 storage.<\/p>\n<p>This functionality will be available in the next release <em>after<\/em> <code>1.3.0-incubating<\/code>.<\/p>\n<h2 id=\"configuring-polaris-catalog\" id=\"configuring-polaris-catalog\">Configuring Polaris Catalog<a class=\"heading-anchor\" href=\"#configuring-polaris-catalog\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<p>KMS settings in Polaris are relevant to S3 buckets that have been configure to use KMS on the AWS side\n(e.g. using SSE-KMS).<\/p>"},{"title":"StarRocks and Apache Polaris Integration: Building a Unified, High-Performance Data Lakehouse","link":"https:\/\/polaris.apache.org\/blog\/2025\/10\/21\/starrocks-and-apache-polaris-integration-building-a-unified-high-performance-data-lakehouse\/","pubDate":"Tue, 21 Oct 2025 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2025\/10\/21\/starrocks-and-apache-polaris-integration-building-a-unified-high-performance-data-lakehouse\/","description":"<h2 id=\"introduction-why-starrocks--apache-polaris\" id=\"introduction-why-starrocks--apache-polaris\">Introduction: Why StarRocks + Apache Polaris?<a class=\"heading-anchor\" href=\"#introduction-why-starrocks--apache-polaris\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h2>\n<h3 id=\"modern-data-architecture-pain-points-silos--engine-lock-in\" id=\"modern-data-architecture-pain-points-silos--engine-lock-in\">Modern Data-Architecture Pain Points: Silos &amp; Engine Lock-in<a class=\"heading-anchor\" href=\"#modern-data-architecture-pain-points-silos--engine-lock-in\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h3>\n<p>Today\u2019s data-driven enterprises face two chronic ailments:<\/p>\n<ul>\n<li>\n<p><strong>Data silos<\/strong> : transactional data sits in RDBMS, click-streams in an S3 data lake, CRM data in a SaaS vault, etc. Cross-domain analysis requires expensive ETL and still arrives stale.<\/p>\n<\/li>\n<li>\n<p><strong>Engine lock-in<\/strong> : every OLAP engine optimises for its own metadata layer and file layout. Migrating to a faster or cheaper engine means re-formatting, re-writing and re-governing years of data.<\/p>"},{"title":"Integrating Apache Polaris with PuppyGraph for Real-time Graph Analysis","link":"https:\/\/polaris.apache.org\/blog\/2025\/10\/02\/integrating-apache-polaris-with-puppygraph-for-real-time-graph-analysis\/","pubDate":"Thu, 02 Oct 2025 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2025\/10\/02\/integrating-apache-polaris-with-puppygraph-for-real-time-graph-analysis\/","description":"<p>Unified data governance has become a hot topic over the last few years. As AI and other data-hungry use cases infiltrate the market, the need for a comprehensive data catalog solution with governance in mind has become critical. <a href=\"https:\/\/github.com\/apache\/polaris\">Apache Polaris<\/a> has found its calling as an open-source solution, specifically built to handle data governed by <a href=\"https:\/\/iceberg.apache.org\/\">Apache Iceberg<\/a>, that is changing the way we manage and access data across various clouds, formats, and platforms. With a foundation rooted in Apache Iceberg, Apache Polaris ensures compatibility with various compute engines and data formats, making it an ideal choice for organizations focused on scalable, open data architectures.<\/p>"},{"title":"Apache Polaris 1.1.0-incubating has been released!","link":"https:\/\/polaris.apache.org\/blog\/2025\/09\/19\/apache-polaris-1.1.0-incubating-has-been-released\/","pubDate":"Fri, 19 Sep 2025 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2025\/09\/19\/apache-polaris-1.1.0-incubating-has-been-released\/","description":"<p>The Apache Polaris team is pleased to announce Apache Polaris 1.1.0-incubating.<\/p>\n<p>This release includes:<\/p>\n<ul>\n<li><strong>New features &amp; enhancements<\/strong>\n** HMS support\n** IMPLICIT authentication type\n** Support for non-AWS S3 compatible storage with STS: MinIO, s3a scheme support\n** Use of Realm instead of RealmId\n** Modularized Federation Architecture\n** Federated Catalog Support in Polaris CLI\n** Expanded External Identity Provider support\n** Python package (official)\n** Documentation improvements (release process, multi-realms configuration)<\/li>\n<li><strong>Bug fixes<\/strong>\n** Fix drop view with default server configuration\n** Fix MinIO support\n** Remove ThreadLocal<\/li>\n<\/ul>\n<p>This release can be downloaded:<\/p>"},{"title":"Doris X Polaris: Building Unified Data Lakehouse with Iceberg REST Catalog - A Practical Guide","link":"https:\/\/polaris.apache.org\/blog\/2025\/09\/15\/doris-x-polaris-building-unified-data-lakehouse-with-iceberg-rest-catalog-a-practical-guide\/","pubDate":"Mon, 15 Sep 2025 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2025\/09\/15\/doris-x-polaris-building-unified-data-lakehouse-with-iceberg-rest-catalog-a-practical-guide\/","description":"<p>With the continuous evolution of data lake technologies, efficiently and securely managing massive datasets stored on object storage (such as AWS S3) while providing unified access endpoints for upstream analytics engines (like <a href=\"https:\/\/doris.apache.org\">Apache Doris<\/a>) has become a core challenge in modern data architectures. <a href=\"https:\/\/polaris.apache.org\/\">Apache Polaris<\/a>, as an open and standardized REST Catalog service for Iceberg, provides an ideal solution to this challenge. It not only handles centralized metadata management but also significantly enhances data lake security and manageability through fine-grained access control and flexible credential management mechanisms.<\/p>"},{"title":"Apache Polaris 1.0.1-incubating has been released!","link":"https:\/\/polaris.apache.org\/blog\/2025\/08\/20\/apache-polaris-1.0.1-incubating-has-been-released\/","pubDate":"Wed, 20 Aug 2025 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/blog\/2025\/08\/20\/apache-polaris-1.0.1-incubating-has-been-released\/","description":"<p>The Apache Polaris team is pleased to announce Apache Polaris 1.0.1-incubating.<\/p>\n<p>This release is a maintenance release on the 1.0.1-incubating one, fixing a couple of issues on the Helm Chart:<\/p>\n<ul>\n<li>remove db-kind in Helm Chart<\/li>\n<li>add relational-jdbc to Helm Chart<\/li>\n<\/ul>\n<p>This release can be downloaded:<\/p>\n<ul>\n<li><a href=\"https:\/\/polaris.apache.org\/downloads\/\">https:\/\/polaris.apache.org\/downloads\/<\/a><\/li>\n<\/ul>\n<p>The artifacts are available on Maven Central.<\/p>\n<p>The Docker images are available on Docker Hub:<\/p>\n<ul>\n<li><a href=\"https:\/\/hub.docker.com\/r\/apache\/polaris\/tags\">https:\/\/hub.docker.com\/r\/apache\/polaris\/tags<\/a><\/li>\n<li><a href=\"https:\/\/hub.docker.com\/r\/apache\/polaris-admin-tool\/tags\">https:\/\/hub.docker.com\/r\/apache\/polaris-admin-tool\/tags<\/a><\/li>\n<\/ul>\n<p>Enjoy !<\/p>\n<p>The Apache Polaris team.<\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/downloads\/readme\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/readme\/","description":"<!--\n Licensed to the Apache Software Foundation (ASF) under one\n or more contributor license agreements. See the NOTICE file\n distributed with this work for additional information\n regarding copyright ownership. The ASF licenses this file\n to you under the Apache License, Version 2.0 (the\n \"License\"); you may not use this file except in compliance\n with the License. You may obtain a copy of the License at\n \n http:\/\/www.apache.org\/licenses\/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing,\n software distributed under the License is distributed on an\n \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n KIND, either express or implied. See the License for the\n specific language governing permissions and limitations\n under the License.\n-->\n<h1 id=\"releases-page-structure\" id=\"releases-page-structure\">Releases Page Structure<a class=\"heading-anchor\" href=\"#releases-page-structure\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>This directory contains the releases page for Apache Polaris releases.<\/p>"},{"title":{},"link":"https:\/\/polaris.apache.org\/guides\/readme\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/guides\/readme\/","description":"<!--\n Licensed to the Apache Software Foundation (ASF) under one\n or more contributor license agreements. See the NOTICE file\n distributed with this work for additional information\n regarding copyright ownership. The ASF licenses this file\n to you under the Apache License, Version 2.0 (the\n \"License\"); you may not use this file except in compliance\n with the License. You may obtain a copy of the License at\n \n http:\/\/www.apache.org\/licenses\/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing,\n software distributed under the License is distributed on an\n \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n KIND, either express or implied. See the License for the\n specific language governing permissions and limitations\n under the License.\n-->\n<h1 id=\"getting-started-with-apache-polaris\" id=\"getting-started-with-apache-polaris\">Getting Started with Apache Polaris<a class=\"heading-anchor\" href=\"#getting-started-with-apache-polaris\" aria-label=\"Anchor\">\ud83d\udd17<\/a>\n<\/h1>\n<p>See the <a href=\"https:\/\/polaris.apache.org\/guides\">Guides section on the web site<\/a> for more information.<\/p>"},{"title":"Latest Download","link":"https:\/\/polaris.apache.org\/downloads\/latest\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/downloads\/latest\/","description":{}},{"title":"Latest Release","link":"https:\/\/polaris.apache.org\/releases\/latest\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/polaris.apache.org\/releases\/latest\/","description":{}}]}}