@startuml
actor "User" order 10
participant "AAS" order 30
participant "Client" order 20
participant "Summit\nData\nAccess\nService" as SDAS order 40
participant "Group\nMembership\nService" as GMS order 45
database "Data\nInformation\nDatabase" as DIB order 60
database "Summit\nPermanent\nStore" as store order 70
group authenticate
User -> Client : provide login\ninformation
Client -> AAS : login request
AAS -> Client: return token
end
group search
Client -> SDAS : Submit request using search criteria
SDAS -> DIB : Form SQL request and query DB
DIB -> SDAS: return Expousre Ids and\nlocation URIs of matching file(s)
SDAS -> Client : return list of matching file(s)
end
User <-> Client : Choose file(s) from\nlist (if necessary)
group retrieve
Client -> SDAS : request file(s) using location URI\nof selected file(s) and token
SDAS -> GMS: get groups\nuser is member of
SDAS -> DIB: get groups with access to data
alt user is member of a group with access
SDAS <-> store : retrieve file(s)
SDAS -> SDAS: package files\n(if necessary)
SDAS -> Client : return file/package
else user is not a member of a group with access
SDAS -> Client : Access Denied error
end
end
@enduml