-
Notifications
You must be signed in to change notification settings - Fork 195
refactor(fe): one queue for authorization-bearing requests #4269
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
Merged
+19
−12
Merged
Changes from all commits
Commits
Show all changes
1185 commits
Select commit
Hold shift + click to select a range
5af770e
Merge remote-tracking branch 'origin/main' into refactor/account-refe…
sea-snake d9034cf
Merge branch 'refactor/account-reference-write-path' into refactor/mo…
sea-snake 1d5f317
Merge branch 'feat/account-principal-index' into feat/account-princip…
sea-snake 20d3228
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake 9a1cf63
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake 896741a
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake c652d54
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake 25f94ef
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake 30a1f23
Merge branch 'feat/track-default-accounts' into feat/account-principa…
sea-snake bb31ab4
Merge branch 'refactor/monotonic-application-numbers' into fix/read-a…
sea-snake 3d9a4bf
Merge branch 'fix/read-account-empty-list-is-not-default' into feat/t…
sea-snake 51c46dd
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake 3d84dfe
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake 5163d3d
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake ab271d8
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 79d3bce
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 89d5b69
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 47abea1
fix(internet_identity): a backfill timer that fires after finishing i…
sea-snake 876205e
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake 2281b22
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake 4a81fcd
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake 483271c
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake d403a93
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake aea8765
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake 869e615
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake bc88105
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake 1190ac3
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 7b31025
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 5e403aa
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 66b2d67
docs(internet_identity): the backfill re-running is a cost, not a pur…
sea-snake 18f27c7
docs(internet_identity): the index sync gives up redundancy, not repair
sea-snake a6d4823
Merge branch 'feat/account-principal-index' into feat/account-princip…
sea-snake 8c7ae3e
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake 9a88ba0
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake e39f89d
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake f71af57
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake d3e06c5
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake 46844f5
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake 20a7042
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake 16ba374
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake 5e96af0
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 51dd896
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 8feada4
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 327c8dd
fix(internet_identity): report the application-number allocator's memory
sea-snake 7528b6e
Merge branch 'refactor/monotonic-application-numbers' into fix/read-a…
sea-snake 8fa092d
Merge branch 'fix/read-account-empty-list-is-not-default' into feat/t…
sea-snake 14243f1
Merge branch 'feat/track-default-accounts' into feat/account-principa…
sea-snake f103d6b
Merge branch 'feat/account-principal-index' into feat/account-princip…
sea-snake 7cfb05f
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake 7e69b08
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake d1f36ff
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake 951ae05
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake d5218b4
fix(internet_identity): report the session index and id allocator's m…
sea-snake 943d540
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake 9cc4a2c
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake 6ebfec9
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake 55d23f4
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake 6bd40c1
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 5b47532
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 3bca026
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 63a8eba
Merge remote-tracking branch 'origin/main' into refactor/account-refe…
sea-snake 0ce06a9
Merge branch 'refactor/account-reference-write-path' into refactor/mo…
sea-snake a148eab
Merge branch 'refactor/monotonic-application-numbers' into fix/read-a…
sea-snake 06d1abe
Merge branch 'fix/read-account-empty-list-is-not-default' into feat/t…
sea-snake bb415ab
Merge branch 'feat/track-default-accounts' into feat/account-principa…
sea-snake 8a27173
Merge branch 'feat/account-principal-index' into feat/account-princip…
sea-snake 054326a
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake d417061
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake 5d4215f
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake 2bc8aa1
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake 8ba87e6
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake 7392f16
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake eb1769b
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake 28e3556
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake eeefcec
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 2c2bcea
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 5332d1f
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 864dcfc
chore: record main as merged after the bottom six landed
sea-snake a9d363b
chore: merge feat/session-record-storage
sea-snake c132027
chore: merge feat/session-device-key-proof
sea-snake 0b5876b
chore: merge feat/session-create
sea-snake 02a3d66
chore: merge feat/session-cap-per-identity
sea-snake 44a046a
chore: merge feat/sign-in-creates-a-session
sea-snake ff07585
chore: merge feat/session-devices-registry
sea-snake 2a5fcac
chore: merge feat/app-delegation-from-session
sea-snake 605712a
chore: merge feat/session-refresh-stamps
sea-snake 97fa7b8
chore: merge feat/app-revoke-session
sea-snake 1b25ccf
chore: merge feat/revoke-sessions-from-settings
sea-snake 9819730
refactor(internet_identity): a session records the browser it came from
sea-snake d8d8edb
chore: merge feat/session-record-storage
sea-snake fc15af3
chore: merge feat/session-device-key-proof
sea-snake 712c7e1
chore: merge feat/session-create
sea-snake f7599da
chore: merge feat/session-cap-per-identity
sea-snake b98c222
chore: merge feat/sign-in-creates-a-session
sea-snake ed87fc1
chore: merge feat/app-delegation-from-session
sea-snake b5afb48
chore: merge feat/session-devices-registry
sea-snake eea36e5
chore: merge feat/session-refresh-stamps
sea-snake b825c28
chore: merge feat/app-revoke-session
sea-snake 2e6918b
chore: merge feat/revoke-sessions-from-settings
sea-snake 8ca86a0
feat(internet_identity): count each browser's sessions where they are…
sea-snake e845284
chore: merge feat/session-create
sea-snake b95e3d4
chore: merge feat/session-cap-per-identity
sea-snake f39368f
chore: merge feat/sign-in-creates-a-session
sea-snake 5189983
chore: merge feat/app-delegation-from-session
sea-snake 54250c7
chore: merge feat/session-refresh-stamps
sea-snake b413a4a
chore: merge feat/app-revoke-session
sea-snake eacfa85
chore: merge feat/revoke-sessions-from-settings
sea-snake ef8c218
chore(internet_identity): retire the account principal index backfill
sea-snake 024e35f
chore: merge chore/retire-account-principal-index-backfill
sea-snake 3a8668d
chore: merge feat/session-record-storage
sea-snake d97094f
chore: merge feat/session-devices-registry
sea-snake c06643d
chore: merge feat/session-device-key-proof
sea-snake 93b8c50
chore: merge feat/session-create
sea-snake 2992f6b
chore: merge feat/session-cap-per-identity
sea-snake 46ecf8b
chore: merge feat/sign-in-creates-a-session
sea-snake 3b5a84a
chore: merge feat/app-delegation-from-session
sea-snake f6eb0a1
chore: merge feat/session-refresh-stamps
sea-snake 9a5b12e
chore: merge feat/app-revoke-session
sea-snake 8695ff8
chore: merge feat/revoke-sessions-from-settings
sea-snake 4835dcf
feat(internet_identity): a browser describes itself in tokens, not a …
sea-snake f72c880
chore: merge feat/session-devices-registry
sea-snake 32cb0fe
chore: merge feat/session-device-key-proof, and take the description …
sea-snake 3d62641
chore: merge feat/session-cap-per-identity
sea-snake b78e6b4
chore: merge feat/sign-in-creates-a-session
sea-snake e2a39ff
chore: merge feat/session-create
sea-snake 681ae7e
chore: merge feat/app-delegation-from-session
sea-snake 7aaf2d3
chore: merge feat/session-refresh-stamps
sea-snake ffb4328
chore: merge feat/app-revoke-session
sea-snake 3643505
chore: merge feat/revoke-sessions-from-settings
sea-snake 38532bc
feat(internet_identity): a sign-in reports what the browser is, in to…
sea-snake c8b4484
chore: merge feat/app-delegation-from-session
sea-snake 6e7b795
chore: merge feat/sign-in-creates-a-session
sea-snake 477551e
chore: merge feat/session-refresh-stamps
sea-snake 8493482
chore: merge feat/app-revoke-session
sea-snake 9c0f370
chore: merge feat/revoke-sessions-from-settings
sea-snake e4e03b7
docs(internet_identity): state why one write, without narrating the loop
sea-snake 7b775e8
docs(internet_identity): say why the property test exists, not what p…
sea-snake 3e0fa1a
chore: merge feat/session-cap-per-identity
sea-snake 0b1ced9
chore: merge feat/session-refresh-stamps
sea-snake 07ddad8
chore: merge feat/app-delegation-from-session
sea-snake b06ed08
chore: merge feat/sign-in-creates-a-session
sea-snake 6277d0b
chore: merge feat/session-create
sea-snake a5533cd
chore: merge feat/app-revoke-session
sea-snake 87d7125
chore: merge feat/revoke-sessions-from-settings
sea-snake 22e4612
feat(internet_identity): name the six browsers that earn an icon
sea-snake fd3c05a
chore: merge feat/session-device-key-proof
sea-snake cdc36fb
chore: merge feat/session-devices-registry
sea-snake 7e253e4
chore: merge feat/session-cap-per-identity
sea-snake 1379a80
chore: merge feat/session-refresh-stamps
sea-snake 898ee3b
chore: merge feat/app-delegation-from-session
sea-snake 01394df
chore: merge feat/sign-in-creates-a-session
sea-snake 4691bed
chore: merge feat/app-revoke-session
sea-snake 2a13622
chore: merge feat/revoke-sessions-from-settings
sea-snake 4375096
chore: merge feat/session-create
sea-snake 8e7f065
test(internet_identity): pick a named brand that still exists
sea-snake 9c1c949
chore: merge feat/session-refresh-stamps
sea-snake ac16c02
chore: merge feat/app-delegation-from-session
sea-snake 6f72e85
chore: merge feat/sign-in-creates-a-session
sea-snake 4be4fee
chore: merge feat/app-revoke-session
sea-snake 4286eea
chore: merge feat/revoke-sessions-from-settings
sea-snake 9de8210
fix(be): a sign-in writes its own origin, and the gate sweeps the rest
sea-snake 54fa5f7
chore: merge feat/session-create
sea-snake bdd4d47
fix(be): the write gate reclaims sessions, and counts them in i64
sea-snake 8e431f8
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 45d602d
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake e1fd056
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake 47a3fcd
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake c63138f
chore: merge feat/app-revoke-session
sea-snake ba5df5b
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 0e39da4
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake ac2855c
fix(be): the refresh write passes the clock the gate now takes
sea-snake 2ab2f07
fix(be): signing a session out passes the clock the gate now takes
sea-snake 61ce5b7
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 97c47a0
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake d7be132
refactor(be): name what a session record answers
sea-snake fbfeed3
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake 1000beb
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake 0e945b1
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake d2276f9
chore: merge feat/session-device-key-proof
sea-snake 3a3539c
chore: rename the session record accessors at their call sites
sea-snake 669fe75
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake ca502b6
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake 5e02f93
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake cff441b
chore: rename the session record accessors at their call sites
sea-snake 917486c
chore: rename the session record accessors at their call sites
sea-snake f36c1d3
chore: merge feat/session-refresh-stamps
sea-snake 9b04429
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 93c2c87
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 7e047a8
chore: merge main
sea-snake fa1bf88
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake 1d5952a
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake 226012e
chore: merge feat/session-device-key-proof
sea-snake a7d0b8d
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake ca76344
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake 1c05288
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake 21f2acd
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake 36393e6
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 58bb716
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 3b1b310
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 709ce21
refactor(session): name the session type Session
sea-snake a13f19e
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake a727d29
refactor(browsers): the anchor decides what a browser reveals
sea-snake 3c050de
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake 6ef8323
feat(browser-key): verifying yields evidence, and one encoding per key
sea-snake 185a381
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake dbe4a13
refactor(session): a locator, verified keys, and the illegal state sa…
sea-snake 9c6abda
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake d010c40
feat(session): scope the session credential, and refuse instead of tr…
sea-snake 926c53a
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake baa46c0
refactor(session): passing the checks is a type, not a tuple
sea-snake bf3625d
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake 4af979e
fix(session): a stamp that matched nothing is a refusal, not an Ok
sea-snake 2adc60a
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 8f703bb
feat(session): sign-out answers, and one pass removes the session
sea-snake 183bcbd
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 0d19439
chore(session): drop the scaffolding allowances the callers arrive with
sea-snake b9e93ca
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake a570c48
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake 0b94f9e
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 043927c
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 7e96ddd
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake f626fdd
chore(storage): drop the account-principal helper that grew a twin
sea-snake 246e75e
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake 3b42ab6
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake a105ec0
refactor(session): one name for one fact across both error types
sea-snake 0f4b97f
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake dcc6ae6
feat(session): a wrong expiration is a missing delegation, not a miss…
sea-snake 1ccedc5
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake 2453bfc
fix(session): a session lost to a race is not an internal fault
sea-snake 1b94844
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake d123601
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 3e48508
feat(session): stamp the access method that signs the browsers out, a…
sea-snake 7024565
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 93628e2
Merge remote-tracking branch 'origin/main' into feat/sign-in-creates-…
sea-snake 61be3d4
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake d064768
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake 0b155a4
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 1d209ce
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake d4d0339
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 2699f79
fix(storage): an origin too long to store has nothing to read
sea-snake cfc7352
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake d0efa42
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake 82ec8f5
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 49fec8c
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 76b4414
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 5363e32
test(session): drop a refresh test for a state that cannot occur
sea-snake 3c4b910
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake 4901f0f
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake 52aac82
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake 378cf13
Merge remote-tracking branch 'origin/main' into fe/authorization-requ…
sea-snake File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| /** | ||
| * Runs authorization-bearing requests one at a time. | ||
| * | ||
| * Several handlers drive the same authorization state — the effective origin, the auth | ||
| * flow, the authorized account — so a dapp sending requests in parallel could otherwise | ||
| * race them against each other and have the user approve a screen naming one origin | ||
| * while another is answered. | ||
| */ | ||
| let queueTail: Promise<unknown> = Promise.resolve(); | ||
|
|
||
| export const serializeAuthorizationRequest = <T>( | ||
| run: () => Promise<T>, | ||
| ): Promise<T> => { | ||
| const next = queueTail.then(run); | ||
| queueTail = next.catch(() => {}); | ||
| return next; | ||
| }; | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.