Audit logging -- convert audit logs to use the new schema (#20526)

* Audit logging - new schema added, old schema removed.

* fix linter error by running goimports

* Address review comments

* Address review comments

* Example usage of new audit logging API for the updateUserAuth call

* fixed unit test on auditing updating user record

* Changed the `TestUpdateConfigDiffInAuditRecord` testcase---it failed, because this PR changes how the `meta` field is serialized into the audit log records.

* fix linter error

* use string constants for record keys

* new audit api calls for api4/bot

* `Auditable` interface implementations for model classes

* New audit calls for channel api

* New audit calls for channel_local

* renamed receivers for required style reasons

* New audit calls for api4/command

* renamed receiver

* New audit calls for api4/command_local

* renamed receiver

* fix unit test to reflect changes in the Auditable implementation of the user class

* new audit calls for compliance

* new audit calls for configs

* remove auditRec.addMeta from updateConfig and patchConfig

* new audit calls for config_local

* new audit calls

* new audit calls for ldap, license apis

* new audit calls

* new audit calls

* new audit calls

* new audit calls

* new audit calls

* new audit calls

* new audit calls

* new audit calls

* fix linter error

* fixed linter error

* fixed "user update" test

* Don't include all of config when audit logging config changes. Also fix unit test on TestUpdateConfigDiffInAuditRecord

* address review comments

* Added Auditable() method for UserPatch

* Fix duplicative method declaration from merge

* Fix styling and API changes issues introduced with merge

* Fix broken test

Co-authored-by: Daniel Schalla <daniel@schalla.me>
Этот коммит содержится в:
Ossi Väänänen
2022-07-14 14:52:46 +03:00
коммит произвёл GitHub
родитель 4d3bdab14c
Коммит 8f44fbf89c
60 изменённых файлов: 885 добавлений и 275 удалений

Просмотреть файл

@@ -39,6 +39,29 @@ type Scheme struct {
DefaultRunMemberRole string `json:"default_run_member_role"`
}
func (scheme *Scheme) Auditable() map[string]interface{} {
return map[string]interface{}{
"id": scheme.Id,
"name": scheme.Name,
"display_name": scheme.DisplayName,
"description": scheme.Description,
"create_at": scheme.CreateAt,
"update_at": scheme.UpdateAt,
"delete_at": scheme.DeleteAt,
"scope": scheme.Scope,
"default_team_admin_role": scheme.DefaultTeamAdminRole,
"default_team_user_role": scheme.DefaultTeamUserRole,
"default_channel_admin_role": scheme.DefaultChannelAdminRole,
"default_channel_user_role": scheme.DefaultChannelUserRole,
"default_team_guest_role": scheme.DefaultTeamGuestRole,
"default_channel_guest_role": scheme.DefaultChannelGuestRole,
"default_playbook_admin_role": scheme.DefaultPlaybookAdminRole,
"default_playbook_member_role": scheme.DefaultPlaybookMemberRole,
"default_run_admin_role": scheme.DefaultRunAdminRole,
"default_run_member_role": scheme.DefaultRunMemberRole,
}
}
type SchemePatch struct {
Name *string `json:"name"`
DisplayName *string `json:"display_name"`
@@ -93,6 +116,10 @@ type SchemeRoles struct {
SchemeGuest bool `json:"scheme_guest"`
}
func (s *SchemeRoles) Auditable() map[string]interface{} {
return map[string]interface{}{}
}
func (scheme *Scheme) IsValid() bool {
if !IsValidId(scheme.Id) {
return false