flowchart LR
subgraph orteliusUI[Ortelius Web Frontend]
direction LR
h10[Browser: JavaScript, JQuery, JSP]:::type
d10[Provides all of the Unified Evidence Store\nfuctionality to customers via their\nweb browser]:::description
end
orteliusUI:::internalContainer
subgraph orteliusCLI[Ortelius Command Line Interface]
direction LR
h20[Python: CLI]:::type
d20[Provides the ability to add supply chain data\nfrom the CI/CD Pipeline\nto the Unified Evidence Store]:::description
end
orteliusCLI:::internalContainer
orteliusUI<--Make API calls to-->nginxReverseProxy
orteliusCLI<--Make API calls to-->nginxReverseProxy
nginxReverseProxy<--Forwards API calls to-->msAppTag
nginxReverseProxy<--Forwards API calls to-->msAppVer
nginxReverseProxy<--Forwards API calls to-->msCompTag
nginxReverseProxy<--Forwards API calls to-->msCompVer
nginxReverseProxy<--Forwards API calls to-->msVulnerability
nginxReverseProxy<--Forwards API calls to-->msDeployment
nginxReverseProxy<--Forwards API calls to-->msDepPkg
nginxReverseProxy<--Forwards API calls to-->msDomain
nginxReverseProxy<--Forwards API calls to-->msEnvironment
nginxReverseProxy<--Forwards API calls to-->msGroup
nginxReverseProxy<--Forwards API calls to-->msTextfile
nginxReverseProxy<--Forwards API calls to-->msUser
nginxReverseProxy<--Forwards API calls to-->msUserGroup
nginxReverseProxy<--Forwards API calls to-->msValidateProvenance
nginxReverseProxy<--Forwards API calls to-->msValidateSigning
subgraph apiApplication[API Application]
subgraph nginxReverseProxy[NGINX Reverse Proxy]
direction LR
h30[Component: NGINX]:::type
d30[Routes incoming API calls to the correct\n back-end container]:::description
end
nginxReverseProxy:::internalComponent
subgraph msAppTag[Application Tagging]
direction LR
h40[Component: Tag a Application]:::type
d40[Microservice that persists/retrieves tags\n for an Application]:::description
end
msAppTag:::internalMS
subgraph msAppVer[Application Version]
direction LR
h50[Component: Application Version CRUD]:::type
d50[Microservice that persists/retrieves\n an Application Version]:::description
end
msAppVer:::internalMS
subgraph msCompTag[Component Tagging]
direction LR
h60[Component: Tag a Component]:::type
d60[Microservice that persists/retrieves\n tags for a Component]:::description
end
msCompTag:::internalMS
subgraph msCompVer[Component Version]
direction LR
h70[Component: Component Version CRUD]:::type
d70[Microservice that persists/retrieves\n a Component Version]:::description
end
msCompVer:::internalMS
subgraph msVulnerability[Vulnerability]
direction LR
h80[Component: Vulnerability CRUD]:::type
d80[Microservice that persists/retrieves\n a Vulnerability]:::description
end
msVulnerability:::internalMS
subgraph msDeployment[Deployment]
direction LR
h90[Component: Deployment CRUD]:::type
d90[Microservice that persists/retrieves\n for a Deployment]:::description
end
msDeployment:::internalMS
subgraph msDepPkg[SBOM CRUD]
direction LR
h100[Component: Dependency Package CRUD]:::type
d100[Microservice that handles the persisting\n SBOM for a Component Version]:::description
end
msDepPkg:::internalMS
subgraph msDomain[Domain]
direction LR
h110[Component: Domain CRUD]:::type
d110[Microservice that persists/retrieves\n for a Domain]:::description
end
msDomain:::internalMS
subgraph msEnvironment[Environment]
direction LR
h120[Component: Environment CRUD]:::type
d120[Microservice that persists/retrieves\n for an Environment]:::description
end
msEnvironment:::internalMS
subgraph msGroup[Group]
direction LR
h130[Component: Group CRUD]:::type
d130[Microservice that persists/retrieves\n for a Group]:::description
end
msGroup:::internalMS
subgraph msTextfile[Textfile]
direction LR
h140[Component: Text File CRUD]:::type
d140[Microservice that persists/retrieves\n of License, Readme, and Swagger files]:::description
end
msTextfile:::internalMS
subgraph msValidateUser[Validate User]
direction LR
h150[Component: Validate User Login]:::type
d150[Microservice that validates if a user is\n logged in or not]:::description
end
msValidateUser:::internalMS
subgraph msUser[User]
direction LR
h160[Component: User CRUD]:::type
d160[Microservice that persists/retrieves\n for a User]:::description
end
msUser:::internalMS
subgraph msUserGroup[User Group]
direction LR
h170[Component: UserGroup CRUD]:::type
d170[Microservice that persists/retrieves\n for a UserGroup]:::description
end
msUserGroup:::internalMS
subgraph msValidateProvenance[Validate Provenance]
direction LR
h180[Component: ValidateProvenance Read]:::type
d180[Microservice that retrieves Provenance\n for a DepPkg]:::description
end
msValidateProvenance:::internalMS
subgraph msValidateSigning[Validate Signing]
direction LR
h190[Component: ValidateSigning CRUD]:::type
d190[Microservice that retrieves Signing\n for a DepPkg]:::description
end
msValidateSigning:::internalMS
subgraph msValidateUser[Validate User]
direction LR
h200[Component: ValidateUser CRUD]:::type
d200[Microservice that retrieves Validate User\n for a DepPkg]:::description
end
msValidateUser:::internalMS
msAppTag<--Uses-->msValidateUser
msAppVer<--Uses-->msValidateUser
msCompTag<--Uses-->msValidateUser
msCompVer<--Uses-->msValidateUser
msVulnerability<--Uses-->msValidateUser
msDeployment<--Uses-->msValidateUser
msDepPkg<--Uses-->msValidateUser
msDomain<--Uses-->msValidateUser
msEnvironment<--Uses-->msValidateUser
msGroup<--Uses-->msValidateUser
msTextfile<--Uses-->msValidateUser
msUser<--Uses-->msValidateUser
msUserGroup<--Uses-->msValidateUser
msValidateProvenance<--Uses-->msValidateUser
msValidateSigning<--Uses-->msValidateUser
end
msAppTag<--Reads from and \n writes to-->dbhandler
msAppVer<--Reads from and \n writes to-->dbhandler
msCompTag<--Reads from and \n writes to-->dbhandler
msCompVer<--Reads from and \n writes to-->dbhandler
msVulnerability<--Reads from and \n writes to-->dbhandler
msDeployment<--Reads from and \n writes to-->dbhandler
msDepPkg<--Reads from and \n writes to-->dbhandler
msDomain<--Reads from and \n writes to-->dbhandler
msEnvironment<--Reads from and \n writes to-->dbhandler
msGroup<--Reads from and \n writes to-->dbhandler
msTextfile<--Reads from and \n writes to-->dbhandler
msUser<--Reads from and \n writes to-->dbhandler
msUserGroup<--Reads from and \n writes to-->dbhandler
msValidateProvenance<--Reads from and \n writes to-->dbhandler
msValidateSigning<--Reads from and \n writes to-->dbhandler
msValidateUser<--Reads from and \n writes to-->dbhandler
subgraph dbhandler[Abstraction Layer]
direction LR
h6[Python: Abstraction]:::type
d6[Abstraction Layer]:::description
end
dbhandler:::internalContainer
subgraph cache[Arango Cache]
direction LR
h6[Database: Arango Cache]:::type
d6[Cache supply chain information, \n service information, \n SBOMs, etc]:::description
end
cache:::internalContainer
subgraph search[Arango Search]
direction LR
h6[Database: Arango Cache]:::type
d6[Cache supply chain information, \n service information, \n SBOMs, etc]:::description
end
search:::internalContainer
subgraph nftstorage[NFT Storage]
direction LR
h6[IPFS: Nornmalized JSON Storage]:::type
d6[Stores immutable supply chain information, \n service information, \n SBOMs, etc]:::description
end
nftstorage:::internalContainer
subgraph xrpl[XRP Ledger]
direction LR
h6[Blockchain: XRP Ledger]:::type
d6[Stores supply chain information, \n service information, \n SBOMs, etc]:::description
end
xrpl:::internalContainer
dbhandler<--Reads from and \n writes to-->cache
dbhandler<--Reads from and \n writes to-->xrpl
dbhandler<--Reads from and \n writes to-->nftstorage
dbhandler<--Reads from and \n writes to-->search
%% Element type definitions
classDef internalContainer fill:#1168bd
classDef internalComponent fill:#4b9bea
classDef internalMS fill:#4b9bea
classDef type stroke-width:0px, color:#fff, fill:transparent, font-size:12px
classDef description stroke-width:0px, color:#fff, fill:transparent, font-size:13px