From b359bb9db520b26e5823ce9c4c925864abb6a675 Mon Sep 17 00:00:00 2001 From: Roland Walker Date: Fri, 7 Aug 2026 07:21:44 -0400 Subject: [PATCH] promote vault integration out of beta --- changelog.md | 1 + mycli/cli_runner.py | 4 ++-- mycli/main.py | 10 +++++----- mycli/myclirc | 2 +- mycli/packages/special/dsn_aliases.py | 2 +- test/myclirc | 2 +- test/pytests/test_cli_runner.py | 8 ++++---- test/pytests/test_dsn_aliases.py | 4 ++-- 8 files changed, 17 insertions(+), 16 deletions(-) diff --git a/changelog.md b/changelog.md index 140a7c14..0e656c1c 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ Features --------- * Always clean favorite queries on save and fetch. * Give a clearer message on a Vault connection if the user is not logged in. +* Promote Vault integration out of beta status. Bugfixes diff --git a/mycli/cli_runner.py b/mycli/cli_runner.py index 840c7c31..203ecc79 100644 --- a/mycli/cli_runner.py +++ b/mycli/cli_runner.py @@ -455,7 +455,7 @@ def run_from_cli_args(cli_args: 'CliArgs', client_factory: ClientFactory) -> Non if cli_args.vault_secret: vault_secret = cli_args.vault_secret - vault_config = mycli.config.get('vault_beta', {}) + vault_config = mycli.config.get('vault', {}) vault_address = cli_args.vault_address or os.environ.get('VAULT_ADDR') or vault_config.get('address') or None vault_mount = cli_args.vault_mount or vault_config.get('default_mount') or None vault_password_field = cli_args.vault_password_field or vault_config.get('default_password_field') or DEFAULT_VAULT_PASSWORD_FIELD @@ -477,7 +477,7 @@ def load_vault_password() -> str | None: password_candidates.add_loader('vault', load_vault_password) if cli_args.user is None and cli_args.vault_secret: - vault_config = mycli.config.get('vault_beta', {}) + vault_config = mycli.config.get('vault', {}) vault_address = cli_args.vault_address or os.environ.get('VAULT_ADDR') or vault_config.get('address') or None vault_mount = cli_args.vault_mount or vault_config.get('default_mount') or None vault_username_field = cli_args.vault_username_field or vault_config.get('default_username_field') or DEFAULT_VAULT_USERNAME_FIELD diff --git a/mycli/main.py b/mycli/main.py index 69b58441..7d3c6021 100755 --- a/mycli/main.py +++ b/mycli/main.py @@ -107,23 +107,23 @@ class CliArgs: ) vault_address: str | None = clickdc.option( type=str, - help='EXPERIMENTAL "vault kv get" integration: value for $VAULT_ADDR if unset in the environment or ~/.myclirc.', + help='"vault kv get" integration: value for $VAULT_ADDR if unset in the environment or ~/.myclirc.', ) vault_mount: str | None = clickdc.option( type=str, - help='EXPERIMENTAL "vault kv get" integration: value for -mount if unset in ~/.myclirc.', + help='"vault kv get" integration: value for -mount if unset in ~/.myclirc.', ) vault_secret: str | None = clickdc.option( type=str, - help='EXPERIMENTAL "vault kv get" integration: secret name.', + help='"vault kv get" integration: secret name.', ) vault_password_field: str | None = clickdc.option( type=str, - help='EXPERIMENTAL "vault kv get" integration: field containing the password.', + help='"vault kv get" integration: field containing the password.', ) vault_username_field: str | None = clickdc.option( type=str, - help='EXPERIMENTAL "vault kv get" integration: field containing the username.', + help='"vault kv get" integration: field containing the username.', ) ssl_mode: str = clickdc.option( type=click.Choice(['auto', 'on', 'off']), diff --git a/mycli/myclirc b/mycli/myclirc index c6d0b14f..3f9fbf78 100644 --- a/mycli/myclirc +++ b/mycli/myclirc @@ -394,7 +394,7 @@ ssh_options = -a -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o IPQoS= # auto means: port if on Windows, socket otherwise. tunnel_method = auto -[vault_beta] +[vault] # Path to the vault executable used for Vault integration. vault_executable = vault diff --git a/mycli/packages/special/dsn_aliases.py b/mycli/packages/special/dsn_aliases.py index eadce77c..9c5d1421 100644 --- a/mycli/packages/special/dsn_aliases.py +++ b/mycli/packages/special/dsn_aliases.py @@ -117,7 +117,7 @@ def _query_param_defaults(self) -> dict[str, Any]: main_config = self.config.get('main', {}) connection_config = self.config.get('connection', {}) - vault_config = self.config.get('vault_beta', {}) + vault_config = self.config.get('vault', {}) return { 'character_set': connection_config.get('default_character_set') or DEFAULT_CHARSET, 'keepalive_ticks': self.mycli.default_keepalive_ticks, diff --git a/test/myclirc b/test/myclirc index 93e3606d..7be58325 100644 --- a/test/myclirc +++ b/test/myclirc @@ -394,7 +394,7 @@ ssh_options = -a -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o IPQoS= # auto means: port if on Windows, socket otherwise. tunnel_method = auto -[vault_beta] +[vault] # Path to the vault executable used for Vault integration. vault_executable = vault diff --git a/test/pytests/test_cli_runner.py b/test/pytests/test_cli_runner.py index 927fb5a6..d1392672 100644 --- a/test/pytests/test_cli_runner.py +++ b/test/pytests/test_cli_runner.py @@ -56,7 +56,7 @@ def default_config() -> dict[str, Any]: return { 'main': {'use_keyring': 'false'}, 'connection': {'default_keepalive_ticks': 0}, - 'vault_beta': {}, + 'vault': {}, 'alias_dsn': {}, 'init-commands': {}, 'alias_dsn.init-commands': {}, @@ -964,7 +964,7 @@ def test_run_from_cli_args_reads_password_from_vault_when_password_is_missing( client = DummyMyCli( config={ **default_config(), - 'vault_beta': { + 'vault': { 'vault_executable': '/opt/bin/vault', 'address': 'https://vault.config', 'default_mount': 'kv', @@ -1005,7 +1005,7 @@ def test_run_from_cli_args_reads_username_from_vault_when_user_is_missing( client = DummyMyCli( config={ **default_config(), - 'vault_beta': { + 'vault': { 'vault_executable': '/opt/bin/vault', 'address': 'https://vault.config', 'default_mount': 'kv', @@ -1110,7 +1110,7 @@ def test_run_from_cli_args_prefers_vault_cli_values_and_env_address( client = DummyMyCli( config={ **default_config(), - 'vault_beta': { + 'vault': { 'vault_executable': '/opt/bin/vault', 'address': 'https://vault.config', 'default_mount': 'config-mount', diff --git a/test/pytests/test_dsn_aliases.py b/test/pytests/test_dsn_aliases.py index fdc411e6..e17a59ba 100644 --- a/test/pytests/test_dsn_aliases.py +++ b/test/pytests/test_dsn_aliases.py @@ -364,7 +364,7 @@ def test_dsn_more_adds_non_default_runtime_parameters_in_sorted_order() -> None: 'default_ssl_ca': '/default-ca.pem', 'default_ssl_verify_server_cert': 'False', }, - 'vault_beta': { + 'vault': { 'address': 'https://default-vault', 'default_mount': 'kv', 'default_password_field': 'password', @@ -435,7 +435,7 @@ def test_dsn_more_omits_empty_false_and_active_default_parameters() -> None: 'default_ssl_mode': 'on', 'default_ssl_verify_server_cert': 'True', }, - 'vault_beta': { + 'vault': { 'address': 'https://default-vault', 'default_mount': 'kv', 'default_password_field': 'secret',