IP Library Granted Patent US 11,645,413
Granted Patent B2
US 11,645,413 · App. 17/815,031 · Granted May 9, 2023

Secure document sharing using a data exchange listing

Inventors: Abhiram Arikapudi (Sammamish, WA); Saurin Shah (Kirkland, WA)
Assignee: Snowflake Inc.
G06F21/6227G06F21/31G06F21/44G06F21/46G06F21/6245G06F21/78
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,645,413
App. No.
17/815,031
Granted
May 9, 2023
Kind
B2
Abstract

Techniques for document sharing include configuring a secure view of shared data as a listing in a data exchange of a data provider. The listing includes metadata with a first uniform resource locator (URL) of the shared data. An invitation to view the listing for is encoded transmission to a client device. A user defined function (UDF) client is invoked to access a data object of the shared data, based on detecting an acceptance of the invitation by the client device. A security function is applied to the data object to generate a modified data object. The metadata is updated to include a second URL, which is associated with a storage location storing the modified data object. The client device is granted access to the modified data object using the second URL, based on detecting a request by the client device to view the listing in the data exchange.

Claims (83)

1. A system comprising:

at least one hardware processor; and

at least one memory storing instructions that cause the at least one hardware processor to perform operations comprising:

configuring a secure view of shared data as a listing in a data exchange of a data provider, the listing including metadata with a first uniform resource locator (URL) of the shared data;

encoding an invitation to view the listing for transmission to a client device;

invoking a user defined function (UDF) client to access a data object of the shared data, based on detecting an acceptance of the invitation by the client device;

applying a security function to the data object to generate a modified data object;

updating the metadata to include a second URL, the second URL associated with a storage location storing the modified data object; and

granting the client device, access to the modified data object using the second URL, based on detecting a request by the client device to view the listing in the data exchange.

2. The system of claim 1 , wherein the at least one hardware processor further performs operations comprising:

configuring at least one access control configuration of the listing based on generating the modified data object; and

granting the access to the modified data object based on the at least one access control configuration.

3. The system of claim 2 , wherein the at least one hardware processor further performs operations comprising:

granting the access to the modified data object based matching the at least one access control configuration of the listing with at least another access control configuration associated with the second URL.

4. The system of claim 3 , wherein the at least one access control configuration of the listing and the at least another access control configuration associated with the second URL include identification information of the client device.

5. The system of claim 1 , wherein the at least one hardware processor further performs operations comprising:

configuring a sandbox process to execute as a child process of a parent process, the sandbox process associated with a controlled set of resources including storage and memory scratch space of an execution node of the data provider.

6. The system of claim 5 , wherein the at least one hardware processor further performs operations comprising:

invoking the UDF client within the sandbox process, to access the data object of the shared data, wherein the UDF client and the sandbox process reside in separate memory spaces of the at least one memory.

7. The system of claim 1 , wherein the at least one hardware processor further performs operations comprising:

generating the second URL as a scoped URL, the scoped URL including an encrypted hash with the storage location of the modified data object and identification information of the client device.

8. The system of claim 1 , wherein to apply the security function, the at least one hardware processor further performs operations comprising:

applying a watermark to the data object, the watermark including identification information of the client device.

9. The system of claim 1 , wherein to apply the security function, the at least one hardware processor further performs operations comprising:

generating a random password; and

applying a password lock to the data object, the password lock based on the random password.

10. The system of claim 9 , wherein the at least one hardware processor further performs operations comprising:

encoding the random password for communication to the client device; and

granting the access to the modified data object based on detecting the request to view the listing in the data exchange and further based on the random password.

11. A method comprising:

configuring, by at least one hardware processor, a secure view of shared data as a listing in a data exchange of a data provider, the listing including metadata with a first uniform resource locator (URL) of the shared data;

encoding an invitation to view the listing for transmission to a client device;

invoking a user defined function (UDF) client to access a data object of the shared data, based on detecting an acceptance of the invitation by the client device;

applying a security function to the data object to generate a modified data object;

updating the metadata to include a second URL, the second URL associated with a storage location storing the modified data object; and

granting the client device, access to the modified data object using the second URL, based on detecting a request by the client device to view the listing in the data exchange.

12. The method of claim 11 , further comprising:

configuring at least one access control configuration of the listing based on generating the modified data object; and

granting the access to the modified data object based on the at least one access control configuration.

13. The method of claim 12 , further comprising:

granting the access to the modified data object based matching the at least one access control configuration of the listing with at least another access control configuration associated with the second URL.

14. The method of claim 13 , wherein the at least one access control configuration of the listing and the at least another access control configuration associated with the second URL include identification information of the client device.

15. The method of claim 11 , further comprising:

configuring a sandbox process to execute as a child process of a parent process, the sandbox process associated with a controlled set of resources including storage and memory scratch space of an execution node of the data provider.

16. The method of claim 15 , further comprising:

invoking the UDF client within the sandbox process, to access the data object of the shared data, wherein the UDF client and the sandbox process reside in separate memory spaces of at least one memory.

17. The method of claim 11 , further comprising:

generating the second URL as a scoped URL, the scoped URL including an encrypted hash with the storage location of the modified data object and identification information of the client device.

18. The method of claim 11 , wherein applying the security function comprises:

applying a watermark to the data object, the watermark including identification information of the client device.

19. The method of claim 11 , wherein applying the security function comprises:

generating a random password; and

applying a password lock to the data object, the password lock based on the random password.

20. The method of claim 19 , further comprising:

encoding the random password for communication to the client device; and

granting the access to the modified data object based on detecting the request to view the listing in the data exchange and further based on the random password.

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

configuring a secure view of shared data as a listing in a data exchange of a data provider, the listing including metadata with a first uniform resource locator (URL) of the shared data;

encoding an invitation to view the listing for transmission to a client device;

invoking a user defined function (UDF) client to access a data object of the shared data, based on detecting an acceptance of the invitation by the client device;

applying a security function to the data object to generate a modified data object;

updating the metadata to include a second URL, the second URL associated with a storage location storing the modified data object; and

granting the client device, access to the modified data object using the second URL, based on detecting a request by the client device to view the listing in the data exchange.

22. The non-transitory computer-storage medium of claim 21 , the operations further comprising:

configuring at least one access control configuration of the listing based on generating the modified data object; and

granting the access to the modified data object based on the at least one access control configuration.

23. The non-transitory computer-storage medium of claim 22 , the operations further comprising:

granting the access to the modified data object based matching the at least one access control configuration of the listing with at least another access control configuration associated with the second URL.

24. The non-transitory computer-storage medium of claim 23 , wherein the at least one access control configuration of the listing and the at least another access control configuration associated with the second URL include identification information of the client device.

25. The non-transitory computer-storage medium of claim 21 , the operations further comprising:

configuring a sandbox process to execute as a child process of a parent process, the sandbox process associated with a controlled set of resources including storage and memory scratch space of an execution node of the data provider.

26. The non-transitory computer-storage medium of claim 25 , the operations further comprising:

invoking the UDF client within the sandbox process, to access the data object of the shared data, wherein the UDF client and the sandbox process reside in separate memory spaces of at least one memory.

27. The non-transitory computer-storage medium of claim 21 , the operations further comprising:

generating the second URL as a scoped URL, the scoped URL including an encrypted hash with the storage location of the modified data object and identification information of the client device.

28. The non-transitory computer-storage medium of claim 21 , wherein the operations for applying the security function comprise:

applying a watermark to the data object, the watermark including identification information of the client device.

29. The non-transitory computer-storage medium of claim 21 , wherein the operations for applying the security function comprise:

generating a random password; and

applying a password lock to the data object, the password lock based on the random password.

30. The non-transitory computer-storage medium of claim 29 , the operations further comprising:

encoding the random password for communication to the client device; and

granting the access to the modified data object based on detecting the request to view the listing in the data exchange and further based on the random password.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2022
From: ARIKAPUDI, ABHIRAM; SHAH, SAURIN
To: SNOWFLAKE INC.
Reel/Frame 060627/0067 →
Continuity (4)
Continuation 17546546 · Dec 9, 2021
Continuation 17302390 · Apr 30, 2021
Provisional Application 63201481 · Apr 30, 2021
Related Publication 20220374547A1 · Nov 24, 2022
Cited By (4)
US 12,210,650 US 12,235,992 US 12,400,026 US 12,717,962