IP Library › Granted Patent US 12,153,703
Granted Patent B2
US 12,153,703 · App. 18/483,723 · Granted Nov 26, 2024

Constructing and enforcing access control policies

Inventors: Raghav Sethi (San Francisco, CA); Stephen Beesley Ball (San Francisco, CA); Emmett Fred Nicholas (San Francisco, CA); Caleb Wesley Meredith (New York, NY); Anuj Bheda (San Francisco, CA); Samuel Gilbert Keller (San Francisco, CA)
Assignee: Formagrid Inc
G06F21/6227G06F2221/2141
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,153,703
App. No.
18/483,723
Granted
Nov 26, 2024
Kind
B2
Abstract

A computing system may receive a schema of user interface comprising an arrangement of interface elements, each element configured to display data from cells of a database. The system may receive a user permission for the user interface and an element permission for an interface element. The system may generate a policy object for the user interface based on the user permission and the element permission. The policy object specifies which cells of the database can be accessed by the user interface. The system may receive a query from a client device associated with a user to implement a local instance of the user interface. The system may serve the query according to the policy object, where serving the query includes providing data from the database that the user interface provides access to without providing other data from the database that should not be accessible according to the policy object.

Claims (46)

1. A method comprising:

receiving a schema of user interface comprising an arrangement of interface elements, each element configured to display data from cells of a database;

receiving a user permission for the user interface, the user permission specifying one or more users allowed to access the user interface;

receiving an element permission for an interface element of the user interface, the element permission specifying data of the interface element accessible to users of the user interface;

generating a policy object for the user interface based on the user permission and the element permission, the policy object specifying which cells of the database can be accessed by the user interface;

receiving a query from a client device associated with a user to implement a local instance of the user interface; and

serving the query according to the policy object, wherein serving the query comprises providing data from the database that the user interface provides access to without providing other data from the database that should not be accessible according to the policy object.

2. The method of claim 1 , further comprising:

receiving an update to one or more cells of the database;

generating a customized payload for the client device according to the policy object, the customized payload indicating changes to the one or more cells of the database that the user of the client device is authorized to access according to the policy object; and

transmitting the customized payload to the client device, the customized payload enabling the client device to update the local instance of the user interface.

3. The method of claim 2 , wherein generating the customized payload for the client device comprises:

aggregating the update and additional updates to cells of the database into a payload; and

removing updates in the payload that the user of the client device is not authorized to access according to the policy object.

4. The method of claim 1 , wherein the policy object is a list of rules specifying which cells of the database can be accessed by each of the one or more users.

5. The method of claim 1 , wherein the policy object prevents the client device associated with the user from accessing cells of the database the user is not authorized to access.

6. The method of claim 1 , wherein the policy object comprises a dependency graph.

7. The method of claim 6 , serving the query according to the policy object comprises traversing the dependency graph to determine whether the user has access to a cell specified in the query.

8. The method of claim 1 , further comprising:

receiving an update to the schema of the interface; and

determining the update renders the policy object inadequate.

9. The method of claim 8 , further comprising: responsive to determining the update renders the policy object inadequate, rendering the policy object invalid.

10. The method of claim 8 , further comprising: updating the policy object based on the update responsive to determining the update renders the policy object inadequate.

11. The method of claim 8 , further comprising: generating a new policy object based on the update responsive to determining the update renders the policy object inadequate.

12. The method of claim 1 , further comprising:

receiving multiple queries requesting access to cells of the database; and

processing the multiple queries sequentially in a queue according to the policy object.

13. The method of claim 12 , wherein responsive to determining a first query in the queue affects a dependency of the policy object, delaying processing subsequent queries in the queue until the policy object is updated or a new policy object is generated.

14. The method of claim 13 , further comprising processing the subsequent queries in the queue according to the updated policy object or the new policy object, wherein processing the subsequent queries in the queue comprises denying a subsequent query in the queue according to the updated policy object or the new policy object, wherein the subsequent query would have been accepted according to the policy object.

15. A non-transitory computer-readable storage medium storing instructions that, when executed by a computing system, cause the computing system to perform operations comprising:

receiving a schema of user interface comprising an arrangement of interface elements, each element configured to display data from cells of a database;

receiving a user permission for the user interface, the user permission specifying one or more users allowed to access the user interface;

receiving an element permission for an interface element of the user interface, the element permission specifying data of the interface element accessible to collaborators of the user interface;

generating a policy object for the user interface based on the user permission and the element permission, the policy object specifying which cells of the database can be accessed by the user interface;

receiving a query from a client device associated with a user to implement a local instance of the user interface; and

serving the query according to the policy object, wherein serving the query comprises providing data from the database that the user interface provides access to without providing other data from the database that should not be accessible according to the policy object.

16. The non-transitory computer-readable storage medium of claim 15 , further comprising:

receiving an update to one or more cells of the database;

generating a customized payload for the client device according to the policy object, the customized payload indicating changes to the one or more cells of the database that the user of the client device is authorized to access according to the policy object; and

transmitting the customized payload to the client device, the customized payload enabling the client device to update the local instance of the user interface.

17. The non-transitory computer-readable storage medium of claim 16 , wherein generating the customized payload for the client device comprises:

aggregating the update and additional updates to cells of the database into a payload; and

removing updates in the payload that the user of the client device is not authorized to access according to the policy object.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the policy object is a list of rules specifying which cells of the database can be accessed by each of the one or more users.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the policy object prevents the client device associated with the user from accessing cells of the database the user is not authorized to access.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the policy object comprises a dependency graph.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2023
From: SETHI, RAGHAV; BALL, STEPHEN BEESLEY; NICHOLAS, EMMETT FRED; MEREDITH, CALEB WESLEY; BHEDA, ANUJ; KELLER, SAMUEL GILBERT
To: FORMAGRID INC
Reel/Frame 065362/0645 →
Continuity (2)
Provisional Application 63414862 · Oct 10, 2022
Related Publication 20240119169A1 · Apr 11, 2024