File: bounded_contexts.yml

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (383 lines) | stat: -rw-r--r-- 9,485 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
###
# This file defines the list of bounded contexts in the domain layer and platform layer.
# Bounded contexts are represented in the form of Ruby namespaces.
# Only the defined bounded contexts are allowed.
#
# Application layer (controllers, REST endpoints) and view layer are exempt from having
# to use this list.
#
# New bounded contexts can be registered in this file if:
#   - a new product domain is emerging.
#   - an existing domain is split into smaller ones.
#   - a platform library (under `lib`) cannot be directly extracted as gem.
#     We can opt for allowlisting the domain.
#
# Similarly, we can remove entries from this list if:
#   - a domain is merged into another one.
#   - a platform library is extracted as a gem.
#   - a domain is discontinued and code removed.

######################
# Domain layer
#
# List of domain bounded contexts composing GitLab product functionality.
# A domain generally includes one or more highly cohesive feature categories.
domains:
  Ai:
    description: Abstraction layers for AI capabilities, custom models and Duo Chat
    feature_categories:
      - mlops
      - duo_chat
      - ai_abstraction_layer
      - code_suggestions # Also in CodeSuggestions
      - cloud_connector # Also in CloudConnector
      - duo_workflow

  Analytics:
    description:
    feature_categories:
      - value_stream_management
      - devops_reports
      - dora_metrics
      - product_analytics

  AntiAbuse:
    description:
    feature_categories:
      - insider_threat
      - instance_resiliency

  AppConfig:
    description: Top-level configuration at the GitLab instance level
    feature_categories:
      - settings

  AuditEvents:
    description:
    feature_categories:
      - audit_events

  Authn:
    description: Authentication layer
    feature_categories:
      - system_access

  Authz:
    description: Authorization layer
    feature_categories:
      - permissions
      - system_access

  Backup:
    description: Backup and restore
    feature_categories:
      - backup_restore

  Boards:
    description:
    feature_categories:
      - team_planning
      - portfolio_management

  Ci:
    description: Create and run CI/CD pipelines
    feature_categories:
      - continuous_integration
      - pipeline_composition
      - fleet_visibility
      - job_artifacts
      - pipeline_reports
      - secure_artifacts
      - code_testing

  CloudConnector:
    description:
    feature_categories:
      - cloud_connector

  Clusters:
    description:
    feature_categories:
      - deployment_management

  CodeSuggestions:
    description:
    feature_categories:
      - code_suggestions

  ComplianceManagement:
    description:
    feature_categories:
      - compliance_management
      - security_policy_management

  ContainerRegistry:
    description:
    feature_categories:
      - container_registry

  CustomerRelations:
    description:
    feature_categories:
      - team_planning

  DependencyProxy:
    description: Dependency Proxy for container images.
    feature_categories:
      - virtual_registry
      - package_registry

  DesignManagement:
    description:
    feature_categories:
      - design_management

  Environments:
    description:
    feature_categories:
      - continuous_delivery
      - environment_management
      - deployment_management
      - feature_flags

  Geo:
    description:
    feature_categories:
      - geo_replication

  GitlabSubscriptions:
    description: Managing subscription related code for GitLab.com and Self-Managed
    feature_categories:
      - seat_cost_management
      - plan_provisioning
      - subscription_management
      - add-on_provisioning

  Import:
    description:
    feature_categories:
      - importers

  Integrations:
    description: Integrate GitLab with external tools and platforms
    feature_categories:
      - integrations

  Issuables:
    description:
      Common concerns between work items and merge requests such as setting milestone,
      support discussions, adding labels, etc.
    feature_categories:
      - team_planning
      - portfolio_management
      - code_review_workflow

  Members:
    description: Layer related to mapping users to groups and projects via membership
    feature_categories:
      - user_management
      - groups_and_projects
      - system_access

  MergeRequests:
    description: Code collaboration and review including diffs, MR widgets and mergeability checks
    feature_categories:
      - code_review_workflow

  MergeTrains:
    description: MergeTrains feature intersects between MergeRequests and CI
    feature_categories:
      - merge_trains

  Ml:
    description:
    feature_categories:
      - mlops

  Namespaces:
    description: Managing groups, subgroups and user namespaces
    feature_categories:
      - groups_and_projects

  Nav:
    description: Cross-domain UI navigation.
      This is not strictly a domain but given the size of the code it makes sense to enforce a namespace
      for it until a better placement is found
    feature_categories:
      - navigation

  Notes:
    description: Notes, discussions on issuables and abuse reports
    feature_categories:
      - team_planning
      - portfolio_management
      - code_review_workflow
      - insider_threat

  Observability:
    description:
    feature_categories:
      - observability
      - incident_management

  Onboarding:
    description:
    feature_categories:
      - onboarding

  Organizations:
    description:
    feature_categories:
      - organization
      - cell

  Packages:
    description: Package registry implementation for each supported format (such as Maven, NPM, NuGet, ...).
    feature_categories:
      - package_registry
      - mlops

  Pages:
    description:
    feature_categories:
      - pages

  Projects:
    description: Managing projects as workspaces and their lifecycle. Feature specific behavior must not go here.
    feature_categories:
      - groups_and_projects

  ResourceAccessTokens:
    description: Managing groups and projects access tokens
    feature_categories:
      - system_access

  Releases:
    description:
    feature_categories:
      - release_orchestration
      - release_evidence

  RemoteDevelopment:
    description:
    feature_categories:
      - workspaces

  Repositories:
    description: Git repositories and workflow including Gitaly client
    feature_categories:
      - source_code_management
      - gitaly

  Sbom:
    description: SBOM related ingestion
    feature_categories:
      - software_composition_analysis
      - dependency_management

  Search:
    description: Code and content global search feature, including RAG, Elasticsearch and Zoekt integrations.
    feature_categories:
      - global_search

  SecretsManagement:
    description: Management of native and external secrets
    feature_categories:
      - secrets_management

  Security:
    description: Manage and execute security scanners and policies
    feature_categories:
      - container_scanning
      - dynamic_application_security_testing
      - security_policy_management
      - software_composition_analysis
      - static_application_security_testing
      - secret_detection

  ServiceDesk:
    description:
    feature_categories:
      - service_desk

  ServicePing:
    description:
    feature_categories:
      - service_ping

  Snippets:
    description: Snippets to store and share bits of code and text with other users.
    feature_categories:
      - source_code_management

  StatusPage:
    description:
    feature_categories:
      - incident_management

  Terraform:
    description:
    feature_categories:
      - infrastructure_as_code

  Todos:
    description: User todos management
    feature_categories:
      - notifications

  Users:
    description: Behavior related to user lifecycle and profile settings. Feature specific behavior must not go here.
    feature_categories:
      - user_profile
      - user_management

  Utilization:
    description:
    feature_categories:
      - consumables_cost_management

  VirtualRegistries:
    description: Virtual registries implementation that manage artifacts (packages or container images) from external upstreams.
    feature_categories:
      - virtual_registry

  Vulnerabilities:
    description: Vulnerability management
    feature_categories:
      - vulnerability_management

  WebHooks:
    description: Outbound integration of GitLab with external tools and workflows
    feature_categories:
      - webhooks

  WebIde:
    description:
    feature_categories:
      - web_ide

  Wikis:
    description:
    feature_categories:
      - wiki

  WorkItems:
    description: Issues, Epics, Tasks and WorkItems
    feature_categories:
      - team_planning
      - portfolio_management

######################
# Platform layer
#
# Shared codebase contains cross-domain generic concepts for the monolith.
# This is where all shared concepts live, from Base classes to utilities.
# Modules from the platform layer could potentially be extracted as gems.
platform:
  Gitlab:
    description:
      Platform layer containing infrastructure and technical concerns.
      For example observability tools, generic base classes, utilities, database helpers, etc.
      Each functionality in this layer should be isolated and extracted into gems.
  Banzai:
    description: Parsing and rendering for GitLab Flavored Markdown