Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Artifact API #7

Merged
merged 1 commit into from
Feb 7, 2018
Merged

New Artifact API #7

merged 1 commit into from
Feb 7, 2018

Conversation

djmitche
Copy link
Contributor

@djmitche djmitche commented Feb 7, 2018

A new artifact API is being implemented which will have the following advantages over the existing API:

  • SHA256 validation of artifacts being uploaded -- nothing transfered to S3 will succeed if it does not match the SHA256 checksum computed before upload. This ensures that nothing invalid gets into S3 itself.
  • SHA256 metadata will be set on objects stored in S3 so that things downloading these objects can optionally check that the thing that they downloaded matches the values we expect and store in Azure and S3 metadata
  • We will no longer send the artifactCompleted messages until the artifact is actually completed
  • We will not be able to mark a task as completed until all artifacts declared in that task are also marked as completed.

This is mostly implemented. The outstanding work is:

  • finish review of Queue changes to add new API -- [DON'T MERGE] Blob artifacts (new PR) taskcluster-queue#159
  • use the new Boolean Entities column type
  • write a taskcluster-lib-artifact in Node.js for use in Docker-Worker for uploading and downloading artifacts
  • write a go library for uploading and downloading artifacts
  • check that all artifacts associated with a task are marked as present before completing the task

@djmitche djmitche modified the milestone: 2017-q2 Apr 5, 2017
@djmitche
Copy link
Contributor Author

djmitche commented Apr 5, 2017

Does this also include "go library + cli for taskcluster-artifacts"

@gregarndt
Copy link

It should yes. The "work needed" checklist I added was just to play around with the markdown lists and show an example. @jhford will need to fill in the description of this issue with the goal, work needed to be done to accomplish it, etc. so it can be marked as approved and slated to work on for this quarter.

@djmitche
Copy link
Contributor Author

djmitche commented Apr 5, 2017

ah, ok

@jhford
Copy link
Contributor

jhford commented Apr 11, 2017

A new artifact API is being implemented which will have the following advantages over the existing API:

  • SHA256 validation of artifacts being uploaded -- nothing transfered to S3 will succeed if it does not match the SHA256 checksum computed before upload. This ensures that nothing invalid gets into S3 itself.
  • SHA256 metadata will be set on objects stored in S3 so that things downloading these objects can optionally check that the thing that they downloaded matches the values we expect and store in Azure and S3 metadata
  • We will no longer send the artifactCompleted messages until the artifact is actually completed
  • We will not be able to mark a task as completed until all artifacts declared in that task are also marked as completed.

This is mostly implemented. The outstanding work is:

  • finish review of Queue changes to add new API -- [DON'T MERGE] Blob artifacts (new PR) taskcluster-queue#159
  • use the new Boolean Entities column type
  • write a taskcluster-lib-artifact in Node.js for use in Docker-Worker for uploading and downloading artifacts
  • write a go library for uploading and downloading artifacts
  • check that all artifacts associated with a task are marked as present before completing the task

@djmitche
Copy link
Contributor Author

Awesome - I'll copy that into the first comment to make it easier to find. Thanks!

@gregarndt gregarndt removed this from the 2017-q2 milestone Jun 20, 2017
@gregarndt
Copy link

@jhford Some of the items here are complete, can you update the checklist for what has been done so far and what remains?

@djmitche
Copy link
Contributor Author

djmitche commented Feb 7, 2018

I'm not sure what, if anything, is tracking completion of this.. but it's decided, so merged.

@djmitche djmitche merged commit 5f01c2d into master Feb 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants