IP Library Granted Patent US 11,954,183
Granted Patent B2
US 11,954,183 · App. 17/067,584 · Granted Apr 9, 2024

System and method using metadata to manage packaged applications components based on tenant licenses

Inventors: Prithvi Krishnan Padmanabhan (San Ramon, CA); Natasha Sushil Gupta (Broomfield, CO)
Assignee: Salesforce, Inc.
G06F21/12G06F8/61G06F21/105G06F21/1075
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,954,183
App. No.
17/067,584
Granted
Apr 9, 2024
Kind
B2
Abstract

A method and system to manage application package installation in a multi-tenant system is provided. The method includes accessing metadata of an application package for distribution in the multi-tenant system, selecting a component of the application package with a permission guard in the metadata, evaluating permission guard logic to determine wither a target tenant in the multi-tenant system can install the component, and compiling and installing the component in response to the permission guard logic indicating the tenant of the multi-tenant system has met conditions to utilize the component.

Claims (48)

1. A method to manage application package installation in a multi-tenant system, the method comprising:

accessing metadata of an application package for distribution in the multi-tenant system, wherein the metadata identifies one or more components of the application package that are associated with a respective permission guard, each respective permission guard containing logic for evaluating whether or not a tenant is licensed to utilize the associated component; and

in response to identifying a component associated with a permission guard:

determining, based on the logic in the associated permission guard, whether or not a target tenant in the multi-tenant system meets criteria for utilizing the component, and

compiling and installing either a usable version of the component or a non-functional version of the component depending on the determination.

2. The method of claim 1 , further comprising:

identifying components of the application package without permission guards; and

installing and compiling the components without permission guards.

3. The method of claim 1 , further comprising:

installing the usable version in accordance with a determination that the target tenant meets the criteria, and installing the non-functional version in accordance with a determination that the target tenant does not meet the criteria.

4. The method of claim 1 , further comprising:

testing the component in a test environment before enabling for the target tenant; and

sending notification of errors found during testing to a developer of the component.

5. The method of claim 1 , further comprising:

identifying a change to a licensing status of the component for the target tenant;

redetermining whether the target tenant meets the criteria based on an identified change; and

installing or enabling the usable version of the component based on the redetermination.

6. The method of claim 1 , wherein installing the usable version of the component includes installing the component for a pod of a multi-tenant system and enabling the component for all licensed tenants of the pod.

7. A non-transitory machine-readable storage medium that provides instructions to manage application package installation in a multi-tenant system that, if executed by a processor, will cause said processor to perform operations comprising:

accessing metadata of an application package for distribution in the multi-tenant system, wherein the metadata identifies one or more components of the application package that are associated with a respective permission guard, each respective permission guard containing logic for evaluating whether or not a tenant is licensed to utilize the associated component; and

in response to identifying a component associated with a permission guard:

determining, based on the logic in the associated permission guard, whether or not a target tenant in the multi-tenant system meets criteria for utilizing the component, and

compiling and installing either a usable version of the component or a non-functional version of the component in response to the permission guard logic indicating the tenant of the multi-tenant system has met conditions to utilize the component depending on the determination.

8. The non-transitory machine-readable storage medium of claim 7 , wherein the operations further comprise:

identifying components of the application package without permission guards; and

installing and compiling the components without permission guards.

9. The non-transitory machine-readable storage medium of claim 7 , wherein the operations further comprise:

installing the usable version in accordance with a determination that the target tenant meets the criteria, and installing the non-functional version in accordance with a determination that the target tenant does not meet the criteria.

10. The non-transitory machine-readable storage medium of claim 7 , wherein the operations further comprise:

testing the component in a test environment before enabling for the target tenant; and

sending notification of errors found during testing to a developer of the component.

11. The non-transitory machine-readable storage medium of claim 7 , wherein the operations further comprise:

identifying a change to a licensing status of the component for the target tenant;

redetermining whether the target tenant meets the criteria based on an identified change; and

installing or enabling the usable version of the component based on the redetermination.

12. The non-transitory machine-readable storage medium of claim 7 , wherein installing the usable version of the component includes installing the component for a pod of a multi-tenant system and enabling the component for all licensed tenants of the pod.

13. A computing device comprising:

a non-transitory machine-readable storage medium having stored therein an application and licensing manager configurable to manage application package installation in a multi-tenant system; and

a processor coupled to the non-transitory machine-readable storage medium, the processor to execute the application and licensing manager, the application and licensing manager configurable to perform operations of:

accessing metadata of an application package for distribution in the multi-tenant system, wherein the metadata identifies one or more components of the application package that are associated with a respective permission guard, each respective permission guard containing logic for evaluating whether or not a tenant is licensed to utilize the associated component, and

in response to identifying a component associated with a permission guard:

determining, based on the logic in the associated permission guard, whether or not a target tenant in the multi-tenant system meets criteria for utilizing the component, and

compiling and installing either a usable version of the component or a non-functional version of the component in response to the permission guard logic indicating the tenant of the multi-tenant system has met conditions to utilize the component depending on the determination.

14. The computing device of claim 13 , wherein the operations include identifying components of the application package without permission guards, and installing and compiling the components without permission guards.

15. The computing device of claim 13 , wherein the operations include installing the usable version in accordance with a determination that the target tenant meets the criteria, and installing the non-functional version in accordance with a determination that the target tenant does not meet the criteria.

16. The computing device of claim 13 , wherein the operations include testing the component in a test environment before enabling for the target tenant, and sending notification of errors found during testing to a developer of the component.

17. The computing device of claim 13 , wherein the operations include identifying a change to a licensing status of the component for the target tenant, redetermining whether the target tenant meets the criteria based on an identified change, and installing or enabling the usable version of the component based on the redetermination.

18. The computing device of claim 13 , wherein installing the usable version of the component includes installing the usable version of the component for a pod of a multi-tenant system and enabling the component for all licensed tenants of the pod.

Assignments (2)
CHANGE OF NAME Recorded Feb 17, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062794/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2020
From: PADMANABHAN, PRITHVI KRISHNAN; GUPTA, NATASHA SUSHIL
To: SALESFORCE.COM, INC.
Reel/Frame 054021/0950 →
Continuity (1)
Related Publication 20220114238A1 · Apr 14, 2022
Cited By (4)
US 12,632,442 US 12,645,674 US 12,670,151 US 12,688,196