Persistent store integrations (beta)

Create big segment store integration

POST
/api/v2/integration-capabilities/big-segment-store/{projectKey}/{environmentKey}/{integrationKey}

Create a persistent store integration.

If you are using server-side SDKs, segments synced from external tools and larger list-based segments require a persistent store within your infrastructure. LaunchDarkly keeps the persistent store up to date and consults it during flag evaluation.

You can use either Redis or DynamoDB as your persistent store. When you create a persistent store integration, the fields in the config object in the request vary depending on which persistent store you use.

If you are using Redis to create your persistent store integration, you will need to know:

  • Your Redis host
  • Your Redis port
  • Your Redis username
  • Your Redis password
  • Whether or not LaunchDarkly should connect using TLS

If you are using DynamoDB to create your persistent store integration, you will need to know:

  • Your DynamoDB table name. The table must have the following schema:
    • Partition key: namespace (string)
    • Sort key: key (string)
  • Your DynamoDB Amazon Web Services (AWS) region.
  • Your AWS role Amazon Resource Name (ARN). This is the role that LaunchDarkly will assume to manage your DynamoDB table.
  • The External ID you specified when creating your Amazon Resource Name (ARN).

To learn more, read Segment configuration.

Authorization

ApiKey read, write
Authorization<token>

In: header

Scope: read, write

Path Parameters

projectKey*string

The project key

Formatstring
environmentKey*string

The environment key

Formatstring
integrationKey*string

The integration key, either redis or dynamodb

Formatstring

Request Body

application/json

on?boolean

Whether the integration configuration is active. Default value is false.

config*

The global integration settings, as specified by the formVariables in the manifest.json for this integration.

tags?array<string>

Tags to associate with the integration

name?string

Name to identify the integration

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v2/integration-capabilities/big-segment-store/string/string/string" \  -H "Content-Type: application/json" \  -d '{    "config": {      "optional": "example value for optional formVariables property for sample-integration",      "required": "example value for required formVariables property for sample-integration"    },    "name": "Example persistent store integration",    "on": false,    "tags": [      "example-tag"    ]  }'
{  "_links": {    "self": {      "href": "string",      "type": "string"    },    "parent": {      "href": "string",      "type": "string"    },    "project": {      "href": "string",      "type": "string"    },    "environment": {      "href": "string",      "type": "string"    }  },  "_id": "12ab3c4d5ef1a2345bcde67f",  "integrationKey": "redis",  "projectKey": "default",  "environmentKey": "development",  "config": {    "property1": null,    "property2": null  },  "on": true,  "tags": [],  "name": "Development environment configuration",  "version": 1,  "_access": {    "denied": [      {        "action": "string",        "reason": {          "resources": [            "proj/*:env/*;qa_*:/flag/*"          ],          "notResources": [            "string"          ],          "actions": [            "*"          ],          "notActions": [            "string"          ],          "effect": "allow",          "role_name": "string"        }      }    ],    "allowed": [      {        "action": "string",        "reason": {          "resources": [            "proj/*:env/*;qa_*:/flag/*"          ],          "notResources": [            "string"          ],          "actions": [            "*"          ],          "notActions": [            "string"          ],          "effect": "allow",          "role_name": "string"        }      }    ]  },  "_status": {    "available": true,    "potentiallyStale": false,    "lastSync": "1717263000000",    "lastError": "1714584600000",    "errors": [      {        "statusCode": 0,        "message": "string",        "timestamp": 0      }    ]  }}