From 7a81423e0c351965cc55374f4e0fad770c400d06 Mon Sep 17 00:00:00 2001 From: Jaret Basden Date: Mon, 16 Sep 2024 00:16:30 -0700 Subject: [PATCH 1/2] Fixing links --- docs/entities.md | 22 +++++----- docs/index.html | 102 ++++++++++++++++++++++----------------------- docs/overview.md | 12 +++--- docs/quickstart.md | 16 +++---- spec/index.yaml | 45 +++++++++++--------- 5 files changed, 101 insertions(+), 96 deletions(-) diff --git a/docs/entities.md b/docs/entities.md index df9f4897b3..1627c6aea9 100644 --- a/docs/entities.md +++ b/docs/entities.md @@ -23,13 +23,13 @@ This page documents various entities that can be managed in Apache Polaris (Incu A catalog is a top-level entity in Polaris that may contain other entities like [namespaces](#namespace) and [tables](#table). These map directly to [Apache Iceberg catalogs](https://iceberg.apache.org/concepts/catalog/). -For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see [the API docs](../regtests/client/python/docs/CreateCatalogRequest.md). +For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see [the API docs](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/CreateCatalogRequest.md). ### Storage Type All catalogs in Polaris are associated with a _storage type_. Valid Storage Types are `S3`, `Azure`, and `GCS`. The `FILE` 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. -For details on how to use Storage Types in the REST API, see [the API docs](../regtests/client/python/docs/StorageConfigInfo.md). +For details on how to use Storage Types in the REST API, see [the API docs](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/StorageConfigInfo.md). ## Namespace @@ -37,32 +37,32 @@ A namespace is a logical entity that resides within a [catalog](#catalog) and ca In Polaris, namespaces can be nested. For example, `a.b.c.d.e.f.g` is a valid namespace. `b` is said to reside within `a`, and so on. -For information on managing namespaces with the REST API or for more information on what data can be associated with a namespace, see [the API docs](../regtests/client/python/docs/CreateNamespaceRequest.md). +For information on managing namespaces with the REST API or for more information on what data can be associated with a namespace, see [the API docs](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/CreateNamespaceRequest.md). ## Table Polaris tables are entities that map to [Apache Iceberg tables](https://iceberg.apache.org/docs/nightly/configuration/). -For information on managing tables with the REST API or for more information on what data can be associated with a table, see [the API docs](../regtests/client/python/docs/CreateTableRequest.md). +For information on managing tables with the REST API or for more information on what data can be associated with a table, see [the API docs](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/CreateTableRequest.md). ## View Polaris views are entities that map to [Apache Iceberg views](https://iceberg.apache.org/view-spec/). -For information on managing views with the REST API or for more information on what data can be associated with a view, see [the API docs](../regtests/client/python/docs/CreateViewRequest.md). +For information on managing views with the REST API or for more information on what data can be associated with a view, see [the API docs](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/CreateViewRequest.md). ## Principal Polaris principals are unique identities that can be used to represent users or services. Each principal may have one or more [principal roles](#principal-role) assigned to it for the purpose of accessing catalogs and the entities within them. -For information on managing principals with the REST API or for more information on what data can be associated with a principal, see [the API docs](../regtests/client/python/docs/CreatePrincipalRequest.md). +For information on managing principals with the REST API or for more information on what data can be associated with a principal, see [the API docs](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/CreatePrincipalRequest.md). ## Principal Role Polaris principal roles are labels that may be granted to [principals](#principal). Each principal may have one or more principal roles, and the same principal role may be granted to multiple principals. Principal roles may be assigned based on the persona or responsibilities of a given principal, or on how that principal will need to access different entities within Polaris. -For information on managing principal roles with the REST API or for more information on what data can be associated with a principal role, see [the API docs](../regtests/client/python/docs/CreatePrincipalRoleRequest.md). +For information on managing principal roles with the REST API or for more information on what data can be associated with a principal role, see [the API docs](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/CreatePrincipalRoleRequest.md). ## Catalog Role @@ -78,7 +78,7 @@ Polaris privileges are granted to [catalog roles](#catalog-role) in order to gra A privilege can be scoped to any entity inside a catalog, including the catalog itself. For a list of supported privileges for each privilege class, see the API docs: -* [Table Privileges](../regtests/client/python/docs/TablePrivilege.md) -* [View Privileges](../regtests/client/python/docs/ViewPrivilege.md) -* [Namespace Privileges](../regtests/client/python/docs/NamespacePrivilege.md) -* [Catalog Privileges](../regtests/client/python/docs/CatalogPrivilege.md) +* [Table Privileges](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/TablePrivilege.md) +* [View Privileges](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/ViewPrivilege.md) +* [Namespace Privileges](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/NamespacePrivilege.md) +* [Catalog Privileges](https://github.com/apache/polaris/blob/main/regtests/client/python/docs/CatalogPrivilege.md) diff --git a/docs/index.html b/docs/index.html index bc2da3046b..49d2b3e23e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -592,7 +592,7 @@

Building Polaris

INFO [...] [main] [] o.eclipse.jetty.server.Server: Started Server@...

At this point, Polaris is running.

-

Bootstrapping Polaris

Bootstrapping Polaris

Building Polaris <pre><code class="language-shell"><span class="token builtin class-name">export</span> <span class="token assign-left variable">CLIENT_ID</span><span class="token operator">=</span><span class="token operator">&lt;</span>client-id<span class="token operator">></span> <span class="token builtin class-name">export</span> <span class="token assign-left variable">CLIENT_SECRET</span><span class="token operator">=</span><span class="token operator">&lt;</span>client-secret<span class="token operator">></span> </code></pre> -">

For this tutorial, we'll launch an instance of Polaris that stores entities only in-memory. This means that any entities that you define will be destroyed when Polaris is shut down. It also means that Polaris will automatically bootstrap itself with root credentials. For more information on how to configure Polaris for production usage, see the docs.

+">

For this tutorial, we'll launch an instance of Polaris that stores entities only in-memory. This means that any entities that you define will be destroyed when Polaris is shut down. It also means that Polaris will automatically bootstrap itself with root credentials. For more information on how to configure Polaris for production usage, see the docs.

When Polaris is launched using in-memory mode the root principal credentials can be found in stdout on initial startup. For example:

realm: default-realm root principal credentials: <client-id>:<client-secret>
 
@@ -608,7 +608,7 @@

Building Polaris

export CLIENT_ID=<client-id> 
 export CLIENT_SECRET=<client-secret>
 
-

Defining a Catalog

Defining a Catalog

Building Polaris </code></pre> <p>This will create a new catalog called <strong>quickstart_catalog</strong>.</p> <p>The <code>DEFAULT_BASE_LOCATION</code> you provide will be the default location that objects in this catalog should be stored in, and the <code>ROLE_ARN</code> you provide should be a <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Role ARN</a> with access to read and write data in that location. These credentials will be provided to engines reading data from the catalog once they have authenticated with Polaris using credentials that have access to those resources.</p> -<p>If you’re using a storage type other than S3, such as Azure, you’ll provide a different type of credential than a Role ARN. For more details on supported storage types, see the <a href="./entities.md#storage-type">docs</a>.</p> -<p>Additionally, if Polaris is running somewhere other than <code>localhost:8181</code>, you can specify the correct hostname and port by providing <code>--host</code> and <code>--port</code> flags. For the full set of options supported by the CLI, please refer to the <a href="./command-line-interface.md">docs</a>.</p> +<p>If you’re using a storage type other than S3, such as Azure, you’ll provide a different type of credential than a Role ARN. For more details on supported storage types, see the <a href="#storage-type">docs</a>.</p> +<p>Additionally, if Polaris is running somewhere other than <code>localhost:8181</code>, you can specify the correct hostname and port by providing <code>--host</code> and <code>--port</code> flags. For the full set of options supported by the CLI, please refer to the <a href="https://github.com/apache/polaris/blob/main/docs/command-line-interface.md">docs</a>.</p> <h3 id="creating-a-principal-and-assigning-it-privileges">Creating a Principal and Assigning it Privileges</h3> -<p>With a catalog created, we can create a <a href="./entities.md#principal">principal</a> that has access to manage that catalog. For details on how to configure the Polaris CLI, see <a href="#defining-a-catalog">the section above</a> or refer to the <a href="./command-line-interface.md">docs</a>.</p> +<p>With a catalog created, we can create a <a href="#tag/Polaris-Catalog-Entities/Principal">principal</a> that has access to manage that catalog. For details on how to configure the Polaris CLI, see <a href="#defining-a-catalog">the section above</a> or refer to the <a href="https://github.com/apache/polaris/blob/main/docs/command-line-interface.md">docs</a>.</p> <pre><code class="language-shell">./polaris <span class="token punctuation">\</span> --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span> --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span> @@ -654,7 +654,7 @@

Building Polaris

<pre><code><span class="token punctuation">.</span><span class="token operator">/</span>polaris <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> principals create example <span class="token punctuation">{</span><span class="token string">"clientId"</span><span class="token punctuation">:</span> <span class="token string">"XXXX"</span><span class="token punctuation">,</span> <span class="token string">"clientSecret"</span><span class="token punctuation">:</span> <span class="token string">"YYYY"</span><span class="token punctuation">}</span> </code></pre> -<p>Now, we grant the principal the <a href="./entities.md#principal-role">principal role</a> we created, and grant the <a href="./entities.md#catalog-role">catalog role</a> the principal role we created. For more information on these entities, please refer to the linked documentation.</p> +<p>Now, we grant the principal the <a href="#tag/Polaris-Entities/Principal-Role">principal role</a> we created, and grant the <a href="#tag/Polaris-Entities/Catalog-Role">catalog role</a> the principal role we created. For more information on these entities, please refer to the linked documentation.</p> <pre><code class="language-shell">./polaris <span class="token punctuation">\</span> --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span> --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span> @@ -674,7 +674,7 @@

Building Polaris

</code></pre> <p>Now, we’ve linked our principal to the catalog via roles like so:</p> <p><img src="./img/quickstart/privilege-illustration-1.png" alt="Principal to Catalog" title="Principal to Catalog"></p> -<p>In order to give this principal the ability to interact with the catalog, we must assign some <a href="./entities.md#privilege">privileges</a>. For the time being, we will give this principal the ability to fully manage content in our new catalog. We can do this with the CLI like so:</p> +<p>In order to give this principal the ability to interact with the catalog, we must assign some <a href="#tag/Polaris-Entities/Privilege">privileges</a>. For the time being, we will give this principal the ability to fully manage content in our new catalog. We can do this with the CLI like so:</p> <pre><code class="language-shell">./polaris <span class="token punctuation">\</span> --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span> --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span> @@ -685,10 +685,10 @@

Building Polaris

--catalog-role quickstart_catalog_role <span class="token punctuation">\</span> CATALOG_MANAGE_CONTENT </code></pre> -<p>This grants the <a href="./entities.md#privilege">catalog privileges</a> <code>CATALOG_MANAGE_CONTENT</code> to our catalog role, linking everything together like so:</p> +<p>This grants the <a href="#tag/Polaris-Entities/Privilege">catalog privileges</a> <code>CATALOG_MANAGE_CONTENT</code> to our catalog role, linking everything together like so:</p> <p><img src="./img/quickstart/privilege-illustration-2.png" alt="Principal to Catalog with Catalog Role" title="Principal to Catalog with Catalog Role"></p> <p><code>CATALOG_MANAGE_CONTENT</code> has create/list/read/write privileges on all entities within the catalog. The same privilege could be granted to a namespace, in which case the principal could create/list/read/write any entity under that namespace.</p> -">

In Polaris, the catalog is the top-level entity that objects like tables and views are organized under. With a Polaris service running, you can create a catalog like so:

+">

In Polaris, the catalog is the top-level entity that objects like tables and views are organized under. With a Polaris service running, you can create a catalog like so:

cd ~/polaris
 
 ./polaris \
@@ -703,10 +703,10 @@ 

Building Polaris

This will create a new catalog called quickstart_catalog.

The DEFAULT_BASE_LOCATION you provide will be the default location that objects in this catalog should be stored in, and the ROLE_ARN you provide should be a Role ARN with access to read and write data in that location. These credentials will be provided to engines reading data from the catalog once they have authenticated with Polaris using credentials that have access to those resources.

-

If you’re using a storage type other than S3, such as Azure, you’ll provide a different type of credential than a Role ARN. For more details on supported storage types, see the docs.

-

Additionally, if Polaris is running somewhere other than localhost:8181, you can specify the correct hostname and port by providing --host and --port flags. For the full set of options supported by the CLI, please refer to the docs.

+

If you’re using a storage type other than S3, such as Azure, you’ll provide a different type of credential than a Role ARN. For more details on supported storage types, see the docs.

+

Additionally, if Polaris is running somewhere other than localhost:8181, you can specify the correct hostname and port by providing --host and --port flags. For the full set of options supported by the CLI, please refer to the docs.

Creating a Principal and Assigning it Privileges

-

With a catalog created, we can create a principal that has access to manage that catalog. For details on how to configure the Polaris CLI, see the section above or refer to the docs.

+

With a catalog created, we can create a principal that has access to manage that catalog. For details on how to configure the Polaris CLI, see the section above or refer to the docs.

./polaris \
   --client-id ${CLIENT_ID} \
   --client-secret ${CLIENT_SECRET} \
@@ -734,7 +734,7 @@ 

Creating a Principal a
./polaris ... principals create example
 {"clientId": "XXXX", "clientSecret": "YYYY"}
 
-

Now, we grant the principal the principal role we created, and grant the catalog role the principal role we created. For more information on these entities, please refer to the linked documentation.

+

Now, we grant the principal the principal role we created, and grant the catalog role the principal role we created. For more information on these entities, please refer to the linked documentation.

./polaris \
   --client-id ${CLIENT_ID} \
   --client-secret ${CLIENT_SECRET} \
@@ -754,7 +754,7 @@ 

Creating a Principal a

Now, we’ve linked our principal to the catalog via roles like so:

Principal to Catalog

-

In order to give this principal the ability to interact with the catalog, we must assign some privileges. For the time being, we will give this principal the ability to fully manage content in our new catalog. We can do this with the CLI like so:

+

In order to give this principal the ability to interact with the catalog, we must assign some privileges. For the time being, we will give this principal the ability to fully manage content in our new catalog. We can do this with the CLI like so:

./polaris \
   --client-id ${CLIENT_ID} \
   --client-secret ${CLIENT_SECRET} \
@@ -765,7 +765,7 @@ 

Creating a Principal a --catalog-role quickstart_catalog_role \ CATALOG_MANAGE_CONTENT

-

This grants the catalog privileges CATALOG_MANAGE_CONTENT to our catalog role, linking everything together like so:

+

This grants the catalog privileges CATALOG_MANAGE_CONTENT to our catalog role, linking everything together like so:

Principal to Catalog with Catalog Role

CATALOG_MANAGE_CONTENT has create/list/read/write privileges on all entities within the catalog. The same privilege could be granted to a namespace, in which case the principal could create/list/read/write any entity under that namespace.

Using Iceberg & Polaris

Connecting with Spark

With Polaris, you can provide centralized, secure read and write access to your Iceberg tables across different REST-compatible query engines.

Conceptual diagram of Apache Polaris (Incubating).

Key concepts

Connecting with Spark <p>A service connection represents a REST-compatible engine (such as Apache Spark&trade;, Apache Flink&reg;, or Trino) that can read from and write to Polaris Catalog. When creating a new service connection, the Polaris administrator grants the service principal that is created with the new service connection either a new or existing principal role. A principal role is a resource in Polaris that you can use to logically group Polaris -service principals together and grant privileges on securable objects. For more information, see <a href="access-control.md#principal-role" title="Principal role">Principal role</a>. Polaris uses a role-based access control (RBAC) model to grant service principals access to resources. For more information, -see <a href="access-control.md" title="Access control">Access control</a>. For a diagram of this model, see <a href="access-control.md#rbac-model" title="RBAC model">RBAC model</a>.</p> +service principals together and grant privileges on securable objects. For more information, see <a href="#tag/Access-Control/Principal-role" title="Principal role">Principal role</a>. Polaris uses a role-based access control (RBAC) model to grant service principals access to resources. For more information, +see <a href="#tag/Access-Control" title="Access control">Access control</a>. For a diagram of this model, see <a href="access-control.md#rbac-model" title="RBAC model">RBAC model</a>.</p> <p>If the Polaris administrator grants the service principal for the new service connection a new principal role, the service principal doesn&#39;t have any privileges granted to it yet. When securing the catalog that the new service connection will connect to, the Polaris administrator grants privileges to catalog roles and then grants these catalog roles to the new principal role. As a result, the service -principal for the new service connection has these privileges. For more information about catalog roles, see <a href="access-control.md#catalog-role" title="Catalog role">Catalog role</a>.</p> +principal for the new service connection has these privileges. For more information about catalog roles, see <a href="#tag/Access-Control/Catalog-role" title="Catalog role">Catalog role</a>.</p> <p>If the Polaris administrator grants an existing principal role to the service principal for the new service connection, the service principal has the same privileges granted to the catalog roles that are granted to the existing principal role. If needed, the Polaris administrator can grant additional catalog roles to the existing principal role or remove catalog roles from it to adjust the privileges -bestowed to the service principal. For an example of how RBAC works in Polaris, see <a href="access-control.md#rbac-example" title="RBAC example">RBAC example</a>.</p> +bestowed to the service principal. For an example of how RBAC works in Polaris, see <a href="#tag/Access-Control/RBAC-example" title="RBAC example">RBAC example</a>.</p> <h3 id="storage-configuration">Storage configuration</h3> <p>A storage configuration stores a generated identity and access management (IAM) entity for your external cloud storage and is created when you create a catalog. The storage configuration is used to set the values to connect Polaris to your cloud storage. During the @@ -1060,7 +1060,7 @@

Connecting with Spark

</tr> </tbody></table> ">

This section introduces key concepts associated with using Apache Polaris (Incubating).

-

In the following diagram, a sample Apache Polaris (Incubating) structure with nested namespaces is shown for Catalog1. No tables +

In the following diagram, a sample Apache Polaris (Incubating) structure with nested namespaces is shown for Catalog1. No tables or namespaces have been created yet for Catalog2 or Catalog3.

Diagram that shows an example Apache Polaris (Incubating) structure.

Catalog

@@ -1154,16 +1154,16 @@

Service connection

A service connection represents a REST-compatible engine (such as Apache Spark™, Apache Flink®, or Trino) that can read from and write to Polaris Catalog. When creating a new service connection, the Polaris administrator grants the service principal that is created with the new service connection either a new or existing principal role. A principal role is a resource in Polaris that you can use to logically group Polaris -service principals together and grant privileges on securable objects. For more information, see Principal role. Polaris uses a role-based access control (RBAC) model to grant service principals access to resources. For more information, -see Access control. For a diagram of this model, see RBAC model.

+service principals together and grant privileges on securable objects. For more information, see Principal role. Polaris uses a role-based access control (RBAC) model to grant service principals access to resources. For more information, +see Access control. For a diagram of this model, see RBAC model.

If the Polaris administrator grants the service principal for the new service connection a new principal role, the service principal doesn't have any privileges granted to it yet. When securing the catalog that the new service connection will connect to, the Polaris administrator grants privileges to catalog roles and then grants these catalog roles to the new principal role. As a result, the service -principal for the new service connection has these privileges. For more information about catalog roles, see Catalog role.

+principal for the new service connection has these privileges. For more information about catalog roles, see Catalog role.

If the Polaris administrator grants an existing principal role to the service principal for the new service connection, the service principal has the same privileges granted to the catalog roles that are granted to the existing principal role. If needed, the Polaris administrator can grant additional catalog roles to the existing principal role or remove catalog roles from it to adjust the privileges -bestowed to the service principal. For an example of how RBAC works in Polaris, see RBAC example.

+bestowed to the service principal. For an example of how RBAC works in Polaris, see RBAC example.

Storage configuration

A storage configuration stores a generated identity and access management (IAM) entity for your external cloud storage and is created when you create a catalog. The storage configuration is used to set the values to connect Polaris to your cloud storage. During the @@ -1246,7 +1246,7 @@

Storage configuration

catalog resources and granted to principal roles.</p> </li> </ul> -<p>For more information, see <a href="access-control.md" title="Access control">Access control</a>.</p> +<p>For more information, see <a href="#tag/Access-Control" title="Access control">Access control</a>.</p> ">

This section describes security and access control.

Credential vending

To secure interactions with service connections, Polaris vends temporary storage credentials to the query engine during query @@ -1271,7 +1271,7 @@

Access control

catalog resources and granted to principal roles.

-

For more information, see Access control.

+

For more information, see Access control.

Legal Notices

Apache®, Apache Iceberg™, Apache Spark™, Apache Flink®, and Flink® are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.

Polaris Entities

Access control

This page documents various entities that can be managed in Apache Polaris (Incubating).

Catalog

A catalog is a top-level entity in Polaris that may contain other entities like namespaces and tables. These map directly to Apache Iceberg catalogs.

-

For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see the API docs.

+

For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see the API docs.

Storage Type

All catalogs in Polaris are associated with a storage type. Valid Storage Types are S3, Azure, and GCS. The FILE 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.

-

For details on how to use Storage Types in the REST API, see the API docs.

+

For details on how to use Storage Types in the REST API, see the API docs.

Namespace

A namespace is a logical entity that resides within a catalog and can contain other entities such as tables or views. Some other systems may refer to namespaces as schemas or databases.

In Polaris, namespaces can be nested. For example, a.b.c.d.e.f.g is a valid namespace. b is said to reside within a, and so on.

-

For information on managing namespaces with the REST API or for more information on what data can be associated with a namespace, see the API docs.

+

For information on managing namespaces with the REST API or for more information on what data can be associated with a namespace, see the API docs.

Table

Polaris tables are entities that map to Apache Iceberg tables.

-

For information on managing tables with the REST API or for more information on what data can be associated with a table, see the API docs.

+

For information on managing tables with the REST API or for more information on what data can be associated with a table, see the API docs.

View

Polaris views are entities that map to Apache Iceberg views.

-

For information on managing views with the REST API or for more information on what data can be associated with a view, see the API docs.

+

For information on managing views with the REST API or for more information on what data can be associated with a view, see the API docs.

Principal

Polaris principals are unique identities that can be used to represent users or services. Each principal may have one or more principal roles assigned to it for the purpose of accessing catalogs and the entities within them.

-

For information on managing principals with the REST API or for more information on what data can be associated with a principal, see the API docs.

+

For information on managing principals with the REST API or for more information on what data can be associated with a principal, see the API docs.

Principal Role

Polaris principal roles are labels that may be granted to principals. Each principal may have one or more principal roles, and the same principal role may be granted to multiple principals. Principal roles may be assigned based on the persona or responsibilities of a given principal, or on how that principal will need to access different entities within Polaris.

-

For information on managing principal roles with the REST API or for more information on what data can be associated with a principal role, see the API docs.

+

For information on managing principal roles with the REST API or for more information on what data can be associated with a principal role, see the API docs.

Catalog Role

Polaris catalog roles are labels that may be granted to catalogs. Each catalog may have one or more catalog roles, and the same catalog role may be granted to multiple catalogs. Catalog roles may be assigned based on the nature of data that will reside in a catalog, or by the groups of users and services that might need to access that data.

@@ -1354,19 +1354,19 @@

Storage Type

<p>A privilege can be scoped to any entity inside a catalog, including the catalog itself.</p> <p>For a list of supported privileges for each privilege class, see the API docs:</p> <ul> -<li><a href="../regtests/client/python/docs/TablePrivilege.md">Table Privileges</a></li> -<li><a href="../regtests/client/python/docs/ViewPrivilege.md">View Privileges</a></li> -<li><a href="../regtests/client/python/docs/NamespacePrivilege.md">Namespace Privileges</a></li> -<li><a href="../regtests/client/python/docs/CatalogPrivilege.md">Catalog Privileges</a></li> +<li><a href="https://github.com/apache/polaris/blob/main/regtests/client/python/docs/TablePrivilege.md">Table Privileges</a></li> +<li><a href="https://github.com/apache/polaris/blob/main/regtests/client/python/docs/ViewPrivilege.md">View Privileges</a></li> +<li><a href="https://github.com/apache/polaris/blob/main/regtests/client/python/docs/NamespacePrivilege.md">Namespace Privileges</a></li> +<li><a href="https://github.com/apache/polaris/blob/main/regtests/client/python/docs/CatalogPrivilege.md">Catalog Privileges</a></li> </ul> ">

Polaris privileges are granted to catalog roles in order to grant principals with a given principal role some degree of access to catalogs with a given catalog role. When a privilege is granted to a catalog role, any principal roles granted that catalog role receive the privilege. In turn, any principals who are granted that principal role receive it.

A privilege can be scoped to any entity inside a catalog, including the catalog itself.

For a list of supported privileges for each privilege class, see the API docs:

Access Control

featureConfiguratio " class="sc-euGpHm sc-exayXG fwfkcU jYGAQp">

Generic base server URL, with all parts configurable

{scheme}://{host}:{port}/{basePath}/v1/{prefix}/views/rename

Request samples

Content type
application/json
{
  • "source": {
    },
  • "destination": {
    }
}

Response samples

Content type
application/json
{
  • "error": {
    }
}