@@ -15,7 +15,7 @@ performance, data, or could even exhaust the allocated resources for the applica
...
@@ -15,7 +15,7 @@ performance, data, or could even exhaust the allocated resources for the applica
Rate limits can be used to improve the security and durability of GitLab.
Rate limits can be used to improve the security and durability of GitLab.
For example, a simple script can make thousands of web requests per second. Whether malicious, apathetic, or just a bug, your application and infrastructure may not be able to cope with the load. Rate limits can help mitigate these types of attacks.
For example, one script can make thousands of web requests per second. Whether malicious, apathetic, or just a bug, your application and infrastructure may not be able to cope with the load. Rate limits can help to mitigate these types of attacks.
Read more about [configuring rate limits](../security/rate_limits.md) in the Security documentation.
Read more about [configuring rate limits](../security/rate_limits.md) in the Security documentation.
...
@@ -25,17 +25,17 @@ Read more about [configuring rate limits](../security/rate_limits.md) in the Sec
...
@@ -25,17 +25,17 @@ Read more about [configuring rate limits](../security/rate_limits.md) in the Sec
This setting limits the request rate to the issue creation endpoint.
This setting limits the request rate to the issue creation endpoint.
Read more on[issue creation rate limits](../user/admin_area/settings/rate_limit_on_issues_creation.md).
Read more about[issue creation rate limits](../user/admin_area/settings/rate_limit_on_issues_creation.md).
-**Default rate limit** - Disabled by default
-**Default rate limit**: Disabled by default.
### By User or IP
### By User or IP
This setting limits the request rate per user or IP.
This setting limits the request rate per user or IP.
Read more on[User and IP rate limits](../user/admin_area/settings/user_and_ip_rate_limits.md).
Read more about[User and IP rate limits](../user/admin_area/settings/user_and_ip_rate_limits.md).
-**Default rate limit** - Disabled by default
-**Default rate limit**: Disabled by default.
### By raw endpoint
### By raw endpoint
...
@@ -43,9 +43,9 @@ Read more on [User and IP rate limits](../user/admin_area/settings/user_and_ip_r
...
@@ -43,9 +43,9 @@ Read more on [User and IP rate limits](../user/admin_area/settings/user_and_ip_r
This setting limits the request rate per endpoint.
This setting limits the request rate per endpoint.
Read more on[raw endpoint rate limits](../user/admin_area/settings/rate_limits_on_raw_endpoints.md).
Read more about[raw endpoint rate limits](../user/admin_area/settings/rate_limits_on_raw_endpoints.md).
-**Default rate limit** - 300 requests per project, per commit and per file path
-**Default rate limit**: 300 requests per project, per commit and per file path.
### By protected path
### By protected path
...
@@ -65,9 +65,9 @@ GitLab rate limits the following paths by default:
...
@@ -65,9 +65,9 @@ GitLab rate limits the following paths by default:
'/admin/session'
'/admin/session'
```
```
Read more on[protected path rate limits](../user/admin_area/settings/protected_paths.md).
Read more about[protected path rate limits](../user/admin_area/settings/protected_paths.md).
-**Default rate limit** - After 10 requests, the client must wait 60 seconds before trying again
-**Default rate limit**: After 10 requests, the client must wait 60 seconds before trying again.
### Package Registry
### Package Registry
...
@@ -76,7 +76,7 @@ Read more on [protected path rate limits](../user/admin_area/settings/protected_
...
@@ -76,7 +76,7 @@ Read more on [protected path rate limits](../user/admin_area/settings/protected_
This setting limits the request rate on the Packages API per user or IP. For more information, see
This setting limits the request rate on the Packages API per user or IP. For more information, see
Read more on[import/export rate limits](../user/admin_area/settings/import_export_rate_limits.md).
Read more about[import/export rate limits](../user/admin_area/settings/import_export_rate_limits.md).
### Rack attack
### Rack attack
...
@@ -101,9 +101,9 @@ This method of rate limiting is cumbersome, but has some advantages. It allows
...
@@ -101,9 +101,9 @@ This method of rate limiting is cumbersome, but has some advantages. It allows
throttling of specific paths, and is also integrated into Git and container
throttling of specific paths, and is also integrated into Git and container
registry requests.
registry requests.
Read more on the [Rack Attack initializer](../security/rack_attack.md) method of setting rate limits.
Read more about the [Rack Attack initializer](../security/rack_attack.md) method of setting rate limits.
-**Default rate limit** - Disabled
-**Default rate limit**: Disabled.
### Member Invitations
### Member Invitations
...
@@ -116,11 +116,11 @@ Limit the maximum daily member invitations allowed per group hierarchy.
...
@@ -116,11 +116,11 @@ Limit the maximum daily member invitations allowed per group hierarchy.
Clone traffic can put a large strain on your Gitaly service. To prevent such workloads from overwhelming your Gitaly server, you can set concurrency limits in Gitaly's configuration file.
Clone traffic can put a large strain on your Gitaly service. To prevent such workloads from overwhelming your Gitaly server, you can set concurrency limits in Gitaly's configuration file.
Read more on[Gitaly concurrency limits](gitaly/configure_gitaly.md#limit-rpc-concurrency).
Read more about[Gitaly concurrency limits](gitaly/configure_gitaly.md#limit-rpc-concurrency).
-**Default rate limit** - Disabled
-**Default rate limit**: Disabled.
## Number of comments per issue, merge request or commit
## Number of comments per issue, merge request, or commit
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/22388) in GitLab 12.4.
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/22388) in GitLab 12.4.
...
@@ -129,7 +129,7 @@ merge request, or commit. When the limit is reached, system notes can still be
...
@@ -129,7 +129,7 @@ merge request, or commit. When the limit is reached, system notes can still be
added so that the history of events is not lost, but user-submitted comments
added so that the history of events is not lost, but user-submitted comments
will fail.
will fail.
-**Max limit:** 5.000 comments
-**Max limit**: 5,000 comments.
## Size of comments and descriptions of issues, merge requests, and epics
## Size of comments and descriptions of issues, merge requests, and epics
...
@@ -141,7 +141,7 @@ item will not be created.
...
@@ -141,7 +141,7 @@ item will not be created.
It's possible that this limit will be changed to a lower number in the future.
It's possible that this limit will be changed to a lower number in the future.
-**Max size:** ~1 million characters / ~1 MB
-**Max size**: ~1 million characters / ~1 MB.
## Size of commit titles and descriptions
## Size of commit titles and descriptions
...
@@ -161,7 +161,7 @@ The maximum number of issues loaded on the milestone overview page is 500.
...
@@ -161,7 +161,7 @@ The maximum number of issues loaded on the milestone overview page is 500.
When the number exceeds the limit the page displays an alert and links to a paginated
When the number exceeds the limit the page displays an alert and links to a paginated
[issue list](../user/project/issues/managing_issues.md) of all issues in the milestone.
[issue list](../user/project/issues/managing_issues.md) of all issues in the milestone.
-**Limit:** 500 issues
-**Limit**: 500 issues.
## Number of pipelines per Git push
## Number of pipelines per Git push
...
@@ -183,13 +183,13 @@ Activity history for projects and individuals' profiles was limited to one year
...
@@ -183,13 +183,13 @@ Activity history for projects and individuals' profiles was limited to one year
There is a limit when embedding metrics in GFM for performance reasons.
There is a limit when embedding metrics in GFM for performance reasons.
-**Max limit:** 100 embeds
-**Max limit**: 100 embeds.
## Number of webhooks
## Number of webhooks
On GitLab.com, the [maximum number of webhooks and their size](../user/gitlab_com/index.md#webhooks) per project, and per group, is limited.
On GitLab.com, the [maximum number of webhooks and their size](../user/gitlab_com/index.md#webhooks) per project, and per group, is limited.
To set this limit on a self-managed installation, where the default is `100` project webhooks and `50` group webhooks, run the following in the
To set this limit for a self-managed installation, where the default is `100` project webhooks and `50` group webhooks, run the following in the
@@ -559,7 +559,7 @@ Set the limit to `0` to disable it.
...
@@ -559,7 +559,7 @@ Set the limit to `0` to disable it.
## Snippets limits
## Snippets limits
See the [documentation on Snippets settings](snippets/index.md).
See the [documentation about Snippets settings](snippets/index.md).
## Design Management limits
## Design Management limits
...
@@ -596,14 +596,14 @@ More information can be found in the [Push event activities limit and bulk push
...
@@ -596,14 +596,14 @@ More information can be found in the [Push event activities limit and bulk push
On GitLab.com, the maximum file size for a package that's uploaded to the [GitLab Package Registry](../user/packages/package_registry/index.md) varies by format:
On GitLab.com, the maximum file size for a package that's uploaded to the [GitLab Package Registry](../user/packages/package_registry/index.md) varies by format:
- Conan: 5GB
- Conan: 5GB
- Generic: 5GB
- Generic: 5GB
- Maven: 5GB
- Maven: 5GB
- npm: 5GB
- npm: 5GB
- NuGet: 5GB
- NuGet: 5GB
- PyPI: 5GB
- PyPI: 5GB
To set this limit on a self-managed installation, run the following in the
To set this limit for a self-managed installation, run the following in the
@@ -7162,7 +7162,7 @@ Represents the total number of issues and their weights for a particular day.
...
@@ -7162,7 +7162,7 @@ Represents the total number of issues and their weights for a particular day.
| Name | Type | Description |
| Name | Type | Description |
| ---- | ---- | ----------- |
| ---- | ---- | ----------- |
| <aid="cijobactive"></a>`active` | [`Boolean!`](#boolean) | Indicates the job is active. |
| <aid="cijobactive"></a>`active` | [`Boolean!`](#boolean) | Indicates the job is active. |
| <aid="cijoballowfailure"></a>`allowFailure` | [`Boolean!`](#boolean) | Whether this job is allowed to fail. |
| <aid="cijoballowfailure"></a>`allowFailure` | [`Boolean!`](#boolean) | Whether the job is allowed to fail. |
| <aid="cijobartifacts"></a>`artifacts` | [`CiJobArtifactConnection`](#cijobartifactconnection) | Artifacts generated by the job. |
| <aid="cijobartifacts"></a>`artifacts` | [`CiJobArtifactConnection`](#cijobartifactconnection) | Artifacts generated by the job. |
| <aid="cijobcancelable"></a>`cancelable` | [`Boolean!`](#boolean) | Indicates the job can be canceled. |
| <aid="cijobcancelable"></a>`cancelable` | [`Boolean!`](#boolean) | Indicates the job can be canceled. |
| <aid="cijobcommitpath"></a>`commitPath` | [`String`](#string) | Path to the commit that triggered the job. |
| <aid="cijobcommitpath"></a>`commitPath` | [`String`](#string) | Path to the commit that triggered the job. |
...
@@ -7179,6 +7179,7 @@ Represents the total number of issues and their weights for a particular day.
...
@@ -7179,6 +7179,7 @@ Represents the total number of issues and their weights for a particular day.
| <aid="cijobpipeline"></a>`pipeline` | [`Pipeline`](#pipeline) | Pipeline the job belongs to. |
| <aid="cijobpipeline"></a>`pipeline` | [`Pipeline`](#pipeline) | Pipeline the job belongs to. |
| <aid="cijobplayable"></a>`playable` | [`Boolean!`](#boolean) | Indicates the job can be played. |
| <aid="cijobplayable"></a>`playable` | [`Boolean!`](#boolean) | Indicates the job can be played. |
| <aid="cijobqueuedat"></a>`queuedAt` | [`Time`](#time) | When the job was enqueued and marked as pending. |
| <aid="cijobqueuedat"></a>`queuedAt` | [`Time`](#time) | When the job was enqueued and marked as pending. |
| <aid="cijobqueuedduration"></a>`queuedDuration` | [`Duration`](#duration) | How long the job was enqueued before starting. |
| <aid="cijobrefname"></a>`refName` | [`String`](#string) | Ref name of the job. |
| <aid="cijobrefname"></a>`refName` | [`String`](#string) | Ref name of the job. |
| <aid="cijobrefpath"></a>`refPath` | [`String`](#string) | Path to the ref. |
| <aid="cijobrefpath"></a>`refPath` | [`String`](#string) | Path to the ref. |
| <aid="cijobretryable"></a>`retryable` | [`Boolean!`](#boolean) | Indicates the job can be retried. |
| <aid="cijobretryable"></a>`retryable` | [`Boolean!`](#boolean) | Indicates the job can be retried. |
...
@@ -10354,6 +10355,7 @@ Information about pagination in a connection.
...
@@ -10354,6 +10355,7 @@ Information about pagination in a connection.
| <aid="pipelineiid"></a>`iid` | [`String!`](#string) | Internal ID of the pipeline. |
| <aid="pipelineiid"></a>`iid` | [`String!`](#string) | Internal ID of the pipeline. |
| <aid="pipelinepath"></a>`path` | [`String`](#string) | Relative path to the pipeline's page. |
| <aid="pipelinepath"></a>`path` | [`String`](#string) | Relative path to the pipeline's page. |
| <aid="pipelineproject"></a>`project` | [`Project`](#project) | Project the pipeline belongs to. |
| <aid="pipelineproject"></a>`project` | [`Project`](#project) | Project the pipeline belongs to. |
| <aid="pipelinequeuedduration"></a>`queuedDuration` | [`Duration`](#duration) | How long the pipeline was queued before starting. |
| <aid="pipelineretryable"></a>`retryable` | [`Boolean!`](#boolean) | Specifies if a pipeline can be retried. |
| <aid="pipelineretryable"></a>`retryable` | [`Boolean!`](#boolean) | Specifies if a pipeline can be retried. |
| <aid="pipelinesecurityreportsummary"></a>`securityReportSummary` | [`SecurityReportSummary`](#securityreportsummary) | Vulnerability and scanned resource counts for each security scanner of the pipeline. |
| <aid="pipelinesecurityreportsummary"></a>`securityReportSummary` | [`SecurityReportSummary`](#securityreportsummary) | Vulnerability and scanned resource counts for each security scanner of the pipeline. |
| <aid="pipelinesha"></a>`sha` | [`String!`](#string) | SHA of the pipeline's commit. |
| <aid="pipelinesha"></a>`sha` | [`String!`](#string) | SHA of the pipeline's commit. |
...
@@ -14464,6 +14466,12 @@ A `DiscussionID` is a global ID. It is encoded as a string.
...
@@ -14464,6 +14466,12 @@ A `DiscussionID` is a global ID. It is encoded as a string.
An example `DiscussionID` is: `"gid://gitlab/Discussion/1"`.
An example `DiscussionID` is: `"gid://gitlab/Discussion/1"`.
### `Duration`
Duration between two instants, represented as a fractional number of seconds.
For example: 12.3334.
### `EnvironmentID`
### `EnvironmentID`
A `EnvironmentID` is a global ID. It is encoded as a string.
A `EnvironmentID` is a global ID. It is encoded as a string.
@@ -166,6 +166,8 @@ Each file is expected to have its own primary ID and model. Geo strongly recomme
...
@@ -166,6 +166,8 @@ Each file is expected to have its own primary ID and model. Geo strongly recomme
To implement Geo replication of a new blob-type Model, [open an issue with the provided issue template](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Geo%20Replicate%20a%20new%20blob%20type).
To implement Geo replication of a new blob-type Model, [open an issue with the provided issue template](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Geo%20Replicate%20a%20new%20blob%20type).
To view the implementation steps without opening an issue, [view the issue template file](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Geo%20Replicate%20a%20new%20blob%20type.md).
### Repository Replicator Strategy
### Repository Replicator Strategy
Models that refer to any Git repository on disk are supported by Geo with the `Geo::RepositoryReplicatorStrategy` module. For example, see how [Geo replication was implemented for Group-level Wikis](https://gitlab.com/gitlab-org/gitlab/-/issues/208147). Note that this issue does not implement verification, since verification of Git repositories was not yet added to the Geo self-service framework. An example implementing verification can be found in the merge request to [Add Snippet repository verification](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56596).
Models that refer to any Git repository on disk are supported by Geo with the `Geo::RepositoryReplicatorStrategy` module. For example, see how [Geo replication was implemented for Group-level Wikis](https://gitlab.com/gitlab-org/gitlab/-/issues/208147). Note that this issue does not implement verification, since verification of Git repositories was not yet added to the Geo self-service framework. An example implementing verification can be found in the merge request to [Add Snippet repository verification](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56596).
...
@@ -173,3 +175,5 @@ Models that refer to any Git repository on disk are supported by Geo with the `G
...
@@ -173,3 +175,5 @@ Models that refer to any Git repository on disk are supported by Geo with the `G
Each Git repository is expected to have its own primary ID and model.
Each Git repository is expected to have its own primary ID and model.
To implement Geo replication of a new Git repository-type Model, [open an issue with the provided issue template](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Geo%20Replicate%20a%20new%20Git%20repository%20type).
To implement Geo replication of a new Git repository-type Model, [open an issue with the provided issue template](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Geo%20Replicate%20a%20new%20Git%20repository%20type).
To view the implementation steps without opening an issue, [view the issue template file](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Geo%20Replicate%20a%20new%20Git%20repository%20type.md).