<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Polaris 1.4.0 Documentation on Apache Polaris</title><link>https://polaris.apache.org/releases/1.4.0/</link><description>Recent content in Apache Polaris 1.4.0 Documentation on Apache Polaris</description><generator>Hugo</generator><language>en-us</language><copyright>&lt;a href="https://www.apache.org/"&gt;Copyright © 2026 The Apache Software Foundation&lt;/a&gt;.&lt;br&gt;Licensed under the &lt;a href="https://www.apache.org/licenses/LICENSE-2.0"&gt;Apache License, Version 2.0&lt;/a&gt;.</copyright><atom:link href="https://polaris.apache.org/releases/1.4.0/index.xml" rel="self" type="application/rss+xml"/><item><title>Admin Tool</title><link>https://polaris.apache.org/releases/1.4.0/admin-tool/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/admin-tool/</guid><description>&lt;p&gt;Polaris includes a tool for administrators to manage the &lt;a href="https://polaris.apache.org/releases/1.4.0/metastores/"&gt;metastore&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The tool is available as a Docker image: &lt;code&gt;apache/polaris-admin-tool&lt;/code&gt;. It can also be downloaded as part of the &lt;a href="https://polaris.apache.org/releases/1.4.0/getting-started/binary-distribution/"&gt;binary distribution&lt;/a&gt;.&lt;/p&gt;
&lt;div class="alert alert-info"&gt;&lt;p class="alert-heading"&gt;
 📝 Note&lt;/p&gt;
 The tool must be built with the necessary database drivers to access the metastore database.
The default build includes drivers for the PostgreSQL and NoSQL (MongoDB) backends.
&lt;/div&gt;

&lt;h2 id="usage" id="usage"&gt;Usage&lt;a class="heading-anchor" href="#usage" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Please make sure the admin tool and Polaris server are with the same version before using it.
To run the standalone JAR, use the following command:&lt;/p&gt;</description></item><item><title>Command Line Interface</title><link>https://polaris.apache.org/releases/1.4.0/command-line-interface/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/command-line-interface/</guid><description>&lt;p&gt;In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.&lt;/p&gt;
&lt;p&gt;The basic syntax of the Polaris CLI is outlined below:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;polaris [options] COMMAND ...

options:
--host
--port
--base-url
--client-id
--client-secret
--access-token
--realm
--header
--profile
--proxy
--debug
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;COMMAND&lt;/code&gt; must be one of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;catalogs&lt;/li&gt;
&lt;li&gt;principals&lt;/li&gt;
&lt;li&gt;principal-roles&lt;/li&gt;
&lt;li&gt;catalog-roles&lt;/li&gt;
&lt;li&gt;namespaces&lt;/li&gt;
&lt;li&gt;privileges&lt;/li&gt;
&lt;li&gt;profiles&lt;/li&gt;
&lt;li&gt;policies&lt;/li&gt;
&lt;li&gt;repair&lt;/li&gt;
&lt;li&gt;setup&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Each &lt;em&gt;command&lt;/em&gt; supports several &lt;em&gt;subcommands&lt;/em&gt;, and some &lt;em&gt;subcommands&lt;/em&gt; have &lt;em&gt;actions&lt;/em&gt; that come after the subcommand in turn. Finally, &lt;em&gt;arguments&lt;/em&gt; 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 &lt;em&gt;command&lt;/em&gt; refers to. Again, the ordering of this positional argument relative to named arguments is not important.&lt;/p&gt;</description></item><item><title>Realm</title><link>https://polaris.apache.org/releases/1.4.0/realm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/realm/</guid><description>&lt;p&gt;This page explains what a realm is and what it is used for in Polaris.&lt;/p&gt;
&lt;h3 id="what-is-it" id="what-is-it"&gt;What is it?&lt;a class="heading-anchor" href="#what-is-it" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h3 id="key-characteristics" id="key-characteristics"&gt;Key Characteristics&lt;a class="heading-anchor" href="#key-characteristics" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Isolation:&lt;/strong&gt; Each realm encapsulates its own set of resources, ensuring that operations, policies in one realm do not affect others.&lt;/p&gt;</description></item><item><title>Entities</title><link>https://polaris.apache.org/releases/1.4.0/entities/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/entities/</guid><description>&lt;p&gt;This page documents various entities that can be managed in Apache Polaris.&lt;/p&gt;
&lt;h2 id="catalog" id="catalog"&gt;Catalog&lt;a class="heading-anchor" href="#catalog" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;A catalog is a top-level entity in Polaris that may contain other entities like &lt;a href="#namespace"&gt;namespaces&lt;/a&gt; and &lt;a href="#table"&gt;tables&lt;/a&gt;. These map directly to &lt;a href="https://iceberg.apache.org/terms/#catalog"&gt;Apache Iceberg catalogs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see &lt;a href="https://github.com/apache/polaris/blob/main/spec/polaris-management-service.yml"&gt;the CreateCatalogRequest OpenAPI&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="storage-type" id="storage-type"&gt;Storage Type&lt;a class="heading-anchor" href="#storage-type" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;All catalogs in Polaris are associated with a &lt;em&gt;storage type&lt;/em&gt;. Valid Storage Types are &lt;code&gt;S3&lt;/code&gt;, &lt;code&gt;Azure&lt;/code&gt;, and &lt;code&gt;GCS&lt;/code&gt;. The &lt;code&gt;FILE&lt;/code&gt; 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.&lt;/p&gt;</description></item><item><title>Policy</title><link>https://polaris.apache.org/releases/1.4.0/policy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/policy/</guid><description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;With the policy API, you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create and manage policies&lt;/li&gt;
&lt;li&gt;Attach policies to specific resources (catalogs, namespaces, tables, or views)&lt;/li&gt;
&lt;li&gt;Check applicable policies for any given resource&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-is-a-policy" id="what-is-a-policy"&gt;What is a Policy?&lt;a class="heading-anchor" href="#what-is-a-policy" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;A policy in Apache Polaris is a structured entity that defines rules governing actions on specified resources under
predefined conditions. Each policy contains:&lt;/p&gt;</description></item><item><title>Generic Table</title><link>https://polaris.apache.org/releases/1.4.0/generic-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/generic-table/</guid><description>&lt;p&gt;The generic tables are non-Iceberg tables. Table can be multiple formats including Delta, CSV, etc. With this framework, you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a generic table under a namespace&lt;/li&gt;
&lt;li&gt;Load a generic table&lt;/li&gt;
&lt;li&gt;Drop a generic table&lt;/li&gt;
&lt;li&gt;List all generic tables under a namespace&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="alert alert-primary"&gt;&lt;p class="alert-heading"&gt;
 ❗Important&lt;/p&gt;
 Generic tables are in beta. Please use it with caution and report any issue if encountered.
&lt;/div&gt;

&lt;h2 id="what-is-a-generic-table" id="what-is-a-generic-table"&gt;What is a Generic Table?&lt;a class="heading-anchor" href="#what-is-a-generic-table" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;A generic table is an entity that defines the following fields:&lt;/p&gt;</description></item><item><title>Telemetry</title><link>https://polaris.apache.org/releases/1.4.0/telemetry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/telemetry/</guid><description>&lt;h2 id="metrics" id="metrics"&gt;Metrics&lt;a class="heading-anchor" href="#metrics" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Metrics are published using &lt;a href="https://quarkus.io/guides/telemetry-micrometer"&gt;Micrometer&lt;/a&gt;; they are available from Polaris&amp;rsquo;s management interface
(port 8182 by default) under the path &lt;code&gt;/q/metrics&lt;/code&gt;. For example, if the server is running on
localhost, the metrics can be accessed via http://localhost:8182/q/metrics.&lt;/p&gt;
&lt;p&gt;Metrics can be scraped by Prometheus or any compatible metrics scraping server. See:
&lt;a href="https://prometheus.io"&gt;Prometheus&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;Additional tags can be added to the metrics by setting the &lt;code&gt;polaris.metrics.tags.*&lt;/code&gt; property. Each
tag is a key-value pair, where the key is the tag name and the value is the tag value. For example,
to add a tag &lt;code&gt;environment=prod&lt;/code&gt; to all metrics, set &lt;code&gt;polaris.metrics.tags.environment=prod&lt;/code&gt;. Many
tags can be added, such as below:&lt;/p&gt;</description></item><item><title>Polaris Spark Client</title><link>https://polaris.apache.org/releases/1.4.0/polaris-spark-client/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/polaris-spark-client/</guid><description>&lt;p&gt;Polaris provides a Spark client to manage non-Iceberg tables through &lt;a href="https://polaris.apache.org/releases/1.4.0/generic-table/"&gt;Generic Tables&lt;/a&gt;.&lt;/p&gt;
&lt;div class="alert alert-info"&gt;&lt;p class="alert-heading"&gt;
 📝 Note&lt;/p&gt;
 &lt;p&gt;The Spark client can manage Iceberg tables and non-Iceberg tables.&lt;/p&gt;
&lt;p&gt;Users who only use Iceberg tables do not need to use this client and can use the Iceberg-provided Spark client.&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;This page documents how to connect Spark with Polaris Service using the Polaris Spark client.&lt;/p&gt;
&lt;h2 id="quick-start-with-local-polaris-service" id="quick-start-with-local-polaris-service"&gt;Quick Start with Local Polaris Service&lt;a class="heading-anchor" href="#quick-start-with-local-polaris-service" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;If you want to quickly try out the functionality with a local Polaris service, simply check out the Polaris repo
and follow the instructions in the Spark plugin getting-started
&lt;a href="https://github.com/apache/polaris/blob/main/plugins/spark/v3.5/getting-started/README.md"&gt;README&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Polaris Evolution</title><link>https://polaris.apache.org/releases/1.4.0/evolution/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/evolution/</guid><description>&lt;p&gt;This page discusses what can be expected from Apache Polaris as the project evolves.&lt;/p&gt;
&lt;h2 id="using-polaris-as-a-catalog" id="using-polaris-as-a-catalog"&gt;Using Polaris as a Catalog&lt;a class="heading-anchor" href="#using-polaris-as-a-catalog" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Polaris is primarily intended to be used as a Catalog of Tables and Views. As such,
it implements the Iceberg REST Catalog API and its own REST APIs.&lt;/p&gt;
&lt;p&gt;Revisions of the Iceberg REST Catalog API are controlled by the &lt;a href="https://iceberg.apache.org/"&gt;Apache Iceberg&lt;/a&gt;
community. Polaris attempts to accurately implement this specification. Nonetheless,
optional REST Catalog features may or may not be supported immediately. In general,
there is no guarantee that Polaris releases always implement the latest version of
the Iceberg REST Catalog API.&lt;/p&gt;</description></item><item><title>Building a Custom Server Based on Polaris</title><link>https://polaris.apache.org/releases/1.4.0/downstream-build/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://polaris.apache.org/releases/1.4.0/downstream-build/</guid><description>&lt;p&gt;This page highlights a few keys points for building custom servers based on Apache Polaris.&lt;/p&gt;
&lt;p&gt;Polaris produces several jars. These jars may be used to build custom catalog server
according to the terms of the license included in Polaris distributions.&lt;/p&gt;
&lt;h2 id="general-principles" id="general-principles"&gt;General Principles&lt;a class="heading-anchor" href="#general-principles" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Create a module in your project (Maven, Gradle or any other build tool) for a
&lt;a href="https://code.quarkus.io/"&gt;Quarkus Application&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Include &lt;code&gt;polaris-runtime-service&lt;/code&gt; as a runtime or compile-time dependency.&lt;/li&gt;
&lt;li&gt;Include / exclude other dependencies according to the project&amp;rsquo;s needs (e.g., an alternative JDBC driver).&lt;/li&gt;
&lt;li&gt;Do not include &lt;code&gt;polaris-runtime-defaults&lt;/code&gt; or &lt;code&gt;polaris-server&lt;/code&gt; as dependencies.&lt;/li&gt;
&lt;li&gt;Provide your own &lt;code&gt;application.properties&lt;/code&gt; file for your Quarkus build.&lt;/li&gt;
&lt;li&gt;Define your own Quarkus Application Name and Version (do not use &amp;ldquo;Apache Polaris&amp;rdquo; as the application name).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="background" id="background"&gt;Background&lt;a class="heading-anchor" href="#background" aria-label="Anchor"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;polaris-server&lt;/code&gt; module is intended to be a particular way to build a Polaris server. It includes
dependencies that are considered essential for the Apache Polaris distribution. This is not necessarily
the case for downstream builds, which may want to exclude some features and include others (perhaps
custom implementations of some Polaris SPI interfaces).&lt;/p&gt;</description></item></channel></rss>