IP Library Granted Patent US 12,271,497
Granted Patent B2
US 12,271,497 · App. 17/993,824 · Granted Apr 8, 2025

Monitoring code provenance

Inventors: Prakash Linga (San Jose, CA); Ajay K. Arora (Redwood City, CA); Vladimir Buzuev (Castro Valley, CA)
Assignee: HashiCorp, Inc.
G06F21/6218G06F8/70G06F8/71G06F21/31G06F21/54G06F21/554G06F21/563G06F21/604G06F21/62G06F21/6227G06F21/6281G06F21/629G06F21/64H04L63/102G06F2221/2141
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,271,497
App. No.
17/993,824
Granted
Apr 8, 2025
Kind
B2
Abstract

One example method of operation may include determining one or more of a file type and a code segment accessed during a code access event, identifying code origin information appended to the code segment during previous code access events, appending an updated code access location to the code segment identifying the current code access event and a current code location, and applying one or more code access restrictions to the code segment based on the current code location.

Claims (50)

1. A method comprising:

determining a code segment, associated with a user profile, is being accessed; appending a code access location to the code segment that identifies a current code location;

determining whether the current code location corresponds to one or more blocks of code with one or more code access restrictions that apply to the user profile; and

applying, based on the user profile, the one or more code access restrictions to the one or more blocks of code;

wherein the one or more blocks of code are a subset of the code segment.

2. The method of claim 1 , wherein the user profile comprises one or more of a device profile and a network address.

3. The method of claim 1 , further comprising:

identifying a previous code location from metadata;

updating code storage repository information based on the current code location; and

determining whether the current code location is associated with code access privileges that match the previous code location.

4. The method of claim 3 , further comprising:

applying one or more rules to the current code location based on rules associated with the previous code location.

5. The method of claim 1 , further comprising:

performing a string comparison of the code segment to one or more other code segments, and wherein the one or more other code segments are additional copies of the code segment.

6. The method of claim 1 , further comprising:

detecting a plurality of code segment copies that correspond to a plurality of code segment access events associated with the code segment.

7. The method of claim 1 , further comprising:

hashing the code segment; and

storing the hash key in a file associated with the code segment.

8. An apparatus comprising:

a hardware processor configured to:

determine a code segment, associated with a user profile, is accessed;

append a code access location to the code segment that identifies a current code location;

determine whether the current code location corresponds to one or more blocks of code with one or more code access restrictions that apply to the user profile; and

apply, based on the user profile, the one or more code access restrictions to the one or more blocks of code;

wherein the one or more blocks of code are a subset of the code segment.

9. The apparatus of claim 8 , wherein the user profile comprises one or more of a device profile and a network address.

10. The apparatus of claim 8 , wherein the hardware processor is further configured to identify a previous code location from metadata; update code storage repository information based on the current code location; and determine whether the current code location is associated with code access privileges that match the previous code location.

11. The apparatus of claim 10 , wherein the hardware processor is further configured to apply one or more rules to the current code location based on rules associated with the previous code location.

12. The apparatus of claim 8 , wherein the hardware processor is further configured to perform a string comparison of the code segment to one or more other code segments, and wherein the one or more other code segments are additional copies of the code segment.

13. The apparatus of claim 8 , wherein the hardware processor is further configured to detect a plurality of code segment copies which correspond to a plurality of code segment access events associated with the code segment.

14. The apparatus of claim 8 , wherein the hardware processor is further configured to hash the code segment, and store the hash key in a file associated with the code segment.

15. A non-transitory computer readable storage medium storing instructions that when executed cause a processor to perform:

determining a code segment, associated with a user profile, is being accessed;

appending a code access location to the code segment, that identifies a current code

location;

determining whether the current code location corresponds to one or more blocks of code with one or more code access restrictions that apply to the user profile; and

applying, based on the user profile, the one or more code access restrictions to the one or more blocks of code;

wherein the one or more blocks of code are a subset of the code segment.

16. The non-transitory computer readable storage medium of claim 15 , wherein the user profile comprises one or more of a device profile and a network address.

17. The non-transitory computer readable storage medium of claim 15 , wherein the processor is further configured to perform:

identifying a previous code location from metadata;

updating code storage repository information based on the current code location; and

determining whether the current code location is associated with code access privileges that match the previous code location.

18. The non-transitory computer readable storage medium of claim 17 , wherein the processor is further configured to perform:

applying one or more rules to the current code location based on rules associated with the previous code location.

19. The non-transitory computer readable storage medium of claim 15 , wherein the processor is further configured to perform:

performing a string comparison of the code segment to one or more other code segments, and wherein the one or more other code segments are additional copies of the code segment.

20. The non-transitory computer readable storage medium of claim 15 , wherein the processor is further configured to perform:

detecting a plurality of code segment copies that correspond to a plurality of code segment access events associated with the code segment.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2025
From: HASHICORP, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 072476/0436 →
MERGER Recorded Apr 25, 2024
From: BLUEBRACKET INC.; SHAREHOLDER REPRESENTATIVE SERVICES LLC; PUMBAA MERGER SUB, INC.
To: HASHICORP, INC.
Reel/Frame 067245/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2023
From: LINGA, PRAKASH; ARORA, AJAY K.; BUZUEV, VLADIMIR
To: BLUBRACKET, INC.
Reel/Frame 062446/0421 →
Continuity (8)
Continuation 17178228 · Feb 17, 2021
Provisional Application 62978238 · Feb 18, 2020
Provisional Application 62978250 · Feb 18, 2020
Provisional Application 62978245 · Feb 18, 2020
Provisional Application 62978242 · Feb 18, 2020
Provisional Application 62978248 · Feb 18, 2020
Provisional Application 62978240 · Feb 18, 2020
Related Publication 20230090586A1 · Mar 23, 2023
References Cited (56)
US 6609115B1 · Mehring et al. · 2003 [cited by applicant]
US 6957366B1 · McDonald · 2005 [cited by applicant]
US 7076496B1 · Ruizandrade · 2006 [cited by applicant]
US 8432570B1 · Couvering · 2013 [cited by applicant]
US 8819856B1 · Tiffe et al. · 2014 [cited by applicant]
US 9449181B1 · Umapathy et al. · 2016 [cited by applicant]
US 9921976B2 · Linga et al. · 2018 [cited by applicant]
US 10354093B1 · Farber et al. · 2019 [cited by applicant]
US 10387669B1 · Lim et al. · 2019 [cited by applicant]
US 10614071B1 · Chen et al. · 2020 [cited by applicant]
US 10768929B1 · Turner et al. · 2020 [cited by applicant]
US 20050097364A1 · Edeki et al. · 2005 [cited by applicant]
US 20050273600A1 · Seeman · 2005 [cited by applicant]
US 20060048230A1 · Hameau et al. · 2006 [cited by applicant]
US 20060080546A1 · Brannon et al. · 2006 [cited by applicant]
US 20070061782A1 · Schreiner et al. · 2007 [cited by applicant]
US 20070130149A1 · Kelso et al. · 2007 [cited by applicant]
US 20070169071A1 · Martin et al. · 2007 [cited by applicant]
US 20080288330A1 · Hildebrand et al. · 2008 [cited by applicant]
US 20090293121A1 · Bigus et al. · 2009 [cited by applicant]
US 20090328188A1 · Raymer et al. · 2009 [cited by applicant]
US 20100007489A1 · Misra et al. · 2010 [cited by applicant]
US 20120278902A1 · Martin et al. · 2012 [cited by applicant]
US 20140090012A1 · Lim · 2014 [cited by applicant]
US 20140283127A1 · Chacko et al. · 2014 [cited by applicant]
US 20150046463A1 · Mohan · 2015 [cited by applicant]
US 20150067861A1 · Foley et al. · 2015 [cited by applicant]
US 20150082274A1 · Resig · 2015 [cited by examiner]
US 20160283406A1 · Linga et al. · 2016 [cited by applicant]
US 20160283727A1 · Linga et al. · 2016 [cited by applicant]
US 20160285835A1 · Linga et al. · 2016 [cited by applicant]
US 20160352748A1 · Hwang et al. · 2016 [cited by applicant]
US 20170103192A1 · Hussey et al. · 2017 [cited by applicant]
US 20170154188A1 · Meier et al. · 2017 [cited by applicant]
US 20170366551A1 · Brandwine · 2017 [cited by applicant]
US 20180097787A1 · Murthy et al. · 2018 [cited by applicant]
US 20180129497A1 · Biddle et al. · 2018 [cited by applicant]
US 20180139210A1 · Gideon, III · 2018 [cited by applicant]
US 20190073455A1 · Chen et al. · 2019 [cited by applicant]
US 20190220542A1 · Tena et al. · 2019 [cited by applicant]
US 20190327271A1 · Saxena et al. · 2019 [cited by applicant]
US 20200026865A1 · Hulick, Jr. · 2020 [cited by examiner]
US 20200104248A1 · Yim · 2020 [cited by applicant]
US 20200104519A1 · Farber et al. · 2020 [cited by applicant]
US 20200183681A1 · Ramsl · 2020 [cited by examiner]
US 20200218535A1 · Alomari · 2020 [cited by applicant]
US 20200242536A1 · Schwantes · 2020 [cited by applicant]
US 20210097024A1 · Miller et al. · 2021 [cited by applicant]
US 20210243223A1 · Arora et al. · 2021 [cited by applicant]
US 20210247976A1 · Masis · 2021 [cited by examiner]
US 20220279004A1 · Erlingsson et al. · 2022 [cited by applicant]
WO 2016154520A1 · 2016 [cited by applicant]
Povey, Dean. “Optimistic security: a new access control paradigm.” [Online], 1999 [Retrieved on: Jul. 30, 2022], In Proceedings of the 1999 workshop on New security paradigms, pp. 40-45, Retrieved from: < https://dl .ac… [cited by applicant]
Feiner, Johannes, et al., “RepoVis: Visual Overviews and Full-Text Search in Software Repositories”, VISSOFT 2018, Madrid, Spain, Sep. 24-25, 2018, pp. 1-11. [cited by applicant]
Rahman, Mohammad Masudur, et al., “Effective Reformulation of Query for Code Search using Crowdsourced Knowledge an Extra-Large Data Analytics”, ICSME 2018, Madrid, Spain, Sep. 23-29, 2018, pp. 473-484. [cited by applicant]
Sharma, Abhishek, et al., “Cataloging GitHub Repositories”, EASE '17, Karlskrona, Sweden, Jun. 201, pp. 314-319. [cited by applicant]