Hi Jingsong,

Thanks for driving this. +1 on the overall direction.

A few thoughts on the design:

- Keep the first version flat and simple.
- Leave room to extend resource fields in the future.
- Keep the management API separate from the core catalog API.
- It may also be worth considering behaviors such as owner permission and
  grant option in the detailed design.

The proposed REST APIs and Spark procedures look like a good starting point.

Best,
Dapeng

yijie shao <[email protected]> 于2026年8月24日周一 18:53写道:

> Hi Jingsong,
>
> +1 from me.
>
> I support introducing a language-neutral permission management contract for
> the REST Catalog ecosystem. Keeping it scoped to `RESTCatalog` looks like a
> reasonable initial boundary, and the proposed APIs and Spark procedures
> seem like a practical starting point.
>
> Thanks for driving this discussion and preparing the POC.
>
> Best,
> Yijie Shao
>
> Jiajia Li <[email protected]> 于2026年8月24日周一 18:46写道:
>
> > Hi Jingsong,
> >  +1 for defining this contract as part of the REST Catalog ecosystem. We
> > run a production Paimon REST Catalog server and very much need a neutral
> > permission management contract like this — it is exactly what engine
> > integrations and tools need as well. The proposed model and boundaries
> look
> > right to me.
> > Best,
> > Jiajia
> > ------------------------------------------------------------------
> > From:Jingsong Li <[email protected]>
> > Send Time:Mon, Aug 24, 2026, 18:21
> > To:dev<[email protected]>
> > Subject:[DISCUSS] Introduce REST permission management APIs
> > Hi community,
> > I'd like to discuss introducing a language-neutral permission
> > management contract for Paimon's REST Catalog support.
> > RESTCatalog is becoming the common catalog interface across engines
> > and services. Authentication and authorization decisions should remain
> > responsibilities of the REST server, but clients still need an
> > interoperable way to list, grant, and revoke permissions without
> > depending on a vendor-specific SDK.
> > I prepared a POC in the following draft PR:
> > https://github.com/apache/paimon/pull/9377 <
> > https://github.com/apache/paimon/pull/9377 >
> > The current proposal has the following boundaries:
> > - Add a small PermissionManagement contract with list, grant, and
> > revoke operations.
> > - Expose PermissionManagement directly from RESTCatalog instead of
> > changing the generic Catalog interface. Other catalog implementations
> > are therefore not required to support it.
> > - Make the corresponding RESTApi methods public so Java clients and
> > engine integrations can use the same transport contract.
> > - Define a separate rest-management-open-api.yaml with these endpoints:
> >  - GET /v1/catalogs/{catalog}/permissions
> >  - POST /v1/catalogs/{catalog}/permissions/grant
> >  - POST /v1/catalogs/{catalog}/permissions/revoke
> > - Use a flat resource-oriented permission model covering catalog,
> > database, table, view, function, column, row filter, and column
> > masking permissions, with optional expiration.
> > - Keep user and role lifecycle, authentication, policy persistence,
> > and authorization enforcement outside this API and under the
> > responsibility of the REST server implementation.
> > - Initially expose the capability to Spark SQL through
> > grant_permission, list_permissions, and revoke_permission procedures.
> > Future GRANT/REVOKE SQL syntax could be layered on the same Java and
> > REST contracts without changing the server API.
> > I would appreciate feedback on the following questions:
> > 1. Should Paimon define this permission management contract as part of
> > its REST Catalog ecosystem?
> > 2. Is exposing it only through RESTCatalog the right initial boundary,
> > or should it be modeled as a generic Catalog capability?
> > 3. Should the management OpenAPI contract remain separate from
> > rest-catalog-open-api.yaml?
> > 4. Are the proposed resource model and endpoint shapes suitable for
> > different REST Catalog server implementations?
> > 5. Are Spark procedures a reasonable first SQL integration, while
> > leaving dedicated permission SQL syntax for a follow-up?
> > The PR is intended as a POC for discussion, and I am happy to adjust
> > the design based on community feedback.
> > Best,
> > Jingsong
> >
>

Reply via email to