* Docs: Settings updates on runtime docs skeleton
* Docs: Settings HTTP API
* Docs: Minor changes on settings updates at runtime docs
* Docs: Settings updates at runtime description
* Docs: Minor fix
* Docs: Move PUT /api/admin/settings docs into Admin API page
* Docs: Added longer explanation into 'Settings updates at runtime' page
* Apply suggestions from code review
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
* Docs: Include order of precedence description at settings updates page
* Update docs/sources/http_api/admin.md
* Docs: Add link to main configuration page from Settings updates at runtime
* Apply suggestions from code review
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
(cherry picked from commit 886f6fc55b)
This commit is contained in:
@@ -51,6 +51,7 @@ With Grafana Enterprise, you get access to new features, including:
|
||||
- [Vault integration]({{< relref "vault.md" >}}) to manage your configuration or provisioning secrets with Vault.
|
||||
- [Auditing]({{< relref "auditing.md" >}}) tracks important changes to your Grafana instance to help you manage and mitigate suspicious activity and meet compliance requirements.
|
||||
- [Request security]({{< relref "request-security.md" >}}) makes it possible to restrict outgoing requests from the Grafana server.
|
||||
- [Settings updates at runtime]({{< relref "settings-updates.md" >}}) allows you to update Grafana settings at runtime without requiring a restart.
|
||||
|
||||
## Enterprise data sources
|
||||
|
||||
@@ -74,4 +75,3 @@ With a Grafana Enterprise license, you get access to premium data sources, inclu
|
||||
## Try Grafana Enterprise
|
||||
|
||||
To purchase or obtain a trial license contact the Grafana Labs [Sales Team](https://grafana.com/contact?about=support&topic=Grafana%20Enterprise).
|
||||
|
||||
|
||||
@@ -77,3 +77,7 @@ Auditing is not affected by an expired license.
|
||||
The concurrent session limit remains active for seven days after the expiration date, after which it will be turned off.
|
||||
|
||||
The active users limit is turned off immediately.
|
||||
|
||||
### Settings updates at runtime
|
||||
|
||||
Settings updates at runtime are not affected by an expired license.
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
+++
|
||||
title = "Settings updates at runtime"
|
||||
description = "Settings updates at runtime"
|
||||
keywords = ["grafana", "runtime", "settings"]
|
||||
weight = 500
|
||||
+++
|
||||
|
||||
# Settings updates at runtime
|
||||
|
||||
> **Note:** Available in Grafana Enterprise v8.0+.
|
||||
|
||||
Settings updates at runtime allows you to update Grafana settings with no need to restart the Grafana server.
|
||||
|
||||
Updates that happen at runtime are stored in the database and override
|
||||
[settings from the other sources](https://grafana.com/docs/grafana/latest/administration/configuration/)
|
||||
(arguments, environment variables, settings file, etc). Therefore, every time a specific setting key is removed at runtime,
|
||||
the value used for that key is the inherited one from the other sources in the reverse order of precedence
|
||||
(`arguments > environment variables > settings file`), being the application default the value used when no one provided
|
||||
through one of these, at least.
|
||||
|
||||
Currently, **it only supports updates on the `auth.saml` section.**
|
||||
|
||||
## Update settings via the API
|
||||
|
||||
You can update settings through the [Admin API]({{< relref "../http_api/admin.md#update-settings" >}}).
|
||||
|
||||
When you submit a settings update via API, Grafana verifies if the given settings updates are allowed and valid. If they are, then Grafana stores the settings in the database and reloads
|
||||
Grafana services with no need to restart the instance.
|
||||
|
||||
So, the payload of a `PUT` request to the update settings endpoint (`/api/admin/settings`)
|
||||
should contain (either one or both):
|
||||
- An `updates` map with a key, and a value per section you want to set.
|
||||
- A `removals` list with keys per section you want to unset.
|
||||
|
||||
For example, if you provide the following `updates`:
|
||||
|
||||
```json
|
||||
{
|
||||
"auth.saml": {
|
||||
"enabled": "true",
|
||||
"single_logout": "false"
|
||||
}
|
||||
```
|
||||
it would enable SAML and disable single logouts. And, if you provide the following `removals`:
|
||||
```json
|
||||
{
|
||||
"auth.saml": ["allow_idp_initiated"]
|
||||
}
|
||||
```
|
||||
|
||||
it would remove the key/value setting identified by `allow_idp_initiated` within the `auth.saml`.
|
||||
So, the SAML service would be reloaded and that value would be inherited for either (settings `.ini` file,
|
||||
environment variable, command line arguments or any other accepted mechanism to provide configuration).
|
||||
|
||||
Therefore, the complete HTTP payload would looks like:
|
||||
|
||||
```json
|
||||
{
|
||||
"updates": {
|
||||
"auth.saml": {
|
||||
"enabled": "true",
|
||||
"single_logout": "false"
|
||||
}
|
||||
},
|
||||
"removals": {
|
||||
"auth.saml": ["allow_idp_initiated"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
In case any of these settings cannot be overridden nor valid, it would return an error and these settings
|
||||
won't be persisted into the database.
|
||||
|
||||
## Background job (high availability set-ups)
|
||||
|
||||
Grafana Enterprise has a built-in scheduled background job that looks into the database every minute for
|
||||
settings updates. If there are updates, it reloads the Grafana services affected by the detected changes.
|
||||
|
||||
The background job synchronizes settings between instances in high availability set-ups. So, after you perform some changes through the
|
||||
HTTP API, then the other instances are synchronized through the database and the background job.
|
||||
Reference in New Issue
Block a user