apache / apache/fluss

[Client] [Server] Add temporary write authorization for bulk-load sessions

Open
#4,226 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.

### Description

Bulk-load builders must write snapshot and manifest files to remote storage.
The existing client credential flow may provide read-only access, which is
insufficient in a production environment.

Add a least-privilege mechanism that allows an authorized caller to obtain
temporary write access for one active bulk-load transaction. The authorization
must integrate with `openBuildSession` without placing credentials in the
serializable build context.

This task should align with a future complete authorization system, but it does
not introduce general-purpose ACL or RBAC management.

#### Scope

- Authorize the caller before issuing temporary write access.
- Scope the authorization to one BulkLoad transaction and its allowed remote
storage location.
- Grant only the operations required to write and finalize build artifacts.
- Acquire the authorization when opening a build session.
- Make the authorization available to bucket and manifest writers through the
session.
- Define expiration behavior for temporary credentials.
- Define how builds that run longer than one credential lifetime continue or
fail.
- Prevent credentials from being serialized into build contexts, engine
checkpoints, manifests, logs, or error messages.
- Ensure closed or expired sessions cannot silently continue using invalid
credentials.
- Keep caller identity server-derived so the mechanism can evolve into the
future authorization model.

### Willingness to contribute

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

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the openBuildSession flow and trace how the session exposes bucket and manifest writers. Review how the serializable build context and session lifecycle handle credentials, then define authorization, expiration, and continuation behavior for one BulkLoad transaction. Done means temporary access is authorized, narrowly scoped, unavailable to serialized artifacts, and invalid after session closure or expiry.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.