{"action":"created","comment":{"url":"https://api.github.com/repos/DataBiosphere/azul/pulls/comments/226726930","pull_request_review_id":166625413,"id":226726930,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNjcyNjkzMA==","diff_hunk":"@@ -18,6 +18,8 @@ install:\n   - pip install -U setuptools>=40.1.0\n   - pip install -r requirements.dev.txt\n   - pip install coveralls\n+  # moto requires this package for EC2 mock, which is triggered even thought we aren't using it.","path":".travis.yml","position":4,"original_position":4,"commit_id":"f37eeb6e413446a0bdb1ced30a5263d1641e6bdd","original_commit_id":"f37eeb6e413446a0bdb1ced30a5263d1641e6bdd","user":{"login":"hannes-ucsc","id":5143256,"node_id":"MDQ6VXNlcjUxNDMyNTY=","avatar_url":"https://avatars2.githubusercontent.com/u/5143256?v=4","gravatar_id":"","url":"https://api.github.com/users/hannes-ucsc","html_url":"https://github.com/hannes-ucsc","followers_url":"https://api.github.com/users/hannes-ucsc/followers","following_url":"https://api.github.com/users/hannes-ucsc/following{/other_user}","gists_url":"https://api.github.com/users/hannes-ucsc/gists{/gist_id}","starred_url":"https://api.github.com/users/hannes-ucsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hannes-ucsc/subscriptions","organizations_url":"https://api.github.com/users/hannes-ucsc/orgs","repos_url":"https://api.github.com/users/hannes-ucsc/repos","events_url":"https://api.github.com/users/hannes-ucsc/events{/privacy}","received_events_url":"https://api.github.com/users/hannes-ucsc/received_events","type":"User","site_admin":false},"body":"Also note that you should document every non-obvious fix. Had you done that in the first place, we could have avoided yet another review round-trip. Just sayin' …","created_at":"2018-10-19T17:38:17Z","updated_at":"2018-10-19T17:38:45Z","html_url":"https://github.com/DataBiosphere/azul/pull/374#discussion_r226726930","pull_request_url":"https://api.github.com/repos/DataBiosphere/azul/pulls/374","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/DataBiosphere/azul/pulls/comments/226726930"},"html":{"href":"https://github.com/DataBiosphere/azul/pull/374#discussion_r226726930"},"pull_request":{"href":"https://api.github.com/repos/DataBiosphere/azul/pulls/374"}},"in_reply_to_id":226726495},"pull_request":{"url":"https://api.github.com/repos/DataBiosphere/azul/pulls/374","id":220141956,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIwMTQxOTU2","html_url":"https://github.com/DataBiosphere/azul/pull/374","diff_url":"https://github.com/DataBiosphere/azul/pull/374.diff","patch_url":"https://github.com/DataBiosphere/azul/pull/374.patch","issue_url":"https://api.github.com/repos/DataBiosphere/azul/issues/374","number":374,"state":"open","locked":false,"title":"Redirect clients to download content from S3","user":{"login":"shiroyuki","id":226612,"node_id":"MDQ6VXNlcjIyNjYxMg==","avatar_url":"https://avatars0.githubusercontent.com/u/226612?v=4","gravatar_id":"","url":"https://api.github.com/users/shiroyuki","html_url":"https://github.com/shiroyuki","followers_url":"https://api.github.com/users/shiroyuki/followers","following_url":"https://api.github.com/users/shiroyuki/following{/other_user}","gists_url":"https://api.github.com/users/shiroyuki/gists{/gist_id}","starred_url":"https://api.github.com/users/shiroyuki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shiroyuki/subscriptions","organizations_url":"https://api.github.com/users/shiroyuki/orgs","repos_url":"https://api.github.com/users/shiroyuki/repos","events_url":"https://api.github.com/users/shiroyuki/events{/privacy}","received_events_url":"https://api.github.com/users/shiroyuki/received_events","type":"User","site_admin":false},"body":"(Resolves #356)\r\n\r\nIn order to resolve the issue around the limit on the size of the response payload for AWS Lambda (6 MB at the time of implementation) and ensure that the response is achievable within 30 seconds, this updates makes the manifest API utilize a private S3 bucket as an intermediate storage for downloadable content and redirect the client to that downloadable content on S3 via an associated pre-signed URL with HTTP 302.\r\n\r\n#### Potential Known Issues\r\n\r\nIterating through large result from ElasticSearch may affect how much data we can write to S3 before the response time exceeds 30 seconds.\r\n\r\n#### New Environment Variables\r\n\r\n| Environment Variable | Description | Required | Default Value |\r\n| --- | --- | --- | --- |\r\n| `AZUL_S3_BUCKET` | The name of S3 bucket used by Azul | No | `azul-storage-$AZUL_DEPLOYMENT_STAGE` |\r\n\r\n#### Permission Updates\r\n\r\nThe web service lambda function `azul-service-*` will have `s3::GetObject` and `s3::PutObject` on the corresponding S3 bucket (as specified in `AZUL_S3_BUCKET`).\r\n\r\n#### Infrastructure Updates\r\n\r\nThe Terraform script has been updated with provisioning a new S3 bucket as specified in `AZUL_S3_BUCKET`.","created_at":"2018-10-03T18:51:04Z","updated_at":"2018-10-19T17:38:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"15100b97c7906d16e220254d6f26ecebf5859915","assignee":{"login":"hannes-ucsc","id":5143256,"node_id":"MDQ6VXNlcjUxNDMyNTY=","avatar_url":"https://avatars2.githubusercontent.com/u/5143256?v=4","gravatar_id":"","url":"https://api.github.com/users/hannes-ucsc","html_url":"https://github.com/hannes-ucsc","followers_url":"https://api.github.com/users/hannes-ucsc/followers","following_url":"https://api.github.com/users/hannes-ucsc/following{/other_user}","gists_url":"https://api.github.com/users/hannes-ucsc/gists{/gist_id}","starred_url":"https://api.github.com/users/hannes-ucsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hannes-ucsc/subscriptions","organizations_url":"https://api.github.com/users/hannes-ucsc/orgs","repos_url":"https://api.github.com/users/hannes-ucsc/repos","events_url":"https://api.github.com/users/hannes-ucsc/events{/privacy}","received_events_url":"https://api.github.com/users/hannes-ucsc/received_events","type":"User","site_admin":false},"assignees":[{"login":"hannes-ucsc","id":5143256,"node_id":"MDQ6VXNlcjUxNDMyNTY=","avatar_url":"https://avatars2.githubusercontent.com/u/5143256?v=4","gravatar_id":"","url":"https://api.github.com/users/hannes-ucsc","html_url":"https://github.com/hannes-ucsc","followers_url":"https://api.github.com/users/hannes-ucsc/followers","following_url":"https://api.github.com/users/hannes-ucsc/following{/other_user}","gists_url":"https://api.github.com/users/hannes-ucsc/gists{/gist_id}","starred_url":"https://api.github.com/users/hannes-ucsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hannes-ucsc/subscriptions","organizations_url":"https://api.github.com/users/hannes-ucsc/orgs","repos_url":"https://api.github.com/users/hannes-ucsc/repos","events_url":"https://api.github.com/users/hannes-ucsc/events{/privacy}","received_events_url":"https://api.github.com/users/hannes-ucsc/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/DataBiosphere/azul/pulls/374/commits","review_comments_url":"https://api.github.com/repos/DataBiosphere/azul/pulls/374/comments","review_comment_url":"https://api.github.com/repos/DataBiosphere/azul/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DataBiosphere/azul/issues/374/comments","statuses_url":"https://api.github.com/repos/DataBiosphere/azul/statuses/f37eeb6e413446a0bdb1ced30a5263d1641e6bdd","head":{"label":"DataBiosphere:feature/shiroyuki/downloadables-via-s3","ref":"feature/shiroyuki/downloadables-via-s3","sha":"f37eeb6e413446a0bdb1ced30a5263d1641e6bdd","user":{"login":"DataBiosphere","id":32805087,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyODA1MDg3","avatar_url":"https://avatars0.githubusercontent.com/u/32805087?v=4","gravatar_id":"","url":"https://api.github.com/users/DataBiosphere","html_url":"https://github.com/DataBiosphere","followers_url":"https://api.github.com/users/DataBiosphere/followers","following_url":"https://api.github.com/users/DataBiosphere/following{/other_user}","gists_url":"https://api.github.com/users/DataBiosphere/gists{/gist_id}","starred_url":"https://api.github.com/users/DataBiosphere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DataBiosphere/subscriptions","organizations_url":"https://api.github.com/users/DataBiosphere/orgs","repos_url":"https://api.github.com/users/DataBiosphere/repos","events_url":"https://api.github.com/users/DataBiosphere/events{/privacy}","received_events_url":"https://api.github.com/users/DataBiosphere/received_events","type":"Organization","site_admin":false},"repo":{"id":139095537,"node_id":"MDEwOlJlcG9zaXRvcnkxMzkwOTU1Mzc=","name":"azul","full_name":"DataBiosphere/azul","private":false,"owner":{"login":"DataBiosphere","id":32805087,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyODA1MDg3","avatar_url":"https://avatars0.githubusercontent.com/u/32805087?v=4","gravatar_id":"","url":"https://api.github.com/users/DataBiosphere","html_url":"https://github.com/DataBiosphere","followers_url":"https://api.github.com/users/DataBiosphere/followers","following_url":"https://api.github.com/users/DataBiosphere/following{/other_user}","gists_url":"https://api.github.com/users/DataBiosphere/gists{/gist_id}","starred_url":"https://api.github.com/users/DataBiosphere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DataBiosphere/subscriptions","organizations_url":"https://api.github.com/users/DataBiosphere/orgs","repos_url":"https://api.github.com/users/DataBiosphere/repos","events_url":"https://api.github.com/users/DataBiosphere/events{/privacy}","received_events_url":"https://api.github.com/users/DataBiosphere/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/DataBiosphere/azul","description":null,"fork":false,"url":"https://api.github.com/repos/DataBiosphere/azul","forks_url":"https://api.github.com/repos/DataBiosphere/azul/forks","keys_url":"https://api.github.com/repos/DataBiosphere/azul/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DataBiosphere/azul/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DataBiosphere/azul/teams","hooks_url":"https://api.github.com/repos/DataBiosphere/azul/hooks","issue_events_url":"https://api.github.com/repos/DataBiosphere/azul/issues/events{/number}","events_url":"https://api.github.com/repos/DataBiosphere/azul/events","assignees_url":"https://api.github.com/repos/DataBiosphere/azul/assignees{/user}","branches_url":"https://api.github.com/repos/DataBiosphere/azul/branches{/branch}","tags_url":"https://api.github.com/repos/DataBiosphere/azul/tags","blobs_url":"https://api.github.com/repos/DataBiosphere/azul/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DataBiosphere/azul/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DataBiosphere/azul/git/refs{/sha}","trees_url":"https://api.github.com/repos/DataBiosphere/azul/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DataBiosphere/azul/statuses/{sha}","languages_url":"https://api.github.com/repos/DataBiosphere/azul/languages","stargazers_url":"https://api.github.com/repos/DataBiosphere/azul/stargazers","contributors_url":"https://api.github.com/repos/DataBiosphere/azul/contributors","subscribers_url":"https://api.github.com/repos/DataBiosphere/azul/subscribers","subscription_url":"https://api.github.com/repos/DataBiosphere/azul/subscription","commits_url":"https://api.github.com/repos/DataBiosphere/azul/commits{/sha}","git_commits_url":"https://api.github.com/repos/DataBiosphere/azul/git/commits{/sha}","comments_url":"https://api.github.com/repos/DataBiosphere/azul/comments{/number}","issue_comment_url":"https://api.github.com/repos/DataBiosphere/azul/issues/comments{/number}","contents_url":"https://api.github.com/repos/DataBiosphere/azul/contents/{+path}","compare_url":"https://api.github.com/repos/DataBiosphere/azul/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DataBiosphere/azul/merges","archive_url":"https://api.github.com/repos/DataBiosphere/azul/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DataBiosphere/azul/downloads","issues_url":"https://api.github.com/repos/DataBiosphere/azul/issues{/number}","pulls_url":"https://api.github.com/repos/DataBiosphere/azul/pulls{/number}","milestones_url":"https://api.github.com/repos/DataBiosphere/azul/milestones{/number}","notifications_url":"https://api.github.com/repos/DataBiosphere/azul/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DataBiosphere/azul/labels{/name}","releases_url":"https://api.github.com/repos/DataBiosphere/azul/releases{/id}","deployments_url":"https://api.github.com/repos/DataBiosphere/azul/deployments","created_at":"2018-06-29T03:18:14Z","updated_at":"2018-10-19T16:59:25Z","pushed_at":"2018-10-19T16:57:49Z","git_url":"git://github.com/DataBiosphere/azul.git","ssh_url":"git@github.com:DataBiosphere/azul.git","clone_url":"https://github.com/DataBiosphere/azul.git","svn_url":"https://github.com/DataBiosphere/azul","homepage":null,"size":11054,"stargazers_count":4,"watchers_count":4,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":125,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2,"open_issues":125,"watchers":4,"default_branch":"develop"}},"base":{"label":"DataBiosphere:develop","ref":"develop","sha":"4e92116dc468fe92163fa771911bbb95f70c2a9f","user":{"login":"DataBiosphere","id":32805087,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyODA1MDg3","avatar_url":"https://avatars0.githubusercontent.com/u/32805087?v=4","gravatar_id":"","url":"https://api.github.com/users/DataBiosphere","html_url":"https://github.com/DataBiosphere","followers_url":"https://api.github.com/users/DataBiosphere/followers","following_url":"https://api.github.com/users/DataBiosphere/following{/other_user}","gists_url":"https://api.github.com/users/DataBiosphere/gists{/gist_id}","starred_url":"https://api.github.com/users/DataBiosphere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DataBiosphere/subscriptions","organizations_url":"https://api.github.com/users/DataBiosphere/orgs","repos_url":"https://api.github.com/users/DataBiosphere/repos","events_url":"https://api.github.com/users/DataBiosphere/events{/privacy}","received_events_url":"https://api.github.com/users/DataBiosphere/received_events","type":"Organization","site_admin":false},"repo":{"id":139095537,"node_id":"MDEwOlJlcG9zaXRvcnkxMzkwOTU1Mzc=","name":"azul","full_name":"DataBiosphere/azul","private":false,"owner":{"login":"DataBiosphere","id":32805087,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyODA1MDg3","avatar_url":"https://avatars0.githubusercontent.com/u/32805087?v=4","gravatar_id":"","url":"https://api.github.com/users/DataBiosphere","html_url":"https://github.com/DataBiosphere","followers_url":"https://api.github.com/users/DataBiosphere/followers","following_url":"https://api.github.com/users/DataBiosphere/following{/other_user}","gists_url":"https://api.github.com/users/DataBiosphere/gists{/gist_id}","starred_url":"https://api.github.com/users/DataBiosphere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DataBiosphere/subscriptions","organizations_url":"https://api.github.com/users/DataBiosphere/orgs","repos_url":"https://api.github.com/users/DataBiosphere/repos","events_url":"https://api.github.com/users/DataBiosphere/events{/privacy}","received_events_url":"https://api.github.com/users/DataBiosphere/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/DataBiosphere/azul","description":null,"fork":false,"url":"https://api.github.com/repos/DataBiosphere/azul","forks_url":"https://api.github.com/repos/DataBiosphere/azul/forks","keys_url":"https://api.github.com/repos/DataBiosphere/azul/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DataBiosphere/azul/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DataBiosphere/azul/teams","hooks_url":"https://api.github.com/repos/DataBiosphere/azul/hooks","issue_events_url":"https://api.github.com/repos/DataBiosphere/azul/issues/events{/number}","events_url":"https://api.github.com/repos/DataBiosphere/azul/events","assignees_url":"https://api.github.com/repos/DataBiosphere/azul/assignees{/user}","branches_url":"https://api.github.com/repos/DataBiosphere/azul/branches{/branch}","tags_url":"https://api.github.com/repos/DataBiosphere/azul/tags","blobs_url":"https://api.github.com/repos/DataBiosphere/azul/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DataBiosphere/azul/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DataBiosphere/azul/git/refs{/sha}","trees_url":"https://api.github.com/repos/DataBiosphere/azul/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DataBiosphere/azul/statuses/{sha}","languages_url":"https://api.github.com/repos/DataBiosphere/azul/languages","stargazers_url":"https://api.github.com/repos/DataBiosphere/azul/stargazers","contributors_url":"https://api.github.com/repos/DataBiosphere/azul/contributors","subscribers_url":"https://api.github.com/repos/DataBiosphere/azul/subscribers","subscription_url":"https://api.github.com/repos/DataBiosphere/azul/subscription","commits_url":"https://api.github.com/repos/DataBiosphere/azul/commits{/sha}","git_commits_url":"https://api.github.com/repos/DataBiosphere/azul/git/commits{/sha}","comments_url":"https://api.github.com/repos/DataBiosphere/azul/comments{/number}","issue_comment_url":"https://api.github.com/repos/DataBiosphere/azul/issues/comments{/number}","contents_url":"https://api.github.com/repos/DataBiosphere/azul/contents/{+path}","compare_url":"https://api.github.com/repos/DataBiosphere/azul/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DataBiosphere/azul/merges","archive_url":"https://api.github.com/repos/DataBiosphere/azul/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DataBiosphere/azul/downloads","issues_url":"https://api.github.com/repos/DataBiosphere/azul/issues{/number}","pulls_url":"https://api.github.com/repos/DataBiosphere/azul/pulls{/number}","milestones_url":"https://api.github.com/repos/DataBiosphere/azul/milestones{/number}","notifications_url":"https://api.github.com/repos/DataBiosphere/azul/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DataBiosphere/azul/labels{/name}","releases_url":"https://api.github.com/repos/DataBiosphere/azul/releases{/id}","deployments_url":"https://api.github.com/repos/DataBiosphere/azul/deployments","created_at":"2018-06-29T03:18:14Z","updated_at":"2018-10-19T16:59:25Z","pushed_at":"2018-10-19T16:57:49Z","git_url":"git://github.com/DataBiosphere/azul.git","ssh_url":"git@github.com:DataBiosphere/azul.git","clone_url":"https://github.com/DataBiosphere/azul.git","svn_url":"https://github.com/DataBiosphere/azul","homepage":null,"size":11054,"stargazers_count":4,"watchers_count":4,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":125,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2,"open_issues":125,"watchers":4,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/DataBiosphere/azul/pulls/374"},"html":{"href":"https://github.com/DataBiosphere/azul/pull/374"},"issue":{"href":"https://api.github.com/repos/DataBiosphere/azul/issues/374"},"comments":{"href":"https://api.github.com/repos/DataBiosphere/azul/issues/374/comments"},"review_comments":{"href":"https://api.github.com/repos/DataBiosphere/azul/pulls/374/comments"},"review_comment":{"href":"https://api.github.com/repos/DataBiosphere/azul/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DataBiosphere/azul/pulls/374/commits"},"statuses":{"href":"https://api.github.com/repos/DataBiosphere/azul/statuses/f37eeb6e413446a0bdb1ced30a5263d1641e6bdd"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"hannes-ucsc"}}