@@ -22,12 +22,14 @@ import (
22
22
"net/url"
23
23
"os"
24
24
"os/signal"
25
+ "strconv"
25
26
"strings"
26
27
"syscall"
27
28
"time"
28
29
29
30
"github.com/beego/beego/v2/server/web"
30
31
32
+ "github.com/goharbor/harbor/src/common"
31
33
"github.com/goharbor/harbor/src/common/dao"
32
34
common_http "github.com/goharbor/harbor/src/common/http"
33
35
configCtl "github.com/goharbor/harbor/src/controller/config"
@@ -222,6 +224,11 @@ func main() {
222
224
log .Error (err )
223
225
}
224
226
227
+ // Allow user to disable writing audit log to db by env while initialize
228
+ if err := initSkipAuditDBbyEnv (ctx ); err != nil {
229
+ log .Errorf ("Failed to initialize SkipAuditDB by ENV: %v" , err )
230
+ }
231
+
225
232
// Init API handler
226
233
if err := api .Init (); err != nil {
227
234
log .Fatalf ("Failed to initialize API handlers with error: %s" , err .Error ())
@@ -356,3 +363,34 @@ func getDefaultScannerName() string {
356
363
}
357
364
return ""
358
365
}
366
+
367
+ func initSkipAuditDBbyEnv (ctx context.Context ) error {
368
+ var err error
369
+ skipAuditEnv := false
370
+ s := os .Getenv ("SKIP_LOG_AUDIT_DATABASE" )
371
+ if s != "" {
372
+ skipAuditEnv , err = strconv .ParseBool (s )
373
+ if err != nil {
374
+ log .Warningf ("Failed to parse SKIP_LOG_AUDIT_DATABASE to bool with error: %v, Will use SKIP_LOG_AUDIT_DATABASE env as false" , err )
375
+ }
376
+ }
377
+ log .Debugf ("get SKIP_LOG_AUDIT_DATABASE from Env is %v" , skipAuditEnv )
378
+
379
+ // get from db
380
+ mgr := config .GetCfgManager (ctx )
381
+ cfg , err := mgr .GetItemFromDriver (ctx , common .SkipAuditLogDatabase )
382
+ if err != nil {
383
+ return err
384
+ }
385
+ // if key not exist in the db, set default ENV value
386
+ if val , ok := cfg [common .SkipAuditLogDatabase ]; ! ok {
387
+ log .Debugf ("key SkipAuditLogDatabase do not exist in the db, will initialize as %v" , skipAuditEnv )
388
+ cfg [common .SkipAuditLogDatabase ] = skipAuditEnv
389
+ if err := mgr .UpdateConfig (ctx , cfg ); err != nil {
390
+ return err
391
+ }
392
+ } else {
393
+ log .Debugf ("key SkipAuditLogDatabase aleady exist in the db with value %v" , val )
394
+ }
395
+ return nil
396
+ }
0 commit comments