From b81fffe83d95a2c5c90fd90f3523b51714e1a011 Mon Sep 17 00:00:00 2001 From: Aron Atkins Date: Fri, 13 Jun 2025 14:07:10 -0400 Subject: [PATCH] command-line / environment variable takes precedence over stored credentials fixes #684 --- docs/CHANGELOG.md | 6 ++++++ rsconnect/api.py | 15 +++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 72712c95..3092f944 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -13,6 +13,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 this allows to deploy a new bundle for the content without exposing it as a the activated one. +### Fixed + +- Command-line options like `--api-key` and associated environment variables + like `CONNECT_API_KEY` take precedence over values in a stored deployment + target. (#684) + ## [1.26.0] - 2025-05-28 ### Added diff --git a/rsconnect/api.py b/rsconnect/api.py index 48d8ca95..a095d273 100644 --- a/rsconnect/api.py +++ b/rsconnect/api.py @@ -859,14 +859,13 @@ def setup_remote_server( if header_output: self.logger.warning("\n") - # TODO: Is this logic backward? Seems like the provided value should override the stored value. - api_key = server_data.api_key or api_key - snowflake_connection_name = server_data.snowflake_connection_name or snowflake_connection_name - insecure = server_data.insecure or insecure - ca_data = server_data.ca_data or ca_data - account_name = server_data.account_name or account_name - token = server_data.token or token - secret = server_data.secret or secret + api_key = api_key or server_data.api_key + snowflake_connection_name = snowflake_connection_name or server_data.snowflake_connection_name + insecure = insecure or server_data.insecure + ca_data = ca_data or server_data.ca_data + account_name = account_name or server_data.account_name + token = token or server_data.token + secret = secret or server_data.secret self.is_server_from_store = server_data.from_store