Hi, I’m trying to clarify what is the process regarding discussing proposals in general but also in the context of the Iceberg REST FGAC one.
While there’s engagement on the mailing list and updates to the document being made, a parallel conversation is happening on a pull request directly (https://github.com/apache/iceberg/pull/13879/files). I've assumed that proposals were to be discussed first on the mailing list using google docs design documents as support for the discussion and regular meetings (based on https://iceberg.apache.org/contribute/?h=proposal#apache-iceberg-improvement-proposals) until doc is finalized, and then it'd move to a PR change, but it seems not to be the case for the FGAC proposal. Is the process still accurate? If so, can we move back the conversations related to the FGAC proposal to the mailing list and use the doc as support? (and if we can’t move back, can someone explain why this doesn’t seem to follow the normal process, what we should have done differently?) Laurent On Tue, Sep 16, 2025 at 7:26 AM Robert Stupp <sn...@snazy.de> wrote: > 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 >