IP Library Granted Patent US 10,827,036
Granted Patent B2
US 10,827,036 · App. 15/479,395 · Granted Nov 3, 2020

Version control machine

Inventors: Jared Newman (Palo Alto, CA); Grace Wang (New York, NY); Benjamin Duffield (New York, NY); Jimin Song (Jersey City, NJ); Robert Fink (Palo Alto, CA); Mark Elliot (New York, NY)
Assignee: Palantir Technologies Inc.
H04L67/42G06F8/71H04L41/0893H04L67/02H04L67/1095H04L67/26
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,827,036
App. No.
15/479,395
Granted
Nov 3, 2020
Kind
B2
Abstract

Aspects of the present disclosure relate to version control. A version control server receives, from a client device, a request for making changes to a portion of data stored in a data store. The version control server verifies that the client device has permission to make the changes to the portion of the data stored in the data store. The version control server updates, using a version control servlet, the data store according to the request. The version control sever creates, forks, merges or deletes, using a repository management API (application programming interface), a repository and/or the files in the repository in the data store based on the request. The version control server triggers, using the repository management API, one or more webhooks in response to the request.

Claims (60)

1. A system comprising:

one or more processors of a version control server; and

a machine-readable medium storing instructions which, when executed by the one or more processors, cause the version control server to:

receive, from a client device, a request for making changes to a portion of data stored in a data store, wherein the data store stores a plurality of objects;

verify that the client device has permission to make the changes to the portion of the data stored in the data store;

update the portion of the data stored in the data store according to the request by generating one or more new objects;

trigger one or more webhooks in response to the request, wherein the one or more webhooks comprise a continuous integration (CI) webhook, the CI webhook causing a CI server to build new artifacts from code, publish the new artifacts, and notify a dataset integration platform about the new published artifacts, wherein the new artifacts are built based on the one or more new objects; and

register, in the dataset integration platform, a new job description referencing one or more of the new published artifacts built via the CI webhook, wherein the dataset integration platform provides a user interface for browsing a plurality of datasets, wherein each dataset comprises a container for semantically related content, wherein at least one dataset from the plurality of datasets comprises a stream of files emitted by a particular data source;

a work state server coupled with the version control server and the data store, the work state server to:

receive, from the client device, a request to edit code from the data store;

clone the code to be edited to the work state server;

commit edits to the code to the work state server; and

push the edits to the code to the data store.

2. The system of claim 1 , wherein the one or more webhooks comprise a dataset integration webhook, the dataset integration webhook causing an update to a dataset integration platform based on the request.

3. The system of claim 1 , wherein the request comprises one or more of a clone request, a pull request, and a push request.

4. The system of claim 1 , wherein at least one webhook from the one or more webhooks comprises a user-defined hypertext transfer protocol (HTTP) callback triggered by an event.

5. The system of claim 4 , wherein the event comprises making the changes to the portion of the data stored in the data store.

6. The system of claim 1 , further comprising a work state server coupled with the version control server and the data store, the work state server to:

determine that one or more files from the data store are being modified;

store one or more pointers to a previous version of the one or more files; and

store one or more pointers indicating modifications to the one or more files.

7. The system of claim 6 , wherein the request received from the client device comprises the modifications to the one or more files.

8. The system of claim 1 , the machine-readable medium further storing instructions which, when executed by the one or more processors, cause the version control server to:

receive, from the client device, an access request for a data resource stored in the data store, the access request including a resource identifier and a user identifier, the resource identifier identifying the data resource, the user identifier identifying a user of the network application;

in response to receiving the access request, access, from a verification engine, a policy object associated with the data resource using the resource identifier, the policy object including a statement, the statement including an operation performable with respect to the data resource based on satisfaction of one or more conditions;

evaluate, using the version control server, an access permission of the user with respect to the data resource based on whether the one or more conditions included in the policy record are satisfied; and

communicate, to the client device, a response to the access request, the response to the access request including the access permission of the user with respect to the data resource.

9. The system of claim 8 , the machine-readable medium further storing instructions which, when executed by the one or more processors, cause the version control server to:

provide, to the client device, a user interface for registering a policy, the user interface including one or more input fields to receive a policy registration;

receive, from the client device, a policy registration associated with an additional data resource stored in the first network database, the policy registration including an additional resource identifier and a plurality of statements, the additional resource identifier identifying the additional data resource, each of the plurality of permission statements including a condition and an operation; and

register a policy associated with the additional data resource based on the policy registration.

10. A method comprising:

receiving, from a user, a pull request at a web application of a first computing device, the web application being communicatively coupled with a version control server and a pull request server;

providing, via the web application, the pull request to the pull request server;

receiving, at the web application, an approval of the pull request from a second computing device different from the first computing device; and

providing, in response to the approval of the pull request, a message to the pull request server, the message causing the pull request server to instruct the version control server to merge the pull request into a data store, the version control server to:

trigger one or more webhooks in response to the pull request, wherein the one or more webhooks comprise a continuous integration (CI) webhook, the CI webhook causing a CI server to build new artifacts from code, publish the new artifacts, and notify a dataset integration platform about the new published artifacts, wherein the new artifacts are built based on one or more new objects added to the data store according to the pull request; and

register, in the dataset integration platform, a new job description referencing one or more of the new published artifacts built via the CI webhook, wherein the dataset integration platform provides a user interface for browsing a plurality of datasets, wherein each dataset comprises a container for semantically related content, wherein at least one dataset from the plurality of datasets comprises a stream of files emitted by a particular data source; and

a work state server coupled with the version control server and the data store, the work state server to:

receive, from the client device, a request to edit code from the data store;

clone the code to be edited to the work state server;

commit edits to the code to the work state server; and

push the edits to the code to the data store.

11. The method of claim 10 , further comprising: receiving, from the version control server, a notification that the pull request has been merged into the data store.

12. The method of claim 10 , wherein the first computing device is separate and distinct from the version control server.

13. The method of claim 10 , further comprising: browsing, via the web application, contents of a repository of the data store.

14. A non-transitory machine-readable medium storing instructions which, when executed by the one or more processors of a version control server, cause the version control server to perform operations comprising:

receiving, from a client device, a request for making changes to a portion of data stored in a data store, wherein the data store stores a plurality of objects;

verifying that the client device has permission to make the changes to the portion of the data stored in the data store;

updating the portion of the data stored in the data store according to the request by generating one or more new objects;

triggering one or more webhooks in response to the request, wherein the one or more webhooks comprise a continuous integration (CI) webhook, the CI webhook causing a CI server to build new artifacts from code, publish the new artifacts, and notify a dataset integration platform about the new published artifacts, wherein the new artifacts are built based on the one or more new objects; and

register, in the dataset integration platform, a new job description referencing one or more of the new published artifacts built via the CI webhook, wherein the dataset integration platform provides a user interface for browsing a plurality of datasets, wherein each dataset comprises a container for semantically related content, wherein at least one dataset from the plurality of datasets comprises a stream of files emitted by a particular data source; and

a work state server coupled with the version control server and the data store, the work state server to:

receive, from the client device, a request to edit code from the data store;

clone the code to be edited to the work state server;

commit edits to the code to the work state server; and

push the edits to the code to the data store.

15. The machine-readable medium of claim 14 , wherein the one or more webhooks comprise a dataset integration webhook, the dataset integration webhook causing an update to a dataset integration platform based on the request.

16. The machine-readable medium of claim 14 , wherein at least one webhook from the one or more webhooks comprises a user-defined hypertext transfer protocol (HTTP) callback triggered by an event.

17. The machine-readable medium of claim 16 , wherein the event comprises making the changes to the portion of the data stored in the data store.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2018
From: NEWMAN, JARED; WANG, GRACE; DUFFIELD, BENJAMIN; SONG, JIMIN; FINK, ROBERT; ELLIOT, MARK
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 045380/0622 →
Continuity (2)
Provisional Application 62396689 · Sep 19, 2016
Related Publication 20180084086A1 · Mar 22, 2018
Cited By (1)
US 12,360,880