A project's automation configuration determines the goal state of its MongoDB processes and agents. The MongoDB Agent builds the deployment according to the goals specified.
An automation configuration might contain sensitive information, such as passwords and key values. This resource allows you to update a project's automation configuration without updating any fields that contain sensitive information.
PUT requests to the
/groups/{PROJECT-ID}/automationConfig/noSecrets endpoint ignore any
fields in the automation configuration in your request body that contain
sensitive information, leaving their current values unchanged and
updating all other fields. To update the full automation configuration,
including any sensitive information, use the
/groups/{PROJECT-ID}/automationConfig endpoint.
To update the configuration:
Retrieve the current configuration.
You can use the /groups/{PROJECT-ID}/automationConfig endpoint to get the full configuration, or use the /groups/{PROJECT-ID}/automationConfig/noSecrets endpoint to get the configuration with sensitive information redacted, such as passwords or key values.
Make changes to a copy of the current configuration, changing only those items you want modified.
Replace the entire configuration using
PUT, with the updated configuration in the request body. You must usePUT. Do not usePATCH.When you submit updates, Ops Manager makes internal modifications to the data and then saves your new configuration version.
Note
Some parameters cannot be updated through the automationConfig
endpoint. To learn more, see:
To make updates to the MongoDB Agent other than hostname, you
must do so through a different endpoint.
To see a tutorial on how to update an automation configuration, see Update a Project's Automation Configuration.
The MongoDB Agents continuously poll Ops Manager for changes to the configuration and fetch configuration updates when they occur. The Agents then adjust the states of their live processes to match.
Warning
Making changes to the automation configuration using a PUT
request can cause cluster downtime. Test your changes in lower
environments before you apply them to production environments.
Warning
There is no protection in the Ops Manager Administration API to prevent concurrent modifications. If two administrators both start with a configuration based on the current version, make their own modifications, and then submit their modifications, the later modification wins.
Warning
Update Agent Username before Enabling Authentication
The automation configuration provides the sole means to enabling authentication on your clusters using the API. To enable authentication, first call the following endpoints with "username": "mms-automation":
Required Roles
This resource requires the Project Automation Admin role.
Resource
Base URL: https://{OPSMANAGER-HOST}:{PORT}/api/public/v1.0
PUT /groups/{PROJECT-ID}/automationConfig/noSecrets
Request
Path Parameters
Name | Type | Necessity | Description |
|---|---|---|---|
PROJECT-ID | string | Required | Unique identifier of the group that owns the automation configuration. |
Query Parameters
The following query parameters are optional:
Name | Type | Necessity | Description | Default | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
pretty | boolean | Optional | Flag indicating whether the response body should be in a prettyprint format. |
| ||||||
envelope | boolean | Optional | Flag that indicates whether or not to wrap the response in an envelope. Some API clients cannot access the HTTP response headers or status code. To remediate this, set envelope=true in the query. For endpoints that return one result, the response body includes:
|
|
Body Parameters
To review these parameters, see Automation Configuration Parameters.
Response
To review these parameters, see Automation Configuration Parameters.
Example Request
The following replaces the automation configuration with the updated
configuration saved in /Users/admin/updated-conf.json. For an
example of an updated configuration document, see
Example Automation Configuration.
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request PUT "https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/automationConfig/noSecrets?pretty=true" \ --data-binary "@/Users/admin/updated-conf.json"
Example Response
Response Header
401 Unauthorized Content-Type: application/json;charset=ISO-8859-1 Date: {dateInUnixFormat} WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="{nonce}", algorithm=MD5, op="auth", stale=false Content-Length: {requestLengthInBytes} Connection: keep-alive
200 OK Vary: Accept-Encoding Content-Type: application/json Strict-Transport-Security: max-age=300 Date: {dateInUnixFormat} Connection: keep-alive Content-Length: {requestLengthInBytes} X-MongoDB-Service-Version: gitHash={gitHash}; versionString={ApplicationVersion}
Response Body
To review an example of this configuration, see Example Automation Configuration.