docs/diagrams/generic_view.puml
@startuml
cloud "Lookup service" {
package "Lookup DFS" {
left to right direction
frame "Data for user 1" {
frame "Private store \n (encrypted with password)" as privateStoreUser1 {
[DFS private files storage paths] as mapPrivate1
[DFS access keys] as privateAccessKey1
}
frame "Sharing store \n (encrypted with \n **<&key>system secret + public key**)" as sharingStoreUser1 {
[Inbox path] as mapInbox1
[Inbox access key] as publicAccessKey1
}
}
frame "Data for user 2" {
frame "Private store" as privateStoreUser2 {
[DFS private files storage paths] as mapPrivate2
[DFS access keys] as privateAccessKey2
}
frame "Sharing store" as sharingStoreUser2 {
[Inbox path] as mapInbox2
[Inbox access key] as publicAccessKey2
}
}
frame "Public key storage" {
left to right direction
[User 1 public key] as user1publicKey
[User 2 public key] as user2publicKey
}
}
}
actor User1 as user1
actor User2 as user2
card "Datasafe library functionality" {
package {
card "User 1 data" as User1data {
node inboxUsr1 [
.keystore
INBOX
]
node filesUsr1 [
.keystore
Private files
]
}
card "User 2 data" as User2data {
node inboxUsr2 [
.keystore
INBOX
]
node filesUsr2 [
.keystore
Private files
]
}
}
node user1privateFilesAccess [
<&key> AWS key/secret
<&folder> s3 data path
]
user1 ==^ privateStoreUser1 : "Read my private files" **<&key>login/password**
mapPrivate1 --> user1privateFilesAccess
privateAccessKey1 --> user1privateFilesAccess
user1privateFilesAccess --> filesUsr1 : **<&key>login/password**
node user2shareFilesAccess [
<&key> AWS key/secret
<&folder> s3 data path
]
user2 ==^ user1publicKey : Share **<&file>file** with user 1
user1publicKey --> sharingStoreUser1 : Read storage using User 1 \n **<&key>system secret + public key**
mapInbox1 --> user2shareFilesAccess
publicAccessKey1 --> user2shareFilesAccess
user2shareFilesAccess --> inboxUsr1 : <&file> encrypt with \n **<&key>User 1 public key**
}
@enduml