Skip to content

WIP: Ballista Text User Interface app#1433

Closed
martin-g wants to merge 36 commits intoapache:mainfrom
martin-g:ballusta-tui-in-cli
Closed

WIP: Ballista Text User Interface app#1433
martin-g wants to merge 36 commits intoapache:mainfrom
martin-g:ballusta-tui-in-cli

Conversation

@martin-g
Copy link
Copy Markdown
Member

Which issue does this PR close?

Part of #1396.

Rationale for this change

See #1396

What changes are included in this PR?

Initial version of the TUI app that includes:

  • new Cargo feature tui to include it as part of the CLI app
  • New CLI option --tui to start the TUI app
  • Header navigation (Dashboard, Jobs, Metrics)
  • Help popup (activate with ? or h)
  • Dashboard view (scheduler state and executors info)
  • Placeholder for the Jobs and Metrics views
  • Yaml configuration
    • hardcoded defaults
    • OS specific config (e.g. ~/.config/ballista-tui/config.yaml)
    • env variables, e.g. BALLISTA_TUI_HTTP_TIMEOUT=3000

Are there any user-facing changes?

New option for the CLI application, --tui that starts the TUI application

Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Navigate to each one with: 'd', 'j' and 'm' keys respetively

Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Remove obsolete functionality (search).
Update the help popup window contents.

Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
@martin-g
Copy link
Copy Markdown
Member Author

The Dashboard view:
ballista-tui

The help popup:
ballista-tui-with-help

Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
@milenkovicm
Copy link
Copy Markdown
Contributor

would it make sense to switch from CLI to TUI? would it be possible to have \tui command which would switch for SQL to cluster management?

pub(crate) fn new() -> Result<Self, ConfigError> {
let config_dir = dirs::config_dir()
.unwrap_or_else(|| dirs::home_dir().unwrap().join(".config"))
.join("ballista-tui");
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we keep it as ballista-cli?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about just ballista ?
And then use cli and/or tui as a parent node in the config.

This way the same config file could be used to provide the defaults for the whole cli+tui app and maybe even for the scheduler and executors later. AFAIS the cli app starts a scheduler and executor if host+port are not provided.

@martin-g
Copy link
Copy Markdown
Member Author

would it make sense to switch from CLI to TUI? would it be possible to have \tui command which would switch for SQL to cluster management?

I think it should be possible!
Yet another option is to provide the CLI functionality as an additional tab in the TUI.

Comment thread ballista-cli/src/tui/ui/header.rs Outdated
Comment on lines +33 to +36
_ _ _
| \ _. _|_ _. |_ _ o _ ._ |_) _. | | o _ _|_ _.
|_/ (_| |_ (_| | |_| _> | (_) | | |_) (_| | | | _> |_ (_|
"#;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we have capital 'F' in DataFusion

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is capital. Let me experiment with some other text banner

@martin-g martin-g changed the title Ballista Text User Interface app WIP: Ballista Text User Interface app Jan 31, 2026
@martin-g
Copy link
Copy Markdown
Member Author

would it make sense to switch from CLI to TUI? would it be possible to have \tui command which would switch for SQL to cluster management?

implemented with 3b289d9

dependabot bot and others added 12 commits February 1, 2026 23:04
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](actions/checkout@v5.0.1...v6.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…pache#1400)

* Cluster RPC customizations to support TLS and custom headers

* Add TLS support to scheduler flight proxy service

- Update BallistaFlightProxyService to accept use_tls and customize_endpoint parameters
- Add use_tls field to SchedulerConfig with with_use_tls() builder method
- Unify EndpointOverrideFn type across crates to use ballista_core::extension definition
- Update flight proxy to use https/http scheme based on TLS configuration
- Apply custom endpoint configuration for TLS certificate setup
Bumps [tonic-prost-build](https://github.com/hyperium/tonic) from 0.14.2 to 0.14.3.
- [Release notes](https://github.com/hyperium/tonic/releases)
- [Changelog](https://github.com/hyperium/tonic/blob/master/CHANGELOG.md)
- [Commits](hyperium/tonic@v0.14.2...v0.14.3)

---
updated-dependencies:
- dependency-name: tonic-prost-build
  dependency-version: 0.14.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tonic-prost](https://github.com/hyperium/tonic) from 0.14.2 to 0.14.3.
- [Release notes](https://github.com/hyperium/tonic/releases)
- [Changelog](https://github.com/hyperium/tonic/blob/master/CHANGELOG.md)
- [Commits](hyperium/tonic@v0.14.2...v0.14.3)

---
updated-dependencies:
- dependency-name: tonic-prost
  dependency-version: 0.14.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tonic](https://github.com/hyperium/tonic) from 0.14.2 to 0.14.3.
- [Release notes](https://github.com/hyperium/tonic/releases)
- [Changelog](https://github.com/hyperium/tonic/blob/master/CHANGELOG.md)
- [Commits](hyperium/tonic@v0.14.2...v0.14.3)

---
updated-dependencies:
- dependency-name: tonic
  dependency-version: 0.14.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
@martin-g martin-g force-pushed the ballusta-tui-in-cli branch from bbae391 to 40ac629 Compare February 1, 2026 21:12
@github-actions github-actions bot added documentation Improvements or additions to documentation development-process labels Feb 1, 2026
@martin-g
Copy link
Copy Markdown
Member Author

martin-g commented Feb 1, 2026

There was a strange merge conflict in Cargo.toml and I rebased the PR to main but then its Git history got messed up ...
Opening a new PR: #1436

@martin-g martin-g closed this Feb 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

development-process documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants