• Home
  • Integrations
  • SDKs
  • Guides
  • API docs
    No results for ""
    EXPAND ALL

    EDIT ON GITHUB

    Apex SDK reference

    Read time: 1 minute
    Last edited: Mar 16, 2023

    Overview

    This topic documents how to get started with the Apex SDK, and links to reference information on all of the supported features.

    SDK quick links

    LaunchDarkly's SDKs are open source. In addition to this reference guide, we provide source, API reference documentation, and a sample application:

    ResourceLocation
    SDK API documentationSDK API docs
    GitHub repositoryapex-server-sdk
    Sample applicationApex
    Published moduleNone

    Getting started

    After you complete the Getting Started process, follow these instructions to start using the LaunchDarkly SDK in your Salesforce Apex application.

    The first step is deploying the SDK to Salesforce:

    git clone https://github.com/launchdarkly/apex-server-sdk.git
    cd apex-server-sdk
    sfdx force:source:deploy --targetusername='YOUR TARGET ORG' --sourcepath='force-app'

    Initializing the client

    Initialize the client as follows:

    LDClient client = new LDClient();

    You can use client to check which variation a particular user will receive for a given feature flag.

    Here's how:

    LDUser user = new LDUser.Builder('user-key-123abc')
    .setName('Sandy')
    .build();
    Boolean value = client.boolVariation(user, flagKey, false);
    if (value) {
    // Application code to show the feature
    } else {
    // The code to run if the feature is off
    }

    After the SDK is deployed to Salesforce, start the bridge to begin evaluating flags. The bridge must be running in order to receive flag updates and publish events to LaunchDarkly.

    Using the LaunchDarkly Salesforce bridge

    The Apex server-side SDK is architected differently than our other SDKs. In most of our SDKs, the SDK downloads feature configurations and sends events by itself. The Apex SDK instead uses an external bridging application to connect LaunchDarkly and Salesforce.

    Because the SDK uses a bridge to handle state management, there is no initialization delay required to download flags. Additionally, the lack of state inside the SDK means that initializing multiple instances of the SDK is not problematic.

    The Apex SDK exposes two HTTP endpoints that the bridge uses: /store and /event. The bridge pushes flag updates to Salesforce through one endpoint, and pulls events from Salesforce with the other.

    The bridge is a Go application configured with environment variables. The bridge needs authorization for both LaunchDarkly and Salesforce.

    To build the bridge from source install Go 1.14 or higher. To install Go, read Go's documentation.

    Build and run the bridge like this:

    cd bridge && go build .
    export LD_SDK_KEY='Your LaunchDarkly SDK key'
    export SALESFORCE_URL='Your Salesforce Apex REST URL'
    export OAUTH_ID='Your Salesforce OAuth Id'
    export OAUTH_SECRET='Your Salesforce OAuth secret'
    export OAUTH_USERNAME='Your Salesforce username'
    export OAUTH_PASSWORD='Your Salesforce password + security token'
    ./bridge

    The logs indicate if the bridge is running. If it fails, the logs show the errors that occurred. You must deploy the SDK to Salesforce before you run the bridge.

    Supported features

    This SDK supports the following features: