apache / apache/fluss

[server] Add authorization to Snapshot Management RPCs (commitKvSnapshot, notifyKvSnapshotOffset, commitLakeTableSnapshot, notifyLakeTableOffset)

Open
#3,250 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2.1k
Forks
625
Avg merge
3d 14h
Merged PRs (30d)
97

Description

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.

### Motivation

**Part of umbrella issue #2007 - Phase 2: Internal RPCs**

Add authorization checks for snapshot management operations:
- `commitKvSnapshot` - CLUSTER/WRITE
- `notifyKvSnapshotOffset` - CLUSTER/WRITE
- `commitLakeTableSnapshot` - CLUSTER/WRITE
- `notifyLakeTableOffset` - CLUSTER/WRITE

These are **internal server-to-server RPCs** that need both:
1. Authorization checks for CLUSTER/WRITE operations
2. Validation that `session.isInternal()` is true to prevent external clients from
calling internal APIs

### Solution

_No response_

### Anything else?

_No response_

### Willingness to contribute

- [x] I'm willing to submit a PR!

Contributor guide

No contributing guide indexed for this repository

Research direction

Locate the server entry points for commitKvSnapshot, notifyKvSnapshotOffset, commitLakeTableSnapshot, and notifyLakeTableOffset, then read the existing authorization handling around comparable internal RPCs. Done means all four operations enforce CLUSTER/WRITE authorization and reject sessions where session.isInternal() is false.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
authorization, backend-api-design, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.