Skip to content

Commit 186b407

Browse files
committed
Merge branch '425-mask-platform-access-token' into 'master'
fix(engine): mask Platform Access Token in UI logs (#425) Closes #425 See merge request postgres-ai/database-lab!593
2 parents fe3b8ca + b58c405 commit 186b407

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

engine/internal/platform/platform.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,8 @@ func (s *Service) OriginURL() string {
112112

113113
return platformURL.String()
114114
}
115+
116+
// AccessToken returns Platform AccessToken.
117+
func (s *Service) AccessToken() string {
118+
return s.cfg.AccessToken
119+
}

engine/internal/srv/server.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,10 @@ func (s *Server) initLogRegExp() {
276276
secretPatterns = append(secretPatterns, s.Config.VerificationToken)
277277
}
278278

279+
if accessToken := s.Platform.AccessToken(); len(accessToken) >= minTokenLength && !containsSpace(accessToken) {
280+
secretPatterns = append(secretPatterns, accessToken)
281+
}
282+
279283
s.re = regexp.MustCompile("(?i)" + strings.Join(secretPatterns, "|"))
280284
}
281285

engine/internal/srv/ws_test.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
package srv
22

33
import (
4+
"context"
45
"testing"
56

67
"github.com/stretchr/testify/assert"
8+
"github.com/stretchr/testify/require"
79

10+
"gitlab.com/postgres-ai/database-lab/v3/internal/platform"
811
"gitlab.com/postgres-ai/database-lab/v3/internal/srv/config"
912
)
1013

1114
func TestLogLineFiltering(t *testing.T) {
12-
s := Server{Config: &config.Config{VerificationToken: "secretToken"}}
15+
pl, err := platform.New(context.Background(), platform.Config{AccessToken: "platformAccessToken"})
16+
require.NoError(t, err)
17+
18+
s := Server{Config: &config.Config{VerificationToken: "secretToken"}, Platform: pl}
1319
s.initLogRegExp()
1420

1521
testCases := []struct {
@@ -56,6 +62,10 @@ func TestLogLineFiltering(t *testing.T) {
5662
input: []byte(`AWS_ACCESS_KEY_ID:password`),
5763
output: []byte(`AWS_********`),
5864
},
65+
{
66+
input: []byte(`platform: "platformAccessToken"`),
67+
output: []byte(`platform: "********"`),
68+
},
5969
}
6070

6171
for _, tc := range testCases {

0 commit comments

Comments
 (0)