[v0.10.0]DevLake Domain Layer Schema
[v0.10.0]DevLake Domain Layer Schema
Please see the latest version of this doc on DevLake website.
Summary
This document describes the entities and their relationships in DevLake's domain layer schema.
Data in the domain layer is transformed from the data in the tool layer. The tool layer schema is based on the data from specific tools such as Jira, GitHub, Gitlab, Jenkins, etc. The domain layer schema can be regarded as an abstraction of tool-layer schemas.
Domain layer schema itself includes 2 logical layers: a DWD layer and a DWM layer. The DWD layer stores the detailed data points, while the DWM is the slight aggregation and operation of DWD to store more organized details or middle-level metrics.
Use Scenario
  1. Users can make customized Grafana dashboards based on the domain layer schema
  1. Contributors can understand more about DevLake's data model
Data Model
This is the up-to-date domain layer schema for DevLake v0.10.x. Tables (entities) are categorized into 5 domains.
  1. Issue tracking domain entities: Jira issues, GitHub issues, GitLab issues, etc
  1. Source code management domain entities: Git/GitHub/Gitlab commits and refs, etc
  1. Code review domain entities: GitHub PRs, Gitlab MRs, etc
  1. CI/CD domain entities: Jenkins jobs & builds, etc
  1. Cross-domain entities: entities that map entities from different domains to break data isolation
Schema Diagram
When reading the schema, you'll notice that many tables' primary key is called id. Unlike auto-increment id or UUID, id is a string composed of several parts to uniquely identify similar entities (e.g. repo) from different platforms (e.g. Github/Gitlab) and allow them to co-exist in a single table.