#postgresql #tui #teleport #instance #user #terminal

app kith

Teleport数据库的TUI

3个版本

0.1.2 2024年7月11日
0.1.1 2024年7月11日
0.1.0 2024年7月11日

#319 in 数据库接口

每月 34 次下载

MIT 许可证

1.5MB
1.5K SLoC

Kith

这是我一直想要的一个小型终端UI,可以快速访问Teleport上的各种PostgreSQL数据库。这源于对`tsh`数据库实例输出是文本表格而不是结构化数据(JSON等)的挫败感。

该程序将拉取用户可访问的数据库实例,解析它并提供导航实例的提示。目标是让您能够轻松查看实例的详细信息,并连接而不需要记住用户权限或数据库名称。

工作原理

程序流程以循环方式遵循三个主要步骤

  1. 根据数据结构值渲染终端UI。
  2. 处理用户生成的事件(按键推送)。
  3. 更新数据结构的状态。

由于程序的单个目标,这个简单的游戏循环是足够的。

一旦所有连接值都填写完毕,程序将启动一个新的终端并带有Teleport数据库会话,然后自行中断。

功能集

  • 基于提供的环境变量自动登录Teleport。
  • 通过用户输入进行数据库实例搜索功能。
  • 渲染数据库详细信息。
  • 数据库连接提示(带有用户选择、数据库名称输入和确认)。

发布

发布通过GitHub Actions利用release-plz处理。目前仅通过crates.io进行分发,这比为各种架构构建和压缩二进制文件具有更少的开销(这也假定您已安装Rust和Cargo)。

安装

cargo install kith

运行

使用完整命令

KITH_TSH_PROXY="<YOUR-PROXY-VALUE>" KITH_TSH_CLUSTER="<YOUR-CLUSTER-VALUE>" kith

您还可以使用小的shell别名设置并忘记它。以下是一个zsh的示例

echo 'alias kith="KITH_TSH_PROXY="<YOUR-PROXY-VALUE>" KITH_TSH_CLUSTER="<YOUR-CLUSTER-VALUE>" kith"' >> ~/.zshrc
source ~/.zshrc

然后运行

kith

本地运行

克隆存储库并在.env中填写您的Teleport值。有关变量名称,请参阅.example.env

make run
make info
make debug

卸载

cargo uninstall kith

说明

这个小工具几乎是一个MVP

  • 各种UX错误有待解决(例如,由于错误用户输入而崩溃)。
  • 调试日志破坏了TUI。
  • 仅支持MacOS,因为显式使用了AppleScript在单独的终端窗口中启动DB连接。
  • 代码尚未清理(最终可能需要使用rustfmt)。

一旦这个工具可用性适用于我的日常工作流程,我可能会停止开发它,以便转向其他各种边项目。如果您想添加任何功能,请随意fork仓库!

截图/录制

这是使用本地伪造数据时TUI的示例

Demo Gif

依赖项

~6–12MB
~126K SLoC