id = "dolphie"
name = "Dolphie"
homepage = "https://github.com/charles-001/dolphie"
description = "A real-time analytics TUI for MySQL, MariaDB, and ProxySQL."
executables = ["dolphie"]
[dotfiles]
paths = []
secret = ["~/.dolphie.cnf"]
[commands]
format = 1
label = "Monitor MySQL"
description = "Start Dolphie against a MySQL or ProxySQL host, optionally recording or replaying data. Passwords (use a credential profile, .my.cnf or DOLPHIE_PASSWORD), URIs, hostgroups, daemon mode and filters are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
url = "https://github.com/charles-001/dolphie"
revision = "dolphie --help"
evidence = """
--tab-setup Start Dolphie by showing the Tab Setup modal instead of automatically connecting with the specified options
-C, --cred-profile Credential profile to use. See below for more information
-u, --user Username
-h, --host Hostname/IP address
-P, --port Port (socket has precedence)
-S, --socket Socket file
-c, --config-file Dolphie's config file to use, takes precedence over DOLPHIE_CONFIG environment variable.
-r, --refresh-interval
The time, in seconds, between each data collection and processing cycle [default: 1]
--ssl-mode Desired security state of the connection to the host. Supports: REQUIRED/VERIFY_CA/VERIFY_IDENTITY [default: OFF]
--panels What panels to display on startup separated by a comma. Supports: ['dashboard', 'processlist', 'graphs', 'replication', 'metadata_locks', 'ddl', 'pfs_metrics', 'statements_summary', 'proxysql_hostgroup_summary', 'proxysql_mysql_query_rules', 'proxysql_command_stats'], [default: ['dashboard', 'processlist']]
-R, --record Enables recording of Dolphie's data to a replay file. Note: This can use significant disk space. Monitor accordingly!
--replay-file Specify the full path of the replay file to load and enable replay mode
--show-trxs-only (MySQL only) Start with only showing threads that have an active transaction
--additional-columns Start with additional columns in Processlist panel
"""
[[commands.field]]
id = "host"
label = "Host"
type = "string"
option = ["--host", "-h"]
sources = ["help"]
[[commands.field]]
id = "port"
label = "Port"
type = "integer"
option = ["--port", "-P"]
sources = ["help"]
[[commands.field]]
id = "user"
label = "User"
type = "string"
option = ["--user", "-u"]
sources = ["help"]
[[commands.field]]
id = "socket"
label = "Socket file"
type = "path"
option = ["--socket", "-S"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["help"]
[[commands.field]]
id = "cred_profile"
label = "Credential profile"
description = "A [credential_profile_<name>] section in Dolphie's config file."
type = "string"
option = ["--cred-profile", "-C"]
sources = ["help"]
[[commands.field]]
id = "config_file"
label = "Config file"
type = "path"
option = ["--config-file", "-c"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["help"]
[[commands.field]]
id = "refresh_interval"
label = "Refresh interval (seconds)"
type = "integer"
option = ["--refresh-interval", "-r"]
sources = ["help"]
[[commands.field]]
id = "ssl_mode"
label = "SSL mode"
type = "enum"
option = ["--ssl-mode"]
choices = [{ value = "REQUIRED", label = "Required" }, { value = "VERIFY_CA", label = "Verify CA" }, { value = "VERIFY_IDENTITY", label = "Verify identity" }]
sources = ["help"]
[[commands.field]]
id = "panels"
label = "Startup panels"
description = "Comma-separated panel names."
type = "string"
option = ["--panels"]
suggestions = [{ value = "dashboard,processlist", label = "Dashboard and processlist" }, { value = "dashboard,processlist,graphs", label = "With graphs" }, { value = "dashboard,processlist,replication", label = "With replication" }]
sources = ["help"]
[[commands.field]]
id = "record"
label = "Record to a replay file"
description = "Can use significant disk space."
type = "boolean"
option = ["--record", "-R"]
sources = ["help"]
[[commands.field]]
id = "replay_file"
label = "Replay file"
type = "path"
option = ["--replay-file"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["help"]
[[commands.field]]
id = "show_trxs_only"
label = "Only threads with a transaction"
type = "boolean"
option = ["--show-trxs-only"]
sources = ["help"]
[[commands.field]]
id = "additional_columns"
label = "Extra processlist columns"
type = "boolean"
option = ["--additional-columns"]
sources = ["help"]
[[commands.task]]
id = "monitor"
label = "Monitor a host"
fields = ["host", "port", "user", "ssl_mode", "panels"]
required = ["host"]
[[commands.task]]
id = "profile"
label = "Use a credential profile"
fields = ["cred_profile", "panels"]
required = ["cred_profile"]
[[commands.task]]
id = "replay"
label = "Replay a recording"
fields = ["replay_file"]
required = ["replay_file"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["host", "port", "user", "cred_profile", "socket", "ssl_mode"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["config_file", "refresh_interval", "panels", "record", "replay_file", "show_trxs_only", "additional_columns"]