diff --git a/master.rest b/master.rest index 753188c..5ce239b 100644 --- a/master.rest +++ b/master.rest @@ -486,6 +486,7 @@ X-Session-Token: :token # Audit by project GET :host/event/v1/auditlog?filter.timefrom=now-1h +X-Session-Token: :token ## Partner diff --git a/scripts/initialize/main.go b/scripts/initialize/main.go index 5415590..f7183d6 100644 --- a/scripts/initialize/main.go +++ b/scripts/initialize/main.go @@ -14,6 +14,7 @@ import ( "github.com/RafayLabs/rcloud-base/internal/dao" "github.com/RafayLabs/rcloud-base/internal/models" providers "github.com/RafayLabs/rcloud-base/internal/provider/kratos" + "github.com/RafayLabs/rcloud-base/pkg/audit" "github.com/RafayLabs/rcloud-base/pkg/common" "github.com/RafayLabs/rcloud-base/pkg/enforcer" "github.com/RafayLabs/rcloud-base/pkg/service" @@ -50,6 +51,7 @@ const ( dbUserEnv = "DB_USER" dbPasswordEnv = "DB_PASSWORD" kratosAddrEnv = "KRATOS_ADDR" + auditFileEnv = "AUDIT_LOG_FILE" ) func addResourcePermissions(db *bun.DB, basePath string) error { @@ -108,7 +110,9 @@ func main() { viper.SetDefault(dbUserEnv, "admindbuser") viper.SetDefault(dbPasswordEnv, "admindbpassword") viper.SetDefault(kratosAddrEnv, "http://localhost:4433") + viper.SetDefault(auditFileEnv, "audit.log") + viper.BindEnv(auditFileEnv) viper.BindEnv(dbAddrEnv) viper.BindEnv(dbNameEnv) viper.BindEnv(dbUserEnv) @@ -120,6 +124,7 @@ func main() { dbUser := viper.GetString(dbUserEnv) dbPassword := viper.GetString(dbPasswordEnv) kratosAddr := viper.GetString(kratosAddrEnv) + auditFile := viper.GetString(auditFileEnv) content, err := ioutil.ReadFile(path.Join("scripts", "initialize", "roles", "ztka", "roles.json")) if err != nil { @@ -147,6 +152,14 @@ func main() { kratosConfig.Servers[0].URL = kratosAddr kc := kclient.NewAPIClient(kratosConfig) + ao := audit.AuditOptions{ + LogPath: auditFile, + MaxSizeMB: 1, + MaxBackups: 10, // Should we let sidecar do rotation? + MaxAgeDays: 10, // Make these configurable via env + } + auditLogger := audit.GetAuditLogger(&ao) + // authz services gormDb, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) if err != nil { @@ -158,12 +171,12 @@ func main() { } as := service.NewAuthzService(db, enforcer) - ps := service.NewPartnerService(db) - os := service.NewOrganizationService(db) - rs := service.NewRoleService(db, as) - gs := service.NewGroupService(db, as) - us := service.NewUserService(providers.NewKratosAuthProvider(kc), db, as, nil, common.CliConfigDownloadData{}) - prs := service.NewProjectService(db, as) + ps := service.NewPartnerService(db, auditLogger) + os := service.NewOrganizationService(db, auditLogger) + rs := service.NewRoleService(db, as, auditLogger) + gs := service.NewGroupService(db, as, auditLogger) + us := service.NewUserService(providers.NewKratosAuthProvider(kc), db, as, nil, common.CliConfigDownloadData{}, auditLogger) + prs := service.NewProjectService(db, as, auditLogger) //check if there are role permissions already present existingPermissions := &[]models.ResourceRolePermission{} @@ -278,5 +291,5 @@ func main() { }, }) - fmt.Println("Org Admin signup URL: ", orgA.Spec.RecoveryUrl) + fmt.Println("Org Admin signup URL: ", *orgA.Spec.RecoveryUrl) }