Skip to content

Commit

Permalink
Move settings management to utils (#2195)
Browse files Browse the repository at this point in the history
  • Loading branch information
ramanan-ravi authored Jun 11, 2024
1 parent bb25fae commit c94c612
Show file tree
Hide file tree
Showing 15 changed files with 331 additions and 409 deletions.
5 changes: 3 additions & 2 deletions deepfence_server/apiDocs/operation.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/deepfence/ThreatMapper/deepfence_utils/controls"
postgresqldb "github.com/deepfence/ThreatMapper/deepfence_utils/postgresql/postgresql-db"
"github.com/deepfence/ThreatMapper/deepfence_utils/report"
"github.com/deepfence/ThreatMapper/deepfence_utils/setting"
"github.com/deepfence/ThreatMapper/deepfence_utils/threatintel"
"github.com/deepfence/ThreatMapper/deepfence_utils/utils"
ingestersUtil "github.com/deepfence/ThreatMapper/deepfence_utils/utils/ingesters"
Expand Down Expand Up @@ -806,10 +807,10 @@ func (d *OpenAPIDocs) AddSettingsOperations() {
http.StatusOK, []string{tagSettings}, bearerToken, new(EmailConfigurationAdd), new(MessageResponse))
d.AddOperation("getSettings", http.MethodGet, "/deepfence/settings/global-settings",
"Get settings", "Get all settings",
http.StatusOK, []string{tagSettings}, bearerToken, nil, new([]SettingsResponse))
http.StatusOK, []string{tagSettings}, bearerToken, nil, new([]setting.SettingsResponse))
d.AddOperation("updateSetting", http.MethodPatch, "/deepfence/settings/global-settings/{id}",
"Update setting", "Update setting",
http.StatusNoContent, []string{tagSettings}, bearerToken, new(SettingUpdateRequest), nil)
http.StatusNoContent, []string{tagSettings}, bearerToken, new(setting.SettingUpdateRequest), nil)
d.AddOperation("getUserAuditLogs", http.MethodPost, "/deepfence/settings/user-audit-log",
"Get user audit logs", "Get audit logs for all users",
http.StatusOK, []string{tagSettings}, bearerToken, new(GetAuditLogsRequest), new([]postgresqldb.GetAuditLogsRow))
Expand Down
4 changes: 0 additions & 4 deletions deepfence_server/constants/common/keys.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package common

const (
AESSecret = "aes_secret"
)

var CSPMResources = map[string]string{
"aws_s3_bucket": "aws_s3",
"aws_s3_account_settings": "aws_s3",
Expand Down
9 changes: 5 additions & 4 deletions deepfence_server/handler/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/deepfence/ThreatMapper/deepfence_server/model"
"github.com/deepfence/ThreatMapper/deepfence_utils/directory"
"github.com/deepfence/ThreatMapper/deepfence_utils/log"
"github.com/deepfence/ThreatMapper/deepfence_utils/setting"
"github.com/deepfence/ThreatMapper/deepfence_utils/utils"
"github.com/go-chi/jwtauth/v5"
httpext "github.com/go-playground/pkg/v5/net/http"
Expand Down Expand Up @@ -196,11 +197,11 @@ func (h *Handler) LoginHandler(w http.ResponseWriter, r *http.Request) {
}

// If console URL setting is not set, set it now
consoleURL, err := model.GetManagementConsoleURL(ctx, pgClient)
consoleURL, err := setting.GetManagementConsoleURL(ctx, pgClient)
if err != nil || consoleURL == "" {
consoleURLSetting := model.Setting{
Key: model.ConsoleURLSettingKey,
Value: &model.SettingValue{
consoleURLSetting := setting.Setting{
Key: setting.ConsoleURLSettingKey,
Value: &setting.SettingValue{
Label: "Deepfence Console URL",
Value: "https://" + h.GetHostURL(r),
Description: "Deepfence Console URL used for sending emails with links to the console",
Expand Down
2 changes: 1 addition & 1 deletion deepfence_server/handler/scan_reports.go
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ func (h *Handler) StartVulnerabilityScanHandler(w http.ResponseWriter, r *http.R
return
}

binArgs := make(map[string]string, 0)
binArgs := make(map[string]string)
if len(reqs.ScanConfigLanguages) != 0 {
languages := []string{}
for i := range reqs.ScanConfigLanguages {
Expand Down
19 changes: 10 additions & 9 deletions deepfence_server/handler/settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
"github.com/deepfence/ThreatMapper/deepfence_server/pkg/sendemail"
"github.com/deepfence/ThreatMapper/deepfence_utils/directory"
"github.com/deepfence/ThreatMapper/deepfence_utils/log"
"github.com/deepfence/ThreatMapper/deepfence_utils/setting"
"github.com/deepfence/ThreatMapper/deepfence_utils/utils"
"github.com/go-chi/chi/v5"
httpext "github.com/go-playground/pkg/v5/net/http"
Expand Down Expand Up @@ -263,7 +264,7 @@ func (h *Handler) GetGlobalSettings(w http.ResponseWriter, r *http.Request) {
h.respondError(err, w)
return
}
settings, err := model.GetVisibleSettings(ctx, pgClient)
settings, err := setting.GetVisibleSettings(ctx, pgClient)
if err != nil {
h.respondError(err, w)
return
Expand All @@ -287,7 +288,7 @@ func (h *Handler) UpdateGlobalSettings(w http.ResponseWriter, r *http.Request) {
return
}
defer r.Body.Close()
var req model.SettingUpdateRequest
var req setting.SettingUpdateRequest
err = httpext.DecodeJSON(r, httpext.NoQueryParams, MaxPostRequestSize, &req)
if err != nil {
h.respondError(err, w)
Expand All @@ -299,7 +300,7 @@ func (h *Handler) UpdateGlobalSettings(w http.ResponseWriter, r *http.Request) {
h.respondError(&ValidatorError{err: err}, w)
return
}
currentSettings, err := model.GetSettingByKey(ctx, pgClient, req.Key)
currentSettings, err := setting.GetSettingByKey(ctx, pgClient, req.Key)
if err != nil {
h.respondError(err, w)
return
Expand All @@ -310,7 +311,7 @@ func (h *Handler) UpdateGlobalSettings(w http.ResponseWriter, r *http.Request) {
}
var value interface{}
switch currentSettings.Key {
case model.ConsoleURLSettingKey:
case setting.ConsoleURLSettingKey:
var parsedURL *url.URL
if parsedURL, err = url.ParseRequestURI(strings.TrimSpace(req.Value)); err != nil {
h.respondError(&errInvalidURL, w)
Expand All @@ -321,7 +322,7 @@ func (h *Handler) UpdateGlobalSettings(w http.ResponseWriter, r *http.Request) {
return
}
value = parsedURL.Scheme + "://" + parsedURL.Host
case model.InactiveNodesDeleteScanResultsKey:
case setting.InactiveNodesDeleteScanResultsKey:
value, err = strconv.ParseInt(strings.TrimSpace(req.Value), 10, 64)
if err != nil {
h.respondError(&errInvalidInteger, w)
Expand All @@ -330,22 +331,22 @@ func (h *Handler) UpdateGlobalSettings(w http.ResponseWriter, r *http.Request) {
default:
value = req.Value
}
setting := model.Setting{
s := setting.Setting{
ID: req.ID,
Key: req.Key,
Value: &model.SettingValue{
Value: &setting.SettingValue{
Label: currentSettings.Value.Label,
Value: value,
Description: currentSettings.Value.Description,
},
IsVisibleOnUI: currentSettings.IsVisibleOnUI,
}
err = setting.Update(ctx, pgClient)
err = s.Update(ctx, pgClient)
if err != nil {
h.respondError(err, w)
return
}
h.AuditUserActivity(r, EventSettings, ActionUpdate, setting, true)
h.AuditUserActivity(r, EventSettings, ActionUpdate, s, true)
w.WriteHeader(http.StatusNoContent)
}

Expand Down
11 changes: 6 additions & 5 deletions deepfence_server/handler/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/deepfence/ThreatMapper/deepfence_utils/directory"
"github.com/deepfence/ThreatMapper/deepfence_utils/log"
postgresql_db "github.com/deepfence/ThreatMapper/deepfence_utils/postgresql/postgresql-db"
"github.com/deepfence/ThreatMapper/deepfence_utils/setting"
"github.com/deepfence/ThreatMapper/deepfence_utils/utils"
"github.com/go-chi/chi/v5"
"github.com/go-chi/jwtauth/v5"
Expand Down Expand Up @@ -100,9 +101,9 @@ func (h *Handler) RegisterUser(w http.ResponseWriter, r *http.Request) {
h.respondError(err, w)
return
}
consoleURLSetting := model.Setting{
Key: model.ConsoleURLSettingKey,
Value: &model.SettingValue{
consoleURLSetting := setting.Setting{
Key: setting.ConsoleURLSettingKey,
Value: &setting.SettingValue{
Label: "Deepfence Console URL",
Value: consoleURL,
Description: "Deepfence Console URL used for sending emails with links to the console",
Expand Down Expand Up @@ -382,7 +383,7 @@ func (h *Handler) InviteUser(w http.ResponseWriter, r *http.Request) {
return
}
}
consoleURL, err := model.GetManagementConsoleURL(ctx, pgClient)
consoleURL, err := setting.GetManagementConsoleURL(ctx, pgClient)
if err != nil {
h.respondError(err, w)
return
Expand Down Expand Up @@ -744,7 +745,7 @@ func (h *Handler) ResetPasswordRequest(w http.ResponseWriter, r *http.Request) {
h.respondError(err, w)
return
}
consoleURL, err := model.GetManagementConsoleURL(ctx, pgClient)
consoleURL, err := setting.GetManagementConsoleURL(ctx, pgClient)
if err != nil {
h.respondError(err, w)
return
Expand Down
4 changes: 2 additions & 2 deletions deepfence_server/model/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ import (
"strings"
"time"

commonConstants "github.com/deepfence/ThreatMapper/deepfence_server/constants/common"
"github.com/deepfence/ThreatMapper/deepfence_server/ingesters"
pkgConst "github.com/deepfence/ThreatMapper/deepfence_server/pkg/constants"
"github.com/deepfence/ThreatMapper/deepfence_server/reporters"
"github.com/deepfence/ThreatMapper/deepfence_utils/directory"
postgresqlDb "github.com/deepfence/ThreatMapper/deepfence_utils/postgresql/postgresql-db"
"github.com/deepfence/ThreatMapper/deepfence_utils/setting"
"github.com/deepfence/ThreatMapper/deepfence_utils/telemetry"
"github.com/deepfence/ThreatMapper/deepfence_utils/utils"
"github.com/neo4j/neo4j-go-driver/v5/neo4j"
Expand Down Expand Up @@ -388,7 +388,7 @@ func GetAESValueForEncryption(ctx context.Context,
ctx, span := telemetry.NewSpan(ctx, "registry", "get-aes-value-for-encryption")
defer span.End()

aes, err := GetSettingByKey(ctx, pgClient, commonConstants.AESSecret)
aes, err := setting.GetSettingByKey(ctx, pgClient, utils.AESSecret)
if err != nil {
return nil, err
}
Expand Down
Loading

0 comments on commit c94c612

Please sign in to comment.