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.
+
+  ![metalakes-list](./assets/webui-v2/metalakes-list.png)
+
+- 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.
+
+  ![simple-with-login](./assets/webui-v2/simple-with-login.png)
+
+- 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)
+
+  ![oauth-login](./assets/webui-v2/oauth-login.png)
+
+### Metalakes (Web V2)
+
+Overview for Metalake in the Web V2.
+
+![metalakes-list](./assets/webui-v2/metalakes-list.png)
+
+#### 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.
+
+![create-metalake](./assets/webui-v2/create-metalake.png)
+
+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.
+
+![metalake-properties-popover](./assets/webui-v2/metalake-properties-popover.png)
+
+#### 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**
+
+![metalake-actions](./assets/webui-v2/metalake-actions.png)
+
+#### 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.
+
+![metalake-delete-confirm](./assets/webui-v2/metalake-delete-confirm.png)
+
+### 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.
+
+![catalogs-list](./assets/webui-v2/catalogs-list.png)
+
+#### 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).
+
+![catalog-actions](./assets/webui-v2/catalog-actions.png)
+
+#### Provider filter (Web V2)
+
+Use the filter on the **Provider** table header to narrow the catalogs list by 
provider.
+
+![catalogs-disabled-icon-and-filter-catalogs](./assets/webui-v2/catalogs-disabled-icon-and-filter-catalogs.png)
+
+#### 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.
+
+![catalogs-create-step1](./assets/webui-v2/create-catalog-step1.png)
+
+![catalogs-create-step2](./assets/webui-v2/create-catalog-step2.png)
+
+#### 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.
+
+![catalog-delete-figure-1](./assets/webui-v2/catalog-delete-figure-1.png)
+
+![catalog-delete-figure-2](./assets/webui-v2/catalog-delete-figure-2.png)
+
+#### 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.
+
+![navbar-system-mode](./assets/webui-v2/navbar-system-mode.png)
+![navbar-user-dropdown](./assets/webui-v2/navbar-user-dropdown.png)
+
+### 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.
+
+![schemas-list](./assets/webui-v2/schemas-list.png)
+
+#### Associated Roles (Web V2)
+
+Overview for Associated Roles in the Web V2. (visible only when 
`gravitino.authorization.enable=true`)
+
+![catalog-associated-roles](./assets/webui-v2/catalog-associated-roles.png)
+
+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.
+
+  ![metalakes-list](./assets/webui-v2/metalakes-list.png)
+
+- 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.
+
+  ![simple-with-login](./assets/webui-v2/simple-with-login.png)
+
+- 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)
+
+  ![oauth-login](./assets/webui-v2/oauth-login.png)
+
+### Metalakes (Web V2)
+
+Overview for Metalake in the Web V2.
+
+![metalakes-list](./assets/webui-v2/metalakes-list.png)
+
+#### 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.
+
+![create-metalake](./assets/webui-v2/create-metalake.png)
+
+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.
+
+![metalake-properties-popover](./assets/webui-v2/metalake-properties-popover.png)
+
+#### 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**
+
+![metalake-actions](./assets/webui-v2/metalake-actions.png)
+
+#### 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.
+
+![metalake-delete-confirm](./assets/webui-v2/metalake-delete-confirm.png)
+
+### 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.
+
+![catalogs-list](./assets/webui-v2/catalogs-list.png)
+
+#### 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).
+
+![catalog-actions](./assets/webui-v2/catalog-actions.png)
+
+#### Provider filter (Web V2)
+
+Use the filter on the **Provider** table header to narrow the catalogs list by 
provider.
+
+![catalogs-disabled-icon-and-filter-catalogs](./assets/webui-v2/catalogs-disabled-icon-and-filter-catalogs.png)
+
+#### 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.
+
+![catalogs-create-step1](./assets/webui-v2/create-catalog-step1.png)
+
+![catalogs-create-step2](./assets/webui-v2/create-catalog-step2.png)
+
+#### 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.
+
+![catalog-delete-figure-1](./assets/webui-v2/catalog-delete-figure-1.png)
+
+![catalog-delete-figure-2](./assets/webui-v2/catalog-delete-figure-2.png)
+
+#### 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.
+
+![navbar-system-mode](./assets/webui-v2/navbar-system-mode.png)
+![navbar-user-dropdown](./assets/webui-v2/navbar-user-dropdown.png)
+
+### 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.
+
+![schemas-list](./assets/webui-v2/schemas-list.png)
+
+#### Associated Roles (Web V2)
+
+Overview for Associated Roles in the Web V2. (visible only when 
`gravitino.authorization.enable=true`)
+
+![catalog-associated-roles](./assets/webui-v2/catalog-associated-roles.png)
+
+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.
+
+![schema-functions-list](./assets/webui-v2/schema-functions-list.png)
+
+Click a function tree node or a function name in the list to view detailed 
parameters for the
+function definition.
+
+![function-details](./assets/webui-v2/function-details.png)
+
+### Tables (Web V2)
+
+Overview for Table in the Web V2.
+
+![tables-list](./assets/webui-v2/tables-list.png)
+
+#### 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**.
+
+![tables-create-columns](./assets/webui-v2/create-table.png)
+![tables-create-columns2](./assets/webui-v2/create-table2.png)
+![tables-create-sorderOrders](./assets/webui-v2/create-table-sortOrders.png)

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]

Reply via email to