How CodeLogic Works
Overview of Our Continuous Software Intelligence Platform
The CodeLogic software intelligence platform provides application teams with an accurate understanding of their software structure in real-time, so they can make changes fearlessly. To deliver in-depth application data quickly, CodeLogic works in three basic phases:
- CodeLogic agents scan your application, including databases.
- A CodeLogic server running in your environment stores and processes the data.
- The data can be digested and shared through a variety of visualizations, reports, and interfaces, including IDE integrations.
Code Dependency Scanning
CodeLogic software intelligence profiles your application to gather data. Agents are installed in your test environments and/or build machines. For many agents, there are two approaches to scanning:
- Binary: Static scans of compiled binaries capture structure, method calls, and some cross-service code dependencies.
- Runtime: Profiling an application while it runs under tests, reveals additional code dependency relationships – especially between services or tiers.
Other agents use remote approaches to scan. For example, the SQL agent does not need to be installed on the database server. Instead, it connects to the database remotely, using a JDBC connection, in order to scan the schema and stored procedures.
Data storage and processing
CodeLogic is installed in your own environment, whether that is on-premises or in the cloud. Behind the scenes, it runs in containers with several services cooperating. We utilize a graph database to track code dependency relationships and optimize performance.
CodeLogic works against application meta-data only. For example, this means that it would capture that a method in a class references a column in a database. It may also know the number of instructions in that method and the column type. However, it does not record a copy of the method itself, nor the contents of the column. Your code and database data are never inside the CodeLogic server.
When CodeLogic scans of your application are complete, they are processed to match outbound references with the entities that are likely referenced. Sometimes, a reference will have no known matches. For example, we may see a database call referencing a table that has not yet been scanned. In this situation, CodeLogic keeps a record of the item or items it is searching for (the unscanned table). If that item is scanned in the future, the match will be made then. Data from multiple scans are brought together into a workspace.