IP Library Granted Patent US 12,242,834
Granted Patent B2
US 12,242,834 · App. 17/857,367 · Granted Mar 4, 2025

Security model for live applications in a cloud collaboration platform

Inventors: Julie Tung (Los Altos, CA); Rajeev Nayak (San Francisco, CA); Kevin Gibbs (San Francisco, CA); Bret Taylor (Lafayette, CA); Yang Su (San Francisco, CA); Nate Botwick (San Francisco, CA); Pedram Razavi (San Francisco, CA); Scott Goodfriend (Berkeley, CA); Nikrad Mahdi (San Francisco, CA); Andy Chung (Berkeley, CA); Drew Hamlin (San Francisco, CA); Patrick Linehan (San Francisco, CA); Sophia Westwood (San Francisco, CA); Lindsey Simon (San Francisco, CA); Shrey Banga (San Francisco, CA); Diana Berlin (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F8/60G06F8/34G06F8/36G06F8/71G06F9/451G06F9/5072G06F9/5077G06F9/54G06F12/0871G06F16/172G06F16/1734G06F16/1774G06F16/252G06F16/901G06F16/93G06F21/31G06F21/53G06F21/563G06F40/166H04L63/10H04L63/20H04L65/4015H04L67/34
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 12,242,834
App. No.
17/857,367
Granted
Mar 4, 2025
Kind
B2
Abstract

Disclosed herein are system, method, and computer program product embodiments for providing a security model to customizable live applications in a cloud collaboration platform. The security approach may dedicate a frame to each live application, serving the frame from a different domain than a document in which the live application is embedded. This approach ensures that more stringent security requirements may be required of the live application and allows the data presented to the live application to be narrowly tailored. The security model may further leverage sandbox attributes and content-security policies to restrict the behavior of sandboxed and non-sandboxed live applications in accordance with best security practices.

Claims (40)

1. A method, comprising:

generating, by one or more processors, a live application in a document associated with a collaboration platform, wherein the live application is assigned a type;

associating the live application with a subdomain based on the type; and

providing the live application from a different path than the document, wherein the different path includes the subdomain, and wherein the collaboration platform exposes a shared object to the live application based on the subdomain.

2. The method of claim 1 , wherein the live application comprises a sandbox attribute limiting actions performable by the live application.

3. The method of claim 1 , wherein the live application comprises a content-security policy limiting external content that the live application can access.

4. The method of claim 3 , wherein the content security policy comprises an exception for an external resource.

5. The method of claim 1 , wherein the live application and the document communicate via a bridge application programming interface.

6. The method of claim 1 , further comprising:

determining auto-complete values based on an input entered in the live application; and

displaying a response to the input including the auto-complete values.

7. The method of claim 1 , further comprising:

providing account information and document information to the live application while preventing access to other data used by the collaboration platform.

8. A system, comprising:

a memory; and

at least one processor coupled to the memory and configured to:

generate a live application in a document associated with a collaboration platform, wherein the live application is assigned a type;

associate the live application with a subdomain based on the type; and

provide the live application from a different path than the document, wherein the different path includes the subdomain, and wherein the collaboration platform exposes a shared object to the live application based on the subdomain.

9. The system of claim 8 , wherein the live application comprises a sandbox attribute limiting actions performable by the live application.

10. The system of claim 8 , wherein the live application comprises a content-security policy limiting external content that the live application can access.

11. The system of claim 10 , wherein the content security policy comprises an exception for an external resource.

12. The system of claim 8 , wherein the live application and the document communicate via a bridge application programming interface.

13. The system of claim 8 , the at least one processor further configured to:

determine auto-complete values based on an input entered in the live application; and

display a response to the input including the auto-complete values.

14. The system of claim 8 , the at least one processor further configured to:

provide account information and document information to the live application while preventing access to other data used by the collaboration platform.

15. A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising:

generating a live application in a document associated with a collaboration platform, and wherein the live application is assigned a type;

associating the live application with a subdomain based on the type; and

providing the live application from a different path than the document, wherein the different path includes the subdomain, and wherein the collaboration platform exposes a shared object to the live application based on the subdomain.

16. The non-transitory computer-readable device of claim 15 , wherein the live application comprises a sandbox attribute that limits actions performable by the live application.

17. The non-transitory computer-readable device of claim 15 , wherein the live application comprises a content-security policy that limits external content that the live application can access.

18. The non-transitory computer-readable device of claim 15 , wherein the live application and the document communicate via a bridge application programming interface.

19. The non-transitory computer-readable device of claim 15 , the operations further comprising:

determining auto-complete values based on an input entered in the live application; and

displaying a response to the input including the auto-complete values.

20. The non-transitory computer-readable device of claim 15 , the operations further comprising:

providing account information and document information to the live application while preventing access to other data used by the collaboration platform.

Assignments (2)
CHANGE OF NAME Recorded Nov 20, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069406/0699 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2024
From: TUNG, JULIE; NAYAK, RAJEEV; GIBBS, KEVIN; TAYLOR, BRET; SU, YANG; BOTWICK, NATE; RAZAVI, PEDRAM; GOODFRIEND, SCOTT; MAHDI, NIKRAD; CHUNG, ANDY; HAMLIN, DREW; LINEHAN, PATRICK; WESTWOOD, SOPHIA; SIMON, LINDSEY; BANGA, SHREY; BERLIN, DIANA
To: SALESFORCE.COM, INC.
Reel/Frame 068031/0702 →
Continuity (5)
Continuation 17015527 · Sep 9, 2020
Continuation 16264068 · Jan 31, 2019
Provisional Application 62751058 · Oct 26, 2018
Provisional Application 62751074 · Oct 26, 2018
Related Publication 20230067314A1 · Mar 2, 2023
References Cited (53)
US 5751980A · Musashi et al. · 1998 [cited by applicant]
US 7966370B1 · Pegg · 2011 [cited by examiner]
US 8239413B2 · Hubert · 2012 [cited by applicant]
US 8819617B1 · Koenig · 2014 [cited by examiner]
US 8863297B2 · Sharma · 2014 [cited by examiner]
US 9129148B1 · Li · 2015 [cited by examiner]
US 9483259B1 · Lee · 2016 [cited by examiner]
US 9699034B2 · Lee · 2017 [cited by examiner]
US 9952856B2 · Wetzold · 2018 [cited by examiner]
US 10606576B1 · Tung et al. · 2020 [cited by applicant]
US 10809991B2 · Tung · 2020 [cited by examiner]
US 10846071B2 · Tung et al. · 2020 [cited by applicant]
US 10936292B2 · Tung et al. · 2021 [cited by applicant]
US 11169789B2 · Tung et al. · 2021 [cited by applicant]
US 11379205B2 · Tung · 2022 [cited by examiner]
US 20040205653A1 · Hadfield et al. · 2004 [cited by applicant]
US 20070136662A1 · Khaba · 2007 [cited by applicant]
US 20090006936A1 · Parker et al. · 2009 [cited by applicant]
US 20110078246A1 · Bjorn · 2011 [cited by applicant]
US 20130247004A1 · DeLuca · 2013 [cited by examiner]
US 20140033067A1 · Pittenger · 2014 [cited by examiner]
US 20140040741A1 · Van Os et al. · 2014 [cited by applicant]
US 20140297516A1 · Brown · 2014 [cited by examiner]
US 20150082148A1 · Lai · 2015 [cited by examiner]
US 20150112927A1 · Lee · 2015 [cited by examiner]
US 20150199318A1 · Lemonik · 2015 [cited by examiner]
US 20150261971A1 · Mcferrin et al. · 2015 [cited by applicant]
US 20150341401A1 · Lee · 2015 [cited by applicant]
US 20160321291A1 · Malhorta et al. · 2016 [cited by applicant]
US 20160357778A1 · MacKenzie · 2016 [cited by examiner]
US 20170012870A1 · Blair · 2017 [cited by examiner]
US 20170064027A1 · Grenader · 2017 [cited by examiner]
US 20180103096A1 · Micucci et al. · 2018 [cited by applicant]
US 20180191832A1 · Gero · 2018 [cited by examiner]
US 20180218006A1 · Palmer et al. · 2018 [cited by applicant]
US 20180373501A1 · Li et al. · 2018 [cited by applicant]
US 20190289056A1 · Safavi · 2019 [cited by applicant]
US 20190354454A1 · Shmouely · 2019 [cited by examiner]
US 20200133650A1 · Tung · 2020 [cited by examiner]
US 20200133742A1 · Tung et al. · 2020 [cited by applicant]
US 20200133922A1 · Tung et al. · 2020 [cited by applicant]
US 20200134002A1 · Tung et al. · 2020 [cited by applicant]
US 20200409676A1 · Tung et al. · 2020 [cited by applicant]
US 20210026613A1 · Tung et al. · 2021 [cited by applicant]
US 20210149656A1 · Tung et al. · 2021 [cited by applicant]
Weber, “Live Documents with Contextual, Data-Driven Information Components”, 2002, ACM (Year: 2002). [cited by examiner]
Ostrowski, “Live Distributed Object”, 2007, IEEE (Year: 2007). [cited by examiner]
AutoCAD, “AutoCAD 2011 Help—Overview of Object Linking and Embedding”, Autodesk (2011). [cited by applicant]
Bisson, “How to integrate Microsoft Teams with other apps”, InfoWorld (2016). [cited by applicant]
Murray et al., “Beyond Autocomplete: Automatic Function Definition”, IEEE Symposium on Visual Languages and Human-Centric Computing: Posters and Demos, pp. 259-260 (2011). [cited by applicant]
Doring, “Anchor—How to Use the Collaborative Web Editor”, Retrieved from: https://secure.efoldering.com/support/Knowledgebase/Articleview/1024/82/anchor---how-to-use-the-collaborative-web-editor (2017). [cited by applicant]
Goldman, M., “Software Development with Real-Time Collaborative Editing”, MIT Libraries, Sep. 2012; pp. 129-133. [cited by applicant]
Triton, “Web Security Help”, Web Security Solutions, Retrieved from: https://www.websense.com/content/support/library/web/v75/triton_web_help/triton_web_help.pdf, (2014). [cited by applicant]