Graph Model
Neo4j data model and relationships
Overview
Polaris uses Neo4j, a graph database, to model the relationships between technologies, systems, teams, and version constraints. This enables powerful queries about technology usage and compliance.
Graph Visualization
Core Nodes
- Technology — Approved technologies with versions and metadata
- System — Deployable applications and services
- Component — SBOM entries (libraries, packages)
- Team — Organizational teams
- VersionConstraint — Version range constraints for technologies
- License — Software licenses
- Version — Specific versions of technologies
- Repository — Source code repositories
- AuditLog — Change tracking entries
Key Relationships
Team -[:STEWARDED_BY]-> Technology— Technical governance responsibilityTeam -[:OWNS]-> System— Operational ownershipTeam -[:USES]-> Technology— Actual technology usageTeam -[:APPROVES]-> Technology | Version— TIME framework approvalTeam -[:MAINTAINS]-> Repository— Repository maintenanceTechnology -[:HAS_VERSION]-> Version— Version trackingComponent -[:IS_VERSION_OF]-> Technology— Component to technology mappingSystem -[:USES]-> Component— System dependenciesSystem -[:HAS_SOURCE_IN]-> Repository— Source code locationVersionConstraint -[:GOVERNS]-> Technology— Constraint scopeAuditLog -[:PERFORMED_BY]-> User— Who made the changeAuditLog -[:AUDITS]-> Entity— What was changed
Query Examples
The graph model enables queries like:
- Find all systems using a deprecated technology
- List teams affected by a license rule change
- Trace component dependencies across systems
- Identify compliance violations
- Track all changes made by a specific user