dengc367 commented on PR #14239:
URL: https://github.com/apache/gravitino/pull/14239#issuecomment-6502659447

   One addition from reading the Databricks reference directly, since Pages is 
the closest thing to a term and
   its documentation is explicit about the permission model. This extends my 
earlier comment on where term
   privileges should live.
   
   **Fields are close.** Domain ↔ term domain, Owner ↔ owner, Synonyms ↔ 
synonyms, Description ↔ definition,
   Related assets ↔ bindings, Sources ↔ source reference. Two things a Page has 
that this design does not:
   
   - **A rich-text body.** A Page is a document — the structured fields are 
followed by Definition, Business
     use and Examples sections with links, images and tables. A `definition` 
string cannot hold that, and
     `properties` has no structure for it, so a long-form term loses content 
rather than degrading gracefully.
   - **No approval step.** Pages have Draft/Published only, and a consumer can 
create *and* publish directly.
     The `DRAFT` / `APPROVED` / `DEPRECATED` lifecycle here is stricter than 
the reference, which is a choice
     worth making explicitly rather than by default.
   
   **The permission model is the part worth re-reading.** From the Pages 
documentation:
   
   > You don't grant permissions on a Page directly. A Page inherits access 
from the domain or subdomain it
   > belongs to.
   
   Three personas, and all of them are expressed in domain terms rather than in 
page-level grants: a consumer
   with domain access can create and publish Pages, the page owner edits their 
own, and a curator holds
   `MANAGE` on the domain and can edit any Page in it.
   
   That is the same shape as the suggestion in my earlier comment — define the 
term privileges on the metalake
   and let the domain leg reuse the existing `USE_DOMAIN` / `MANAGE_DOMAIN` — 
rather than mounting a second
   privilege family on the same domain objects.
   
   **One more divergence to settle deliberately.** A Page must belong to a 
domain: "Every Page is attached to
   a domain or subdomain", and you need a domain before you can create one. 
This design allows a term in zero
   domains. Supporting cross-domain terms is a reasonable requirement, but it 
should be stated as a deliberate
   divergence, because a domainless term is invisible from every domain's page 
and inherits no domain grant.
   


-- 
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