-run_timed_command "bundle install --jobs=$(nproc) --path=vendor --retry=3 --quiet --without default development test production puma unicorn kerberos metrics omnibus ed25519"
-run_timed_command "bundle install --jobs=$(nproc) --path=vendor --retry=3 --quiet --without default development test production puma unicorn kerberos metrics omnibus ed25519"
cache:
cache:
policy:push# We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
policy:push# We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
-run_timed_command "bundle install --jobs=$(nproc) --path=vendor --retry=3 --quiet --without default development test production puma unicorn kerberos metrics omnibus ed25519"
-run_timed_command "bundle install --jobs=$(nproc) --path=vendor --retry=3 --quiet --without default development test production puma unicorn kerberos metrics omnibus ed25519"
-run_timed_command "bundle install --jobs=$(nproc) --path=vendor --retry=3 --quiet --without default development test production puma unicorn kerberos metrics omnibus ed25519"
-run_timed_command "bundle install --jobs=$(nproc) --path=vendor --retry=3 --quiet --without default development test production puma unicorn kerberos metrics omnibus ed25519"
@@ -1335,6 +1335,13 @@ To configure the Sentinel Queues server:
...
@@ -1335,6 +1335,13 @@ To configure the Sentinel Queues server:
## Configure Gitaly
## Configure Gitaly
NOTE: **Note:**
[Gitaly Cluster](../gitaly/praefect.md) support
for the Reference Architectures is being
worked on as a [collaborative effort](https://gitlab.com/gitlab-org/quality/reference-architectures/-/issues/1) between the Quality Engineering and Gitaly teams. When this component has been verified
some Architecture specs will likely change as a result to support the new
and improved designed.
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
specifically the number of projects and those projects' sizes. It's recommended
specifically the number of projects and those projects' sizes. It's recommended
that a Gitaly server node stores no more than 5 TB of data. Although this
that a Gitaly server node stores no more than 5 TB of data. Although this
@@ -1335,6 +1335,13 @@ To configure the Sentinel Queues server:
...
@@ -1335,6 +1335,13 @@ To configure the Sentinel Queues server:
## Configure Gitaly
## Configure Gitaly
NOTE: **Note:**
[Gitaly Cluster](../gitaly/praefect.md) support
for the Reference Architectures is being
worked on as a [collaborative effort](https://gitlab.com/gitlab-org/quality/reference-architectures/-/issues/1) between the Quality Engineering and Gitaly teams. When this component has been verified
some Architecture specs will likely change as a result to support the new
and improved designed.
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
specifically the number of projects and those projects' sizes. It's recommended
specifically the number of projects and those projects' sizes. It's recommended
that a Gitaly server node stores no more than 5 TB of data. Although this
that a Gitaly server node stores no more than 5 TB of data. Although this
@@ -356,6 +356,13 @@ are supported and can be added if needed.
...
@@ -356,6 +356,13 @@ are supported and can be added if needed.
## Configure Gitaly
## Configure Gitaly
NOTE: **Note:**
[Gitaly Cluster](../gitaly/praefect.md) support
for the Reference Architectures is being
worked on as a [collaborative effort](https://gitlab.com/gitlab-org/quality/reference-architectures/-/issues/1) between the Quality Engineering and Gitaly teams. When this component has been verified
some Architecture specs will likely change as a result to support the new
and improved designed.
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
specifically the number of projects and those projects' sizes. It's recommended
specifically the number of projects and those projects' sizes. It's recommended
that a Gitaly server node stores no more than 5TB of data. Although this
that a Gitaly server node stores no more than 5TB of data. Although this
@@ -1058,6 +1058,13 @@ Refer to your preferred Load Balancer's documentation for further guidance.
...
@@ -1058,6 +1058,13 @@ Refer to your preferred Load Balancer's documentation for further guidance.
## Configure Gitaly
## Configure Gitaly
NOTE: **Note:**
[Gitaly Cluster](../gitaly/praefect.md) support
for the Reference Architectures is being
worked on as a [collaborative effort](https://gitlab.com/gitlab-org/quality/reference-architectures/-/issues/1) between the Quality Engineering and Gitaly teams. When this component has been verified
some Architecture specs will likely change as a result to support the new
and improved designed.
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
specifically the number of projects and those projects' sizes. It's recommended
specifically the number of projects and those projects' sizes. It's recommended
that a Gitaly server node stores no more than 5 TB of data. Although this
that a Gitaly server node stores no more than 5 TB of data. Although this
@@ -1335,6 +1335,13 @@ To configure the Sentinel Queues server:
...
@@ -1335,6 +1335,13 @@ To configure the Sentinel Queues server:
## Configure Gitaly
## Configure Gitaly
NOTE: **Note:**
[Gitaly Cluster](../gitaly/praefect.md) support
for the Reference Architectures is being
worked on as a [collaborative effort](https://gitlab.com/gitlab-org/quality/reference-architectures/-/issues/1) between the Quality Engineering and Gitaly teams. When this component has been verified
some Architecture specs will likely change as a result to support the new
and improved designed.
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
specifically the number of projects and those projects' sizes. It's recommended
specifically the number of projects and those projects' sizes. It's recommended
that a Gitaly server node stores no more than 5 TB of data. Although this
that a Gitaly server node stores no more than 5 TB of data. Although this
@@ -1057,6 +1057,13 @@ Refer to your preferred Load Balancer's documentation for further guidance.
...
@@ -1057,6 +1057,13 @@ Refer to your preferred Load Balancer's documentation for further guidance.
## Configure Gitaly
## Configure Gitaly
NOTE: **Note:**
[Gitaly Cluster](../gitaly/praefect.md) support
for the Reference Architectures is being
worked on as a [collaborative effort](https://gitlab.com/gitlab-org/quality/reference-architectures/-/issues/1) between the Quality Engineering and Gitaly teams. When this component has been verified
some Architecture specs will likely change as a result to support the new
and improved designed.
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
[Gitaly](../gitaly/index.md) server node requirements are dependent on data,
specifically the number of projects and those projects' sizes. It's recommended
specifically the number of projects and those projects' sizes. It's recommended
that a Gitaly server node stores no more than 5 TB of data. Although this
that a Gitaly server node stores no more than 5 TB of data. Although this
1. Add the experiment to the `Gitlab::Experimentation::EXPERIMENTS` hash in [`experimentation.rb`](https://gitlab.com/gitlab-org/gitlab/blob/master/lib%2Fgitlab%2Fexperimentation.rb):
1. Add the experiment to the `Gitlab::Experimentation::EXPERIMENTS` hash in [`experimentation.rb`](https://gitlab.com/gitlab-org/gitlab/blob/master/lib%2Fgitlab%2Fexperimentation.rb):
...
@@ -50,7 +50,7 @@ addressed.
...
@@ -50,7 +50,7 @@ addressed.
# Add your experiment here:
# Add your experiment here:
signup_flow: {
signup_flow: {
environment: ::Gitlab.dev_env_or_com?,# Target environment, defaults to enabled for development and GitLab.com
environment: ::Gitlab.dev_env_or_com?,# Target environment, defaults to enabled for development and GitLab.com
tracking_category: 'Growth::Acquisition::Experiment::SignUpFlow'# Used for providing the category when setting up tracking data
tracking_category: 'Growth::Activation::Experiment::SignUpFlow'# Used for providing the category when setting up tracking data
}
}
}.freeze
}.freeze
```
```
...
@@ -111,8 +111,131 @@ addressed.
...
@@ -111,8 +111,131 @@ addressed.
end
end
```
```
1. Track necessary events. See the [product analytics guide](../product_analytics/index.md) for details.
### Implement the tracking events
1. After the merge request is merged, use [`chatops`](../../ci/chatops/README.md) in the
To determine whether the experiment is a success or not, we must implement tracking events
to acquire data for analyzing. We can send events to Snowplow via either the backend or frontend.
Read the [product analytics guide](../product_analytics/index.md) for more details.
#### Track backend events
The framework provides the following helper method that is available in controllers:
the API can, it may also trigger bugs in the API. This includes actions like modifying and deleting
the API can, it may also trigger bugs in the API. This includes actions like modifying and deleting
data. Only run fuzzing against a test server.
data. Only run fuzzing against a test server.
### Postman Collection
The [Postman API Client](https://www.postman.com/product/api-client/) is a popular tool that
developers and testers use to call various types of APIs. The API definitions
[can be exported as a Postman Collection file](https://learning.postman.com/docs/getting-started/importing-and-exporting-data/#exporting-postman-data)
for use with API Fuzzing. When exporting, make sure to select a supported version of Postman
Collection: v2.0 or v2.1.
When used with GitLab's API fuzzer, Postman Collections must contain definitions of the web API to
test with valid data. The API fuzzer extracts all the API definitions and uses them to perform
testing.
DANGER: **Warning:**
Postman Collection files may contain sensitive information such as authentication tokens, API keys,
and session cookies. We recommend that you review the Postman Collection file contents before adding
them to a repository.
Follow these steps to configure API fuzzing to use a Postman Collection file that provides
information about the target API to test:
1. To use API fuzzing, you must [include](../../../ci/yaml/README.md#includetemplate)
the [`API-Fuzzing.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/API-Fuzzing.gitlab-ci.yml)
that's provided as part of your GitLab installation. To do so, add the following to your
`.gitlab-ci.yml` file:
```yaml
include:
-template:API-Fuzzing.gitlab-ci.yml
```
1. Add the configuration file [`gitlab-api-fuzzing-config.yml`](https://gitlab.com/gitlab-org/security-products/analyzers/api-fuzzing/-/blob/master/gitlab-api-fuzzing-config.yml)
to your repository's root as `.gitlab-api-fuzzing.yml`.
1. The [configuration file](#configuration-files) has several testing profiles defined with varying
amounts of fuzzing. We recommend that you start with the `Quick-10` profile. Testing with this
profile completes quickly, allowing for easier configuration validation.
Provide the profile by adding the `FUZZAPI_PROFILE` variable to your `.gitlab-ci.yml` file,
substituting `Quick-10` for the profile you choose:
```yaml
include:
-template:API-Fuzzing.gitlab-ci.yml
variables:
FUZZAPI_PROFILE:Quick-10
```
1. Add the `FUZZAPI_POSTMAN_COLLECTION` variable and set it to the Postman Collection's location: