Copilot commented on code in PR #9981: URL: https://github.com/apache/gravitino/pull/9981#discussion_r2797406474
########## docs/webui-v2.md: ########## @@ -0,0 +1,341 @@ +--- +title: 'Apache Gravitino Web V2 UI' +slug: /webui-v2 +keyword: webui v2 +last_update: + date: 2026-01-30 + author: LauraXia123 +license: 'This software is licensed under the Apache License version 2.' +--- + +This document outlines how users can manage metadata within Apache Gravitino using the Web V2 UI, the latest graphical interface accessible through a web browser as an alternative to writing code or using the REST interface. + +[Build](./how-to-build.md#quick-start) and [deploy](./getting-started/index.md#local-workstation) the Gravitino Web UI and open it in a browser at `http://<gravitino-host>:<gravitino-port>`, by default is [http://localhost:8090](http://localhost:8090). + +## UI Version 1.2.0 — Web V2 introduced + +Starting with version 1.2.0, Gravitino introduces Web V2. By default, the template does not set `GRAVITINO_USE_WEB_V2`, so the container or environment controls which UI is used. To force the v1 UI, explicitly set it to `false`; to enable the v2 UI, set it to `true` (for example: `export GRAVITINO_USE_WEB_V2=true`). If you want to enable Web V2 from the server env file, set the following environment variable in `conf/gravitino-env.sh` before starting the server: + +```bash +# In <path-to-gravitino>/conf/gravitino-env.sh +GRAVITINO_USE_WEB_V2=true +``` + +After changing this value, restart the Gravitino server for the change to take effect: + +```bash +<path-to-gravitino>/bin/gravitino.sh restart +``` + +## Web V2 + +The sections below describe the Web V2 (requires `GRAVITINO_USE_WEB_V2=true` to enable). +The Web V2 introduces additional modules (such as Jobs, Job Templates, Data Compliance, and Access) and expands table creation and editing to support more complex data types across providers. + +Data Compliance includes **Tags** and **Policies**. The **Access** module is visible only when `gravitino.authorization.enable=true` and includes **Users**, **User Groups**, and **Roles**. + +### Initial page (Web V2) + +The Web V2 landing page depends on both the authentication mode and whether authorization is enabled in `<path-to-gravitino>/conf/gravitino.conf`. + +- When `gravitino.authorization.enable=false`, authorization is disabled. In `simple` mode, the UI opens directly to the metalake list page. + +  + +- When `gravitino.authorization.enable=true`, authorization is enabled. In `simple` mode, the UI shows a login page. You can enter any username without a password. + +  + +- When `gravitino.authenticators=oauth`, OAuth configuration is required for login. OAuth mode requires `gravitino.authorization.enable=true`. See the details in [Security](security/security.md) + +  + +### Metalakes (Web V2) + +Overview for Metalake in the Web V2. + + + +#### Create metalake (Web V2) + +Click the `CREATE METALAKE` button to open the create dialog. Fill in the form fields and submit to create the metalake. + + + +After creation, the basic information is visible in the metalake list. + +#### Properties popover (Web V2) + +Hover over the number in the **Properties** column to view the properties popover. + + + +#### Actions (Web V2) + +In the **Actions** column, you can edit or delete the metalake. The settings dropdown includes: + +- **Set Owner** (available only when `gravitino.authorization.enable=true`) +- **Toggle in-use / not in-use** + + + +#### Delete metalake (Web V2) + +To delete a metalake, the metalake must be **not in-use** (set it in the [Actions (Web V2)](#actions-web-v2) settings dropdown), and all sub-entities must be deleted first. The delete dialog requires entering the metalake name for confirmation before deletion. + + + +### Catalogs (Web V2) + +Overview for Catalog in the Web V2. + +#### Catalog type filter (Web V2) + +On the catalogs page, use the catalog type selector at the top-left to switch between `relational`, `messaging`, `fileset`, and `model`. The list updates to show catalogs of the selected type. + + +#### Tags and policies association (Web V2) + +The catalog list shows basic catalog information along with associated **Tags** and **Policies**. Use **Associate Tag** and **Associate Policy** in the list to add associations. Click the **X** on a tag to remove it. + + + +#### Disable catalog (Web V2) + +From the **Actions** settings dropdown, switch a catalog to **not in-use**. A disabled icon appears next to the catalog name, and the catalog name becomes non-clickable (you cannot enter the catalog details page). + + + +#### Provider filter (Web V2) + +Use the filter on the **Provider** table header to narrow the catalogs list by provider. + + + +#### Create catalog (Web V2) + +Click **Create Catalog** to open the creation form for the selected catalog type. In step 1, choose the provider for the selected type. Click **Next** to go to step 2, fill in the required properties, and submit to create the catalog. Some providers support **Test Connection** so you can validate connectivity before submitting. + + + + + +#### Delete catalog (Web V2) + +If the catalog is still in-use, the UI shows the **Delete** entry as shown in **Figure 1 below**. After switching the catalog to **not in-use** (see [Disable catalog (Web V2)](#disable-catalog-web-v2)), the **Delete** entry changes to **Figure 2 below**. Enter the catalog name for the second confirmation, then you can delete it. + + + + + +#### Navbar (Web V2) + +The navbar provides the following shortcuts: + +- Click the **System Mode** icon on the right to navigate back to the metalake list page. +- The **User** icon dropdown shows a list of all metalake names (click to switch). +- When `gravitino.authorization.enable=true`, the **User** icon dropdown also shows the current user name and a **Logout** button that returns to the login page. + + + + +### Catalog details & Schemas (Web V2) + +You can enter the catalog details page by clicking the catalog name either from the left tree or from the catalog name in the right list. The catalog name shows basic catalog information underneath it. Hover over the highlighted numbers to open a popover with more details. + +Below the catalog information, the page shows the **Schemas** list and the catalog's **Associated Roles**. The **Associated Roles** section is visible only when `gravitino.authorization.enable=true`, and it lists the role name and its privileges. + +#### Schemas list (Web V2) + +Overview for Schemas in the Web V2. + + + +#### Associated Roles (Web V2) + +Overview for Associated Roles in the Web V2. (visible only when `gravitino.authorization.enable=true`) + + + +The Apache Gravitino Spark connector supports loading user-defined functions (UDFs) registered +in the Gravitino function registry. Once a function is +[registered in Gravitino](../manage-user-defined-function-using-gravitino.md), Spark can discover and +invoke it through standard Spark SQL syntax — no additional `CREATE FUNCTION` statement is needed. Review Comment: The link target `../manage-user-defined-function-using-gravitino.md` does not exist in the repository, so this will be a broken link in the published docs. Please point this to an existing doc page (likely under `docs/`), or add the referenced document and adjust the relative path accordingly. ########## docs/webui-v2.md: ########## @@ -0,0 +1,341 @@ +--- +title: 'Apache Gravitino Web V2 UI' +slug: /webui-v2 +keyword: webui v2 +last_update: + date: 2026-01-30 + author: LauraXia123 +license: 'This software is licensed under the Apache License version 2.' +--- + +This document outlines how users can manage metadata within Apache Gravitino using the Web V2 UI, the latest graphical interface accessible through a web browser as an alternative to writing code or using the REST interface. + +[Build](./how-to-build.md#quick-start) and [deploy](./getting-started/index.md#local-workstation) the Gravitino Web UI and open it in a browser at `http://<gravitino-host>:<gravitino-port>`, by default is [http://localhost:8090](http://localhost:8090). Review Comment: Minor grammar: "by default is" reads incorrectly here. Consider rephrasing to something like "By default, it is ..." or "The default is ..." for clarity. ########## docs/webui-v2.md: ########## @@ -0,0 +1,341 @@ +--- +title: 'Apache Gravitino Web V2 UI' +slug: /webui-v2 +keyword: webui v2 +last_update: + date: 2026-01-30 + author: LauraXia123 +license: 'This software is licensed under the Apache License version 2.' +--- + +This document outlines how users can manage metadata within Apache Gravitino using the Web V2 UI, the latest graphical interface accessible through a web browser as an alternative to writing code or using the REST interface. + +[Build](./how-to-build.md#quick-start) and [deploy](./getting-started/index.md#local-workstation) the Gravitino Web UI and open it in a browser at `http://<gravitino-host>:<gravitino-port>`, by default is [http://localhost:8090](http://localhost:8090). + +## UI Version 1.2.0 — Web V2 introduced + +Starting with version 1.2.0, Gravitino introduces Web V2. By default, the template does not set `GRAVITINO_USE_WEB_V2`, so the container or environment controls which UI is used. To force the v1 UI, explicitly set it to `false`; to enable the v2 UI, set it to `true` (for example: `export GRAVITINO_USE_WEB_V2=true`). If you want to enable Web V2 from the server env file, set the following environment variable in `conf/gravitino-env.sh` before starting the server: + +```bash +# In <path-to-gravitino>/conf/gravitino-env.sh +GRAVITINO_USE_WEB_V2=true +``` + +After changing this value, restart the Gravitino server for the change to take effect: + +```bash +<path-to-gravitino>/bin/gravitino.sh restart +``` + +## Web V2 + +The sections below describe the Web V2 (requires `GRAVITINO_USE_WEB_V2=true` to enable). +The Web V2 introduces additional modules (such as Jobs, Job Templates, Data Compliance, and Access) and expands table creation and editing to support more complex data types across providers. + +Data Compliance includes **Tags** and **Policies**. The **Access** module is visible only when `gravitino.authorization.enable=true` and includes **Users**, **User Groups**, and **Roles**. + +### Initial page (Web V2) + +The Web V2 landing page depends on both the authentication mode and whether authorization is enabled in `<path-to-gravitino>/conf/gravitino.conf`. + +- When `gravitino.authorization.enable=false`, authorization is disabled. In `simple` mode, the UI opens directly to the metalake list page. + +  + +- When `gravitino.authorization.enable=true`, authorization is enabled. In `simple` mode, the UI shows a login page. You can enter any username without a password. + +  + +- When `gravitino.authenticators=oauth`, OAuth configuration is required for login. OAuth mode requires `gravitino.authorization.enable=true`. See the details in [Security](security/security.md) + +  + +### Metalakes (Web V2) + +Overview for Metalake in the Web V2. + + + +#### Create metalake (Web V2) + +Click the `CREATE METALAKE` button to open the create dialog. Fill in the form fields and submit to create the metalake. + + + +After creation, the basic information is visible in the metalake list. + +#### Properties popover (Web V2) + +Hover over the number in the **Properties** column to view the properties popover. + + + +#### Actions (Web V2) + +In the **Actions** column, you can edit or delete the metalake. The settings dropdown includes: + +- **Set Owner** (available only when `gravitino.authorization.enable=true`) +- **Toggle in-use / not in-use** + + + +#### Delete metalake (Web V2) + +To delete a metalake, the metalake must be **not in-use** (set it in the [Actions (Web V2)](#actions-web-v2) settings dropdown), and all sub-entities must be deleted first. The delete dialog requires entering the metalake name for confirmation before deletion. + + + +### Catalogs (Web V2) + +Overview for Catalog in the Web V2. + +#### Catalog type filter (Web V2) + +On the catalogs page, use the catalog type selector at the top-left to switch between `relational`, `messaging`, `fileset`, and `model`. The list updates to show catalogs of the selected type. + + +#### Tags and policies association (Web V2) + +The catalog list shows basic catalog information along with associated **Tags** and **Policies**. Use **Associate Tag** and **Associate Policy** in the list to add associations. Click the **X** on a tag to remove it. + + + +#### Disable catalog (Web V2) + +From the **Actions** settings dropdown, switch a catalog to **not in-use**. A disabled icon appears next to the catalog name, and the catalog name becomes non-clickable (you cannot enter the catalog details page). + + + +#### Provider filter (Web V2) + +Use the filter on the **Provider** table header to narrow the catalogs list by provider. + + + +#### Create catalog (Web V2) + +Click **Create Catalog** to open the creation form for the selected catalog type. In step 1, choose the provider for the selected type. Click **Next** to go to step 2, fill in the required properties, and submit to create the catalog. Some providers support **Test Connection** so you can validate connectivity before submitting. + + + + + +#### Delete catalog (Web V2) + +If the catalog is still in-use, the UI shows the **Delete** entry as shown in **Figure 1 below**. After switching the catalog to **not in-use** (see [Disable catalog (Web V2)](#disable-catalog-web-v2)), the **Delete** entry changes to **Figure 2 below**. Enter the catalog name for the second confirmation, then you can delete it. + + + + + +#### Navbar (Web V2) + +The navbar provides the following shortcuts: + +- Click the **System Mode** icon on the right to navigate back to the metalake list page. +- The **User** icon dropdown shows a list of all metalake names (click to switch). +- When `gravitino.authorization.enable=true`, the **User** icon dropdown also shows the current user name and a **Logout** button that returns to the login page. + + + + +### Catalog details & Schemas (Web V2) + +You can enter the catalog details page by clicking the catalog name either from the left tree or from the catalog name in the right list. The catalog name shows basic catalog information underneath it. Hover over the highlighted numbers to open a popover with more details. + +Below the catalog information, the page shows the **Schemas** list and the catalog's **Associated Roles**. The **Associated Roles** section is visible only when `gravitino.authorization.enable=true`, and it lists the role name and its privileges. + +#### Schemas list (Web V2) + +Overview for Schemas in the Web V2. + + + +#### Associated Roles (Web V2) + +Overview for Associated Roles in the Web V2. (visible only when `gravitino.authorization.enable=true`) + + + +The Apache Gravitino Spark connector supports loading user-defined functions (UDFs) registered +in the Gravitino function registry. Once a function is +[registered in Gravitino](../manage-user-defined-function-using-gravitino.md), Spark can discover and +invoke it through standard Spark SQL syntax — no additional `CREATE FUNCTION` statement is needed. +If a UDF is registered, you can see a **Functions** list tab on the schema details page. + + + +Click a function tree node or a function name in the list to view detailed parameters for the +function definition. + + + +### Tables (Web V2) + +Overview for Table in the Web V2. + + + +#### Create Table (Web V2) + +In the **Schema details** page, the list shows all tables under the selected schema. Click **Create Table** to open the table creation form. + +In the form, add columns and select column types. The Web V2 supports composite inputs for `char`, `varchar`, and `decimal`. Some complex types are supported (for example `list`, `map`, `struct`, `union`) depending on the provider. + +Depending on the provider, you can configure **Partitions**, **Sort Orders**, and **Distribution**. + + + + Review Comment: Typo in image alt text: `tables-create-sorderOrders` looks unintended ("sorderOrders"). Consider renaming the alt text to match the actual concept (e.g., "sortOrders") for readability/searchability. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
