@startuml
actor "User" order 10
participant "AAS" order 30
participant "Client" order 20
participant "Calibration\nData\nService" as CDS order 35
participant "Summit\nData\nAccess\nService" as SDAS order 40
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 -> CDS : Submit request using search criteria
CDS -> SDAS : Submit request using\nsearch criteria
SDAS -> DIB : Form SQL request\nand query DB
DIS -> CDS: return Expousre Ids and\nlocation URIs of matching file(s)
CDS -> 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 -> DIB: check token for access
alt access granted
SDAS <-> store : retrieve file(s)
SDAS -> SDAS: package files (if necessary)
SDAS -> Client : return file/package
else access denied
SDAS -> Client : Access Denied error
end
end
@enduml