IP Library Granted Patent US 11,681,568
Granted Patent B1
US 11,681,568 · App. 16/834,200 · Granted Jun 20, 2023

Method and apparatus to reduce the window for policy violations with minimal consistency assumptions

Inventors: Timothy L. Hinrichs (Los Altos, CA); Teemu Koponen (San Francisco, CA); Torin Sandall (San Francisco, CA)
Assignee: STYRA, INC.
G06F9/542G06F8/65G06F9/547H04L67/10
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,681,568
App. No.
16/834,200
Granted
Jun 20, 2023
Kind
B1
Abstract

Some embodiments provide a method for authorizing application programming interface (API) calls on a host computer in a local cluster of computers. The method is performed in some embodiments by an API-authorizing agent executing on the host computer in the local computer cluster. From a remote cluster of computers, the method receives (1) a set of API-authorizing policies to evaluate in order to determine whether API calls to an application executing on the host computer are authorized, and (2) a set of parameters needed for evaluating the policies. With the remote cluster of computers, the method registers for notifications regarding updates to the set of parameters. The method then receives notifications, from the remote cluster, regarding an update to the set of parameters, and modifies the set of parameters based on the update. In some embodiments, the notification includes the update, while in other embodiments the method directs the remote cluster to provide the update after receiving the notification regarding the update. In addition to the notifications, the method periodically polls the remote cluster to retrieve the set of parameters needed for the received set of policies, in order to supplement data received through the notifications.

Claims (33)

1. A method of authorizing application programming interface (API) calls on a host computer in a local cluster of computers, the method comprising:

at an API-authorizing agent executing on the host computer in the local computer cluster:

receiving, from a remote cluster of computers, (i) a set of API-authorizing policies to evaluate in order to determine whether API calls to an application executing on the host computer are authorized and (ii) a first set of parameters needed for evaluating the policies;

registering, with the remote cluster of computers, for notifications regarding updates to the first set of parameters;

receiving notifications, from the remote cluster of computers, regarding an update to the first set of parameters;

updating the first set of parameters based on the update;

receiving a second set of parameters from a set of one or more computers in the local cluster of computers, the second parameter set needed for evaluating one or more policies in the received policy set; and

receiving updates to the second set of parameters from the set of computers in the local cluster of computers.

2. The method of claim 1 , wherein the notification includes the update.

3. The method of claim 1 further comprising directing the remote cluster of computers to provide the update after receiving the notification regarding the update.

4. The method of claim 1 , wherein the remote cluster of computers comprises two or more computers that serve as a logically centralized set of servers for distributing policies and parameters needed for evaluating the policies.

5. The method of claim 4 , wherein the policies are policy opcodes for execution and the parameters are policy operands needed for the execution of the policy opcodes.

6. The method of claim 1 further comprising periodically polling the remote cluster of computers to retrieve the set of parameters needed for the received set of policies, said periodic polling supplementing the registered notifications to account for discrepancy between state of parameter set at the host computer and the state of parameter set at the remote cluster of computers due to a loss of one or more notifications from the remote cluster of computers.

7. The method of claim 1 , wherein the set of computers provides the updates to the second set of parameters to the API-authorizing agent before providing the updates to the second set of parameters to the remote cluster of computers.

8. The method of claim 1 , wherein the set of computers provides the updates to the second set of parameters to the API-authorizing agent concurrently to providing the updates to the second set of parameters to the remote cluster of computers.

9. The method of claim 1 further comprising:

based on each update received from the set of computers in the local cluster of computers, updating the second set of parameters and associating a new version number with the second set of parameters after the update has been made; and

after each update to the second set of parameters, providing the second set of parameters along with the associated version number to the remote cluster of computers in order to allow the remote cluster of computers to perform troubleshooting operations.

10. The method of claim 9 further comprising providing API-authorizing decisions made at the API-authorizing agent to the remote cluster of computers with a reference to the version number of the second parameter set used in making the decision.

11. The method of claim 10 , wherein the API-authorizing decisions are provided to the remote cluster of computers by not authorizing or rejecting an API call before the API-authorizing decisions have registered with the remote cluster of computers.

12. The method of claim 10 , wherein the API-authorizing decisions are provided to the remote cluster of computers by authorizing or rejecting an API call before providing the API-authorizing decisions with the remote cluster of computers.

13. A non-transitory machine readable medium storing an API (application programming interface) authorizing agent for a host computer in a local cluster of computers, the agent for execution by at least one processing unit and comprising sets of instructions for:

receiving, from a remote cluster of computers, (i) a set of API-authorizing policies to evaluate in order to determine whether API calls to an application executing on the host computer are authorized and (ii) a first set of parameters needed for evaluating the policies;

registering, with the remote cluster of computers, for notifications regarding updates to the first set of parameters;

receiving notifications, from the remote cluster of computers, regarding an update to the first set of parameters;

updating the first set of parameters based on the update;

receiving a second set of parameters from a set of one or more computers in the local cluster of computers, the second parameter set needed for evaluating one or more policies in the received policy set; and

receiving updates to the second set of parameters from the set of computers in the local cluster of computers.

14. The non-transitory machine readable medium of claim 13 , wherein the notification includes the update.

15. The non-transitory machine readable medium of claim 13 , wherein the agent further comprises a set of instructions for directing the remote cluster of computers to provide the update after receiving the notification regarding the update.

16. The non-transitory machine readable medium of claim 13 , wherein the remote cluster of computers comprises two or more computers that serve as a logically centralized set of servers for distributing policies and parameters needed for evaluating the policies.

17. The non-transitory machine readable medium of claim 16 , wherein the policies are policy opcodes for execution and the parameters are policy operands needed for the execution of the policy opcodes.

18. The non-transitory machine readable medium of claim 13 , wherein the agent further comprises a set of instructions for periodically polling the remote cluster of computers to retrieve the set of parameters needed for the received set of policies, said periodic polling supplementing the registered notifications to account for discrepancy between state of parameter set at the host computer and the state of parameter set at the remote cluster of computers due to a loss of one or more notifications from the remote cluster of computers.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2025
From: STYRA, INC.
To: APPLE INC.
Reel/Frame 072818/0489 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2025
From: STYRA, INC.
To: APPLE INC.
Reel/Frame 072522/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2020
From: HINRICHS, TIMOTHY L.; KOPONEN, TEEMU; SANDALL, TORIN
To: STYRA, INC.
Reel/Frame 054216/0257 →
Continuity (4)
Continuation In Part 16050123 · Jul 31, 2018
Provisional Application 62827155 · Mar 31, 2019
Provisional Application 62545458 · Aug 14, 2017
Provisional Application 62540547 · Aug 2, 2017
Cited By (12)
US 12,238,101 US 12,287,906 US 12,299,502 US 12,307,305 US 12,386,684 US 12,401,694 US 12,405,948 US 12,407,647 US 12,578,961 US 12,587,945 US 12,693,839 US 12,706,953