Starts a secret rotation for the given addon. MySQL keeps usernames unchanged and defaults to user-facing passwords only; mode=full also rotates internal passwords and restarts the addon during rotation and finalisation. Both MySQL modes retain old passwords until finalised. RabbitMQ also defaults to user-facing, rotating account usernames and passwords only. RabbitMQ mode=full also rotates the Erlang cookie and pauses the entire addon, causing downtime and interrupted connections. The addon can remain paused if rotation fails. Both RabbitMQ modes keep old accounts valid until finalisation. Retries retain the saved rotation mode. New credentials are created with the same permissions; the old credentials remain valid until the rotation is finalised. Redis instead performs a full restart and completes in one step: old credentials are revoked and clients must reconnect with the new password. Redeploy linked services yourself. Redis without persistence is not supported. Redis Sentinel requires at least three replicas. MinIO also restarts all nodes and completes in one step: only the secret key changes, while the access key, users and access keys stay valid. Console sessions, temporary credentials and presigned URLs signed with the old secret key stop working. Restoring a backup taken before the rotation restores the old secret key.
Required permission
Project > Addons > General > Update
Path parameters
projectId
string requiredID of the projectaddonId
string requiredID of the addon
Request body
- {object}
mode
stringMySQL and RabbitMQ: defaults to user-facing. MySQL full rotation also changes internal passwords and restarts the addon during rotation and finalisation. RabbitMQ user-facing rotation changes account usernames and passwords only. RabbitMQ full rotation also changes the Erlang cookie and pauses the entire addon, causing downtime and interrupted connections. The addon can remain paused on failure. Both modes keep old account credentials valid until finalisation. RabbitMQ finalisation does not pause the addon again.one ofuser-facing, full
Response body
- {object}Response object.
data
{object} requiredResult data.
POST /v1/projects/{projectId}/addons/{addonId}/secret-rotation
POST /v1/teams/{teamId}/projects/{projectId}/addons/{addonId}/secret-rotation
Example request
Request body
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
--request POST \
--data '{}' \
https://api.northflank.com/v1/projects/{projectId}/addons/{addonId}/secret-rotationExample response
200 OK
The operation was performed successfully.
JSON
{
"data": {}
}