IP Library Granted Patent US 11,736,568
Granted Patent B2
US 11,736,568 · App. 17/964,890 · Granted Aug 22, 2023

Multi-tenancy via code encapsulated in server requests

Inventors: Tomasz Janczuk (Redmond, WA); Matías Woloski (Maldonado, UY)
Assignee: Auth0, Inc.
H04L67/1097G06F8/433G06F9/547G06F16/955G06F21/53G06F21/604H04L67/133H04L67/34H04L67/561G06F2209/549H04L67/025
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,736,568
App. No.
17/964,890
Granted
Aug 22, 2023
Kind
B2
Abstract

A multitenant infrastructure server (MTIS) is configured to provide an environment to execute a computer routine of an arbitrary application. The MTIS receives a request from a webtask server to execute the computer routine in a webtask container. The computer routine is executed in the webtask container at the MTIS. Upon successful execution of the computer routine, a result set is returned to the webtask server. If the execution of the computer routine is unsuccessful, an error notification is returned to the webtask server. The resources consumed during the execution of the computer routine are determined. The webtask container is destroyed to prevent persistent storage of the computer routine on the MTIS.

Claims (73)

1. A computer system configured to provide an environment to execute a computer routine, the computer system comprising:

a processor;

a network interface coupled to the processor configured to enable communications via a communication network;

a storage device for content and programming; and

a program stored in the storage device, wherein execution of the program configures the computer system to perform actions comprising:

receiving a request from a server to execute the computer routine in a container, wherein the request includes:

client data;

the computer routine in the form of executable computer code or a reference to the computer routine; and

at least one client secret;

executing the computer routine in the container;

upon successful execution of the computer routine, returning results to the server;

upon unsuccessful execution of the computer routine, returning an error verdict to the server;

monitoring resources consumed during the execution of the computer routine, wherein the resources consumed include CPU load and memory used during the execution of the computer routine; and

destroying the container, thereby preventing persistent storage of the computer routine on the computer system,

wherein the container includes dependencies of the computer routine to run in an isolated environment in the computer system, and

wherein the isolated environment isolates the container from other containers.

2. The computer system of claim 1 , wherein the request includes a webtask token.

3. The computer system of claim 2 , wherein the webtask token is cryptographically protected from tampering and disclosure.

4. The computer system of claim 1 , the actions further comprising retrieving the computer routine from a link included in the request.

5. The computer system of claim 1 , wherein the container includes all dependencies of the computer routine to run the isolated environment in the computer system.

6. The computer system of claim 1 , wherein the isolated environment is a sandbox in the computer system.

7. The computer system of claim 1 , wherein the destroying the container is in response to receiving a confirmation from the server that the results or the error verdict have been received by the container.

8. The computer system of claim 1 , wherein the computer routine is independent of an operating system of the computer system.

9. The computer system of claim 1 , wherein a time to execute the computer routine is limited to a period of time corresponding to an HTTP request/response cycle.

10. The computer system of claim 9 , wherein the server is an HTTP server and the request is an HTTP request.

11. The computer system of claim 1 , wherein the returned results are in JavaScript Object Notation (JSON).

12. The computer system of claim 1 , wherein the computer system provides data isolation for each tenant such that a computer routine of one tenant is prevented from accessing a computer routine or a data of another tenant.

13. A computer-implemented method for providing an environment to execute code of a computer routine of an arbitrary application, the computer-implemented method performed by a computer system and comprising:

receiving a request from a server to execute the computer routine in a container, wherein the request includes:

client data;

the computer routine in the form of executable computer code or a reference to the computer routine; and

at least one client secret;

executing the computer routine in the container;

upon successful execution of the computer routine, returning results to the server;

upon unsuccessful execution of the computer routine, returning an error verdict to the server;

monitoring resources consumed during the execution of the computer routine, wherein the resources consumed include CPU load and memory used during the execution of the computer routine; and

destroying the container, thereby preventing persistent storage of the computer routine on the computer system,

wherein the container includes dependencies of the computer routine to run in an isolated environment in the computer system, and

wherein the isolated environment isolates the container from other containers.

14. The computer-implemented method of claim 13 , wherein the request includes a webtask token.

15. The computer-implemented method of claim 14 , wherein the webtask token is cryptographically protected from tampering and disclosure.

16. The computer-implemented method of claim 13 , the method further comprising retrieving the computer routine from a link included in the request.

17. The computer-implemented method of claim 13 , wherein the container includes all dependencies of the computer routine to run in the isolated environment in the computer system.

18. The computer-implemented method of claim 13 , wherein the isolated environment is a sandbox in the computer system.

19. The computer-implemented method of claim 13 , wherein the destroying the container is in response to receiving a confirmation from the server that the results or the error verdict have been received by the container.

20. The computer-implemented method of claim 13 , wherein the computer routine is independent of an operating system of the computer system.

21. The computer-implemented method of claim 13 , wherein a time to execute the computer routine is limited to a period of time corresponding to an HTTP request/response cycle.

22. The computer-implemented method of claim 21 , wherein the server is an HTTP server and the request is an HTTP request.

23. The computer-implemented method of claim 13 , wherein the returned results are in JavaScript Object Notation (JSON).

24. The computer-implemented method of claim 13 , wherein the computer system provides data isolation for each tenant such that a computer routine of one tenant is prevented from accessing a computer routine or a data of another tenant.

25. A non-transitory computer-readable storage medium storing instructions that, when executed by a computer processor of a computer system, perform actions comprising:

receiving a request from a server to execute a computer routine in a container, wherein the request includes:

client data;

the computer routine in the form of executable computer code or a reference to the computer routine; and

at least one client secret;

executing the computer routine in the container;

upon successful execution of the computer routine, returning results to the server;

upon unsuccessful execution of the computer routine, returning an error verdict to the server;

monitoring resources consumed during the execution of the computer routine, wherein the resources consumed include CPU load and memory used during the execution of the computer routine; and

destroying the container thereby preventing persistent storage of the computer routine on the computer system,

wherein the container includes dependencies of the computer routine to run in an isolated environment in the computer system, and

wherein the isolated environment isolates the container from other containers.

26. The non-transitory computer-readable storage medium of claim 25 , wherein the request includes a webtask token.

27. The non-transitory computer-readable storage medium of claim 26 , wherein the webtask token is cryptographically protected from tampering and disclosure.

28. The non-transitory computer-readable storage medium of claim 25 , the actions further comprising retrieving the computer routine from a link included in the request.

29. The non-transitory computer-readable storage medium of claim 25 , wherein the container includes all dependencies of the computer routine to run in the isolated environment in the computer system.

30. The non-transitory computer-readable storage medium of claim 25 , wherein the isolated environment is a sandbox in the computer system.

31. The non-transitory computer-readable storage medium of claim 25 , wherein the destroying the container is in response to receiving a confirmation from the server that the results or the error verdict have been received by the container.

32. The non-transitory computer-readable storage medium of claim 25 , wherein the computer routine is independent of an operating system of the computer system.

33. The non-transitory computer-readable storage medium of claim 25 , wherein a time to execute the computer routine is limited to a period of time corresponding to an HTTP request/response cycle.

34. The non-transitory computer-readable storage medium of claim 33 , wherein the server is an HTTP server and the request is an HTTP request.

35. The non-transitory computer-readable storage medium of claim 25 , wherein the returned results are in JavaScript Object Notation (JSON).

36. The non-transitory computer-readable storage medium of claim 25 , wherein the computer system provides data isolation for each tenant such that a computer routine of one tenant is prevented from accessing a computer routine or a data of another tenant.

Assignments (2)
CHANGE OF NAME Recorded May 3, 2024
From: AUTH0, INC.
To: AUTH0, LLC
Reel/Frame 068290/0896 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2023
From: JANCZUK, TOMASZ; WOLOSKI, MATÍAS
To: AUTH0, INC.
Reel/Frame 064095/0509 →
Continuity (5)
Continuation 17877887 · Jul 30, 2022
Continuation 16686023 · Nov 15, 2019
Continuation 14951223 · Nov 24, 2015
Provisional Application 62084511 · Nov 25, 2014
Related Publication 20230035701A1 · Feb 2, 2023