IP Library Granted Patent US 12,010,147
Granted Patent B2
US 12,010,147 · App. 18/053,956 · Granted Jun 11, 2024

Data platform with unified privileges

Inventors: Jeremy Yujui Chen (Waterloo, CA); Unmesh Jagtap (San Mateo, CA); William A. Pugh (Seattle, WA); Brian Smith (Hillsborough, CA); Xu Xu (Campbell, CA)
Assignee: Snowflake Inc.
H04L63/20
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,010,147
App. No.
18/053,956
Granted
Jun 11, 2024
Kind
B2
Abstract

A data platform for developing and deploying a user application within a unified security context. The data platform authorizes a first user to use an editor to access source code of a user application based on security policies of a security context and authorizes the first user to use an application and data manager to set usage privileges for a second user to use the user application based on the security policies of the security context. To provide the user application to the second user, the data platform deploys the user application by instantiating a User Defined Function (UDF) server and an application engine of the UDF server within the security context, instantiating the user application as an application of the application engine within the security context, and authorizing access by the user application to databased on the security policies of the security context.

Claims (68)

1. A data platform comprising:

one or more processors; and

at least one memory storing instructions that, when executed by the one or more processors, cause the data platform to perform operations comprising:

authorizing a first user to use an editor to access source code of a user application based on security policies of a security context;

authorizing the first user to use an application and data manager to set usage privileges for a second user to use the user application based on the security policies of the security context; and

providing the user application to the second user based on the security policies of the security context by performing operations comprising:

instantiating a User Defined Function (UDF) server within the security context;

instantiating an application engine of the UDF server within the security context;

instantiating the user application as an application of the application engine within the security context; and

authorizing access by the user application to data based on the security policies of the security context.

2. The data platform of claim 1 , wherein the user application is accessed over a network by a user using a browser having a web application browser runtime component.

3. The data platform of claim 2 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

validating communications between the user application and the web application browser runtime component based on the security policies.

4. The data platform of claim 2 , wherein the UDF server is written in a first language and the web application browser runtime component is written in a second language.

5. The data platform of claim 2 , wherein the application engine is written in a first language and the web application browser runtime component is written in a second language.

6. The data platform of claim 1 , wherein the UDF server authorizes operations based on the security policies.

7. The data platform of claim 1 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

executing the UDF server within a sandbox process that enforces the security policies.

8. The data platform of claim 7 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

communicating by the sandbox process with components of the data platform via a virtual network.

9. The data platform of claim 8 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

restricting an instance of the UDF server from communicating with a location via the virtual network based on a set of rules unique to the instance of the UDF server.

10. The data platform of claim 8 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

assigning a Uniform Resource Locator (URL) to an object of the UDF server where the URL is unique within an account of an owner of the UDF server.

11. A computer-implemented method comprising:

authorizing, by one or more processors, a first user to use an editor to access source code of a user application based on security policies of a security context;

authorizing, by one or more processors, the first user to use an application and data manager to set usage privileges for a second user to use the user application based on the security policies of the security context; and

providing, by one or more processors, the user application to the second user based on the security policies of the security context by performing operations comprising:

instantiating a User Defined Function (UDF) server within the security context;

instantiating an application engine of the UDF server within the security context;

instantiating the user application as an application of the application engine within the security context; and

authorizing access by the user application to data based on the security policies of the security context.

12. The computer-implemented method of claim 11 , wherein the user application is accessed over a network by a user using a browser having a web application browser runtime component.

13. The computer-implemented method of claim 12 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

validating communications between the user application and the web application browser runtime component based on the security policies.

14. The computer-implemented method of claim 12 , wherein the UDF server is written in a first language and the web application browser runtime component is written in a second language.

15. The computer-implemented method of claim 12 , wherein the application engine is written in a first language and the web application browser runtime component is written in a second language.

16. The computer-implemented method of claim 11 , wherein the UDF server authorizes operations based on the security policies.

17. The computer-implemented method of claim 11 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

executing the UDF server within a sandbox process that enforces the security policies.

18. The computer-implemented method of claim 17 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

communicating by the sandbox process with components of a data platform via a virtual network.

19. The computer-implemented method of claim 18 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

restricting an instance of the UDF server from communicating with a location via the virtual network based on a set of rules unique to the instance of the UDF server.

20. The computer-implemented method of claim 18 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

assigning a Uniform Resource Locator (URL) to an object of the UDF server where the URL is unique within an account of an owner of the UDF server.

21. A computer-storage medium comprising instructions that, when executed by one or more processors of a machine, configure the machine to perform operations comprising:

authorizing a first user to use an editor to access source code of a user application based on security policies of a security context;

authorizing the first user to use an application and data manager to set usage privileges for a second user to use the user application based on the security policies of the security context; and

providing the user application to the second user based on the security policies of the security context by performing operations comprising:

instantiating a User Defined Function (UDF) server within the security context;

instantiating an application engine of the UDF server within the security context;

instantiating the user application as an application of the application engine within the security context; and

authorizing access by the user application to data based on the security policies of the security context.

22. The computer-storage medium comprising instructions of claim 21 , wherein the user application is accessed over a network by a user using a browser having a web application browser runtime component.

23. The computer-storage medium comprising instructions of claim 22 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

validating communications between the user application and the web application browser runtime component based on the security policies.

24. The computer-storage medium comprising instructions of claim 22 , wherein the UDF server is written in a first language and the web application browser runtime component is written in a second language.

25. The computer-storage medium comprising instructions of claim 22 , wherein the application engine is written in a first language and the web application browser runtime component is written in a second language.

26. The computer-storage medium comprising instructions of claim 21 , wherein the UDF server authorizes operations based on the security policies.

27. The computer-storage medium comprising instructions of claim 21 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

executing the UDF server within a sandbox process that enforces the security policies.

28. The computer-storage medium comprising instructions of claim 27 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

communicating by the sandbox process with components of a data platform via a virtual network.

29. The computer-storage medium comprising instructions of claim 28 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

restricting an instance of the UDF server from communicating with a location via the virtual network based on a set of rules unique to the instance of the UDF server.

30. The computer-storage medium comprising instructions of claim 28 , wherein providing the user application to the second user based on the security policies of the security context further comprises:

assigning a Uniform Resource Locator (URL) to an object of the UDF server where the URL is unique within an account of an owner of the UDF server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2023
From: CHEN, JEREMY YUJUI; JAGTAP, UNMESH; PUGH, WILLIAM A.; SMITH, BRIAN; XU, XU
To: SNOWFLAKE INC.
Reel/Frame 063030/0738 →
Continuity (2)
Provisional Application 63366266 · Jun 13, 2022
Related Publication 20230403306A1 · Dec 14, 2023
Cited By (4)
US 12,248,587 US 12,316,681 US 12,407,732 US 12,445,499