Publish updates to instances
Use the NGINX Instance Manager Publish API to deploy updated security configurations to your NGINX instances or instance groups.
You can publish security policies, log profiles, attack signatures, bot signatures, and threat campaigns.
Call this endpoint after you’ve created or updated the resources you want to deploy.
Use tools such ascurlor Postman to send requests to the NGINX Instance Manager REST API. The API base URL ishttps://<NIM-FQDN>/api/[nim|platform]/<API_VERSION>.
All requests require authentication. For details on authentication methods, see the API overview.
| Method | Endpoint |
|---|---|
| POST | /api/platform/v1/security/publish |
Include the following details in your request body, depending on what you’re publishing:
- Instance and instance group UIDs
- Policy UID and name
- Log profile UID and name
- Attack signature library UID and version
- Bot signature library UID and version
- Threat campaign UID and version
curl -X POST https://{{NIM_FQDN}}/api/platform/v1/security/publish \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d @publish-request.jsonJSON request
{
"publications": [
{
"attackSignatureLibrary": {
"uid": "<attack-signature-library-uid>",
"versionDateTime": "2022.10.02"
},
"botSignatureLibrary": {
"uid": "<bot-signature-library-uid>",
"versionDateTime": "2022.10.03"
},
"instanceGroups": [
"<instance-group-uid>"
],
"instances": [
"<instance-uid>"
],
"logProfileContent": {
"name": "default-log-profile",
"uid": "<log-profile-uid>"
},
"policyContent": {
"name": "default-enforcement",
"uid": "<policy-uid>"
},
"threatCampaign": {
"uid": "<threat-campaign-uid>",
"versionDateTime": "2022.10.01"
}
}
]
}JSON response
{
"deployments": [
{
"deploymentUID": "ddc781ca-15d6-46c9-86ea-e7bdb91e8dec",
"links": {
"rel": "/api/platform/v1/security/deployments/ddc781ca-15d6-46c9-86ea-e7bdb91e8dec"
},
"result": "Publish security content request Accepted"
}
]
}