IP Library Granted Patent US 11,537,496
Granted Patent B2
US 11,537,496 · App. 17/379,789 · Granted Dec 27, 2022

Audit logging database system and user interface

Inventors: Natalie Meurer (Washington, DC); Andrew Lampert (Melbourne, AU); Dyon Balding (Melbourne, AU); Yeong Wei Wee (London, GB)
Assignee: Palantir Technologies Inc.
G06F11/3438G06F3/0486G06F11/3476G06F17/18
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,537,496
App. No.
17/379,789
Granted
Dec 27, 2022
Kind
B2
Abstract

Systems and methods are provided for improved auditing of user actions associated with a software application. The system includes functionality to log user actions in a structured, standardized way. The system includes interactive user interfaces for analyzing the logs. The logging is based on a well-defined categorization of available actions. The log information includes (and distinguishes among) user details, context details, user inputs, and/or system outputs (including identification of data objects). The interactive user interfaces enable a user to view structured log data in an efficient manner, such as by presenting logs in a tabular format, executing queries on the log data, and/or presenting visualizations that summarize the log data. The interactive user interfaces provide functionality that allows a user to investigate and/or audit user interactions with a data object. A reviewer is permitted to drag and drop one or more data objects of interest from the software application directly into the interactive user interfaces. The interactive interfaces present log entries associated with the object(s) for further review by the reviewer.

Claims (77)

1. A method for audit logging user interactions, the method comprising:

receiving user input regarding a user interaction with an application user interface, the user input comprising a search parameter;

in response to receiving the user input,

retrieving a second data object associated with the search parameter;

determining a first logging entry for the user interaction, the first logging entry comprising:

an object identifier associated with a first data object and the user interaction, and

system output of the application user interface comprising the second data object;

storing the first logging entry in a structured format to a non-transitory computer storage medium, wherein storing the first logging entry in the structured format further comprises:

storing (i) an identifier for the second data object and (ii) an attribute value for the second data object;

causing presentation of the system output of the application user interface;

receiving, by an audit logging user interface, a selection of the first data object;

determining a second plurality of logging entries, wherein each logging entry of the second plurality of logging entries comprises at least a reference to the first data object, the second plurality of logging entries comprising the first logging entry; and

causing presentation, in the audit logging user interface, of the second plurality of logging entries.

2. The method of claim 1 , further comprising:

determining groups of the second plurality of logging entries by user;

calculating, from the groups of the second plurality of logging entries, a number of interactions with the first data object by each user; and

causing presentation, in the audit logging user interface, of the number of interactions with the first data object for each user.

3. The method of claim 1 , further comprising:

calculating, from the second plurality of logging entries, a plurality of counts of logging entries over time; and

causing presentation, in the audit logging user interface, of a visualization representing the plurality of counts of logging entries over time.

4. The method of claim 1 , further comprising:

receiving, via the audit logging user interface, a filter parameter;

identifying a particular field associated with at least a logging entry from the second plurality of logging entries;

determining, from the second plurality of logging entries, a subset of logging entries based at least in part on the filter parameter, wherein determining the subset of logging entries further comprises:

applying the filter parameter to the particular field; and

causing presentation, in the audit logging user interface, of the subset of logging entries.

5. The method of claim 1 , wherein the first logging entry further comprises an application context associated with the user interaction.

6. The method of claim 5 , further comprising:

invoking a logging instruction including the object identifier, the application context, and the system output, wherein the logging instruction follows an Application Programming Interface (API) format of a logging library, and wherein invoking the logging instruction causing the determining of the first logging entry.

7. The method of claim 1 , further comprising:

receiving, via the audit logging user interface, a selection of the first logging entry; and

in response to receiving the selection of the first logging entry,

causing presentation, in the audit logging user interface, of the first logging entry in a hierarchical format.

8. The method of claim 7 , wherein determining the first logging entry further comprises:

determining metadata of the first data object,

wherein the first logging entry further comprises the metadata, and

wherein causing presentation of the first logging entry in the hierarchical format further comprises causing presentation of the metadata.

9. The method of claim 1 , wherein the selection of the first data object comprises a drag and drop user interaction from the application user interface to the audit logging user interface.

10. A system comprising:

a non-transitory computer storage medium; and

one or more computer hardware processors in communication with the non-transitory computer storage medium, the one or more computer hardware processors configured to execute computer-executable instructions to at least:

receive user input regarding a user interaction with an application, the user input comprising a search parameter;

in response to receiving the user input,

retrieve a second data object associated with the search parameter;

determine a first logging entry for the user interaction, the first logging entry comprising:

an object identifier associated with a first data object and the user interaction, and

system output of the application comprising the second data object;

store the first logging entry in a structured format to the non-transitory computer storage medium, wherein storing the first logging entry in the structured format further comprises:

storing (i) an identifier for the second data object and (ii) an attribute value for the second data object;

cause presentation of the system output of the application;

receive, by an audit logging user interface, a selection of the first data object;

determine a second plurality of logging entries, wherein each logging entry of the second plurality of logging entries comprises at least a reference to the first data object, the second plurality of logging entries comprising the first logging entry; and

cause presentation, in the audit logging user interface, of the second plurality of logging entries.

11. The system of claim 10 , wherein the one or more computer hardware processors are further configured to execute further computer-executable instructions to at least:

determine groups of the second plurality of logging entries by user;

calculate, from the groups of the second plurality of logging entries, a number of interactions with the first data object by each user; and

cause presentation, in the audit logging user interface, of the number of interactions with the first data object for each user.

12. The system of claim 10 , wherein the one or more computer hardware processors are further configured to execute further computer-executable instructions to at least:

calculate, from the second plurality of logging entries, a plurality of counts of logging entries over time; and

cause presentation, in the audit logging user interface, of a visualization representing the plurality of counts of logging entries over time.

13. The system of claim 10 , wherein the one or more computer hardware processors are further configured to execute further computer-executable instructions to at least:

receive, via the audit logging user interface, a filter parameter;

identify a particular field associated with at least a logging entry from the second plurality of logging entries; and

determine, from the second plurality of logging entries, a subset of logging entries based at least in part on the filter parameter, wherein determining the subset of logging entries further comprises:

applying the filter parameter to the particular field; and

causing presentation, in the audit logging user interface, of the subset of logging entries.

14. The system of claim 10 , wherein the first logging entry further comprises an application context associated with the user interaction.

15. The system of claim 10 , wherein the one or more computer hardware processors are further configured to execute further computer-executable instructions to at least:

invoke a logging instruction including the object identifier and the system output, wherein the logging instruction follows an Application Programming Interface (API) format of a logging library, and wherein invoking the logging instruction causes the determining of the first logging entry.

16. The system of claim 10 , wherein the one or more computer hardware processors are further configured to execute further computer-executable instructions to at least:

cause presentation, in the audit logging user interface, of the first logging entry in a hierarchical format.

17. The system of claim 16 , wherein determining the first logging entry further comprises:

determining metadata of the first data object,

wherein the first logging entry further comprises the metadata, and

wherein causing presentation of the first logging entry in the hierarchical format further comprises causing presentation of the metadata.

18. The system of claim 10 , wherein determining the first logging entry further comprises:

determining metadata of the first data object, wherein the first logging entry further comprises the metadata.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: MEURER, NATALIE; LAMPERT, ANDREW; BALDING, DYON; WEE, YEONG WEI
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 064910/0638 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
Continuity (3)
Continuation 16450623 · Jun 24, 2019
Provisional Application 62805811 · Feb 14, 2019
Related Publication 20210349803A1 · Nov 11, 2021
Cited By (1)
US 12,547,522