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

The Console displays new spaces when reloaded #125

Closed
Peeja opened this issue Aug 28, 2024 · 0 comments
Closed

The Console displays new spaces when reloaded #125

Peeja opened this issue Aug 28, 2024 · 0 comments
Assignees

Comments

@Peeja
Copy link
Member

Peeja commented Aug 28, 2024

Acceptance Criteria

  1. Given I'm logged into the Console, when I add a new Space using the CLI and then refresh the page, I should see that space.

Notes

This does not mean seeing the new Space without even refreshing the page. That would be great, but is a whole separate step. This is about seeing the new Space if you refresh the page, which currently doesn't happen.

Right now, the only way to see the new Space is to log out and back in again. This is because the Space list is transmitted as part of the login steps, and then stored locally without any updates.

@Peeja Peeja converted this from a draft issue Aug 28, 2024
Peeja added a commit to storacha/w3ui that referenced this issue Oct 7, 2024
The rest of storacha/project-tracking#125.
This along with [generating the space delegations on the fly during
`access/claim`](storacha/w3up#1555) will make
new spaces appear on the page without logging out.

---

If the client is restored from local storage, it may be out of date.
This fetches the latest delegations from the server and updates the
client. This makes loading the client from local storage a
stale-while-revalidate operation.
Peeja added a commit to storacha/w3up that referenced this issue Oct 7, 2024
The bulk of the work for
storacha/project-tracking#125.

This together with [`w3ui` calling `access/claim` on page
load](storacha/w3ui#644) will make new spaces
appear on the page without logging out.

---

## The Strategy

* On `access/confirm`, where we previously created a `*`/`ucan:*`
delegation with proofs for each space, we now create one with no proofs.
This delegation technically provides no capability, but serves as a
signal in `access/claim`.
* During `access/claim`, we look for the Agent's `*`/`ucan:*`
delegations in the store, and translate them on the fly into ones
containing proofs for the relevant spaces. This is legitimate, because
`*`/`ucan:*` means the Agent has been granted access to anything the
Account can do, it just doesn't have the proofs that Account can do
anything yet. We're just putting 2 and 2 together.

## Remaining

* [x] We don't validate the `*`/`ucan:*` delegation before recreating
it. If `access/confirm` doesn't create an attestation, `access/claim`
will still happily make one for its new delegation. That's a (minor?)
security issue. If the delegation is in our store, we can probably trust
it, but better to care about the attestation.
* [x] Tests for all of this.

---------

Co-authored-by: Alan Shaw <alan@storacha.network>
@github-project-automation github-project-automation bot moved this from In Progress to Done in Storacha Project Planning Oct 21, 2024
Peeja added a commit to storacha/upload-service that referenced this issue Jan 29, 2025
The rest of storacha/project-tracking#125.
This along with [generating the space delegations on the fly during
`access/claim`](storacha#1555) will make
new spaces appear on the page without logging out.

---

If the client is restored from local storage, it may be out of date.
This fetches the latest delegations from the server and updates the
client. This makes loading the client from local storage a
stale-while-revalidate operation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

2 participants