Skip to content

Commit

Permalink
Merge pull request #8 from Tools4ever-NIM/2.1
Browse files Browse the repository at this point in the history
2.1
  • Loading branch information
msheldont4e authored Feb 29, 2024
2 parents b7c3279 + 21f7716 commit e65ca0b
Show file tree
Hide file tree
Showing 9 changed files with 21 additions and 8 deletions.
16 changes: 13 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,28 @@ This is an NIM App that provides ability to look up audit logs in the following
* Select an account from a list of objects in the audit log, then review the attribute and group changes
* Recent Logs
* See all the recent attribute and group logs from the last 24 hours
* Actor Logs
* See all changes by specific actor for last 30 days

# Screenshots
Person Logging
![image](https://github.com/Tools4ever-NIM/NIM-App-NIM-AuditApp/assets/24281600/41fe7e5e-f09c-4ee7-b0bd-5d5d48918a23)
![image](https://github.com/Tools4ever-NIM/NIM-App-NIM-AuditApp/assets/24281600/5b7e79a7-b3da-4169-bc58-6200a53f5c58)



Search Logs
![image](https://github.com/Tools4ever-NIM/NIM-App-NIM-AuditApp/assets/24281600/f75acd85-6979-4f97-bf65-6ecf196b3bd6)
![image](https://github.com/Tools4ever-NIM/NIM-App-NIM-AuditApp/assets/24281600/0c0ab7cb-8b69-486a-8460-3456b655ecc8)



Recent Logs
![image](https://github.com/Tools4ever-NIM/NIM-App-NIM-AuditApp/assets/24281600/73ed808b-f82a-4243-a96c-01d25d7bbf55)
![image](https://github.com/Tools4ever-NIM/NIM-App-NIM-AuditApp/assets/24281600/beaf337a-e3c5-4ac2-bd35-55aab9ab95ad)



Actor Logs
![image](https://github.com/Tools4ever-NIM/NIM-App-NIM-AuditApp/assets/24281600/4d6d2b91-aa50-4837-aff4-dc0e3b5415c9)




Expand Down
2 changes: 1 addition & 1 deletion apps/AuditApp.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions queries/auditapp_attributes_actorchanges.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name":"AuditApp_Attributes_ActorChanges","query":"SELECT \n\t\t ST.SystemName 'System'\n , OP.Name 'Operation'\n , O.DisplayName 'Name'\n\t\t, AU.AttributeName 'Attribute'\n\t\t, AU.ValueOld 'Old'\n , AU.ValueNew 'New'\n , datetime(OM.DateTime, 'localtime') 'Operation DT'\n , O.KeyValue 'ID' \n , AT.Name 'Process'\n , U.Name 'Actor'\nFROM AttributeUpdates AU\nINNER JOIN ObjectMutations OM ON OM.ID = AU.ObjectMutationID\nINNER JOIN Operations OP ON OP.ID = OM.OperationID\nINNER JOIN Activities AC ON AC.ID = OM.ActivityID\nINNER JOIN ActivityTypes AT ON AT.ID = AC.ActivityTypeID\nINNER JOIN Objects O ON O.ID = OM.ObjectID\nINNER JOIN SystemTables ST ON ST.ID = O.SystemTableID\nINNER JOIN Users AS U ON U.ID = AC.UserID\nWHERE datetime(OM.DateTime, 'localtime') > DATE(datetime(CURRENT_TIMESTAMP, 'localtime'), '-30 days')\nAND U.ID = $ActorId\nORDER BY OM.DateTime DESC","params":[{"name":"ActorId","description":"","category":"input","type":"string","default_value":""}],"columns":[{"name":"System","type":0},{"name":"Operation","type":0},{"name":"Name","type":0},{"name":"Attribute","type":0},{"name":"Old","type":0},{"name":"New","type":0},{"name":"Operation DT","type":0},{"name":"ID","type":0},{"name":"Process","type":0},{"name":"Actor","type":0}]}
2 changes: 1 addition & 1 deletion queries/auditapp_attributes_recentchanges.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"name":"AuditApp_Attributes_RecentChanges","query":"SELECT \n\t\t ST.SystemName 'System'\n , OP.Name 'Operation'\n , O.DisplayName 'Name'\n\t\t, AU.AttributeName 'Attribute'\n\t\t, AU.ValueOld 'Old'\n , AU.ValueNew 'New'\n , datetime(OM.DateTime, 'localtime') 'Operation DT'\n , O.KeyValue 'ID' \nFROM AttributeUpdates AU\nINNER JOIN ObjectMutations OM ON OM.ID = AU.ObjectMutationID\nINNER JOIN Operations OP ON OP.ID = OM.OperationID\nINNER JOIN Activities AC ON AC.ID = OM.ActivityID\nINNER JOIN ActivityTypes AT ON AT.ID = AC.ActivityTypeID\nINNER JOIN Objects O ON O.ID = OM.ObjectID\nINNER JOIN SystemTables ST ON ST.ID = O.SystemTableID\nWHERE datetime(OM.DateTime, 'localtime') > DATE(datetime(CURRENT_TIMESTAMP, 'localtime'), '-1 days')\nORDER BY OM.DateTime DESC","params":[],"columns":[{"name":"System","type":0},{"name":"Operation","type":0},{"name":"Name","type":0},{"name":"Attribute","type":0},{"name":"Old","type":0},{"name":"New","type":0},{"name":"Operation DT","type":0},{"name":"ID","type":0}]}
{"name":"AuditApp_Attributes_RecentChanges","query":"SELECT \n\t\t ST.SystemName 'System'\n , OP.Name 'Operation'\n , O.DisplayName 'Name'\n\t\t, AU.AttributeName 'Attribute'\n\t\t, AU.ValueOld 'Old'\n , AU.ValueNew 'New'\n , datetime(OM.DateTime, 'localtime') 'Operation DT'\n , O.KeyValue 'ID' \n , AT.Name 'Process'\n , U.Name 'Actor'\nFROM AttributeUpdates AU\nINNER JOIN ObjectMutations OM ON OM.ID = AU.ObjectMutationID\nINNER JOIN Operations OP ON OP.ID = OM.OperationID\nINNER JOIN Activities AC ON AC.ID = OM.ActivityID\nINNER JOIN ActivityTypes AT ON AT.ID = AC.ActivityTypeID\nINNER JOIN Objects O ON O.ID = OM.ObjectID\nINNER JOIN SystemTables ST ON ST.ID = O.SystemTableID\nLEFT JOIN Users AS U ON U.ID = AC.UserID\nWHERE datetime(OM.DateTime, 'localtime') > DATE(datetime(CURRENT_TIMESTAMP, 'localtime'), '-1 days')\nORDER BY OM.DateTime DESC","params":[],"columns":[{"name":"System","type":0},{"name":"Operation","type":0},{"name":"Name","type":0},{"name":"Attribute","type":0},{"name":"Old","type":0},{"name":"New","type":0},{"name":"Operation DT","type":0},{"name":"ID","type":0},{"name":"Process","type":0},{"name":"Actor","type":0}]}
2 changes: 1 addition & 1 deletion queries/auditapp_attributes_search.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"name":"AuditApp_Attributes_Search","query":"SELECT \n\t\t ST.SystemName 'System'\n , OP.Name 'Operation'\n , O.DisplayName 'Name'\n\t\t, AU.AttributeName 'Attribute'\n\t\t, AU.ValueOld 'Old'\n , AU.ValueNew 'New'\n , datetime(OM.DateTime, 'localtime') 'Operation DT'\n , O.KeyValue 'ID' \nFROM AttributeUpdates AU\nINNER JOIN ObjectMutations OM ON OM.ID = AU.ObjectMutationID\nINNER JOIN Operations OP ON OP.ID = OM.OperationID\nINNER JOIN Activities AC ON AC.ID = OM.ActivityID\nINNER JOIN ActivityTypes AT ON AT.ID = AC.ActivityTypeID\nINNER JOIN Objects O ON O.ID = OM.ObjectID\nINNER JOIN SystemTables ST ON ST.ID = O.SystemTableID\nWHERE 1=1\nAND \n( \n O.KeyValue = $Key1\n OR O.KeyValue = $Key2\n OR O.KeyValue = $Key3\n OR O.KeyValue = $Key4\n)\nORDER BY OM.DateTime DESC","params":[{"name":"Key1","description":"","category":"input","type":"string","default_value":""},{"name":"Key2","description":"","category":"input","type":"string","default_value":""},{"name":"Key3","description":"","category":"input","type":"string","default_value":""},{"name":"Key4","description":"","category":"input","type":"string","default_value":""}],"columns":[{"name":"System","type":0},{"name":"Operation","type":0},{"name":"Name","type":0},{"name":"Attribute","type":0},{"name":"Old","type":0},{"name":"New","type":0},{"name":"Operation DT","type":0},{"name":"ID","type":0}]}
{"name":"AuditApp_Attributes_Search","query":"SELECT \n\t\t ST.SystemName 'System'\n , OP.Name 'Operation'\n , O.DisplayName 'Name'\n\t\t, AU.AttributeName 'Attribute'\n\t\t, AU.ValueOld 'Old'\n , AU.ValueNew 'New'\n , datetime(OM.DateTime, 'localtime') 'Operation DT'\n , O.KeyValue 'ID' \n , AT.Name 'Process'\n , U.Name 'Actor'\nFROM AttributeUpdates AU\nINNER JOIN ObjectMutations OM ON OM.ID = AU.ObjectMutationID\nINNER JOIN Operations OP ON OP.ID = OM.OperationID\nINNER JOIN Activities AC ON AC.ID = OM.ActivityID\nINNER JOIN ActivityTypes AT ON AT.ID = AC.ActivityTypeID\nINNER JOIN Objects O ON O.ID = OM.ObjectID\nINNER JOIN SystemTables ST ON ST.ID = O.SystemTableID\nLEFT JOIN Users AS U ON U.ID = AC.UserID\nWHERE 1=1\nAND \n( \n O.KeyValue = $Key1\n OR O.KeyValue = $Key2\n OR O.KeyValue = $Key3\n OR O.KeyValue = $Key4\n)\nORDER BY OM.DateTime DESC","params":[{"name":"Key1","description":"","category":"input","type":"string","default_value":""},{"name":"Key2","description":"","category":"input","type":"string","default_value":""},{"name":"Key3","description":"","category":"input","type":"string","default_value":""},{"name":"Key4","description":"","category":"input","type":"string","default_value":""}],"columns":[{"name":"System","type":0},{"name":"Operation","type":0},{"name":"Name","type":0},{"name":"Attribute","type":0},{"name":"Old","type":0},{"name":"New","type":0},{"name":"Operation DT","type":0},{"name":"ID","type":0},{"name":"Process","type":0},{"name":"Actor","type":0}]}
1 change: 1 addition & 0 deletions queries/auditapp_memberships_actorchanges.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name":"AuditApp_Memberships_ActorChanges","query":"SELECT\n\tst.SystemName,\n Op.Name 'Operation',\n datetime(M.DateTime, 'localtime') AS 'Creation date time',\n GrpObj.DisplayName 'GroupName',\n GrpObj.KeyValue 'GroupKey',\n MemObj.DisplayName 'MemberName',\n MemObj.KeyValue 'MemberKey',\n AT.Name 'Process',\n U.Name 'Actor'\nFROM\n\tMemberships M\n INNER JOIN Operations Op ON Op.ID = M.OperationID\n INNER JOIN Activities AC ON AC.ID = M.ActivityID\n INNER JOIN ActivityTypes AT ON AT.ID = AC.ActivityTypeID\n INNER JOIN Objects GrpObj ON GrpObj.ID = M.GroupID\n INNER JOIN SystemTables st ON st.ID = GrpObj.SystemTableID\n INNER JOIN Objects MemObj ON MemObj.ID = M.MemberID\n INNER JOIN Users AS U ON U.ID = AC.UserID\nWHERE datetime(M.DateTime, 'localtime') > DATE(datetime(CURRENT_TIMESTAMP, 'localtime'), '-30 days')\nAND U.Id = $ActorId","params":[{"name":"ActorId","description":"","category":"input","type":"string","default_value":""}],"columns":[{"name":"SystemName","type":0},{"name":"Operation","type":0},{"name":"Creation date time","type":0},{"name":"GroupName","type":0},{"name":"GroupKey","type":0},{"name":"MemberName","type":0},{"name":"MemberKey","type":0},{"name":"Process","type":0},{"name":"Actor","type":0}]}
2 changes: 1 addition & 1 deletion queries/auditapp_memberships_recentchanges.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"name":"AuditApp_Memberships_RecentChanges","query":"SELECT\n\tst.SystemName,\n Op.Name 'Operation',\n datetime(M.DateTime, 'localtime') AS 'Creation date time',\n GrpObj.DisplayName 'GroupName',\n GrpObj.KeyValue 'GroupKey',\n MemObj.DisplayName 'MemberName',\n MemObj.KeyValue 'MemberKey'\n \n \nFROM\n\tMemberships M\n INNER JOIN Operations Op ON Op.ID = M.OperationID\n INNER JOIN Objects GrpObj ON GrpObj.ID = M.GroupID\n INNER JOIN SystemTables st ON st.ID = GrpObj.SystemTableID\n INNER JOIN Objects MemObj ON MemObj.ID = M.MemberID\nWHERE datetime(M.DateTime, 'localtime') > DATE(datetime(CURRENT_TIMESTAMP, 'localtime'), '-1 days')","params":[],"columns":[{"name":"SystemName","type":0},{"name":"Operation","type":0},{"name":"Creation date time","type":0},{"name":"GroupName","type":0},{"name":"GroupKey","type":0},{"name":"MemberName","type":0},{"name":"MemberKey","type":0}]}
{"name":"AuditApp_Memberships_RecentChanges","query":"SELECT\n\tst.SystemName,\n Op.Name 'Operation',\n datetime(M.DateTime, 'localtime') AS 'Creation date time',\n GrpObj.DisplayName 'GroupName',\n GrpObj.KeyValue 'GroupKey',\n MemObj.DisplayName 'MemberName',\n MemObj.KeyValue 'MemberKey',\n AT.Name 'Process',\n U.Name 'Actor'\nFROM\n\tMemberships M\n INNER JOIN Operations Op ON Op.ID = M.OperationID\n INNER JOIN Activities AC ON AC.ID = M.ActivityID\n INNER JOIN ActivityTypes AT ON AT.ID = AC.ActivityTypeID\n INNER JOIN Objects GrpObj ON GrpObj.ID = M.GroupID\n INNER JOIN SystemTables st ON st.ID = GrpObj.SystemTableID\n INNER JOIN Objects MemObj ON MemObj.ID = M.MemberID\n LEFT JOIN Users AS U ON U.ID = AC.UserID\nWHERE datetime(M.DateTime, 'localtime') > DATE(datetime(CURRENT_TIMESTAMP, 'localtime'), '-1 days')","params":[],"columns":[{"name":"SystemName","type":0},{"name":"Operation","type":0},{"name":"Creation date time","type":0},{"name":"GroupName","type":0},{"name":"GroupKey","type":0},{"name":"MemberName","type":0},{"name":"MemberKey","type":0},{"name":"Process","type":0},{"name":"Actor","type":0}]}
2 changes: 1 addition & 1 deletion queries/auditapp_memberships_search.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"name":"AuditApp_Memberships_Search","query":"SELECT\n\tst.SystemName,\n Op.Name 'Operation',\n datetime(M.DateTime, 'localtime') AS 'Creation date time',\n GrpObj.DisplayName 'GroupName',\n GrpObj.KeyValue 'GroupKey',\n MemObj.DisplayName 'MemberName',\n MemObj.KeyValue 'MemberKey'\nFROM\n\tMemberships M\n INNER JOIN Operations Op ON Op.ID = M.OperationID\n INNER JOIN Objects GrpObj ON GrpObj.ID = M.GroupID\n INNER JOIN SystemTables st ON st.ID = GrpObj.SystemTableID\n INNER JOIN Objects MemObj ON MemObj.ID = M.MemberID\nWHERE 1=1\nAND \n( \n MemObj.KeyValue = $Key1\n OR MemObj.KeyValue = $Key2\n OR MemObj.KeyValue = $Key3\n OR MemObj.KeyValue = $Key4\n)","params":[{"name":"Key1","description":"","category":"input","type":"string","default_value":""},{"name":"Key2","description":"","category":"input","type":"string","default_value":""},{"name":"Key3","description":"","category":"input","type":"string","default_value":""},{"name":"Key4","description":"","category":"input","type":"string","default_value":""}],"columns":[{"name":"SystemName","type":0},{"name":"Operation","type":0},{"name":"Creation date time","type":0},{"name":"GroupName","type":0},{"name":"GroupKey","type":0},{"name":"MemberName","type":0},{"name":"MemberKey","type":0}]}
{"name":"AuditApp_Memberships_Search","query":"SELECT\n\tst.SystemName,\n Op.Name 'Operation',\n datetime(M.DateTime, 'localtime') AS 'Creation date time',\n GrpObj.DisplayName 'GroupName',\n GrpObj.KeyValue 'GroupKey',\n MemObj.DisplayName 'MemberName',\n MemObj.KeyValue 'MemberKey',\n AT.Name 'Process',\n U.Name 'Actor'\nFROM\n\tMemberships M\n INNER JOIN Operations Op ON Op.ID = M.OperationID\n INNER JOIN Activities AC ON AC.ID = M.ActivityID\n INNER JOIN ActivityTypes AT ON AT.ID = AC.ActivityTypeID\n INNER JOIN Objects GrpObj ON GrpObj.ID = M.GroupID\n INNER JOIN SystemTables st ON st.ID = GrpObj.SystemTableID\n INNER JOIN Objects MemObj ON MemObj.ID = M.MemberID\n LEFT JOIN Users AS U ON U.ID = AC.UserID\nWHERE 1=1\nAND \n( \n MemObj.KeyValue = $Key1\n OR MemObj.KeyValue = $Key2\n OR MemObj.KeyValue = $Key3\n OR MemObj.KeyValue = $Key4\n)","params":[{"name":"Key1","description":"","category":"input","type":"string","default_value":""},{"name":"Key2","description":"","category":"input","type":"string","default_value":""},{"name":"Key3","description":"","category":"input","type":"string","default_value":""},{"name":"Key4","description":"","category":"input","type":"string","default_value":""}],"columns":[{"name":"SystemName","type":0},{"name":"Operation","type":0},{"name":"Creation date time","type":0},{"name":"GroupName","type":0},{"name":"GroupKey","type":0},{"name":"MemberName","type":0},{"name":"MemberKey","type":0},{"name":"Process","type":0},{"name":"Actor","type":0}]}
1 change: 1 addition & 0 deletions queries/auditapp_userlist.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name":"AuditApp_UserList","query":"SELECT ID,Name\nFROM Users\nWHERE ID <> 0","params":[],"columns":[{"name":"ID","type":1},{"name":"Name","type":0}]}

0 comments on commit e65ca0b

Please sign in to comment.