This is an automated email from the ASF dual-hosted git repository.

jerryshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new ecd99f8d2d [MINOR] docs(kafka): Document dotted topic name limitation 
(#13469)
ecd99f8d2d is described below

commit ecd99f8d2d78f544df4a0889d581494080af46b2
Author: roryqi <[email protected]>
AuthorDate: Thu Sep 24 10:00:54 2026 +0800

    [MINOR] docs(kafka): Document dotted topic name limitation (#13469)
    
    ### What changes were proposed in this pull request?
    
    Document the Kafka topic name limitation when authorization is enabled:
    
    - Loading a topic whose name contains `.` returns `400 Bad Request`.
    - One dotted topic causes the entire topic list request to fail.
    - Rename or recreate the topic without dots as a workaround.
    
    ### Why are the changes needed?
    
    Gravitino uses `.` as the qualified metadata object name separator and
    cannot authorize a topic whose
    local name contains a dot. This behavior and its effect on topic listing
    should be clearly documented.
    
    Related: #12977
    
    ### Does this PR introduce _any_ user-facing change?
    
    Yes. The Kafka catalog documentation now describes the dotted topic name
    limitation and its
    workaround. There is no API or behavior change.
    
    ### How was this patch tested?
    
    - Ran `./gradlew :docs:build`.
    - Ran `git diff --check`.
    
    ---------
    
    Co-authored-by: Copilot Autofix powered by AI 
<[email protected]>
---
 docs/kafka-catalog.md           |  7 +++++++
 docs/security/access-control.md | 20 ++++++++++++++++++--
 docs/tables-and-views.md        |  4 ++++
 3 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/docs/kafka-catalog.md b/docs/kafka-catalog.md
index 6cabf2abeb..103aced176 100644
--- a/docs/kafka-catalog.md
+++ b/docs/kafka-catalog.md
@@ -48,6 +48,13 @@ Refer to [Schema 
operation](./manage-messaging-metadata-using-gravitino.md#schem
 
 - The Kafka catalog supports creating, updating, deleting, and listing topics.
 
+::::caution Topic names containing dots
+When authorization is enabled, topic names containing dots are unsupported, 
and one such topic can
+cause the entire topic list request to fail. See
+[Names containing dots](./security/access-control.md#names-containing-dots) 
for details and the
+workaround.
+::::
+
 ### Topic Properties
 
 | Property name        | Description                              | Default 
value                                                                       | 
Required |
diff --git a/docs/security/access-control.md b/docs/security/access-control.md
index 397a923a9b..deb942227f 100755
--- a/docs/security/access-control.md
+++ b/docs/security/access-control.md
@@ -73,6 +73,21 @@ Everything Gravitino manages is an object with a type and a 
name. The name is th
 below the metalake, so a table is `{catalog}.{schema}.{table}`, and requests 
identify an object by
 both type and name, since the same name can exist at more than one type.
 
+##### Local names containing one or more dots {#names-containing-dots}
+
+::::caution
+When authorization is enabled, Gravitino cannot authorize a federated object 
whose local name
+contains one or more dots (`.`), because dots separate the components of a 
qualified metadata object name.
+Loading such an object returns `400 Bad Request`. If a connector returns one 
of these objects in a
+list, Gravitino rejects the entire list request with `400 Bad Request` and 
identifies the unsupported
+name instead of returning a partial result. Consequently, one object with a 
dotted name can prevent
+all sibling objects from appearing in list APIs.
+
+Rename or recreate the object in the source system with a name that does not 
contain dots before
+using it with authorization. When authorization is disabled, existing source 
objects whose names
+are supported by the connector can still be listed and loaded.
+::::
+
 Access to an object is controlled by privileges, granted through roles, and by 
ownership. Ownership
 behaves like a privilege that arrives with the object rather than one you 
grant, and it carries the
 administrative rights, altering, dropping, and transferring, that no privilege 
name covers.
@@ -144,8 +159,9 @@ Note the third case. Granting `SELECT_TABLE` on a schema 
covers every table in t
 its own it authorizes nothing, because the traversal privileges are still 
missing.
 
 A failed check returns `403 Forbidden`. Some read paths return `404 Not Found` 
instead, so that a
-caller cannot infer the existence of an object they are not entitled to see. 
List operations do not
-fail; they return only the entries the caller is entitled to see.
+caller cannot infer the existence of an object they are not entitled to see. 
List operations
+normally do not fail; they return only the entries the caller is entitled to 
see. An object whose
+name contains a dot is an exception, as described in [Names containing 
dots](#names-containing-dots).
 
 #### Allow and Deny
 
diff --git a/docs/tables-and-views.md b/docs/tables-and-views.md
index caf0c89e0d..f2f3b44a72 100644
--- a/docs/tables-and-views.md
+++ b/docs/tables-and-views.md
@@ -16,6 +16,10 @@ Creating a table through Gravitino creates it in the source 
system, and listing
 source at request time, so a table created directly in Hive appears the next 
time Gravitino is
 asked.
 
+When authorization is enabled, a table whose local name contains one or more 
dots is an exception:
+it can cause the entire table list request to fail. See
+[Local names containing one or more 
dots](./security/access-control.md#names-containing-dots).
+
 What Gravitino adds is a single shape across all of them. The same call 
describes a Hive table and
 an Iceberg table, columns carry the same type system, and tags, policies, 
ownership, and statistics
 attach the same way regardless of the system underneath.

Reply via email to