You're viewing version 3.2 of the OpenSearch documentation. This version is no longer maintained. For the latest version, see the current documentation. For information about OpenSearch version maintenance, see Release Schedule and Maintenance Policy.
Patch Configuration API
Introduced 1.0
The Patch Configuration API allows you to update specific parts of the Security plugin configuration without replacing the entire configuration document.
This operation can easily break your existing security configuration. We strongly recommend using the securityadmin.sh script instead, which includes validations and safeguards to prevent misconfiguration.
Endpoints
PATCH /_plugins/_security/api/securityconfig
Request body fields
The request body is required. It is an array of JSON objects (NDJSON). Each object has the following fields.
| Property | Required | Data type | Description |
|---|---|---|---|
op | Required | String | The operation to perform. Valid values are add, remove, replace, move, copy, and test. |
path | Required | String | The JSON pointer path to the location in the configuration to modify. |
value | Optional | Object | The value to use for the operation. Required for add, replace, and test operations. |
Example request
The following example adds a new authentication domain and modifies an existing setting:
PATCH /_plugins/_security/api/securityconfig
[
{
"op": "add",
"path": "/config/dynamic/authc/saml_auth_domain",
"value": {
"http_enabled": true,
"transport_enabled": false,
"order": 1,
"http_authenticator": {
"type": "saml",
"challenge": false,
"config": {
"idp": {
"metadata_url": "https://idp.example.com/saml/metadata"
},
"sp": {
"entity_id": "opensearch"
}
}
},
"authentication_backend": {
"type": "noop",
"config": {}
}
}
},
{
"op": "replace",
"path": "/config/dynamic/multi_rolespan_enabled",
"value": true
},
{
"op": "remove",
"path": "/config/dynamic/authc/legacy_auth_domain"
}
]response = client.security.patch_configuration(
body = [
{
"op": "add",
"path": "/config/dynamic/authc/saml_auth_domain",
"value": {
"http_enabled": true,
"transport_enabled": false,
"order": 1,
"http_authenticator": {
"type": "saml",
"challenge": false,
"config": {
"idp": {
"metadata_url": "https://idp.example.com/saml/metadata"
},
"sp": {
"entity_id": "opensearch"
}
}
},
"authentication_backend": {
"type": "noop",
"config": {}
}
}
},
{
"op": "replace",
"path": "/config/dynamic/multi_rolespan_enabled",
"value": true
},
{
"op": "remove",
"path": "/config/dynamic/authc/legacy_auth_domain"
}
]
)Example response
{
"status": "OK",
"message": "Configuration updated."
}
Response body fields
The response body is a JSON object with the following fields.
| Property | Data type | Description |
|---|---|---|
status | String | The status of the request. A successful request returns “OK”. |
message | String | A message describing the result of the operation. |