Skip to content

Commit

Permalink
Allow shortlinks (#837)
Browse files Browse the repository at this point in the history
* update wk to 20617

* add generated client for short links

* resolve short links for annotation and dataset urls

* add changelog entry

* Update webknossos/__generate_client.py

* minor style fix

* use urlparse
  • Loading branch information
jstriebel authored Dec 7, 2022
1 parent f471e70 commit 4f1dc72
Show file tree
Hide file tree
Showing 26 changed files with 135,822 additions and 41,422 deletions.
1 change: 1 addition & 0 deletions webknossos/Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ For upgrade instructions, please check the respective *Breaking Changes* section
### Breaking Changes

### Added
- Short links, such as `https://webknossos.org/links/93zLg9U9vJ3c_UWp`, are now supported for dataset and annotation urls in `download` and `open_remote` methods. [#837](https://github.com/scalableminds/webknossos-libs/pull/837)

### Changed

Expand Down
21 changes: 20 additions & 1 deletion webknossos/__generate_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ def iterate_request_ids_with_responses() -> Iterable[Tuple[str, bytes]]:
generate_token_for_data_store,
project_info_by_id,
project_info_by_name,
short_link_by_key,
task_info,
task_infos_by_project_id,
team_list,
Expand All @@ -115,7 +116,7 @@ def iterate_request_ids_with_responses() -> Iterable[Tuple[str, bytes]]:
)
response = httpx.get(
url=f"{WK_URL}/api/datasets/{organization_id}/{dataset_name}",
headers={"X-Auth-Token": f"{WK_TOKEN}"},
headers={"X-Auth-Token": WK_TOKEN},
)
assert (
response.status_code == 200 and response.json()["isActive"]
Expand Down Expand Up @@ -240,6 +241,22 @@ def iterate_request_ids_with_responses() -> Iterable[Tuple[str, bytes]]:
),
)

short_link_key = httpx.post(
url=f"{WK_URL}/api/shortLinks",
json=WK_URL,
headers={"X-Auth-Token": WK_TOKEN},
).json()["key"]

yield (
"shortLinkByKey",
extract_200_response(
short_link_by_key.sync_detailed(
key=short_link_key,
client=client,
),
),
)

for api_endpoint in [
datastore_list,
build_info,
Expand Down Expand Up @@ -322,6 +339,8 @@ def iterate_request_ids_with_responses() -> Iterable[Tuple[str, bytes]]:
"tags",
"isPublic",
"allowedTeams",
##### Short links ####
"longLink",
}

# Those key-pairs of (parent-key, child-key) mark exceptions
Expand Down
2 changes: 1 addition & 1 deletion webknossos/local_wk_setup.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function export_vars {
export WK_TOKEN=1b88db86331a38c21a0b235794b9e459856490d70408bcffb767f64ade0f83d2bdb4c4e181b9a9a30cdece7cb7c65208cc43b6c1bb5987f5ece00d348b1a905502a266f8fc64f0371cd6559393d72e031d0c2d0cabad58cccf957bb258bc86f05b5dc3d4fff3d5e3d9c0389a6027d861a21e78e3222fb6c5b7944520ef21761e
export WK_URL=http://localhost:9000
export DOCKER_TAG=master__19264
export DOCKER_TAG=master__20617
}

function ensure_local_test_wk {
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,251 @@
interactions:
- request:
body: ''
headers:
accept:
- '*/*'
accept-encoding:
- gzip, deflate
connection:
- keep-alive
host:
- webknossos.org
user-agent:
- python-httpx/0.18.2
method: GET
uri: https://webknossos.org/api/shortLinks/byKey/93zLg9U9vJ3c_UWp
response:
content: '{"_id":"638f66890100006501d8ac2c","key":"93zLg9U9vJ3c_UWp","longLink":"https://webknossos.org/datasets/scalable_minds/l4_sample_dev_sharing/view?token=ilDXmfQa2G8e719vb1U9YQ#%7B%22position%22:%5B2807,4352,1794%5D,%22mode%22:%22orthogonal%22,%22zoomStep%22:1.3,%22stateByLayer%22:%7B%22color%22:%7B%22isDisabled%22:false%7D,%22segmentation%22:%7B%22isDisabled%22:false%7D%7D%7D"}'
headers:
connection:
- keep-alive
content-length:
- '378'
content-type:
- application/json
date: Mon, 01 Jan 2000 00:00:00 GMT
referrer-policy:
- origin-when-cross-origin, strict-origin-when-cross-origin
strict-transport-security:
- max-age=15724800; includeSubDomains
x-permitted-cross-domain-policies:
- master-only
x-xss-protection:
- 1; mode=block
http_version: HTTP/1.1
status_code: 200
- request:
body: ''
headers:
accept:
- '*/*'
accept-encoding:
- gzip, deflate
connection:
- keep-alive
host:
- webknossos.org
user-agent:
- python-httpx/0.18.2
method: GET
uri: https://webknossos.org/api/datasets/scalable_minds/l4_sample_dev_sharing?sharingToken=ilDXmfQa2G8e719vb1U9YQ
response:
content: '{"name":"l4_sample_dev_sharing","dataSource":{"id":{"name":"l4_sample_dev_sharing","team":"scalable_minds"},"dataLayers":[{"name":"color","category":"color","boundingBox":{"topLeft":[2679,4224,1719],"width":256,"height":256,"depth":150},"resolutions":[[1,1,1],[2,2,1],[4,4,2]],"elementClass":"uint8"},{"name":"segmentation","category":"segmentation","boundingBox":{"topLeft":[2679,4224,1719],"width":256,"height":256,"depth":150},"resolutions":[[1,1,1],[2,2,1],[4,4,2]],"elementClass":"uint32","largestSegmentId":5238529}],"scale":[11.239999771118164,11.239999771118164,28]},"dataStore":{"name":"webknossos.org","url":"https://data-humerus.webknossos.org","isScratch":false,"isConnector":false,"allowsUpload":true},"owningOrganization":"scalable_minds","allowedTeams":[],"allowedTeamsCumulative":[],"isActive":true,"isPublic":false,"description":null,"displayName":null,"created":1647612907522,"isEditable":false,"lastUsedByUser":1010101010101,"logoUrl":"https://static.webknossos.org/logos/scalableminds.svg","sortingKey":1647612907522,"details":null,"isUnreported":false,"jobsEnabled":true,"tags":[],"folderId":"638727a60b62b016daeaa60e","publication":null}'
headers:
connection:
- keep-alive
content-length:
- '1147'
content-type:
- application/json
date: Mon, 01 Jan 2000 00:00:00 GMT
referrer-policy:
- origin-when-cross-origin, strict-origin-when-cross-origin
strict-transport-security:
- max-age=15724800; includeSubDomains
x-permitted-cross-domain-policies:
- master-only
x-xss-protection:
- 1; mode=block
http_version: HTTP/1.1
status_code: 200
- request:
body: ''
headers:
accept:
- '*/*'
accept-encoding:
- gzip, deflate
connection:
- keep-alive
host:
- data-humerus.webknossos.org
user-agent:
- python-httpx/0.18.2
method: GET
uri: https://data-humerus.webknossos.org/data/datasets/scalable_minds/l4_sample_dev_sharing/layers/color/data?depth=10&halfByte=false&height=10&mag=1-1-1&width=10&x=2807&y=4352&z=1794
response:
content: !!binary |
g5GThpWTi4l+gY6UkpCKh5h9k4qNmZGZepaTjn6Dk4qOg4qFgIyGl4OBkZqakH2ThIKPjYaUkJyC
c4l8fYyDaYWVjX95dXx1fqGCfox2cW5ucHhvcm5paWhXY2lrYm5dYXJpYZOalZWPipeKf4aKkIyG
i4+bdYZlgIiQi4+LipWJfo2Klo6PfZGUhXiPiZihipeBh4uCkX6OjIuGhXt7b3Z+hIaGcXtpaWd6
c3ttgWpsam9hX3BpbFloaXppWnVscm1rZGhjcW6QgY+MkISChXFvmYeQh4iKjXtxaH+NhYKTlnSA
W26Mk4Z/jI99gmlpi32Ei4mPkX1tdX1tiYB7hntzbGJ0eGZ9dHmBUmxbY1l1dW9xWGJtc19xYml3
enRZenR/cGJqcHGDeIODeYptf2pnbXRniI2DcXJ1Z1VnYmd9i4F1cmJpYGtpiIx3dnFUYGpvZnl+
hH9vdV5iZmtzZWlqalleaHhuYV9QYXJYWGlibVZyXWpwb3ZsX3Vxh2tlhIN6hIJ1d314f4OEgYmP
j2NzZGBtb313fIRxdnhiaVhtgWpzZV52Y1JhZG5ramZoZ2ZoYVtrbWhyZmlsYXJoZ2ZiV09obnly
cH95dmFaY2mScWyBeICIgneTf392i4eIh5KNh5KVjoeVk5yPk5OGf5SNg5JqXmV0aGyH1ZGJaGJV
eXNohVSJgW5oZ21hZ22KcoJaUmRecGFwSWJxZmViZkVvaHRoZXFZcmuUb4J/Znd/d252eIaAgop9
kJKPiZ6Sfol+hKeSi5WOkoqAhIyNlI+Vh5+Ji4ugb2qAgpCEgouNimJqcYZ8kpKKhJl0aG5ue4GL
hYF+YnJsY2Brg3h1b2JbamZiYWZnfXB6cW5+ZWl1YWtrrHKDhYx4h3Nva3aIkpKHeoWUg5S6nHyU
hZyPkoiNe3yPhoZ/koeVkGqLh49+lIeHd4d2bHx7f4uJmIyZYndzcXZojHh1gXhpdGNwWV9vc3F8
fnR7e2FrZ2JnioKDgHp8ZmRgd4mOhYeAgn1wd3aSnYiWhYR1f3p5mIGOlIeRgI6TiYmKj5iQlYWL
k5BlgIh2oYuFhZGCbWJranZ6i4GHhmlaZ3VhdICAfYJqaHN6lGVyhXyGhoOIbmhgb1x6XYuckIuX
g3VmX2aAhpCTh3V5d3NwiZGEknKIipJ3eIaMhZSkjXB8i5eEfYyDhJaWkpiYb2pocXWIkYuTiWhw
Y2d5aoGMeoVmTmNecHd7hHmCb1hsZGxoZXV0f3pxY1ZNc2d1c2R9g3NoV2toXk5wg3qRem1nbXB2
bX90h4Z8eW93anJ5f4+WfHqAcHV5e4mQinN/eoaBgA==
headers:
access-control-allow-origin:
- '*'
access-control-expose-headers:
- MISSING-BUCKETS
access-control-max-age:
- '600'
connection:
- keep-alive
content-length:
- '1000'
content-type:
- application/octet-stream
date: Mon, 01 Jan 2000 00:00:00 GMT
missing-buckets:
- '[]'
referrer-policy:
- origin-when-cross-origin, strict-origin-when-cross-origin
strict-transport-security:
- max-age=15724800; includeSubDomains
x-frame-options:
- DENY
x-permitted-cross-domain-policies:
- master-only
x-xss-protection:
- 1; mode=block
http_version: HTTP/1.1
status_code: 200
- request:
body: ''
headers:
accept:
- '*/*'
accept-encoding:
- gzip, deflate
connection:
- keep-alive
host:
- data-humerus.webknossos.org
user-agent:
- python-httpx/0.18.2
method: GET
uri: https://data-humerus.webknossos.org/data/datasets/scalable_minds/l4_sample_dev_sharing/layers/segmentation/data?depth=10&halfByte=false&height=10&mag=1-1-1&width=10&x=2807&y=4352&z=1794
response:
content: !!binary |
buZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu
5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7m
TwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZP
AG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8A
buZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu
5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7m
TwBu5k8AbuZPAG7mTwBu5k8AH9RPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AH9RP
AG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8A
buZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu
5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7m
TwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZP
AG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8A
buZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AH9RPAG7mTwBu5k8AbuZPAG7mTwBu
5k8AbuZPAG7mTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/U
TwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZP
AG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8A
buZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu
5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7m
TwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZP
AG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8A
H9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf
1E8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAHbSTwB20k8AdtJPAG7mTwBu5k8AbuZPAG7m
TwBu5k8AbuZPAG7mTwB20k8AdtJPAHbSTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZP
AHbSTwB20k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwB20k8AdtJPAG7mTwBu5k8A
buZPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAHbSTwBu5k8AbuZPAG7mTwBu5k8AbuZPAG7mTwBu
5k8AH9RPAB/UTwAf1E8AbuZPAG7mTwBu5k8AbuZPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/U
TwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RP
AB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8A
H9RPAG7mTwBu5k8AbuZPAG7mTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwBu5k8AbuZPAG7mTwBu
5k8AbuZPAHbSTwB20k8AdtJPAHbSTwB20k8AbuZPAG7mTwBu5k8AbuZPAG7mTwB20k8AdtJPAHbS
TwB20k8AdtJPAG7mTwBu5k8AbuZPAG7mTwBu5k8AbuZPAHbSTwB20k8AdtJPAHbSTwBu5k8AbuZP
AG7mTwBu5k8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8A
H9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf
1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/U
TwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RP
AB/UTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8A
dtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAB/UTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB2
0k8AdtJPAHbSTwAf1E8AH9RPAB/UTwAf1E8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AH9RPAB/U
TwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RP
AB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8A
H9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf
1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/U
TwAf1E8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJP
AHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8A
dtJPAHbSTwB20k8AH9RPAB/UTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAB/UTwAf
1E8AH9RPAB/UTwAf1E8AH9RPAHbSTwB20k8AdtJPAHbSTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/U
TwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RP
AB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8A
H9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf
1E8AH9RPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbS
TwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AH9RPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJP
AHbSTwB20k8AdtJPAB/UTwAf1E8AH9RPAB/UTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwAf1E8A
H9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AdtJPAHbSTwB20k8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf
1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/U
TwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RP
AB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8A
H9RPAB/UTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AH9RPAHbSTwB2
0k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAB/UTwAf1E8AdtJPAHbSTwB20k8AdtJPAHbS
TwB20k8AdtJPAHbSTwAf1E8AH9RPAB/UTwAf1E8AH9RPAHbSTwB20k8AdtJPAHbSTwB20k8AH9RP
AB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAHbSTwB20k8AdtJPAB/UTwAf1E8AH9RPAB/UTwAf1E8A
H9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf
1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/U
TwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RP
AB/UTwAf1E8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwB20k8A
dtJPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAHbSTwAf1E8AH9RPAHbSTwB20k8AdtJPAHbSTwB2
0k8AdtJPAHbSTwB20k8AH9RPAB/UTwAf1E8AH9RPAHbSTwB20k8AdtJPAHbSTwB20k8AdtJPAB/U
TwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwB20k8AdtJPAHbSTwAf1E8AH9RPAB/UTwAf1E8AH9RP
AB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8A
H9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf
1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/UTwAf1E8AH9RPAB/U
TwAf1E8AH9RPAA==
headers:
access-control-allow-origin:
- '*'
access-control-expose-headers:
- MISSING-BUCKETS
access-control-max-age:
- '600'
connection:
- keep-alive
content-length:
- '4000'
content-type:
- application/octet-stream
date: Mon, 01 Jan 2000 00:00:00 GMT
missing-buckets:
- '[]'
referrer-policy:
- origin-when-cross-origin, strict-origin-when-cross-origin
strict-transport-security:
- max-age=15724800; includeSubDomains
x-frame-options:
- DENY
x-permitted-cross-domain-policies:
- master-only
x-xss-protection:
- 1; mode=block
http_version: HTTP/1.1
status_code: 200
version: 1
Loading

0 comments on commit 4f1dc72

Please sign in to comment.