Skip to content

Commit 19dc518

Browse files
authored
fix: Properly split domains on comma, viper doesn't do it for env vars (#22)
* fix: Properly split domains on comma, viper doesn't do it for env vars * Trim spaces from domains in allow list
1 parent f902186 commit 19dc518

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

.goreleaser.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ builds:
77
env:
88
- CGO_ENABLED=0
99
ldflags:
10-
- -X github.com/commitdev/zero-notification-service/cmd.appVersion={{.Version}} -X github.com/commitdev/zero-notification-service/cmd.appBuild={{.ShortCommit}}
10+
- -X main.appVersion={{.Version}} -X main.appBuild={{.ShortCommit}}
1111
ignore:
1212
- goos: darwin
1313
goarch: arm64

cmd/server/main.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ func main() {
3838

3939
zap.S().Infow("zero-notification-service", "version", appVersion, "build", appBuild)
4040

41+
if len(config.AllowEmailToDomains) > 0 {
42+
zap.S().Infow("Allowing email only to specified domains", "domains", config.AllowEmailToDomains)
43+
}
44+
4145
// Heartbeat for liveness check
4246
go heartbeat()
4347

internal/config/config.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package config
22

33
import (
4+
"strings"
45
"time"
56

67
"github.com/spf13/viper"
@@ -60,14 +61,23 @@ func loadConfig() *Config {
6061
viper.SetDefault(AllowEmailToDomains, []string{})
6162
viper.BindEnv(AllowEmailToDomains, "ALLOW_EMAIL_TO_DOMAINS")
6263

64+
// Split the string on commas, viper doesn't support doing this to env vars
65+
domains := []string{}
66+
if strings.Trim(viper.GetString(AllowEmailToDomains), " ") != "" {
67+
domains = strings.Split(viper.GetString(AllowEmailToDomains), ",")
68+
for i, domain := range domains {
69+
domains[i] = strings.Trim(domain, " ")
70+
}
71+
}
72+
6373
config := Config{
6474
Port: viper.GetInt(Port),
6575
SendgridAPIKey: viper.GetString(SendgridAPIKey),
6676
SlackAPIKey: viper.GetString(SlackAPIKey),
6777
GracefulShutdownTimeout: viper.GetDuration(GracefulShutdownTimeout),
6878
StructuredLogging: viper.GetBool(StructuredLogging),
6979
DebugDumpRequests: viper.GetBool(DebugDumpRequests),
70-
AllowEmailToDomains: viper.GetStringSlice(AllowEmailToDomains),
80+
AllowEmailToDomains: domains,
7181
}
7282

7383
return &config

0 commit comments

Comments
 (0)