GKG Core Development Workstream
**Parent Epic**: [GitLab Knowledge Graph Second Iteration - GKG as a Service](https://gitlab.com/groups/gitlab-org/-/epics/19744) --- ## Summary This epic tracks the broader application development workstreams for the GitLab Knowledge Graph (GKG) service. GKG is a unified data layer that exposes SDLC data (issues, MRs, pipelines, security findings) and code metadata through a Graph Query Engine built on ClickHouse. The Knowledge Graph service consists of two primary components delivered as a unified binary: - **`gkg-webserver`**: Serves web traffic requests, executes MCP tool calls, builds graph queries, and communicates with Rails for authorization - **`gkg-indexer`**: Performs SDLC ETL indexing and code indexing by converting normalized tables into property graph tables This epic focuses on the application logic and does not cover infrastructure deployment (see [GitLab Knowledge Graph Infra / Delivery gitlab-org/rust&36](https://gitlab.com/groups/gitlab-org/rust/-/epics/36)) or observability (see [GitLab Knowledge Graph Observability gitlab-org/rust&25](https://gitlab.com/groups/gitlab-org/rust/-/epics/25)). --- ## Work Stream Leads | Work Stream | Lead | GitLab Username | |-------------|------|-----------------| | **SDLC Indexing** | Jean-Gabriel Doyon | @jgdoyon1 | | **Code Indexing** | Jean-Gabriel Doyon | @jgdoyon1 | | **Graph Engine & Query Planner** | Michael Usachenko | @michaelusa | | **Schema Management** | Jean-Gabriel Doyon | @jgdoyon1 | | **Cluster Configuration and Deployment** | Bohdan Parkhomchuk | @bohdanpk | | **CI/CD & Developer Experience** | Bohdan Parkhomchuk | @bohdanpk | | **Web Server (API + Auth)** | Angelo Rivera | @michaelangeloio | | **Rails Integration** | Angelo Rivera | @michaelangeloio | | **Data Model** | KG Team (collaborative) | \- | --- ## Architecture Overview ```mermaid flowchart TD subgraph Query ["Query Engine"] A[Adapter Layer<br/>JSON Tools / Cypher Parser] PL[Planner<br/>SQL Generation] V[Validator<br/>Grammar-based AST Check] end subgraph Auth ["Authorization Layers"] L1[Layer 1: org_id Filter] L2[Layer 2: traversal_ids Filter] L3[Layer 3: Rails Redaction] end subgraph Clients MCP[MCP/REST Client] Rails[GitLab Rails] end CH[(ClickHouse)] MCP --> Rails Rails --> A A --> PL PL --> V V --> L1 L1 --> L2 L2 --> CH CH --> L3 L3 --> Rails Rails --> MCP ``` ## References - **Design Document**: [MR !16424](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/16424) - **Engineering Executive Summary**: [Google Doc](https://docs.google.com/document/d/193lERl7XvQX2aipqTW8v8QBV4UmHYUPehTK7mgOnQUI/edit) - **Product Documentation**: [Google Doc](https://docs.google.com/document/d/1EN5Y7IxMgEZIUZESCxcKxICHOGL_xx1wPsBXPHdw7gE/edit) - **Database Selection Research**: [Epic gitlab-org/rust&31](https://gitlab.com/groups/gitlab-org/rust/-/epics/31) - **First Iteration Epic**: [Knowledge Graph (First Iteration)](https://gitlab.com/groups/gitlab-org/-/epics/17514)
epic