nevzheng opened a new pull request, #12471:
URL: https://github.com/apache/gravitino/pull/12471
## Summary
Design-doc-only SPIP for previewing Gravitino API and Iceberg REST
semantics. Two orthogonal gates; both required to expose experimental behavior.
No runtime code.
| | Approach A (env)
| Approach B (client)
|
| --------- |
----------------------------------------------------------------------------------------------------
| ----------------------------------------------------- |
| Mechanism | `gravitino.experimental.<feature>.*` in `gravitino.conf` (`#
EXPERIMENTAL:`, `enable` default false) | `X-Gravitino-Experiments` = set of
**enabled** tokens |
| Owner | Operator
| Client / engine
|
`expose_experimental(f) = A.enable(f) ∧ B.contains(f)`
| A.enable | B token | Result |
| -------- | ------------- | ------------------ |
| on | absent | Stable API |
| on | enabled token | Experimental |
| off | absent | Stable API |
| off | token listed | Unexpected feature |
Disabled, unknown, and post-stabilize stale tokens reject the same way. The
header is not authz; stable APIs must not depend on it.
## Context
Gravitino has no shared preview control plane today. This is the gate
framework only (illustrative tokens: read-restrictions, materialized-views).
Out of scope: authz, per-feature models, OpenFeature / dynamic configuration,
parallel experimental routes.
Welcome feedback on the approach, semantics, and other project prior art.
## Verification
N/A — no runtime change. Manual and LLM review to simulate usage/UX;
determined reasonable.
Nevin
Sent from my 🤖 (Cursor)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]