Skip to content

Commit d2b95d9

Browse files
Merge pull request #6708 from devtron-labs/api-token-hide-via-flag
chore: Api token hide via flag
2 parents 775450b + dc216ce commit d2b95d9

File tree

5 files changed

+44
-8
lines changed

5 files changed

+44
-8
lines changed

cmd/external-app/wire_gen.go

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

env_gen.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

env_gen.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@
206206
| GRAFANA_PORT | string |8090 | Port for grafana micro-service | | false |
207207
| GRAFANA_URL | string | | Host URL for the grafana dashboard | | false |
208208
| GRAFANA_USERNAME | string |admin | Username for grafana | | false |
209+
| HIDE_API_TOKENS | bool |false | Boolean flag for should the api tokens generated be hidden from the UI | | false |
209210
| HIDE_IMAGE_TAGGING_HARD_DELETE | bool |false | Flag to hide the hard delete option in the image tagging service | | false |
210211
| IGNORE_AUTOCOMPLETE_AUTH_CHECK | bool |false | flag for ignoring auth check in autocomplete apis. | | false |
211212
| INSTALLED_MODULES | | | List of installed modules given in helm values/yaml are written in cm and used by devtron to know which modules are given | security.trivy,security.clair | false |

pkg/apiToken/ApiTokenService.go

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package apiToken
1919
import (
2020
"errors"
2121
"fmt"
22+
"github.com/caarlos0/env"
2223
userBean "github.com/devtron-labs/devtron/pkg/auth/user/bean"
2324
"regexp"
2425
"strconv"
@@ -48,17 +49,41 @@ type ApiTokenServiceImpl struct {
4849
userService user2.UserService
4950
userAuditService user2.UserAuditService
5051
apiTokenRepository ApiTokenRepository
52+
TokenVariableConfig *TokenVariableConfig
5153
}
5254

53-
func NewApiTokenServiceImpl(logger *zap.SugaredLogger, apiTokenSecretService ApiTokenSecretService, userService user2.UserService, userAuditService user2.UserAuditService,
54-
apiTokenRepository ApiTokenRepository) *ApiTokenServiceImpl {
55-
return &ApiTokenServiceImpl{
55+
func NewApiTokenServiceImpl(logger *zap.SugaredLogger,
56+
apiTokenSecretService ApiTokenSecretService,
57+
userService user2.UserService,
58+
userAuditService user2.UserAuditService,
59+
apiTokenRepository ApiTokenRepository,
60+
) (*ApiTokenServiceImpl, error) {
61+
apiTokenService := &ApiTokenServiceImpl{
5662
logger: logger,
5763
apiTokenSecretService: apiTokenSecretService,
5864
userService: userService,
5965
userAuditService: userAuditService,
6066
apiTokenRepository: apiTokenRepository,
6167
}
68+
69+
cfg, err := GetTokenConfig()
70+
if err != nil {
71+
apiTokenService.logger.Errorw("error while getting token config ", "error", err)
72+
return nil, err
73+
}
74+
apiTokenService.TokenVariableConfig = cfg
75+
76+
return apiTokenService, nil
77+
}
78+
79+
func GetTokenConfig() (*TokenVariableConfig, error) {
80+
cfg := &TokenVariableConfig{}
81+
err := env.Parse(cfg)
82+
return cfg, err
83+
}
84+
85+
type TokenVariableConfig struct {
86+
HideApiTokens bool `env:"HIDE_API_TOKENS" envDefault:"false" description:"Boolean flag for should the api tokens generated be hidden from the UI"`
6287
}
6388

6489
var invalidCharsInApiTokenName = regexp.MustCompile("[,\\s]")
@@ -104,9 +129,11 @@ func (impl ApiTokenServiceImpl) GetAllApiTokensForWebhook(projectName string, en
104129
Name: &apiTokenFromDb.Name,
105130
Description: &apiTokenFromDb.Description,
106131
ExpireAtInMs: &apiTokenFromDb.ExpireAtInMs,
107-
Token: &apiTokenFromDb.Token,
108132
UpdatedAt: &updatedAtStr,
109133
}
134+
if !impl.TokenVariableConfig.HideApiTokens {
135+
apiToken.Token = &apiTokenFromDb.Token
136+
}
110137
apiTokens = append(apiTokens, apiToken)
111138
}
112139
}
@@ -140,9 +167,11 @@ func (impl ApiTokenServiceImpl) GetAllActiveApiTokens() ([]*openapi.ApiToken, er
140167
Name: &apiTokenFromDb.Name,
141168
Description: &apiTokenFromDb.Description,
142169
ExpireAtInMs: &apiTokenFromDb.ExpireAtInMs,
143-
Token: &apiTokenFromDb.Token,
144170
UpdatedAt: &updatedAtStr,
145171
}
172+
if !impl.TokenVariableConfig.HideApiTokens {
173+
apiToken.Token = &apiTokenFromDb.Token
174+
}
146175
if latestAuditLog != nil {
147176
lastUsedAtStr := latestAuditLog.CreatedOn.String()
148177
apiToken.LastUsedAt = &lastUsedAtStr

wire_gen.go

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)