Hi all, I have updated the proposal document and added a new tab to the Google doc [1]. The textual changes were too much to keep it "inline" and leverage gDoc versioning, so I opted to create a "v2" tab in the same doc.
Once the community agrees on the proposal "v2", we can go ahead and discuss the next steps. Best, Robert [1] https://docs.google.com/document/d/108Y0E8XsZi91x-UY0_aHLEbmXDNmxmS5BnDjunEKvTM/edit?tab=t.7l861fq8jo38 On Fri, Sep 12, 2025 at 4:38 PM Robert Stupp <sn...@snazy.de> wrote: > > Hi all, > > Regarding the ongoing discussion about the Iceberg REST FGAC OpenAPI > proposal, we want to confirm our alignment with the community's > direction. > > The "Iceberg Expressions + Iceberg UDFs way" as the sole mechanism for > retrieving protection instructions is a good option in my opinion. > This approach aligns with the core principle of separating policy > definitions from protection instructions. > > As the initial proposal highlighted, as good practice / implementation > advice, catalogs should provide user and query-specific protection > instructions. > > We believe this approach effectively addresses the need for > interoperability and the strict separation between how policies are > defined and how they are enforced at query execution time. > > I will update the OpenAPI proposal by next week for broader review. > > Best regards, > Robert > > On Thu, Aug 21, 2025 at 1:22 AM Ryan Blue <rdb...@gmail.com> wrote: > > > > Thanks, Prashant! I agree, it's good to have a starting point we can > > iterate from. > > > > On Wed, Aug 20, 2025 at 3:25 PM Yufei Gu <flyrain...@gmail.com> wrote: > >> > >> Thanks Prashant for filing the PR. This is a solid start point for FGAC! > >> > >> The spec changes are straightforward and leave plenty of room for future > >> extensibility. While the current Transform [1] isn’t quite sufficient for > >> column masking, enhancements to Transform along with the upcoming UDF > >> proposal should address that gap. For instance, we could introduce a > >> "UDFTerm" once the UDF spec is finalized. > >> > >> [1] > >> https://github.com/polaris-catalog/polaris/blob/8d4cacb27c2a29353091b149e733b4fa7ce4ac53/spec/iceberg-rest-catalog-open-api.yaml#L2317-L2317 > >> > >> Yufei > >> > >> > >> On Wed, Aug 20, 2025 at 2:59 PM Prashant Singh <prashant010...@gmail.com> > >> wrote: > >>> > >>> Robert, > >>> > >>> > It might not change this particular proposal > >>> > having support for UDFs in Iceberg Expressions, which is a prerequisite > >>> > for this particular proposal > >>> > >>> Unfortunately, that's not my understanding of what community consensus > >>> was based on community sync (here) > >>> I have put out a SPEC change proposal based on my understanding of what > >>> community consensus is, as PR-13879, I would request other community > >>> members to chime here as well. > >>> > >>> As far as client server interaction with UDFs are concerned, based on my > >>> understanding of discussion so far in UDF syncs, we want to send all the > >>> versions / dialects that udf has from server to the client and the client > >>> picks the one which it wants, not the other way around. It is similar to > >>> what we have for Iceberg View already, this should handle both your > >>> questions. That being said if you have follow-up questions there is a > >>> dedicated Sync for UDF discussions. > >>> > >>> Thank you, > >>> Prashant Singh > >>> > >>> On Wed, Aug 20, 2025 at 2:48 AM Robert Stupp <sn...@snazy.de> wrote: > >>>> > >>>> Prashant, > >>>> > >>>> be ensured that we are still and actively working into this. We are > >>>> looking at this from multiple points of specific views but most > >>>> importantly from a high level view: how all the things work seamlessly > >>>> together. We are really looking forward to providing an update as soon > >>>> as we are confident that the whole approach works. It might not change > >>>> this particular proposal, but it is very important for a proper design > >>>> to think about upstream and downstream impacts. > >>>> > >>>> In the meantime, as it's orthogonal to this particular effort, it > >>>> would be great to get the ball rolling on having support for UDFs in > >>>> Iceberg Expressions, which is a prerequisite for this particular > >>>> proposal. We would be happy, if you could help getting that into > >>>> Apache Iceberg. > >>>> > >>>> As we are speaking about Iceberg UDFs, and implicitly agreed that > >>>> those become a prerequisite for this proposal, it would be very > >>>> beneficial for clients (query engines) being able to leverage the > >>>> following, which is where your help would be appreciated: > >>>> 1. Allows clients to request an Iceberg UDF only in the current > >>>> version, and only the representation (think: SQL dialect) the client > >>>> needs. > >>>> 2. Allow clients to request multiple Iceberg UDF representations in > >>>> one request. Optionally only returning the currentversion and > >>>> optionally restricted to the representation the client needs. > >>>> > >>>> Robert > >>>> > >>>> On Mon, Aug 18, 2025 at 6:05 PM Prashant Singh > >>>> <prashant010...@gmail.com> wrote: > >>>> > > >>>> > Hi all, > >>>> > > >>>> > It was really nice to go through the proposal in the Iceberg catalog > >>>> > community sync (7/30)! > >>>> > > >>>> > As next steps, I was expecting the doc to be updated according to the > >>>> > community feedback, specifically: > >>>> > > >>>> > Using loadTable API to return the evaluated policies result. > >>>> > > >>>> > Aligning on Iceberg expressions as the path forward for row filters, > >>>> > with UDFs to handle dialect-specific logic. > >>>> > > >>>> > I noticed the doc hasn’t yet been updated with this feedback. I > >>>> > completely understand the authors might be busy, so I’d like to offer > >>>> > help to push this forward. > >>>> > > >>>> > We’ve discussed this topic in depth across several syncs, so perhaps > >>>> > we could even move ahead by opening a spec PR to IRC and continue > >>>> > iterating there. I’m happy to help put that out if it would help keep > >>>> > things moving. > >>>> > > >>>> > Downstream projects such as Apache Polaris are eagerly waiting for > >>>> > this feature, so it would be great to make progress here! > >>>> > > >>>> > Thanks, > >>>> > Prashant Singh > >>>> > > >>>> > > >>>> > On Wed, Jul 23, 2025 at 7:45 AM Robert Stupp <sn...@snazy.de> wrote: > >>>> >> > >>>> >> Hi all, > >>>> >> > >>>> >> Following up on the “Iceberg REST FGAC proposal” discussion [1], we > >>>> >> are happy to share the more detailed proposal [2] to extend the Apache > >>>> >> Iceberg REST specification to include a new API for retrieving > >>>> >> fine-grained access control (FGAC) "protection instructions" > >>>> >> (row-level filters and column transformations) from an Iceberg REST > >>>> >> Catalog. > >>>> >> > >>>> >> The aim is to standardize how query engines obtain these instructions > >>>> >> based on user identity, simplifying data protection enforcement. > >>>> >> > >>>> >> The proposal focuses solely on the new Iceberg REST API endpoint to > >>>> >> retrieve protection instructions, intentionally omitting catalog > >>>> >> specific policy management APIs. > >>>> >> > >>>> >> Having a truly interoperable way to represent the protection > >>>> >> instructions for both row filters and column transformations is a huge > >>>> >> benefit. This is why the support for Iceberg expressions is marked as > >>>> >> mandatory in the proposal. We think that it is a fair option to allow > >>>> >> people to use SQL expressions, not required by the proposal, to > >>>> >> satisfy their needs, assuming they are okay to accept that not all > >>>> >> catalogs or engines support SQL expressions or not all SQL > >>>> >> conformance/dialects. > >>>> >> > >>>> >> Thanks to all of those who have helped review & contribute - JB > >>>> >> Onofre, Prashant Singh, Russell Spitzer, Roy Hansson, & Kevin Liu. We > >>>> >> are excited about the community support! > >>>> >> > >>>> >> Cheers, > >>>> >> Robert, Laurent, Alex, Dmitri > >>>> >> > >>>> >> [1] https://lists.apache.org/thread/nfw1t0glfdfj1hwmzzzzwwyrfnq44yr5 > >>>> >> [2] > >>>> >> https://docs.google.com/document/d/108Y0E8XsZi91x-UY0_aHLEbmXDNmxmS5BnDjunEKvTM