Skip to content

Commit

Permalink
Merge pull request #399 from reubenmiller/fix-preserve-encryption-env…
Browse files Browse the repository at this point in the history
…-variables

fix(set-session): preserve encryption env variables and any C8Y_SETTINGS variables
  • Loading branch information
reubenmiller authored Jun 18, 2024
2 parents b2a98a7 + 3efe05f commit c904752
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions pkg/cmd/sessions/set/set.manual.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,13 +124,18 @@ func (n *CmdSet) RunE(cmd *cobra.Command, args []string) error {
// the user is most likely switching session so does not want to inherit any environment variables
// set from the last instance.
// But this has a side effect that you can't control the profile handing via environment variables when using the interact session selection
allowedEnvValues := []string{"C8Y_SETTINGS_SESSION_HIDE"}
allowedEnvValues := []string{
"C8Y_SETTINGS_SESSION_HIDE",
// Preserve encryption settings
"C8Y_PASSPHRASE",
"C8Y_PASSPHRASE_TEXT",
}
env_prefix := strings.ToUpper(config.EnvSettingsPrefix)
for _, env := range os.Environ() {
if strings.HasPrefix(env, env_prefix) && !strings.HasPrefix(env, config.EnvPassphrase) && !strings.HasPrefix(env, config.EnvSessionHome) {
parts := strings.SplitN(env, "=", 2)
if len(parts) == 2 {
if !slices.Contains(allowedEnvValues, parts[0]) {
if !slices.Contains(allowedEnvValues, parts[0]) && !strings.HasPrefix("C8Y_SETTINGS_", parts[0]) {
os.Unsetenv(parts[0])
}
}
Expand Down

0 comments on commit c904752

Please sign in to comment.