IP Library Granted Patent US 12,417,227
Granted Patent B2
US 12,417,227 · App. 18/190,585 · Granted Sep 16, 2025

Row-level permissioning based on evaluated policies

Inventors: Hannah Korus (Denver, CO); Kevin Chen (Palo Alto, CA); Tushar Narayan (San Francisco, CA); Thomas Playford (London, GB)
Assignee: Palantir Technologies Inc.
G06F16/24564G06F16/2457
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 12,417,227
App. No.
18/190,585
Granted
Sep 16, 2025
Kind
B2
Abstract

A computer system is disclosed that provides classification-based access controls at the dataset row-level. The system may perform operations including: ingesting a dataset, wherein the dataset comprises a table of rows and columns; determining a column of the table that includes permissions information; applying parsing rules to the column to determine, for each row of the table, a list of permissions markings; receiving, from a user, a request to access the dataset; and in response to receiving the request: determining a permissions policy associated with the user; determining an evaluated policy associated with the user based on the permissions policy; filtering the table based on applying the evaluated policy associated with the user to the permissions markings of each row of the table; and providing the user access to the filtered table.

Claims (68)

1. A computer system configured to provide row-level data permissioning, the computer system comprising:

one or more computer readable storage devices configured to store at least a plurality of computer readable instructions; and

one or more processors configured to execute the plurality of computer readable instructions to cause the computer system to perform operations comprising:

ingesting a dataset, wherein the dataset comprises a table of rows and columns;

determining a column of the table that includes permissions information;

modifying the table, wherein modifying the table includes:

applying parsing rules to the column and each row of the table to determine, for each row of the table, a list of permissions markings comprising values for a plurality of different marking types in a standard format usable to filter the modified table, wherein the list of permissions markings comprises a delimited list of individual ones of the marking types and associated values; and

inserting the respective determined lists of permissions markings into the respective associated rows of the table;

receiving, from a user and via an interactive user interface, a request to access the dataset; and

in response to receiving the request:

determining a permissions policy associated with the user;

determining an evaluated policy associated with the user based on the permissions policy;

filtering the modified table, without replicating the dataset in the modified table, based on applying the evaluated policy associated with the user to the permissions markings of each row of the modified table, wherein the filtering filters the dataset of the modified table to only include rows that satisfy the evaluated policy without duplicating the permission markings into other datasets; and

providing, via the interactive user interface, the user access to the filtered modified table.

2. The computer system of claim 1 , wherein the filtering further comprises applying one or more filtering rules to the evaluated policy and the permissions markings, and wherein the filtering rules comprise a customizable set of filtering rules.

3. The computer system of claim 1 , wherein the evaluated policy comprises a Boolean expression.

4. The computer system of claim 1 , wherein the lists of permissions markings are determined from unstructured strings of permissions information.

5. The computer system of claim 1 , wherein the operations further comprise:

receiving, from the user, a search query;

combining the evaluated policy associated with the user with the search query; and

filtering the filtered table based on the combined evaluated policy and search query.

6. The computer system of claim 1 , wherein the operations further comprise:

providing one or more user interfaces configured to allow user-specification of one or more filtering rules.

7. The computer system of claim 6 , wherein user-specification of the filtering rules comprises specifying at least one of: a user attribute, a column of a dataset, or a specific value.

8. The computer system of claim 1 , wherein said ingesting includes forming the table by accessing to an access management system included in the computer system, wherein the access management system is configured to store the dataset in a database by associating each data of the dataset with data objects stored in an ontology of the access management system.

9. A computer system configured to provide object-level data permissioning, the computer system comprising:

one or more computer readable storage devices configured to store at least a plurality of computer readable instructions; and

one or more processors configured to execute the plurality of computer readable instructions to cause the computer system to perform operations comprising:

ingesting a dataset, wherein the dataset comprises a set of data objects;

determining one or more properties of the data objects that include permissions information;

modifying the set of data objects, wherein modifying the set of data objects includes:

applying parsing rules to each property of the determined one or more properties to determine, for each data object, a list of permissions markings comprising values for a plurality of different marking types in a standard format usable to filter the modified set of data objects, wherein the list of permissions markings comprises a delimited list of individual ones of the marking types and associated values; and

inserting the respective determined lists of permissions markings into the respective associated properties of the data objects;

receiving, from a user and via an interactive user interface, a request to access the dataset; and

in response to receiving the request:

determining a permissions policy associated with the user;

determining an evaluated policy associated with the user based on the permissions policy;

filtering the modified set of data objects, without replicating the set data objects included in the dataset, based on applying the evaluated policy associated with the user to the permissions markings of each modified data object of the set of data objects, wherein the filtering filters the dataset of the modified set of objects to only include data objects that satisfy the evaluated policy without duplicating the permission markings into other set of data objects; and

providing, via an interactive user interface, the user access to the filtered modified set of data objects.

10. The computer system of claim 9 , wherein the filtering further comprises applying one or more filtering rules to the evaluated policy and the permissions markings, and wherein the filtering rules comprise a customizable set of filtering rules.

11. The computer system of claim 9 , wherein the evaluated policy comprises a Boolean expression.

12. The computer system of claim 9 , wherein the lists of permissions markings are determined from unstructured strings of permissions information.

13. The computer system of claim 9 , wherein the operations further comprise:

receiving, from the user, a search query;

combining the evaluated policy associated with the user with the search query; and

filtering the filtered set of data objects based on the combined evaluated policy and search query.

14. The computer system of claim 9 , wherein the operations further comprise:

providing one or more user interfaces configured to allow user-specification of one or more filtering rules.

15. The computer system of claim 14 , wherein user-specification of the filtering rules comprises specifying at least one of: a user attribute, a column of a dataset, or a specific value.

16. A computer-implemented method for providing row-level data permissioning comprising:

ingesting a dataset, wherein the dataset comprises a table of rows and columns;

determining a column of the table that includes permissions information;

modifying the table, wherein modifying the table includes:

applying parsing rules to the column and each row of the table to determine, for each row of the table, a list of permissions markings comprising values for a plurality of different marking types in a standard format usable to filter the modified table, wherein the list of permissions markings comprises a delimited list of individual ones of the marking types and associated values; and

inserting the respective determined lists of permissions markings into the respective associated rows of the table;

receiving, from a user and via an interactive user interface, a request to access the dataset; and

in response to receiving the request:

determining a permissions policy associated with the user;

determining an evaluated policy associated with the user based on the permissions policy;

filtering the modified table, without replicating the dataset in the modified table, based on applying the evaluated policy associated with the user to the permissions markings of each row of the modified table, wherein the filtering filters the dataset of the modified table to only include rows that satisfy the evaluated policy without duplicating the permission markings into other datasets; and

providing, via the interactive user interface, the user access to the filtered modified table.

17. The computer-implemented method of claim 16 , wherein the filtering further comprises applying one or more filtering rules to the evaluated policy and the permissions markings, and wherein the filtering rules comprise a customizable set of filtering rules.

18. The computer-implemented method of claim 16 , wherein the evaluated policy comprises a Boolean expressions.

19. The computer-implemented method of claim 16 , wherein the lists of permissions markings are determined from unstructured strings of permissions information.

20. The computer-implemented method of claim 16 further comprising:

receiving, from the user, a search query;

combining the evaluated policy associated with the user with the search query; and

filtering the filtered table based on the combined evaluated policy and search query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2023
From: KORUS, HANNAH; CHEN, KEVIN; NARAYAN, TUSHAR; PLAYFORD, THOMAS
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 064876/0616 →
Continuity (4)
Provisional Application 63365063 · May 20, 2022
Provisional Application 63362584 · Apr 6, 2022
Provisional Application 63362027 · Mar 28, 2022
Related Publication 20230306030A1 · Sep 28, 2023
References Cited (8)
US 20070276835A1 · Murthy · 2007 [cited by applicant]
US 20090094193A1 · King · 2009 [cited by examiner]
US 20170359379A1 · Elliot · 2017 [cited by examiner]
US 20190377891A1 · Krieger et al. · 2019 [cited by applicant]
US 20210173851A1 · Dorne · 2021 [cited by examiner]
EP 4254245 · 2023 [cited by applicant]
Official Communication for European Patent Application No. 23164563.1 dated May 26, 2023. [cited by applicant]
Official Communication for European Patent Application No. 23164563.1 dated Jan. 27, 2025. [cited by applicant]