Readme
This commit is contained in:
parent
23a0c1aa2c
commit
e9b38577dd
@ -8,6 +8,13 @@ Web server for WebDAV resources
|
||||
|
||||
## Architecture
|
||||
|
||||
<img src="https://code.ita-prog.pl/Tsumanu/puffball/raw/branch/master/assets/components.svg">
|
||||
|
||||
### File streaming
|
||||
|
||||
<img src="https://code.ita-prog.pl/Tsumanu/puffball/raw/branch/master/assets/stream.svg">
|
||||
|
||||
## Dependencies
|
||||
|
||||
* Garage (https://hub.docker.com/r/dxflrs/garage)
|
||||
* PostgreSQL
|
||||
|
BIN
assets/components.png
Normal file
BIN
assets/components.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
29
assets/components.puml
Normal file
29
assets/components.puml
Normal file
@ -0,0 +1,29 @@
|
||||
@startuml
|
||||
|
||||
actor "Client"
|
||||
|
||||
agent "Pathfinder"
|
||||
|
||||
agent "Sentinel"
|
||||
database "Session PostgreSQL"
|
||||
"Sentinel" -- "Session PostgreSQL"
|
||||
|
||||
boundary "Mailman"
|
||||
cloud "Mail Service"
|
||||
"Mailman" -- "Mail Service"
|
||||
|
||||
agent "Keeper"
|
||||
database "Account PostgreSQL"
|
||||
"Keeper" -- "Account PostgreSQL"
|
||||
|
||||
agent "Fileye"
|
||||
cloud "S3 storage"
|
||||
"Fileye" -- "S3 storage"
|
||||
|
||||
"Client" ~~ "Pathfinder"
|
||||
"Pathfinder" ~~ "Sentinel"
|
||||
"Pathfinder" ~~ "Keeper"
|
||||
"Pathfinder" ~~ "Fileye"
|
||||
"Pathfinder" ~~ "Mailman"
|
||||
|
||||
@enduml
|
1
assets/components.svg
Normal file
1
assets/components.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 8.2 KiB |
55
assets/session.puml
Normal file
55
assets/session.puml
Normal file
@ -0,0 +1,55 @@
|
||||
@startuml
|
||||
|
||||
group Register
|
||||
Client -> Pathfinder : E-Mail + Login form
|
||||
Pathfinder -> Keeper : Save account info
|
||||
alt No errors
|
||||
Keeper -> Pathfinder : E-Mail address
|
||||
Pathfinder -> Mailman : Send sign-in url with TOKEN
|
||||
Pathfinder -> Client : OK with Check e-mail
|
||||
else Invalid data
|
||||
Keeper -> Pathfinder : Failed
|
||||
Pathfinder -> Client : BAD_REQUEST with errors
|
||||
end
|
||||
end
|
||||
|
||||
group Sign In (First step)
|
||||
Client -> Pathfinder : Send Login form
|
||||
Pathfinder -> Keeper : Load user profile
|
||||
alt Valid
|
||||
Keeper -> Pathfinder : User e-mail
|
||||
Pathfinder -> Mailman : Send sign-in url with TOKEN
|
||||
Pathfinder -> Client : OK with Check e-mail
|
||||
else Invalid
|
||||
Keeper -> Pathfinder : Not found
|
||||
Pathfinder -> Client : OK with Check e-mail
|
||||
end
|
||||
end
|
||||
|
||||
group Sign In (Second step)
|
||||
Client -> Pathfinder : Visit sign-in url from e-mail
|
||||
Pathfinder -> Mailman : Check TOKEN
|
||||
alt Valid token
|
||||
Mailman -> Pathfinder : Found
|
||||
Pathfinder -> Sentinel : Generate JWT
|
||||
Sentinel -> Pathfinder : JWT
|
||||
Pathfinder -> Client : FOUND with JWT
|
||||
else Invalid token
|
||||
Mailman -> Pathfinder : Not found
|
||||
Pathfinder -> Client : UNAUTHORIZED
|
||||
end
|
||||
end
|
||||
|
||||
group Check session
|
||||
Client -> Pathfinder : Validate JWT
|
||||
Pathfinder -> Sentinel : Check JWT
|
||||
alt Valid JWT
|
||||
Sentinel -> Pathfinder : Valid
|
||||
Pathfinder -> Client : FOUND
|
||||
else Invalid JWT
|
||||
Sentinel -> Pathfinder : Invalid
|
||||
Pathfinder -> Client : UNAUTHORIZED
|
||||
end
|
||||
end
|
||||
|
||||
@enduml
|
1
assets/session.svg
Normal file
1
assets/session.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 20 KiB |
@ -3,7 +3,6 @@
|
||||
Client -> Pathfinder
|
||||
Pathfinder -> Sentinel : Check authorization
|
||||
|
||||
Sentinel -> LoggedState : Logged
|
||||
alt User Authorized
|
||||
Sentinel -> Pathfinder : Authorized
|
||||
Pathfinder -> Fileye : Open stream
|
||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 6.4 KiB |
Loading…
Reference in New Issue
Block a user