Skip to content

Commit 8350bb2

Browse files
DEV: do not include secrets in envrc files
1 parent 0ccb7a7 commit 8350bb2

File tree

2 files changed

+9
-14
lines changed

2 files changed

+9
-14
lines changed

docker_compose.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,14 +155,17 @@ func WriteEnvConfig(configs []config.Config, dir string) error {
155155
func ExportEnv(configs []config.Config) string {
156156
builder := []string{}
157157
// prioritize the first configs for env
158+
// last write wins, so load the first config last
158159
slices.Reverse(configs)
159160
for _, config := range configs {
160161
// Sort env within a config
161162
configEnv := []string{}
162163
for k, v := range config.Env {
163-
val := strings.ReplaceAll(v, "\\", "\\\\")
164-
val = strings.ReplaceAll(val, "\"", "\\\"")
165-
configEnv = append(configEnv, "export "+k+"=\""+val+"\"")
164+
if !slices.Contains(utils.KnownSecrets, k) {
165+
val := strings.ReplaceAll(v, "\\", "\\\\")
166+
val = strings.ReplaceAll(val, "\"", "\\\"")
167+
configEnv = append(configEnv, "export "+k+"=\""+val+"\"")
168+
}
166169
}
167170
slices.Sort(configEnv)
168171
builder = append(builder, strings.Join(configEnv, "\n"))

main_test.go

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ var _ = Describe("Generate", func() {
6262
Expect(err).To(BeNil())
6363
out, err := os.ReadFile(testDir + "/.envrc")
6464
Expect(err).To(BeNil())
65-
Expect(string(out[:])).To(ContainSubstring("export DISCOURSE_HOSTNAME"))
65+
// envrc does not export secrets since we don't build with them
66+
Expect(string(out[:])).ToNot(ContainSubstring("export DISCOURSE_DB_PASSWORD"))
67+
Expect(string(out[:])).To(ContainSubstring("export RAILS_ENV"))
6668
out, err = os.ReadFile(testDir + "/test.yaml")
6769
Expect(err).To(BeNil())
6870
Expect(string(out[:])).To(ContainSubstring("DISCOURSE_DEVELOPER_EMAILS: '[email protected],[email protected]'"))
@@ -89,16 +91,6 @@ var _ = Describe("Generate", func() {
8991
Expect(string(out[:])).To(ContainSubstring(`export LANG="en_US.UTF-8"
9092
export LANGUAGE="en_US.UTF-8"
9193
export LC_ALL="en_US.UTF-8"
92-
export DISCOURSE_DB_HOST="data"
93-
export DISCOURSE_DB_PASSWORD="SOME_SECRET"
94-
export DISCOURSE_DB_PORT=""
95-
export DISCOURSE_DB_SOCKET=""
96-
export DISCOURSE_DEVELOPER_EMAILS="[email protected],[email protected]"
97-
export DISCOURSE_HOSTNAME="discourse.example.com"
98-
export DISCOURSE_REDIS_HOST="data"
99-
export DISCOURSE_SMTP_ADDRESS="smtp.example.com"
100-
export DISCOURSE_SMTP_PASSWORD="pa$$word"
101-
export DISCOURSE_SMTP_USER_NAME="[email protected]"
10294
export LANG="en_US.UTF-8"
10395
export LANGUAGE="en_US.UTF-8"
10496
export LC_ALL="en_US.UTF-8"

0 commit comments

Comments
 (0)