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

feat: handle access/delegate invocations without error #427

Merged
merged 51 commits into from
Feb 24, 2023

Conversation

gobengo
Copy link
Contributor

@gobengo gobengo commented Feb 7, 2023

Note:

Motivation:

@gobengo gobengo changed the title 1675728220 handle access delegate feat: handle access/delegate invocations without error Feb 7, 2023
@gobengo gobengo force-pushed the 1675728220-handle-access-delegate branch from cca8ecc to 2991b71 Compare February 7, 2023 01:02
@gobengo gobengo temporarily deployed to dev February 7, 2023 01:16 — with GitHub Actions Inactive
@gobengo gobengo temporarily deployed to dev February 8, 2023 00:03 — with GitHub Actions Inactive
@gobengo gobengo temporarily deployed to dev February 8, 2023 01:55 — with GitHub Actions Inactive
@gobengo gobengo temporarily deployed to dev February 8, 2023 21:12 — with GitHub Actions Inactive
@gobengo gobengo temporarily deployed to dev February 23, 2023 20:02 — with GitHub Actions Inactive
@gobengo
Copy link
Contributor Author

gobengo commented Feb 23, 2023

I really quickly glanced at the pr and noticed that we’ll be pulling delegation as bytes from db, decode them into delegations which then ucanto will take and encode back into bytes. Decode/encode there seems pretty wasteful & perhaps can be avoided by sending bytes and let client decode

@Gozala This is a good point and something we can optimize later. I think this only matters in the context of access/claim which I stubbed out here but plan to flesh out after this in #394 . I added some WIP access/claim-related code in here, but none of it is reachable from the access-api worker because the underlying service only adds access.delegate and not access.claim, so I don't think merging this will lead to the performance concern in the wild, so I suggest that it is an acceptable risk to handle later as part of #394

Added reminder: #394 (comment)

#448)

Note:
* this PR targets
https://github.com/web3-storage/w3protocol/tree/1675728220-handle-access-delegate

Motivation:
* this patch has things that are more related to #394 . They don't need
to be a part of #427, which is motivated by #425. I don't mind putting
them alltogether, but I'm holding these out while iterating on #427
based on review
@gobengo gobengo temporarily deployed to dev February 24, 2023 00:44 — with GitHub Actions Inactive
@gobengo gobengo temporarily deployed to dev February 24, 2023 19:55 — with GitHub Actions Inactive
@gobengo gobengo merged commit 4f0bd1c into main Feb 24, 2023
@gobengo gobengo deleted the 1675728220-handle-access-delegate branch February 24, 2023 20:02
Gozala pushed a commit that referenced this pull request Mar 2, 2023
🤖 I have created a release *beep* *boop*
---


##
[3.0.0](capabilities-v2.3.0...capabilities-v3.0.0)
(2023-03-01)


### ⚠ BREAKING CHANGES

* upgrade capabilities to latest ucanto
([#463](#463))

### Features

* handle access/delegate invocations without error
([#427](#427))
([4f0bd1c](4f0bd1c))
* upgrade capabilities to latest ucanto
([#463](#463))
([2d786ee](2d786ee))


### Bug Fixes

* allow injecting email
([#466](#466))
([e19847f](e19847f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Gozala added a commit that referenced this pull request Mar 8, 2023
🤖 I have created a release *beep* *boop*
---


##
[10.0.0](access-v9.4.0...access-v10.0.0)
(2023-03-08)


### ⚠ BREAKING CHANGES

* upgrade capabilities to latest ucanto
([#463](#463))

### Features

* access-api handles provider/add invocations
([#462](#462))
([5fb56f7](5fb56f7))
* access-api serves access/claim invocations
([#456](#456))
([baacf35](baacf35))
* handle access/delegate invocations without error
([#427](#427))
([4f0bd1c](4f0bd1c))
* upgrade capabilities to latest ucanto
([#463](#463))
([2d786ee](2d786ee))
* upgrade to new ucanto
([#498](#498))
([dcb41a9](dcb41a9))


### Bug Fixes

* allow injecting email
([#466](#466))
([e19847f](e19847f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: Irakli Gozalishvili <contact@gozala.io>
alanshaw pushed a commit that referenced this pull request Mar 23, 2023
🤖 I have created a release *beep* *boop*
---


##
[5.0.0](access-api-v4.11.0...access-api-v5.0.0)
(2023-03-23)


### ⚠ BREAKING CHANGES

* implement new account-based multi-device flow
([#433](#433))
* upgrade capabilities to latest ucanto
([#463](#463))

### Features

* access-api handles provider/add invocations
([#462](#462))
([5fb56f7](5fb56f7))
* access-api serves access/claim invocations
([#456](#456))
([baacf35](baacf35))
* access/authorize confirmation email click results in a delegation back
to the issuer did:key so that access/claim works
([#460](#460))
([a466a7d](a466a7d))
* allow multiple providers
([#595](#595))
([96c5a2e](96c5a2e))
* define `access/confirm` handler and use it in ucanto-test-utils
registerSpaces + validate-email handler
([#530](#530))
([b1bbc90](b1bbc90))
* handle access/delegate invocations without error
([#427](#427))
([4f0bd1c](4f0bd1c))
* if POST /validate-email?mode=authorize catches error w/ too big qr
code ([#516](#516))
([d0df525](d0df525))
* implement new account-based multi-device flow
([#433](#433))
([1ddc6a0](1ddc6a0))
* includes proofs chains in the delegated authorization chain
([#467](#467))
([5144293](5144293))
* move access-api delegation bytes out of d1 and into r2
([#578](#578))
([4510c9a](4510c9a))
* move validation flow to a Durable Object to make it ⏩ fast ⏩ fast ⏩
fast ⏩ ([#449](#449))
([02d7552](02d7552))
* provision provider type is now the DID of the w3s service
([#528](#528))
([6a72855](6a72855))
* space/info will not error for spaces that have had storage provider
added via provider/add
([#510](#510))
([ea4e872](ea4e872))
* upgrade capabilities to latest ucanto
([#463](#463))
([2d786ee](2d786ee))
* upgrade to new ucanto
([#498](#498))
([dcb41a9](dcb41a9))
* write invocations and receipts into ucan log
([#592](#592))
([754bf52](754bf52))


### Bug Fixes

* access/delegate checks hasStorageProvider(space) in a way that
provider/add allows access/delegate
([#483](#483))
([f4c640d](f4c640d))
* adjust migration 0005 to keep delegations table but create new used
delegations_v2
([#469](#469))
([a205ad1](a205ad1))
* adjust migration 0005 to not do a drop table and instead rename
delegations -&gt; delegations_old and create a new delegations
([#468](#468))
([6c8242d](6c8242d))
* allow injecting email
([#466](#466))
([e19847f](e19847f))
* DbDelegationsStorage#find throws UnexpectedDelegation w/ { row } if
failed bytesToDelegations
([#476](#476))
([a6dafcb](a6dafcb))
* DbProvisionsStorage putMany doesnt error on cid col conflict
([#517](#517))
([c1fea63](c1fea63))
* delegations model tries to handle if row.bytes is Array not Buffer
(e.g. cloudflare)
([#478](#478))
([030e7b7](030e7b7))


### Miscellaneous Chores

* **access-client:** release 11.0.0-rc.0
([#573](#573))
([be4386d](be4386d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo added a commit that referenced this pull request Apr 11, 2023
Note:
* this is a superset of
#420
* that defines the `access/delegate` capability parsers that this PR
adds handlers for in access-api
  * my intention is to land that #420 before this

Motivation:
* part of #425
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[3.0.0](capabilities-v2.3.0...capabilities-v3.0.0)
(2023-03-01)


### ⚠ BREAKING CHANGES

* upgrade capabilities to latest ucanto
([#463](#463))

### Features

* handle access/delegate invocations without error
([#427](#427))
([db01d07](db01d07))
* upgrade capabilities to latest ucanto
([#463](#463))
([e375ae4](e375ae4))


### Bug Fixes

* allow injecting email
([#466](#466))
([b4b0173](b4b0173))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[10.0.0](access-v9.4.0...access-v10.0.0)
(2023-03-08)


### ⚠ BREAKING CHANGES

* upgrade capabilities to latest ucanto
([#463](#463))

### Features

* access-api handles provider/add invocations
([#462](#462))
([46da0df](46da0df))
* access-api serves access/claim invocations
([#456](#456))
([2ec16e9](2ec16e9))
* handle access/delegate invocations without error
([#427](#427))
([db01d07](db01d07))
* upgrade capabilities to latest ucanto
([#463](#463))
([e375ae4](e375ae4))
* upgrade to new ucanto
([#498](#498))
([790750d](790750d))


### Bug Fixes

* allow injecting email
([#466](#466))
([b4b0173](b4b0173))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: Irakli Gozalishvili <contact@gozala.io>
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[5.0.0](access-api-v4.11.0...access-api-v5.0.0)
(2023-03-23)


### ⚠ BREAKING CHANGES

* implement new account-based multi-device flow
([#433](#433))
* upgrade capabilities to latest ucanto
([#463](#463))

### Features

* access-api handles provider/add invocations
([#462](#462))
([46da0df](46da0df))
* access-api serves access/claim invocations
([#456](#456))
([2ec16e9](2ec16e9))
* access/authorize confirmation email click results in a delegation back
to the issuer did:key so that access/claim works
([#460](#460))
([fc62691](fc62691))
* allow multiple providers
([#595](#595))
([aba57b3](aba57b3))
* define `access/confirm` handler and use it in ucanto-test-utils
registerSpaces + validate-email handler
([#530](#530))
([a08b513](a08b513))
* handle access/delegate invocations without error
([#427](#427))
([db01d07](db01d07))
* if POST /validate-email?mode=authorize catches error w/ too big qr
code ([#516](#516))
([ab83b19](ab83b19))
* implement new account-based multi-device flow
([#433](#433))
([6152e55](6152e55))
* includes proofs chains in the delegated authorization chain
([#467](#467))
([743a72f](743a72f))
* move access-api delegation bytes out of d1 and into r2
([#578](#578))
([3029e4a](3029e4a))
* move validation flow to a Durable Object to make it ⏩ fast ⏩ fast ⏩
fast ⏩ ([#449](#449))
([3868d97](3868d97))
* provision provider type is now the DID of the w3s service
([#528](#528))
([4cd6cd9](4cd6cd9))
* space/info will not error for spaces that have had storage provider
added via provider/add
([#510](#510))
([362024f](362024f))
* upgrade capabilities to latest ucanto
([#463](#463))
([e375ae4](e375ae4))
* upgrade to new ucanto
([#498](#498))
([790750d](790750d))
* write invocations and receipts into ucan log
([#592](#592))
([d52a281](d52a281))


### Bug Fixes

* access/delegate checks hasStorageProvider(space) in a way that
provider/add allows access/delegate
([#483](#483))
([1d3d562](1d3d562))
* adjust migration 0005 to keep delegations table but create new used
delegations_v2
([#469](#469))
([d90825a](d90825a))
* adjust migration 0005 to not do a drop table and instead rename
delegations -&gt; delegations_old and create a new delegations
([#468](#468))
([89f2acd](89f2acd))
* allow injecting email
([#466](#466))
([b4b0173](b4b0173))
* DbDelegationsStorage#find throws UnexpectedDelegation w/ { row } if
failed bytesToDelegations
([#476](#476))
([660f773](660f773))
* DbProvisionsStorage putMany doesnt error on cid col conflict
([#517](#517))
([8c6dea8](8c6dea8))
* delegations model tries to handle if row.bytes is Array not Buffer
(e.g. cloudflare)
([#478](#478))
([02c0c28](02c0c28))


### Miscellaneous Chores

* **access-client:** release 11.0.0-rc.0
([#573](#573))
([29daa02](29daa02))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants