Entities & Relationships
Entities are the building blocks of SixDegree's ontology. Learn what they are, how they're discovered, and how they relate to each other.
What is an Entity?
An entity represents any meaningful object in your organization. Entities can represent code like repositories, branches, commits, and pull requests; infrastructure including servers, containers, Kubernetes clusters, and Docker images; services such as APIs, microservices, applications, and Argo CD deployments; data resources like databases, data sources, and Grafana dashboards; people including users, contributors, and organization members; and documentation such as wiki pages, README files, and API specs.
Each entity has a type that defines what kind of thing it is (like Repository, User, or Service), attributes containing properties specific to that entity (such as name, URL, and creation date), and relationships that connect it to other entities in your ontology.
Entity Attributes
Each entity has attributes that describe it. Universal attributes include a unique identifier, human-readable name, entity type, source molecule that discovered it, creation timestamp, and last update time.
Type-specific attributes vary by entity. Repositories include URL, primary programming language, description, star count, fork count, and public/private status. Docker images have tags, digests, size, build timestamp, operating system, and CPU architecture. Users carry email address, profile picture, role, and company information.
Relationships
Relationships connect entities to each other, creating the ontology. Ownership relationships show that repositories belong to organizations and Docker images belong to Docker repositories. Contribution relationships track users who contribute to repositories and are members of organizations. Deployment relationships connect Argo applications that deploy repositories and Docker images built from source code. Hierarchy relationships organize dashboards in folders, users in LDAP groups, and groups in organizational units. Molecules can also define custom relationship types based on your specific domain needs.
Entity Discovery
Entities are discovered automatically through molecules (discovery plugins):
Discovery Process
- Molecule Configuration: You configure a molecule with credentials and settings
- Discovery Execution: The molecule scans the external service
- Entity Extraction: The molecule identifies entities and their attributes
- Relationship Mapping: The molecule determines how entities relate
- Graph Update: Entities and relationships are added to your ontology
Discovery Scheduling
Discovery can run manually when triggered on-demand, automatically at scheduled intervals like hourly or daily, or in real-time via webhooks when supported by the molecule.
Discovery Status
Discovery progress moves through several states: pending when scheduled but not yet started, running during active discovery, completed when successfully finished, and failed when errors are encountered.