IP Library Granted Patent US 11,102,251
Granted Patent B1
US 11,102,251 · App. 16/530,290 · Granted Aug 24, 2021

Systems and methods for deploying configurations on computing devices and validating compliance with the configurations during scheduled intervals

Inventors: Adam Pettit (San Diego, CA); Wesley Pettit (San Diego, CA); Mark Daughters (San Diego, CA); Brandon Modesitt (Encinitas, CA)
Assignee: Kandji, Inc.
H04L63/205H04L41/085H04L41/0813
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,102,251
App. No.
16/530,290
Granted
Aug 24, 2021
Kind
B1
Abstract

Deploying configurations on computing devices and validating compliance with the configurations during scheduled intervals. Particular embodiments described herein include computing devices that send a requests to a management platform at different time periods for lists of configurations that are assigned to those computing devices at those different time periods. Received lists include identifiers of the configurations that are assigned to the those computing devices during the different time periods. Local agents on the computing devices use the received lists to determine if each of the configurations in that list are implemented. If a configuration is not implemented on a computing device, the local agent on that computing device implements that configuration or alerts the management platform that the configuration could not be implemented.

Claims (130)

1. A system comprising for deploying configurations on computing devices and validating compliance with the configurations during scheduled intervals, wherein the system comprises:

a first computing device configured to perform a first method, the first method being for deploying the configurations and validating compliance with the configurations,

wherein the first method comprises, during a first time period corresponding to a first scheduled interval:

(i) sending a first request, to a management platform, for a first list of the configurations that are assigned to the first computing device during the first time period;

(ii) receiving, from the management platform, the requested first list of the configurations that are assigned to the first computing device during the first time period,

wherein the first list includes first identifiers of the configurations that are assigned to the first computing device during the first time period;

(iii) receiving, from the management platform, a first any values of variables associated with the configurations in the first list of the configurations that are assigned to the first computing device during the first time period; and

(iv) using the received first list of the configurations that are assigned to the first computing device during the first time period to determine if each of the configurations in that the first list are implemented.

2. The system of claim 1 , wherein the first method comprises,

during a second time period corresponding to a second scheduled interval:

sending a second request, to the management platform, for a second list of the configurations that are assigned to the first computing device during the second time period;

receiving, from the management platform, the requested second list of the configurations that are assigned to the first computing device during the second time period,

wherein the second list includes second identifiers of the configurations that are assigned to the first computing device during the second time period;

receiving, from the management platform, a second any values of variables associated with the configurations in the second list of the configurations that are assigned to the first computing device during the second time period; and

using the received second list of the configurations that are assigned to the first computing device during the second time period to determine if each of the configurations in that the second list are implemented.

3. The system of claim 1 , wherein the first method comprises:

if a determination is made that a first configuration assigned to the first computing device is not implemented, implementing the first configuration on the first computing device.

4. The system of claim 1 , wherein the first method comprises:

responsive to determining that a first configuration assigned to the first computing device is not implemented, implementing the first configuration on the first computing device using a first value of a first variable, from the received first any values of variables associated with the configurations in the first list of the configurations, that is associated with the first configuration.

5. The system of claim 1 , wherein the first method comprises:

if a determination is made that a first configuration assigned to the first computing device is not implemented, determining if a first set of executable instructions that are configured to implement the first configuration on the first computing device are stored on the first computing device;

if the first set of executable instructions are stored on the first computing device, implementing the first configuration on the first computing device by executing the first set of executable instructions; and

if the first set of executable instructions are not stored on the first computing device:

(i) requesting the first set of executable instructions from the management platform,

(ii) receiving the first set of executable instructions from the management platform, and

(iii) implementing the first configuration on the first computing device by executing the first set of executable instructions.

6. The system of claim 1 , wherein the system comprises:

the management platform configured to perform a second method, wherein the second method comprises:

(i) providing a first collection of available configurations to a first administrator device of a first enterprise;

(ii) receiving, from the first administrator device, a first set of the configurations that were selected from the first collection of available configurations;

(iii) receiving, from the first administrator device, a first group of computing devices to which the first set of the configurations are to be applied,

wherein the first group of computing devices includes the first computing device;

(iv) receiving, from the first administrator device, the first any values of variables associated with the any configurations from the first set of the configurations;

(v) storing a first set of configuration identifiers that identify the configurations in the first set of the configurations;

(vi) storing the first any received values of variables associated with the any configurations from the first set of the configurations; and

(vii) storing an association between the first set of configuration identifiers and each computing device in the first group of computing devices.

7. The system of claim 6 , wherein the second method is performed before the first method.

8. The system of claim 6 ,

wherein the first method comprises:

(i) if a determination is made that a first configuration assigned to the first computing device is not implemented, generate data specifying that the first configuration is not implemented on the first computing device, and transmitting the generated data to the management platform; and

wherein the second method comprises:

(i) receiving the generated data from the first computing device;

(ii) using the generated data to generate a report that indicates the first configuration is not implemented on the first computing device; and

(iii) providing the report to the first administrator device.

9. The system of claim 6 , wherein the second method comprises:

receiving a third request from the first computing device for the first list of the configurations assigned to the first computing device during the first time period;

responsive to the third request, identifying the first set of configuration identifiers;

transmitting, to the first computing device, the first set of configuration identifiers; and

retrieving the first any values of variables associated with the any configurations from the first set of the configurations and transmitting any retrieved values to the first computing device.

10. The system of claim 6 , wherein the system includes a data source that stores different predefined collections of the configurations from the available configurations that each represent a different security standard, wherein the second method comprises:

receiving, from the first administrator device, a selection of a predefined collection of the configurations that is based on a security standard,

wherein the first collection of available configurations includes the predefined collection of the configurations, and

wherein the first collection of available configurations is provided responsive to receiving the selection of the predefined collection of the configurations.

11. The system of claim 6 , wherein the second method comprises:

providing a second collection of available configurations to a second administrator device of a second enterprise;

receiving, from the second administrator device, a second set of the configurations that were selected from the second collection of available configurations;

receiving, from the second administrator device, a second group of computing devices to which the second set of the configurations are to be applied,

wherein the second group of computing devices does not include the first computing device;

receiving, from the second administrator device, a second any values of variables associated with the any configurations from the second set of the configurations;

storing a second set of configuration identifiers that identify the configurations in the second set of the configurations;

storing the second any received values of variables associated with the any configurations from the second set of the configurations; and

storing an association between each computing device in the second group of computing devices and the second set of configuration identifiers,

wherein the first enterprise and the second enterprise are different enterprises.

12. The system of claim 6 ,

wherein the first computing device includes a first memory storing a first set of machine-executable instructions,

wherein execution of the first set of machine executable instructions causes one or more machines of the first computing device to perform the first method, and

wherein the management platform includes a second memory storing a second set of machine-executable instructions,

wherein execution of the second set of machine-executable instructions causes the one or more machines of the management platform to perform the second method.

13. A method, wherein the method comprises:

during a first time period corresponding to a first scheduled interval at a first computing device, deploying configurations on computing devices and validating compliance with the configurations by:

(i) sending a first request, to a management platform, for a first list of the configurations that are assigned to the first computing device during the first time period;

(ii) receiving, from the management platform, the requested first list of the configurations that are assigned to the first computing device during the first time period,

wherein the first list includes first identifiers of the configurations that are assigned to the first computing device during the first time period;

(iii) receiving, from the management platform, a first any values of variables associated with the configurations in the first list of the configurations that are assigned to the first computing device during the first time period; and

(iv) using the received first list of the configurations that are assigned to the first computing device during the first time period to determine if each of the configurations in that first list are implemented.

14. The method of claim 13 , wherein the method comprises:

during a second time period corresponding to a second scheduled interval at the first computing device:

(i) sending a second request, to the management platform, for a second list of the configurations that are assigned to the first computing device during the second time period;

(ii) receiving, from the management platform, the requested second list of the configurations that are assigned to the first computing device during the second time period,

wherein the second list includes second identifiers of the configurations that are assigned to the first computing device during the second time period;

(iii) receiving, from the management platform, a second any values of variables associated with the configurations in the second list of the configurations that are assigned to the first computing device during the second time period; and

(iv) using the received second list of the configurations that are assigned to the first computing device during the second time period to determine if each of the configurations in that the second list are implemented.

15. The method of claim 13 , wherein the method comprises:

at the management platform:

(i) providing a first collection of available configurations to a first administrator device of a first enterprise;

(ii) receiving, from the first administrator device, a first set of the configurations that were selected from the first collection of available configurations;

(iii) receiving, from the first administrator device, a first group of computing devices to which the first set of the configurations are to be applied,

wherein the first group of computing devices includes the first computing device;

(iv) receiving, from the first administrator device, a first any values of variables associated with any configurations from the first set of the configurations;

(v) storing a first set of configuration identifiers that identify the configurations in the first set of the configurations;

(vi) storing the any received values of variables associated with the any configurations from the first set of the configurations; and

(vii) storing an association between the first set of configuration identifiers and each computing device in the first group of computing devices.

16. The method of claim 15 wherein the method comprises:

at the first computing device:

(i) if a determination is made that a first configuration assigned to the first computing device is not implemented, generate data specifying that the first configuration is not implemented on the first computing device, and transmitting the generated data to the management platform; and

at the management platform:

(i) receiving the generated data from the first computing device;

(ii) using the generated data to generate a report that indicates the first configuration is not implemented on the first computing device; and

providing the report to the first administrator device.

17. One or more non-transitory machine-readable media embodying program instructions that, when executed by one or more machines, cause the one or more machines to implement a method for deploying configurations on computing devices and validating compliance with the configurations during scheduled intervals, wherein the method comprises:

during a first time period corresponding to a first scheduled interval at a first computing device deploying the configurations on computing devices and validating compliance with the configurations by:

(i) sending a first request, to a management platform, for a first list of the configurations that are assigned to the first computing device during the first time period;

(ii) receiving, from the management platform, the requested first list of the configurations that are assigned to the first computing device during the first time period,

wherein the first list includes identifiers of the configurations that are assigned to the first computing device during the first time period;

(iii) receiving, from the management platform, a first any values of variables associated with the configurations in the first list of the configurations that are assigned to the first computing device during the first time period; and

(iv) using the received first list of the configurations that are assigned to the first computing device during the first time period to determine if each of the configurations in that the first list are implemented.

18. The one or more non-transitory machine-readable media of claim 17 , wherein the method comprises:

during a second time period corresponding to a second scheduled interval at the first computing device:

(i) sending a second request, to the management platform, for a second list of the configurations that are assigned to the first computing device during the second time period;

(ii) receiving, from the management platform, the requested second list of the configurations that are assigned to the first computing device during the second time period,

wherein the second list includes identifiers of the configurations that are assigned to the first computing device during the second time period;

(iii) receiving, from the management platform, a second any values of variables associated with the configurations in the second list of the configurations that are assigned to the first computing device during the second time period; and

(iv) using the received second list of the configurations that are assigned to the first computing device during the second time period to determine if each of the configurations in that the second list are implemented.

19. The one or more non-transitory machine-readable media of claim 17 , wherein the method comprises:

at the management platform:

(i) providing a first collection of available configurations to a first administrator device of a first enterprise;

(ii) receiving, from the first administrator device, a first set of the configurations that were selected from the first collection of available configurations;

(iii) receiving, from the first administrator device, a first group of computing devices to which the first set of the configurations are to be applied,

wherein the first group of computing devices includes the first computing device;

(iv) receiving, from the first administrator device, the first any values of variables associated with any configurations from the first set of the configurations;

(v) storing a first set of configuration identifiers that identify the configurations in the first set of the configurations;

(vi) storing any received values of variables associated with the any configurations from the first set of the configurations; and

(vii) storing an association between the first set of configuration identifiers and each computing device in the first group of computing devices.

20. The one or more non-transitory machine-readable media of claim 19 , wherein the method comprises:

at the first computing device:

(i) if a determination is made that a first configuration assigned to the first computing device is not implemented, generate data specifying that the first configuration is not implemented on the first computing device, and transmitting the generated data to the management platform; and

at the management platform:

(i) receiving the generated data from the first computing device;

(ii) using the generated data to generate a report that indicates the first configuration is not implemented on the first computing device; and

providing the report to the first administrator device.

Assignments (5)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 61197/0084 Recorded Mar 12, 2026
From: JPMORGAN CHASE BANK, N.A.
To: KANDJI, INC.
Reel/Frame 075109/0448 →
SECURITY INTEREST Recorded Mar 12, 2026
From: IRU, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AND COLLATERAL AGENT
Reel/Frame 074065/0202 →
CHANGE OF NAME Recorded Oct 27, 2025
From: KANDJI, INC.
To: IRU, INC.
Reel/Frame 073267/0071 →
SECURITY INTEREST Recorded Sep 23, 2022
From: KANDJI, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 061197/0084 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2019
From: PETTIT, ADAM; PETTIT, WESLEY; DAUGHTERS, MARK; MODESITT, BRANDON
To: KANDJI, INC.
Reel/Frame 049944/0755 →
Cited By (4)
US 12,210,655 US 12,321,732 US 12,417,105 US 12,645,637