doc/administration/silent_mode/_index.md
{{< details >}}
{{< /details >}}
{{< history >}}
{{< /history >}}
Silent Mode allows you to silence outbound communication, such as emails, from GitLab. Silent Mode is not intended to be used on environments which are in-use.
Silent Mode is designed for specific testing and validation scenarios and should not be used as a general-purpose feature for production environments.
Silent Mode is designed for the following scenarios:
Silent Mode is not designed for:
Prerequisites:
There are multiple ways to turn on Silent Mode:
Web UI
API:
curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab-url>/api/v4/application/settings?silent_mode_enabled=true"
::Gitlab::CurrentSettings.update!(silent_mode_enabled: true)
It may take up to a minute to take effect. Issue 405433 proposes removing this delay.
Prerequisites:
There are multiple ways to disable Silent Mode:
Web UI
API:
curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab-url>/api/v4/application/settings?silent_mode_enabled=false"
::Gitlab::CurrentSettings.update!(silent_mode_enabled: false)
It may take up to a minute to take effect. Issue 405433 proposes removing this delay.
This section documents the current behavior of GitLab when Silent Mode is enabled. The work for the first iteration of Silent Mode is tracked by Epic 9826.
When Silent Mode is enabled, a banner is displayed at the top of the page for all users stating the setting is enabled and All outbound communications are blocked.
Outbound communications from the following features are silenced by Silent Mode.
| Feature | Notes |
|---|---|
| GitLab Duo | GitLab Duo features cannot contact external language model providers. |
| Project and group webhooks | Triggering webhook tests via the UI results in HTTP status 500 responses. |
| System hooks | |
| Remote mirrors | Pushes to remote mirrors are skipped. Pulls from remote mirrors is skipped. |
| Executable integrations | The integrations are not executed. |
| Service Desk | Incoming emails still raise issues, but the users who sent the emails to Service Desk are not notified of issue creation or comments on their issues. |
| Outbound emails | At the moment when an email should be sent by GitLab, it is instead dropped. It is not queued anywhere. |
| Outbound HTTP requests | Many HTTP requests are blocked where features are not blocked or skipped explicitly. These may produce errors with the class SilentModeBlockedError. If a particular error is problematic for testing during Silent Mode, consult GitLab Support. In general, the caller should exit when Silent Mode is enabled, rather than attempt to make the HTTP request. Any exceptions must align with the intended uses for Silent Mode. |
Outbound communications from the following features are not silenced by Silent Mode.
| Feature | Notes |
|---|---|
| Dependency proxy | Pulling images that are not cached will fetch from the source as usual. Consider pull rate limits. |
| File hooks | |
| Server hooks | |
| Advanced search | If two GitLab instances are using the same advanced search instance, then they can both modify Search data. This is a split-brain scenario which can occur for example after promoting a secondary Geo site while the primary Geo site is live. |
| ClickHouse calls | ClickHouse requests are not silenced because they are considered internal to a site. |
| Snowplow | A proposal exists in issue 409661 to silence these requests. |
| Deprecated Kubernetes Connections | There is a proposal to silence these requests. |
| Container registry webhooks | There is a proposal to silence these requests. |