Architecture¶
Components¶
DeepTracy is composed of several components described in the following diagram:

Name |
Description |
---|---|
User |
A system capable of requesting new vulnerability analysis and retrieving results |
BuildBot |
Dependency extraction |
Hasura |
Provides data API for the user |
PostgreSQL |
Persistence layer |
DeepTracy Server |
Task orchestration through control API |
Interactions¶
The following activity diagram summarizes the normal interaction among the components of the system.
Note
This conceptual diagram describe the type of interactions but not how they are performed. In other words, this diagram does not describe if the interactions are synchronous nor asynchronous.

Name |
Description |
---|---|
Request Vulnerability Scan |
User request to schedule a vulnerability scan over a source repository |
Schedule Dependency Extraction |
Ask buildbot to perform the dependency extraction process in the given repository/commit |
Dependency Extraction Task |
Use washer docker containers to extract dependencies |
Extract Dependencies |
Launch docker containers with the appropiate environments and extract project(s) dependencies |
Report Dependencies |
Report dependency list to DeepTracy Server |
Vulnerability Scan |
Scan for vulnerabilities on the retrieved dependencies using vulnerability providers |
User Feedback |
The provided webhook is called back to acknowledge the user that the scan is finished |
Request Results |
Using GraphQL© query language the user request the scan information |
Retrieve Results |
Results are queried and retrieved from the database |
Consume Results |
:) |