gitlab-org/gitlab
Glossary
Project-specific vocabulary. Common GitLab product terms (issue, merge request, pipeline, runner) are not redefined here — see https://docs.gitlab.com for those.
Architecture
- Application layer — controllers, REST endpoints, GraphQL types, and views. Exempt from bounded-context naming rules.
- Bounded context — a Ruby namespace that owns one or more feature categories. Defined in
config/bounded_contexts.yml. New domain code must live inside a registered context. - Cell / Cells — proposed and partially implemented sharding model where each "cell" is a self-contained GitLab installation handling a subset of organizations. See
app/services/cells/,app/models/cell.rb,lib/api/cells/. - Decomposed database — the split of one logical Postgres database into
main+ci(and optionallysec,jh). Connection routing is handled bygitlab-database-load_balancing. - Domain layer — services, finders, models, and
lib/code. Must declare a feature category and live inside a bounded context. - EE / CE / FOSS — Enterprise Edition (proprietary
ee/tree), Community Edition (FOSS only),FOSS_ONLY=1builds CE. - EE prepend — pattern where
ee/app/services/foo_service.rbdefinesEE::FooServiceand is prepended viaprepend_mod_withto extend FOSS classes. - Feature category — a tag declaring which product/engineering category code belongs to. ~155 are defined in
config/feature_categories.yml. Required on every controller, service, worker, and gem. - Internal events — schemaful product analytics events (
lib/gitlab/internal_events.rb). Replace older counter-based "usage data" tracking. - Monorepo gems — Ruby gems extracted under
gems/. Loaded viapath:in the Gemfile so they ship with the monolith.
Storage and persistence
- Gitaly — gRPC service that owns Git repository storage. The monolith never touches
.gitdirectories directly; all reads/writes go throughGitlab::GitalyClient. - Object storage — S3-compatible storage for uploads, artifacts, LFS, packages. Configured in
config/object_store_settings.rb. - Sidekiq jobs / workers — async jobs in
app/workers/. Idempotent jobs declareidempotent!. See Sidekiq jobs. - EventStore (
Gitlab::EventStore) — pub/sub built on Sidekiq, used to decouple domain events from subscribers.
Code organization
- Concern — a Ruby module under
app/models/concerns/,app/controllers/concerns/, etc. Mixed in viainclude. - Finder — read-only query object under
app/finders/. Returns ActiveRecord relations filtered by user permissions. - Policy — authorization rule under
app/policies/, defined with thedeclarative_policyDSL. - Service — business logic under
app/services/. Almost always returns aServiceResponse. - ServiceResponse — value object with
:success/:errorpluspayload,message,reason(app/services/service_response.rb). - Hook data builder (
lib/gitlab/data_builder/) — builds payloads for webhooks and system hooks. - Banzai — GitLab's HTML pipeline / Markdown rendering library (
lib/banzai/). Used everywhere user-supplied markdown is rendered.
Auth
- Devise — Rails auth library; user passwords and sessions live here.
- Doorkeeper — OAuth2 provider for
oauth/*and the/api/v4token grants. - OmniAuth — third-party identity providers (LDAP, SAML, Google, GitHub, etc.) plumbed through
app/controllers/omniauth_callbacks_controller.rb. - Personal access token (PAT) / Project access token / Group access token / CI Job token — different scoped tokens validated by
Gitlab::Auth. - Internal API — endpoints under
lib/api/internal/callable only by other GitLab components (Shell, Workhorse, KAS, Pages). Authenticated with shared secrets.
CI / DevOps
- Runner — external agent that executes CI jobs. Lives in https://gitlab.com/gitlab-org/gitlab-runner.
- Pipeline — a graph of jobs across stages (
Ci::Pipeline). - Trace — the live job log; chunked and streamed (
Ci::BuildTraceChunk). - Artifact — file output of a job, stored in object storage (
Ci::JobArtifact). - Catalog / Component — reusable pipeline components in the CI/CD Catalog.
AI / Duo
- GitLab Duo — umbrella name for AI features (chat, code suggestions, code review, agents).
- AI Gateway / AIGW — separate service that talks to LLM providers; the monolith proxies to it.
- Duo Workflow / Duo Agent Platform — autonomous agent runtime;
lib/gitlab/duo_agent_platform/. - Duo Workflow Service / Executor — companion services pinned via
DUO_WORKFLOW_EXECUTOR_VERSION. - Active Context — embedding-based code search and retrieval (
ee/lib/active_context/).
Geo and replication
- Geo — EE feature for read replication across regions. The "primary" handles writes, "secondary" sites replicate.
- Verifiable, replicable, selective sync — Geo concepts for ensuring secondaries are up to date.
Search
- Elasticsearch — backs full-text search for issues, MRs, comments, code (legacy code search).
- Zoekt — Go-based code search engine; replacing Elasticsearch for code search at scale.
- Active Context — newer LLM-friendly retrieval layer.
Observability
- Application context — per-request metadata propagated through logs, traces, Sidekiq, and database queries.
- Labkit — shared Ruby/Go observability gem (
gitlab-labkit). - Application SLI — Service Level Indicator helper (
Gitlab::Metrics::Sli). - User experience SLI — frontend SLI defined in
config/user_experience_slis/.
Workflows and tools
- Danger — Bot that comments on MRs (
Dangerfile,danger/). Adds reviewer suggestions, lints, and warnings. - GDK — the GitLab Development Kit, the recommended local dev environment.
- Lefthook — git hook manager (
lefthook.yml). - Housekeeper — automated keeper that opens MRs to clean up code (
gems/gitlab-housekeeper/,keeps/). - Glaz / GLAS rules — internal code-style governance system.
Other acronyms
| Acronym | Meaning |
|---|---|
| MR | Merge Request |
| PAT | Personal Access Token |
| PAT | (also) Post-deploy migration timestamp |
| KAS | Kubernetes Agent Server |
| FOSS | Free and Open Source Software (= CE-only build) |
| LFS | Large File Storage (Git LFS) |
| GDK | GitLab Development Kit |
| SSO | Single Sign-On |
| SAML | Security Assertion Markup Language |
| SCIM | System for Cross-domain Identity Management |
| UBI | Universal Base Image (Red Hat container base) |
| FIPS | Federal Information Processing Standards (compliance mode) |
| LSIF | Language Server Index Format (code intelligence) |
| GLQL | GitLab Query Language (saved searches) |
| SBOM | Software Bill Of Materials |
| BOM | Byte Order Mark / Bill of Materials (context-dependent) |
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.