User Story: Deleting Storage Space

Contents

Context

User Story from lcw.app

from the user story in an https://lcw.app project description:

Alice decides she no longer wants to use her wallet attached storage provider.

In LCW, she goes to Settings > Disconnect and Erase Cloud Storage.

LCW sends a DELETE request to the connected storage instance (with appropriate authorization).

The storage provider deletes the contents of her storage instance, deletes and de-provisions the storage space itself.

Request DELETE to the Space URI. Create a signature with a key authorized by the space controller, and include it as an HTTP Signature.

The HTTP Signature keyId must be controlled by the Space controller or a DID that has a zcap chain rooted in the space controller and authorizing DELETE of the space.

Here is an example of deleting a space via curl:

⚡ curl 'http://localhost:5173/space/6f7d21d4-25fa-56fe-9c92-4970205456e3/credentials/84a1da76-d20c-5ed4-9b45-29b129bcac65' \
-X DELETE \
-H 'authorization: Signature keyId="did:key:z6MkoMrZ5DPgKyAMQugRDybpdQnwSds77bMLSuDXXhnpFBsL#z6MkoMrZ5DPgKyAMQugRDybpdQnwSds77bMLSuDXXhnpFBsL",headers="(key-id) (created) (expires) (request-target) host",signature="quM0giilikWk3yC5eGlz0PtnwZqTn3DKC+YEncLfjwjyUK/jitEHT2XzrBDTYi5Jsz+VrZw3s5uKrWB2vG78AA==",created="1734569659",expires="1734570259"' -i

HTTP/1.1 204 No Content

Confirmation

This section describes how to confirm that an implementation has satisfied the user story.

Given

when

Deleting a Space

Deleting /space/:spaceUuid

DELETE /space/:spaceUuid HTTP/1.1
Authorization: Signature keyId="did:key:{mk}#{mk}"…

Conversation

We seek to socialize this user story widely as a core user story for the Wallet Attached Storage protocol.

Plan of conversation:

  1. Publish this user story at a final public URL
  1. Solicit feedback from digitalcredentials.mit.edu
  2. Incorporate feedback into the user story andd add to change log

If you want to be a part of the conversation, please publish feedback and link to Wallet Attached Storage.

Implementations

wallet-attached-storage-server

wallet-attached-storage-server implemented this user story in https://github.com/did-coop/wallet-attached-storage-server/issues/18.

wasup

@wallet.storage/wasup is a CLI and supports sending DELETE requests as described above like

wasfetch [--identity ~/.ssh/id_ed25519_was_test] $WAS/space/$SPACE -m delete