Project

General

Profile

Actions

Idea #2755

closed

Implement Keep permission signatures in API server and Python SDK

Added by Tom Clegg almost 10 years ago. Updated almost 10 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Tim Pierce
Category:
-
Story points:
0.5

Description

Phase 1

  • Collections.create() - verify permission signatures in provided manifest_text. Strip them -- and all other +whatever hints except one size hint -- before verifying uuid==hash(manifest_text) and storing manifest_text in database.
    • Pass signature verification step (until Phase 4) if a blob locator is missing the permission signature entirely.
  • Collections.get() - return a manifest_text with a +A... permission signature added to each blob locator.

(Phase 1 can be deployed any time now.)

Phase 2

  • Python SDK, when writing a collection,
    • Stop throwing away the +A signatures that (might) emanate from the keep servers during Keep.put().
    • In arv-put, include the +A signatures in the manifest_text when sending to server.
    • In arv-put, compute collection uuid based on a version of manifest_text with the +A signatures (and all other +anything other than +size) stripped off.
    • For good form, when doing collections.create() in arv-put, ensure the UUID returned by API server matches the one you sent.
  • Python SDK, when reading a blob,
    • Set "Authorization: OAuth2 $ARVADOS_API_TOKEN" header in http requests to Keep servers.

(Phase 2 package can be published any time now.)

Phase 3

  • Deploy Keep server with signature generation feature enabled.
  • Test old and new Python clients.

Phase 4

Upgrade all python SDKs/clients first. Then:

  • Remove "no signature provided" exemption from API server.
  • Enable signature verification on keep servers.

Subtasks 7 (0 open7 closed)

Task #2784: Generate cooked manifestsResolvedTim Pierce05/21/2014Actions
Task #2927: Review 2755-python-sdk-permissions (support for manifests)ResolvedTim Pierce05/14/2014Actions
Task #2825: Review 2755-api-collection-permissionsResolvedTom Clegg05/14/2014Actions
Task #2786: Make Python SDK handle signatures and cooked manifests correctlyResolvedTim Pierce05/23/2014Actions
Task #2787: Accept manifests with signature tokens during collections.createResolvedTim Pierce05/14/2014Actions
Task #2859: Review 2755-python-sdk-permissionsResolvedTom Clegg05/14/2014Actions
Task #3007: Review 2755-require-keep-permissionResolvedTom Clegg05/14/2014Actions
Actions

Also available in: Atom PDF