Skip to content

Commit 778bb30

Browse files
authored
fix: override all sensitive auth config fields (#187)
1 parent 6bc6375 commit 778bb30

File tree

1 file changed

+48
-3
lines changed

1 file changed

+48
-3
lines changed

internal/provider/settings_resource.go

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,13 +313,13 @@ func readAuthConfig(ctx context.Context, state *SettingsResourceModel, client *a
313313
return diag.Diagnostics{diag.NewErrorDiagnostic("Client Error", msg)}
314314
}
315315
// API treats sensitive fields as write-only
316-
var body api.AuthConfigResponse
316+
var body LocalAuthConfig
317317
if !state.Auth.IsNull() {
318318
if diags := state.Auth.Unmarshal(&body); diags.HasError() {
319319
return diags
320320
}
321321
}
322-
httpResp.JSON200.SmtpPass = body.SmtpPass
322+
body.overrideSensitiveFields(httpResp.JSON200)
323323
if state.Auth, err = parseConfig(state.Auth, *httpResp.JSON200); err != nil {
324324
msg := fmt.Sprintf("Unable to read auth settings, got error: %s", err)
325325
return diag.Diagnostics{diag.NewErrorDiagnostic("Client Error", msg)}
@@ -343,7 +343,8 @@ func updateAuthConfig(ctx context.Context, plan *SettingsResourceModel, client *
343343
return diag.Diagnostics{diag.NewErrorDiagnostic("Client Error", msg)}
344344
}
345345
// Copy over sensitive fields from TF plan
346-
httpResp.JSON200.SmtpPass = body.SmtpPass
346+
local := LocalAuthConfig{UpdateAuthConfigBody: body}
347+
local.overrideSensitiveFields(httpResp.JSON200)
347348

348349
if plan.Auth, err = parseConfig(plan.Auth, *httpResp.JSON200); err != nil {
349350
msg := fmt.Sprintf("Unable to update auth settings, got error: %s", err)
@@ -439,6 +440,50 @@ func copyConfig(source any, target map[string]interface{}) {
439440
}
440441
}
441442

443+
type LocalAuthConfig struct {
444+
api.UpdateAuthConfigBody
445+
}
446+
447+
func (c LocalAuthConfig) overrideSensitiveFields(resp *api.AuthConfigResponse) {
448+
// Email provider secrets
449+
resp.SmtpPass = c.SmtpPass
450+
// SMS provider secrets
451+
resp.SmsTwilioAuthToken = c.SmsTwilioAuthToken
452+
resp.SmsTwilioVerifyAuthToken = c.SmsTwilioVerifyAuthToken
453+
resp.SmsMessagebirdAccessKey = c.SmsMessagebirdAccessKey
454+
resp.SmsTextlocalApiKey = c.SmsTextlocalApiKey
455+
resp.SmsVonageApiSecret = c.SmsVonageApiSecret
456+
// Captcha provider secrets
457+
resp.SecurityCaptchaSecret = c.SecurityCaptchaSecret
458+
// External provider secrets
459+
resp.ExternalAppleSecret = c.ExternalAppleSecret
460+
resp.ExternalAzureSecret = c.ExternalAzureSecret
461+
resp.ExternalBitbucketSecret = c.ExternalBitbucketSecret
462+
resp.ExternalDiscordSecret = c.ExternalDiscordSecret
463+
resp.ExternalFacebookSecret = c.ExternalFacebookSecret
464+
resp.ExternalFigmaSecret = c.ExternalFigmaSecret
465+
resp.ExternalGithubSecret = c.ExternalGithubSecret
466+
resp.ExternalGitlabSecret = c.ExternalGitlabSecret
467+
resp.ExternalGoogleSecret = c.ExternalGoogleSecret
468+
resp.ExternalKakaoSecret = c.ExternalKakaoSecret
469+
resp.ExternalKeycloakSecret = c.ExternalKeycloakSecret
470+
resp.ExternalLinkedinOidcSecret = c.ExternalLinkedinOidcSecret
471+
resp.ExternalNotionSecret = c.ExternalNotionSecret
472+
resp.ExternalSlackOidcSecret = c.ExternalSlackOidcSecret
473+
resp.ExternalSlackSecret = c.ExternalSlackSecret
474+
resp.ExternalSpotifySecret = c.ExternalSpotifySecret
475+
resp.ExternalTwitchSecret = c.ExternalTwitchSecret
476+
resp.ExternalTwitterSecret = c.ExternalTwitterSecret
477+
resp.ExternalWorkosSecret = c.ExternalWorkosSecret
478+
resp.ExternalZoomSecret = c.ExternalZoomSecret
479+
// Hook provider secrets
480+
resp.HookCustomAccessTokenSecrets = c.HookCustomAccessTokenSecrets
481+
resp.HookMfaVerificationAttemptSecrets = c.HookMfaVerificationAttemptSecrets
482+
resp.HookPasswordVerificationAttemptSecrets = c.HookPasswordVerificationAttemptSecrets
483+
resp.HookSendEmailSecrets = c.HookSendEmailSecrets
484+
resp.HookSendSmsSecrets = c.HookSendSmsSecrets
485+
}
486+
442487
type NetworkConfig struct {
443488
Restrictions []string `json:"restrictions,omitempty"`
444489
}

0 commit comments

Comments
 (0)