IP Library › Granted Patent US 12,417,296
Granted Patent B2
US 12,417,296 · App. 18/079,833 · Granted Sep 16, 2025

Methods and systems for team collaboration and document management

Inventor: Patrick A. Townsend (Olympia, WA)
G06F21/602G06F16/182
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,417,296
App. No.
18/079,833
Granted
Sep 16, 2025
Kind
B2
Abstract

A user and business collaboration and document management solution is described. The solution utilizes the InterPlanetary File System (IPFS) or similar distributed and decentralized storage methods, in addition to the Publish/Subscribe (PubSub) message protocol or similar distributed messaging methods. As a fully decentralized and distributed solution, information is shared through cryptographically secure and resilient Web 3.0 mechanisms. The solution provides a number of secure collaboration services. Users can securely add, update, delete, archive and share documents on the IPFS file system. Local directory synchronization automates this task. A localized encryption key and secrets vault is used to protect data encryption keys, authentication credentials, and related secrets.

Claims (141)

1. A team collaboration and document management system, comprising:

multiple user computing systems that each host a local node of an Interplanetary File System (IPFS) and that are configured to:

encrypt a first document using a block cipher with a unique encryption key;

add a version record to a document data store;

save the encrypted first document to the IPFS file system;

save a unique content identifier provided by the IPFS file system for the first document to a local data store; and

send a secure backup message to a backup service with the unique content identifier using PubSub; and

a backup service computing system that hosts a local node of the IPFS file system and that is configured to:

receive via PubSub a secure backup message from at least one of the multiple user computing systems;

request, using the unique content identifier in the backup message, a copy of the identified document for storage by an IPFS node of the backup service;

upon receiving the identified document, pin the document to the backup service IPFS node to make the document permanent; and

transmit to a sender of the backup message a secure PubSub message to confirm the backup.

2. The team collaboration and document management system of claim 1 , wherein each of the multiple user computing systems is configured to share documents with one or more users and/or groups, by:

creating a document sharing message containing an IPFS content identifier of a shared document;

for each recipient that is one of the one or more users and/or groups:

encrypting the document sharing message with a public key of the recipient; and

sending to the recipient the encrypted file sharing message using PubSub, thereby causing a computing system of the recipient to:

obtain from the IPFS a copy of the shared document;

store the shared document on a local IPFS node hosted by the computing system of the recipient; and

pin the stored document to the local IPFS node hosted by the recipient computing system.

3. A method for document management by a computing system that hosts a local IPFS node, comprising:

adding documents to an IPFS file system by:

creating a unique encryption key;

encrypting a document using a block cipher with the unique encryption key;

adding a version record to a document data store;

saving the encrypted document to the IPFS file system;

saving a unique content identifier provided by the IPFS file system for the document to a local data store;

sending a message to a backup service with the unique content identifier using PubSub; and

updating the local data store with document information; and

deleting documents from the IPFS file system by for each document of the documents to be deleted:

receiving a document name and content identifier of the document;

verifying, based on the content identifier, the document in the IPFS file system;

deleting the document from the IPFS file system;

unpinning the document in the local IPFS node;

removing hashtag, version, audit, and descriptive text from the local data store; and

updating a local audit data store.

4. The method of claim 3 , further comprising:

collecting one or more hashtag values from a user;

collecting descriptive text about the first document from the user; and

saving the hashtag and descriptive text to the local data store.

5. The method of claim 4 , wherein the hashtag values and the descriptive text are saved to the local data store along with the unique content identifier of the first document.

6. The method of claim 4 , wherein the block cipher is an Advanced Encryption Standard (AES) cipher in Galois/Counter Mode (GCM).

7. The method of claim 3 , further comprising updating a document by:

receiving an indication of a second document that is an updated version of the first document;

saving the second document in the IPFS file system; and

adding a version record to the local data store, wherein the version record indicates that the second document is an updated version of the first document.

8. The method of claim 3 , wherein the step of deleting documents from the IPFS file system further comprises: sending a secure PubSub message to all shared users, the secure PubSub message causing deletion of remote copies of the document.

9. The method of claim 3 , wherein the step of deleting documents from the IPFS file system further comprises: deleting an encryption key for the document from a key vault.

10. The method of claim 3 , wherein the step of deleting documents from the IPFS file system further comprises:

sending a secure message using PubSub to the backup service with the content identifier of the document, the secure PubSub message causing deletion of a backup copy of the document stored by the backup service; and

receiving from the backup service an acknowledgement of the file deletion.

11. The method of claim 3 , wherein the document is deleted from the local IPFS node but is retained on any backup servers.

12. The method of claim 3 , further comprising reading a secured document from the IPFS file system by:

selecting a document to read;

if the selected document is owned by a user, retrieving an encryption key from a key vault, otherwise requesting the encryption key from an owner of the selected document using secure PubSub messaging;

decrypting and verifying the selected document;

presenting the selected document to the user;

securely erasing the encryption key from volatile memory; and

updating a local audit data store.

13. The method of claim 12 , wherein presenting the selected document includes displaying the selected document to the user or launching an application to view or process the selected document.

14. The method of claim 3 , further comprising searching for documents in the IPFS file system by:

receiving search criteria including document name or partial name;

creating a combination of one or more of: a date or date range, a last update date or date range, one or more hashtags, descriptive text, one or more keywords, document importance, document owner, document content values, shared username, and shared group name;

displaying predictive text suggestions during user input;

displaying dynamic search results during and after user input;

displaying the result of the document search with options to take actions on the searched documents;

providing an option to save the search criteria and results for future use; and

writing an audit record to the local data store.

15. A method for document management by a computing system that hosts a local IPFS node, comprising:

adding documents to an IPFS file system by:

creating a unique encryption key;

encrypting a document using a block cipher with the unique encryption key;

adding a version record to a document data store;

saving the encrypted document to the IPFS file system;

saving a unique content identifier provided by the IPFS file system for the document to a local data store;

sending a message to a backup service with the unique content identifier using PubSub; and

updating the local data store with document information; and

sharing documents with users or groups by:

receiving an indication of one or more users and/or groups;

creating a document sharing message containing an IPFS content identifier of a shared document;

for each recipient that is one of the indicated one or more users and/or groups;

encrypting the document sharing message with a public key of the recipient; and

sending to the recipient the encrypted file sharing message using PubSub; and

recording document sharing information in a local data store.

16. The method of claim 15 , further comprising sharing the document hashtags and descriptive text with one or more users and/or groups.

17. The method of claim 15 , wherein the encrypted file sharing message causes a recipient computing system to:

obtain from the IPFS a copy of the shared document;

store the shared document on a local IPFS node hosted by the recipient computing system; and

pin the stored document.

18. A method for document management by a computing system that hosts a local IPFS node, comprising:

adding documents to an IPFS file system by:

creating a unique encryption key;

encrypting a document using a block cipher with the unique encryption key;

adding a version record to a document data store;

saving the encrypted document to the IPFS file system;

saving a unique content identifier provided by the IPFS file system for the document to a local data store;

sending a message to a backup service with the unique content identifier using PubSub; and

updating the local data store with document information; and

backing up each document of the documents to the backup service by:

receiving an indication of the document;

verifying that the document exists on the local IPFS node;

creating a backup message that is a secure PubSub message including a document name and IPFS content identifier;

sending the backup message to the backup service via PubSub;

receiving confirmation via PubSub that the document has been backed up, or that the document had been previously backed up;

updating the local data store with the backup message; and

writing an audit record to the local data store.

19. The method of claim 18 wherein storage for the backup service is provided by a distributed storage system.

20. A method for document management by a computing system that hosts a local IPFS node, comprising:

adding documents to an IPFS file system by:

creating a unique encryption key;

encrypting a document using a block cipher with the unique encryption key;

adding a version record to a document data store;

saving the encrypted document to the IPFS file system;

saving a unique content identifier provided by the IPFS file system for the document to a local data store;

sending a message to a backup service with the unique content identifier using PubSub; and

updating the local data store with document information; and

restoring a document from the backup service using IPFS by:

receiving an indication of the document to be restored from the backup service;

retrieving a unique IPFS content identifier of the document to be restored from the local data store;

verifying that the document to be restored does not already exist on the local IPFS node;

issuing to the backup service an IPFS document retrieval request using the content identifier;

pinning the document to be restored to the local IPFS node;

updating the local data store with information from the backup service; and

writing an audit record to the local data store.

21. The method of claim 20 wherein the restored document is an original document of the restored document.

22. A method for document management by a computing system that hosts a local IPFS node, comprising:

adding documents to an IPFS file system by:

creating a unique encryption key;

encrypting a document using a block cipher with the unique encryption key;

adding a version record to a document data store;

saving the encrypted document to the IPFS file system;

saving a unique content identifier provided by the IPFS file system for the document to a local data store;

sending a message to a backup service with the unique content identifier using PubSub; and

updating the local data store with document information; and

inviting and enrolling a remote user by a local user, by:

collecting remote user information including name, email address, and remote user node identifier;

creating an invitation message that includes the remote user identifying information and local user identifying information, local IPFS node identifier, and local user public key;

sending the invitation message via PubSub;

receiving via PubSub an acceptance or rejection of the invitation;

if the invitation is accepted, adding a remote user public key to a key vault and adding the remote user information and the remote user public key to the local data store; and

writing audit information to the local data store.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2023
From: TOWNSEND SECURITY, INC.
To: TOWNSEND, PATRICK A.
Reel/Frame 065830/0387 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2022
From: TOWNSEND, PATRICK A.
To: TOWNSEND SECURITY, INC.
Reel/Frame 062203/0274 →
Continuity (1)
Related Publication 20240193282A1 · Jun 13, 2024
References Cited (15)
US 20020129047A1 · Cane · 2002 [cited by examiner]
US 20150244710A1 · Koster · 2015 [cited by examiner]
US 20170132200A1 · Noland · 2017 [cited by examiner]
US 20180293636A1 · Pollak · 2018 [cited by examiner]
US 20200044994A1 · Milyakov · 2020 [cited by examiner]
US 20200184097A1 · T · 2020 [cited by examiner]
US 20200380050A1 · Wang · 2020 [cited by applicant]
US 20210281421A1 · Semenovskiy · 2021 [cited by examiner]
US 20230108610A1 · Tang · 2023 [cited by examiner]
US 20230115998A1 · Multerer · 2023 [cited by examiner]
US 20230129705A1 · Wiklof · 2023 [cited by examiner]
CN 112261112 · 2021 [cited by applicant]
He, Wei et al., “Data Distribution Scheme for Information Service Based on Blockchain,” 2022 2nd International Conference on Consumer Electronics and Computer Engineering (ICCECE), Jan. 14, 2022, pp. 21-25, XP034089151,… [cited by applicant]
Agostinho, Pedro, et al. “SmartPubSub: Content-based Pub-Sub on IPFS,” Cornell University Library, Ithaca, New York, Jul. 13, 2022, 8 pages, arXiv.org, arXiv:2207.06369v1, XP091270931. [cited by applicant]
International Search Report and Written Opinion of the International Searching Authority dated Jun. 17, 2024, in International Patent Application No. PCT/US2023/083692, 25 pages. [cited by applicant]