[TASK][MEDIUM] Refactor ConfigEntry to replace serverOnly with engineRequired
- Dominant language
- Scala
- Stars
- 2.4k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before creating
- [X] I have searched in the [task list](https://github.com/orgs/apache/projects/296) and found no similar tasks.
### Mentor
- [X] I have sufficient knowledge and experience of this task, and I volunteer to be the mentor of this task to guide contributors to complete the task.
### Skill requirements
- Basic knowledge on Scala Programing Language
- High Level knowledge of Kyuubi architecture
- Familiar with Kyuubi and each engine's configuration
### Background and Goals
Kyuubi is mainly composed of two components: Server and Engine. Some configurations take effect on both Server and Engine, but some only take effect on Server or specific Engine.
The Server picks up configurations from `kyuubi-defaults.conf` and passes them to the command line during the launching engine process, including some sensitive data. To overcome it, we introduce a `serverOnly` flag on each configuration's definition.
### Implementation steps
Replace the `serverOnly` flag with `requiredByEngines(...)` and `requiredByAllEngines`, so that we can only pass the required configurations to each engine.
Note: we should always bypass the unknown properties to the engine in case some user custom properties do not take effect.
### Additional context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.