US 12,248,587 B2
User interface framework for web applications
Damien Carru, New York, NY (US); Jeremy Yujui Chen, Newark, CA (US); Pui Kei Johnston Chu, Richmond Hill (CA); Scott C. Gray, Richmond Hill (CA); Unmesh Jagtap, San Mateo, CA (US); Mohamad Raja Gani Mohamad Abdul, Fremont, CA (US); William A. Pugh, Seattle, WA (US); Ahmed Waseef Shawkat, North York (CA); and Xu Xu, Campbell, CA (US)
Assigned to Snowflake Inc., Bozeman, MT (US)
Filed by Snowflake Inc., Bozeman, MT (US)
Filed on Mar. 21, 2023, as Appl. No. 18/187,031.
Claims priority of provisional application 63/366,274, filed on Jun. 13, 2022.
Prior Publication US 2023/0401326 A1, Dec. 14, 2023
Int. Cl. G06F 21/60 (2013.01); G06F 16/25 (2019.01)
CPC G06F 21/604 (2013.01) [G06F 16/252 (2019.01); G06F 2221/2113 (2013.01); G06F 2221/2141 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A method comprising:
generating, by a provider account in a data system comprising a plurality of virtual data warehouses, a data application including a user interface (UI) component, the data application being a share object in a database stored in the data system, the data application identifying a virtual warehouse of the plurality of virtual warehouses to execute the data application;
configuring the data application for sharing with other accounts using one or more grant commands;
sharing the data application including the UI component with a consumer account in the data system including:
instantiating a User Defined Function (UDF) server within a security context of the data system based on a security policy determined by the provider account;
instantiating an application engine of the UDF server based on the security policy determined by provider account using the identified virtual warehouse;
instantiating the data application of the application engine based on the security policy determined by provider account; and
communicating by the data application with a browser using the application engine as a proxy server;
deploying, by the consumer account, the data application, the consumer account being given a set of privileges based on the one or more grant commands;
configuring, by the consumer account, the UI component to add a consumer-account specific functionality for interfacing with the data application by the consumer account; and
operating, by the consumer account, the UI component based on the share object residing in the provider account, the operating including:
receiving, from the consumer account, a command related to the UI component via the browser;
transmitting the command to the UDF server, communication between the browser and the UDF server being governed by a set of UI policies, the set of UI policies restricting a set of elements that can be used by the consumer account; and
executing the command by the UDF server running the data application on the application engine and a virtual machine in the data system outside of the UDF server, communication between the UDF server and the virtual machine running the data application is governed by a set of state policies defining state type of the data application and resources used by the data application.