Skip to main content
POST
/
api
/
v2
/
secret-rotations
/
salesforce-oauth-credentials
cURL
curl --request POST \
  --url https://us.infisical.com/api/v2/secret-rotations/salesforce-oauth-credentials \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "projectId": "<string>",
  "connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "environment": "<string>",
  "secretPath": "<string>",
  "rotationInterval": 2,
  "parameters": {
    "appId": "<string>",
    "appName": "<string>"
  },
  "secretsMapping": {
    "consumerKey": "<string>",
    "consumerSecret": "<string>"
  },
  "description": "<string>",
  "isAutoRotationEnabled": true
}
'
{
  "secretRotation": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "<string>",
    "folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "rotationInterval": 123,
    "rotationStatus": "<string>",
    "lastRotationAttemptedAt": "2023-11-07T05:31:56Z",
    "lastRotatedAt": "2023-11-07T05:31:56Z",
    "connection": {
      "app": "salesforce",
      "name": "<string>",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    },
    "environment": {
      "slug": "<string>",
      "name": "<string>",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    },
    "projectId": "<string>",
    "folder": {
      "id": "<string>",
      "path": "<string>"
    },
    "rotateAtUtc": {
      "hours": 11.5,
      "minutes": 29.5
    },
    "type": "salesforce-oauth-credentials",
    "parameters": {
      "appId": "<string>",
      "appName": "<string>"
    },
    "secretsMapping": {
      "consumerKey": "<string>",
      "consumerSecret": "<string>"
    },
    "description": "<string>",
    "isAutoRotationEnabled": true,
    "activeIndex": 0,
    "lastRotationJobId": "<string>",
    "nextRotationAt": "2023-11-07T05:31:56Z",
    "isLastRotationManual": true,
    "lastRotationMessage": "<string>"
  }
}
Check out the configuration docs for Salesforce OAuth Credentials Rotations to learn how to obtain the required parameters.
Creates a Salesforce OAuth Credentials secret rotation. Infisical will rotate the consumer secret of the specified External Client App via your Salesforce connection and write the rotated consumer key/secret pair to the specified secret path.

Request body

FieldTypeRequiredDescription
namestringYesA unique, slug-friendly name for the rotation (max 100 characters).
projectIdstring (UUID)YesThe project ID.
connectionIdstring (UUID)YesID of the Salesforce app connection.
environmentstringYesEnvironment slug (e.g. dev, prod).
secretPathstringYesPath where the generated secrets will be stored.
isAutoRotationEnabledbooleanNoWhether to rotate automatically on the schedule. Defaults to true.
rotationIntervalnumberYesDays between rotations (minimum 1).
rotateAtUtcobjectNoTime of day (UTC) to run rotation: { "hours", "minutes" }. Defaults to { "hours": 0, "minutes": 0 }.
parameters.appIdstringYesThe identifier of the Salesforce External Client App to rotate the consumer secret for.
parameters.appNamestringYesThe developer name of the Salesforce External Client App to rotate the consumer secret for.
secretsMapping.consumerKeystringYesSecret key name to store the rotated consumer key (e.g. SALESFORCE_CONSUMER_KEY).
secretsMapping.consumerSecretstringYesSecret key name to store the rotated consumer secret (e.g. SALESFORCE_CONSUMER_SECRET).
descriptionstringNoOptional description.

Sample request

curl --request POST \
  --url https://us.infisical.com/api/v2/secret-rotations/salesforce-oauth-credentials \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer <ACCESS_TOKEN>' \
  --data '{
    "name": "my-salesforce-rotation",
    "projectId": "<project-id>",
    "description": "Salesforce ECA consumer secret rotation",
    "connectionId": "<salesforce-connection-id>",
    "environment": "dev",
    "secretPath": "/",
    "isAutoRotationEnabled": true,
    "rotationInterval": 30,
    "rotateAtUtc": { "hours": 0, "minutes": 0 },
    "parameters": {
      "appId": "<external-client-app-id>",
      "appName": "<external-client-app-developer-name>"
    },
    "secretsMapping": {
      "consumerKey": "SALESFORCE_CONSUMER_KEY",
      "consumerSecret": "SALESFORCE_CONSUMER_SECRET"
    }
  }'

Sample response

{
  "secretRotation": {
    "id": "<rotation-id>",
    "name": "my-salesforce-rotation",
    "description": "Salesforce ECA consumer secret rotation",
    "secretsMapping": {
      "consumerKey": "SALESFORCE_CONSUMER_KEY",
      "consumerSecret": "SALESFORCE_CONSUMER_SECRET"
    },
    "isAutoRotationEnabled": true,
    "activeIndex": 0,
    "connectionId": "<salesforce-connection-id>",
    "rotationInterval": 30,
    "rotateAtUtc": { "hours": 0, "minutes": 0 },
    "type": "salesforce-oauth-credentials",
    "parameters": {
      "appId": "<external-client-app-id>",
      "appName": "<external-client-app-developer-name>"
    }
  }
}

Body

application/json
name
string
required

The name of the Salesforce OAuth Credentials Rotation to create. Must be slug-friendly.

Required string length: 1 - 64
projectId
string
required

The ID of the project to create the rotation in.

Minimum string length: 1
connectionId
string<uuid>
required

The ID of the Salesforce Connection to use for rotation.

environment
string
required

The slug of the project environment to create the rotation in.

Required string length: 1 - 64
secretPath
string
required

The secret path of the project to create the rotation in.

Minimum string length: 1
rotationInterval
number
required

The interval, in days, to automatically rotate secrets.

Required range: x >= 1
parameters
object
required
secretsMapping
object
required
description
string | null

An optional description for the Salesforce OAuth Credentials Rotation.

Maximum string length: 256
isAutoRotationEnabled
boolean
default:true

Whether secrets should be automatically rotated when the specified rotation interval has elapsed.

rotateAtUtc
object

The hours and minutes rotation should occur at in UTC. Defaults to Midnight (00:00) UTC.

Response

Default Response

secretRotation
object
required