Update collaboration doc
Add some diagrams
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
@startuml
|
||||
|
||||
participant "Zed App" as app
|
||||
participant "Browser" as browser
|
||||
participant "Zed HTTP server" as server
|
||||
|
||||
rnote over app: Generate encryption keypair.\nListen on an open TCP port.
|
||||
app -> browser: Open sign-in page\n(public key, TCP port)
|
||||
browser -> server: Sign in\n(app's public key, app's TCP port)
|
||||
|
||||
rnote over server: Generate access token.\nEncrypt it with app's public key.
|
||||
server -> browser: Redirect to loopback with app's port\n(user id, encrypted access token)
|
||||
browser -> app: Follow redirect\n(user id, encrypted access token)
|
||||
|
||||
rnote over app: Decrypt access token with private key.\nSave credentials to keychain.
|
||||
|
||||
@enduml
|
||||
@@ -0,0 +1,19 @@
|
||||
@startuml
|
||||
|
||||
participant "Zed App" as app
|
||||
participant "Zed HTTP server" as server
|
||||
participant "Zed RPC server" as rpc_server
|
||||
|
||||
app -> server: POST worktrees\n(user id, access token)
|
||||
server -> app: OK\n(worktree id, RPC server address)
|
||||
|
||||
app -> rpc_server: Connect to the given RPC server address
|
||||
app -> rpc_server: **Auth**\n(user id, access token)
|
||||
rnote over rpc_server: Load access token hashes for user.\nVerify that one matches the given access token.
|
||||
rpc_server -> app: **AuthResponse**\n(credentials valid)
|
||||
|
||||
app -> rpc_server: **ShareWorktree**\n(worktree_id, file paths, file digests)
|
||||
rnote over rpc_server: Load existing files.\nIdentify which are needed.
|
||||
rpc_server -> app: **ShareWorktreeResponse**\n(needed path indices)
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user