IP Library Granted Patent US 10,547,601
Granted Patent B2
US 10,547,601 · App. 15/394,307 · Granted Jan 28, 2020

System and method to allow third-party developer to debug code in customer environment

Inventors: Nathan Edward Lipke (Denver, CO); David Ross Baker (San Francisco, CA); Nicholas Chun Yuan Chen (San Francisco, CA); Jonathan Widjaja (San Francisco, CA); Winston Chow (San Mateo, CA); Josh Kaplan (Orinda, CA); Gregory Wester (San Francisco, CA)
Assignee: salesforce.com, inc.
H04L63/08G06F11/362G06F11/3664
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 10,547,601
App. No.
15/394,307
Granted
Jan 28, 2020
Kind
B2
Abstract

A platform is provided to allow the developer to log into a subscriber's computer system by using the credential of the developer or the subscriber to view and to debug at least a portion of executable code that is used by the subscriber. The executable code used by the subscriber may be part of managed package code, at least portions of which are customized for various subscribers. Cooperative debugging may be provided between developer and subscriber with lifting of code encapsulation for the developer in the subscriber implementation. The developer and the subscriber may be granted debugging licenses each authorizing a limited number of debugging sessions, and each debugging session run by the developer may be counted against the debugging license of either the developer or the subscriber. Debugging licenses may be transferred between the developer and the subscriber.

Claims (42)

1. A method for a developer to debug code in a data processing system of a subscriber, the method comprising:

receiving, at the data processing system, a request from the subscriber to debug a set of code used by the subscriber;

receiving, at the data processing system, an indication of authentication of the developer to access the set of code based on a subscriber permission setting;

providing, by the data processing system, the developer with a permission to run a debugging tool on the set of code used by the subscriber upon receiving the indication of authentication;

providing, by the data processing system, access by the developer to view the set of code that is hosted by the data processing system and used by the subscriber; and

creating, by the data processing system, a debugging session to permit the developer to run the debugging tool on the set of code,

wherein the subscriber accesses the data processing system using a credential assigned to the subscriber, and

the subscriber is separate from the developer.

2. The method of claim 1 , further comprising receiving, at the data processing system, a request from the developer to select the subscriber from a plurality of subscribers.

3. The method of claim 1 , wherein providing, by the data processing system, access to the developer to view the set of code that is hosted by the data processing system and used by the subscriber comprises permitting the developer to log in to the debugger session using a credential of the developer.

4. The method of claim 1 , wherein providing, by the data processing system, access to the developer to view the set of code that is hosted by the data processing system and used by the subscriber comprises permitting the developer to log in to the debugger session using the credential of the subscriber.

5. The method of claim 1 , wherein the developer is permitted to run an authorized number of debugging sessions, further comprising decreasing the authorized number of debugging sessions by one upon creating, by the data processing system, the debugging session to permit the developer to run the debugging tool on the set of code.

6. The method of claim 1 , wherein the subscriber is permitted to run an authorized number of debugging sessions, further comprising decreasing the authorized number of debugging sessions by one upon creating, by the data processing system, the debugging session to permit the developer to run the debugging tool on the set of code.

7. The method of claim 1 , wherein the developer is permitted to run a first authorized number of debugging sessions and the subscriber is permitted to run a second authorized number of debugging sessions, further comprising transferring at least one authorized debugging session between the developer and the subscriber.

8. The method of claim 1 , further comprising preventing, by the data processing system, the developer from running more than one debugging session at a time.

9. The method of claim 1 , further comprising terminating, by the data processing system, the debugging session upon expiration of a limited time.

10. The method of claim 1 , further comprising terminating, by the data processing system, the debugging session upon occurrence of an execution error.

11. The method of claim 1 , wherein the set of code comprises a portion of managed package code customized for the subscriber.

12. The method of claim 11 , wherein the developer is prevented from viewing another portion of the managed package code other than the set of code customized for the subscriber.

13. The method of claim 11 , wherein the developer is prevented from debugging another portion of the managed package code other than the set of code customized for the subscriber.

14. The method of claim 1 , wherein the set of code comprises a portion of managed package code, and wherein another portion of the managed package code is not authorized for access by the developer, further comprising redacting the other portion of the managed package code that is not authorized for access by the developer.

15. The method of claim 1 , wherein the developer is permitted to run an authorized debugging session across a plurality of computers or servers of the subscriber with a session identification.

16. The method of claim 1 , further comprising transferring, by the data processing system, a namespace between the developer and the subscriber.

17. The method of claim 1 , further comprising transferring, by the data processing system, a uniform resource locator (URL) for the debugging session to an integrated development environment (IDE) to create the debugging session.

18. An apparatus for a developer to debug code in a data processing system of a subscriber, the system comprising:

a processor; and

a memory communicably coupled to the processor, the memory including computer instructions configured to cause the processor to:

receive a request from the subscriber to debug a set of code used by the subscriber;

receive an indication of authentication of the developer to access the set of code based on a subscriber permission setting;

provide the developer with a permission to run a debugging tool on the set of code used by the subscriber upon receiving the indication of authentication;

provide access by the developer to view the set of code that is hosted by the data processing system and used by the subscriber; and

create a debugging session to permit the developer to run the debugging tool on the set of code,

wherein the subscriber accesses the data processing system using a credential assigned to the subscriber, and

the subscriber is separate from the developer.

19. The apparatus of claim 18 , wherein the computer instructions to provide access to the developer to view the set of code that is hosted by the data processing system and used by the subscriber comprise computer instructions to permit the developer to log in to the debugger session using a credential of the developer.

20. The apparatus of claim 18 , wherein the computer instructions to provide access to the developer to view the set of code that is hosted by the data processing system and used by the subscriber comprise computer instructions to permit the developer to log in to the debugger session using the credential of the subscriber.

21. The apparatus of claim 18 , wherein the developer is permitted to run an authorized number of debugging sessions, and wherein the computer instructions further comprise computer instructions to decrease the authorized number of debugging sessions by one upon creating the debugging session to permit the developer to run the debugging tool on the set of code.

22. The apparatus of claim 18 , wherein the subscriber is permitted to run an authorized number of debugging sessions, and wherein the computer instructions further comprise computer instructions to decrease the authorized number of debugging sessions by one upon creating the debugging session to permit the developer to run the debugging tool on the set of code.

23. The apparatus of claim 18 , wherein the developer is permitted to run a first authorized number of debugging sessions and the subscriber is permitted to run a second authorized number of debugging sessions, and wherein the computer instructions further comprise computer instructions to transfer at least one authorized debugging session between the developer and the subscriber.

24. The apparatus of claim 18 , wherein the computer instructions further comprise computer instructions to prevent the developer from running more than one debugging session at a time.

25. The apparatus of claim 18 , wherein the set of code comprises a portion of managed package code customized for the subscriber, and wherein the developer is prevented from debugging another portion of the managed package code other than the set of code customized for the subscriber.

26. The apparatus of claim 18 , wherein the set of code comprises a portion of managed package code, wherein another portion of the managed package code is not authorized for access by the developer, and wherein the computer instructions further comprise computer instructions to redact the other portion of the managed package code that is not authorized for access by the developer.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2018
From: LIPKE, NATHAN EDWARD; BAKER, DAVID ROSS; CHEN, NICHOLAS CHUN YUAN; WIDJAJA, JONATHAN; CHOW, WINSTON; KAPLAN, JOSH; WESTER, GREGORY
To: SALESFORCE.COM, INC.
Reel/Frame 045369/0985 →