> ## Documentation Index
> Fetch the complete documentation index at: https://launchdarkly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Application metadata configuration

<View title="Developer" />

<View title="Federal docs" />

<View title="EU docs" />

This topic explains how to configure LaunchDarkly SDKs to send application metadata to LaunchDarkly. This feature is available for client-side and server-side SDKs.

## Customize application information

Some LaunchDarkly SDKs support configuration options for specifying application information, including application identifier and version. When you configure these options, the SDK automatically sends this application information to LaunchDarkly.

In the LaunchDarkly user interface (UI), the application information appears in the following places:

* Application information appears in the "From source" field on Context details pages. To learn more, read [The context details page](/docs/home/flags/context-details).
* Application information appears in the **Applications** page. From this page, you can also set additional properties, such as whether an application version is supported or unsupported. To learn more, read [Applications and application versions](/docs/home/releases/apps-and-app-versions).
* Application metadata also appears on the **Usage** pages. This information can help you identify which applications are consuming service connections.

Additionally, some LaunchDarkly mobile SDKs support the automatic collection of data about the mobile environment where the application is running. When you enable this collection of environment variables, the application information that you configure here is automatically added to an `ld_application` context that the SDK then includes in each evaluation context. To learn more, read [Automatic environment attributes](/docs/sdk/features/environment-attributes).

After the SDK has evaluated at least one feature flag using an `ld_application` context, you can create mobile targeting rules based on application and application version information. To learn more, read [Applications and application versions](/docs/home/releases/apps-and-app-versions) and [Mobile targeting](/docs/home/flags/mobile-targeting).

For the SDKs that support this feature, you can send some or all of the following metadata:

* Application identifier (string): A unique identifier representing the application where the LaunchDarkly SDK is running. For example, `authentication-service`. The maximum length is 64 characters. If you do not set an application identifier, the SDK discards the rest of the application metadata and logs a warning.
* Application name (string): A human-friendly name for the application where the LaunchDarkly SDK is running. For example, `Authentication-Service`.
* Application version (string): A unique identifier representing the version of the application where the LaunchDarkly SDK is running. For example, you could set this to the semantic version of your application, such as `1.0.0`. If you are using engineering insights, you must set the application version either to the full secure hash algorithm (SHA) of the GitHub commit for this deployment, such as `a12bcde3f45ab6c789123456d78efabcde91234f`, or to the tag associated with the GitHub commit for this deployment. Learn more about [sending deployment information to engineering insights](/docs/home/releases/config-deployment#set-the-application-version).
* Application version name (string): A human-friendly name for the version of the application in which the LaunchDarkly SDK is running. For example, `v1`.

For all fields, the value can use only alphanumeric characters and hyphens `-`, periods `.`, and underscores `_`. Spaces are converted to hyphens.

You can set these values when you configure the SDK. All connections to LaunchDarkly from a client will send the same value to LaunchDarkly, whether the connection is through streaming, polling, or events. You cannot change the value after you configure the client.

<Tip>
  **Ensure your application identifier is unique per distributed application**

  We recommend that you set the application identifier to a different value for each separately distributed software binary.

  For example, suppose you have two mobile apps, one for iOS and one for Android. If you set the application identifier to "example-app" and the version to "1.0" in both SDKs, then when you create a flag targeting rule based only on application information, the flag will target both the iOS and Android application. This may not be what you intend. We recommend using different application identifiers in this situation, for instance, "example-app-ios" and "example-app-android."

  You can also enable automatic environment attributes, and then create flag targeting rules based on both the application information and the device information. To learn more, read [Automatic environment attributes](/docs/sdk/features/environment-attributes).
</Tip>

## Using application metadata with Relay Proxy

If your SDKs connect to LaunchDarkly through a [Relay Proxy](/docs/sdk/relay-proxy), you must use Relay Proxy version 8.17.8 or later to propagate application metadata to LaunchDarkly.

With Relay Proxy version 8.17.8 and later, the Relay Proxy forwards the `applicationId` and `applicationVersion` from downstream SDKs in usage reporting data. This allows you to see per-application attribution in the **Service Connections** usage tab.

Prior to version 8.17.8, the Relay Proxy reports its own identity instead of forwarding metadata from downstream SDKs. All proxied traffic appears as "LDRelay" in the Service Connections usage tab.

With version 8.17.8 or later, your downstream SDKs must also configure `applicationId` for per-application attribution to appear. Without it, proxied traffic appears as "Unknown" instead of "LDRelay."

To learn more about the Relay Proxy, read [The Relay Proxy](/docs/sdk/relay-proxy).

## Configure application metadata for engineering insights

<Note>
  **Engineering insights is available to customers on select plans**

  Engineering insights is only available to customers on select plans. To learn more, [read about our pricing](https://launchdarkly.com/pricing/). To upgrade your plan, [contact Sales](https://launchdarkly.com/contact-sales/).
</Note>

Configuring your application metadata to send deployment information lets engineering insights track the frequency and timing of your deployments. If you set the application version to a deployment SHA or tag from GitHub, engineering insights will also track which commits and pull requests are in your deployment.

<Frame caption="An example of deployment frequency summary in engineering insights.">
  <img src="https://mintcdn.com/launchdarkly/YIC2H8XW-fomhquw/images/__LD_UI_no_test/eng-insights-deployment-frequency-summary.png?fit=max&auto=format&n=YIC2H8XW-fomhquw&q=85&s=794f685f846ae121e2f587c007592f0a" alt="An example of deployment frequency summary in engineering insights." width="2264" height="520" data-path="images/__LD_UI_no_test/eng-insights-deployment-frequency-summary.png" />
</Frame>

To learn how to retrieve the SHA for your deployment, read [Set up automated deployment detection](/docs/home/releases/config-deployment#option-1-set-up-automated-deployment-detection).

Details about each SDK's configuration are available in the SDK-specific sections below:

* [Client-side SDKs](#client-side-sdks)
* [Server-side SDKs](#server-side-sdks)

## Client-side SDKs

This feature is available in the following client-side SDKs:

* [.NET (client-side)](#net-client-side)
* [Android](#android)
* [C++ (client-side)](#c++-client-side)
* [Flutter](#flutter)
* [iOS](#ios)
* [JavaScript](#javascript)
* [Node.js (client-side)](#node-js-client-side)
* [React Native](#react-native)
* [React Web](#javascript): The React Web SDK relies on the JavaScript SDK for this functionality.
* [Roku](#roku)
* [Vue](#vue): The Vue SDK relies on the JavaScript SDK for this functionality.

### .NET (client-side)

<Accordion title="Expand .NET (client-side) code sample">
  This code sample shows you how to configure the application information:

  <CodeGroup>
    ```csharp title="C#" lines wrap theme={null}
    var config = Configuration
        .Builder("example-mobile-key", ConfigurationBuilder.AutoEnvAttributes.Enabled)
        .ApplicationInfo(Components.ApplicationInfo()
            .ApplicationId("authentication-service")
            .ApplicationName("Authentication-Service")
            .ApplicationVersion("1.0.0")
            .ApplicationVersionName("v1")
        )
        .Build();
    ```
  </CodeGroup>

  The application information is supported in .NET SDK v3.1.0 and later.

  If you configure the application information and have enabled automatic environment attribute collection, the values you set will override any values collected automatically. The application identifier, name, version, and version name you set explicitly will be included in the `ld_application` context. To learn more, read [Automatic environment attributes and application metadata configuration](/docs/sdk/features/environment-attributes#automatic-environment-attributes-and-application-metadata-configuration).

  To learn more about the configuration option, read [`ApplicationInfoBuilder`](https://launchdarkly.github.io/dotnet-core/pkgs/sdk/client/api/LaunchDarkly.Sdk.ApplicationInfoBuilder.html).
</Accordion>

### Android

<Accordion title="Expand Android code sample">
  This code sample shows you how to configure the application information:

  <CodeGroup>
    ```java title="Java" lines wrap theme={null}
    LDConfig config = new LDConfig.Builder(AutoEnvAttributes.Enabled)
        .applicationInfo(
            Components.applicationInfo()
                .applicationId("authentication-service")
                .applicationName("Authentication-Service")
                .applicationVersion("1.0.0")
                .applicationVersionName("v1")
        )
        .build();
    ```

    ```kotlin title="Kotlin" lines wrap theme={null}
    val ldConfig: LDConfig = LDConfig.Builder(AutoEnvAttributes.Enabled)
        .applicationInfo(
            Components.applicationInfo()
                .applicationId("authentication-service")
                .applicationName("Authentication-Service")
                .applicationVersion("1.0.0")
                .applicationVersionName("v1")
        )
        .build()
    ```
  </CodeGroup>

  The application identifier and version are supported in Android SDK v4 and later. The application name and version name are supported in Android SDK v5 and later.

  If you configure the application information and have enabled automatic environment attribute collection, the values you set will override any values collected automatically. The application identifier, name, version, and version name you set explicitly will be included in the `ld_application` context. To learn more, read [Automatic environment attributes and application metadata configuration](/docs/sdk/features/environment-attributes#automatic-environment-attributes-and-application-metadata-configuration).

  To learn more about the configuration option, read [`ApplicationInfoBuilder`](https://launchdarkly.github.io/android-client-sdk/com/launchdarkly/sdk/android/integrations/ApplicationInfoBuilder.html).
</Accordion>

### C++ (client-side)

<Accordion title="Expand C++ (client-side) code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```cpp title="C++ SDK v3.0 (native)" lines wrap theme={null}
    auto config_builder = client_side::ConfigBuilder("example-mobile-key");
    config_builder.AppInfo().Identifier("authentication-service").Version("1.0.0");
    auto config = config_builder.Build();
    ```

    ```c title="C++ SDK v3.0 (C binding)" lines wrap theme={null}
    LDClientConfigBuilder builder = LDClientConfigBuilder_New("example-mobile-key");
    LDClientConfigBuilder_AppInfo_Identifier(builder, "authentication-service");
    LDClientConfigBuilder_AppInfo_Version(builder, "1.0.0");
    LDClientConfig config;

    LDStatus status = LDClientConfigBuilder_Build(builder, &config);

    if (!LDStatus_Ok(status)) {
        /* an error occurred, config is not valid */
    }
    ```
  </CodeGroup>

  To learn more, read [`AppInfoBuilder`](https://launchdarkly.github.io/cpp-sdks/libs/client-sdk/docs/html/classlaunchdarkly_1_1config_1_1shared_1_1builders_1_1AppInfoBuilder.html).
</Accordion>

### Flutter

<Accordion title="Expand Flutter code sample">
  This code sample shows you how to configure the application information:

  <CodeGroup>
    ```dart title="Flutter SDK v4" lines wrap theme={null}
    final config = LDConfig(
      CredentialSource.fromEnvironment(),
      AutoEnvAttributes.enabled,
      applicationInfo: ApplicationInfo(
        applicationId: 'authentication-service',
        applicationName: 'Authentication-Service',
        applicationVersion: '1.0.0',
        applicationVersionName: 'v1',
      ),
    );

    ```
  </CodeGroup>

  The application identifier and version are supported in Flutter SDK v2 and later. The application name and version name are supported in Flutter SDK v3 and later.

  If you configure the application information and have enabled automatic environment attribute collection, the values you set will override any values collected automatically. The application identifier, name, version, and version name you set explicitly will be included in the `ld_application` context. To learn more, read [Automatic environment attributes and application metadata configuration](/docs/sdk/features/environment-attributes#automatic-environment-attributes-and-application-metadata-configuration).

  To learn more, read [`LDConfig`](https://pub.dev/documentation/launchdarkly_flutter_client_sdk/latest/launchdarkly_flutter_client_sdk/LDConfig-class.html).
</Accordion>

### iOS

<Accordion title="Expand iOS code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```swift title="Swift" lines wrap theme={null}
    var applicationInfo = ApplicationInfo()
    applicationInfo.applicationIdentifier("authentication-service")
    applicationInfo.applicationName("Authentication-Service")
    applicationInfo.applicationVersion("1.0.0")
    applicationInfo.applicationVersionName("v1")

    var config = LDConfig(mobileKey: mobileKey, autoEnvAttributes: .enabled)
    config.applicationInfo = applicationInfo
    ```

    ```objc title="Objective-C" lines wrap theme={null}
    LDApplicationInfo *applicationInfo = [[LDApplicationInfo alloc] init];
    [applicationInfo applicationIdentifier:@"authentication-service"];
    [applicationInfo applicationName:@"Authentication-Service"];
    [applicationInfo applicationVersion:@"1.0.0"];
    [applicationInfo applicationVersionName:@"v1"];

    LDConfig *config = [[LDConfig alloc] initWithMobileKey:mobileKey autoEnvAttributes:true];
    config.applicationInfo = applicationInfo;
    ```
  </CodeGroup>

  The application identifier and version are supported in iOS SDK v8 and later. The application name and version name are supported in iOS SDK v9 and later.

  If you configure the application information and have enabled automatic environment attribute collection, the values you set will override any values collected automatically. The application identifier, name, version, and version name you set explicitly will be included in the `ld_application` context. To learn more, read [Automatic environment attributes and application metadata configuration](/docs/sdk/features/environment-attributes#automatic-environment-attributes-and-application-metadata-configuration).

  To learn more about the specific configuration options available in this SDK, read the [SDK's API docs](https://launchdarkly.github.io/ios-client-sdk/Structs/LDConfig.html).
</Accordion>

### JavaScript

<Accordion title="Expand JavaScript code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```js title="JavaScript SDK v4.x" lines wrap theme={null}
    const options = {
      applicationInfo: {
          id: 'authentication-service',
          version: '1.0.0',
      },
    };
    // Create client
    const client = createClient('example-client-side-id', context, options);

    // Then start the client
    client.start();
    ```

    ```js title="JavaScript SDK v3.x" lines wrap theme={null}
    const options = {
      application: {
          id: 'authentication-service',
          version: '1.0.0',
      },
    };
    const client = LDClient.initialize('example-client-side-id', context, options);
    ```

    ```ts title="JavaScript SDK v3.x (TypeScript)" lines wrap theme={null}
    import * as LDClient from 'launchdarkly-js-client-sdk';

    const options: LDClient.LDOptions = {
      application: {
          id: 'authentication-service',
          version: '1.0.0',
      },
    };
    const client = LDClient.initialize('example-client-side-id', context, options);
    ```
  </CodeGroup>

  To learn more about the specific configuration options available in this SDK, read the [`LDOptions`](https://launchdarkly.github.io/js-core/packages/sdk/browser/docs/interfaces/LDOptions.html).
</Accordion>

### Node.js (client-side)

<Accordion title="Expand Node.js (client-side) code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```js title="JavaScript" lines wrap theme={null}
    const options = {
      application: {
        id: "authentication-service",
        version: "1.0.0"
      }
    };

    const client = LDClient.initialize('example-client-side-id', context, options);
    ```

    ```ts title="TypeScript" lines wrap theme={null}
    import * as LDClient from 'launchdarkly-node-client-sdk';

    const options: LDClient.LDOptions = {
      application: {
        id: "authentication-service",
        version: "1.0.0"
      }
    };
    const client = LDClient.initialize('example-client-side-id', context, options);
    ```
  </CodeGroup>

  To learn more, read [`application`](https://launchdarkly.github.io/node-client-sdk/interfaces/LDOptions.html#application).
</Accordion>

### React Native

<Accordion title="Expand React Native code sample">
  This code sample shows you how to configure the application information:

  <CodeGroup>
    ```js title="React Native SDK v10" lines wrap theme={null}
    const options: LDOptions = {
      applicationInfo: {
        id: 'authentication-service',
        name: 'Authentication-Service',
        version: '1.0.0',
        versionName: 'v1',
      }
    }

    const client = new ReactNativeLDClient('example-mobile-key', AutoEnvAttributes.Enabled, options);
    ```
  </CodeGroup>

  The application identifier and version are supported in React Native SDK v7 and later. The application name and version name are supported in React Native SDK v8 and later.

  If you configure the application information and specify the application id, all application information will be added to the `ld_application` context. Otherwise, the `ld_application` context will not be included. To learn more, read [Automatic environment attributes and application metadata configuration](/docs/sdk/features/environment-attributes#react-native).

  To learn more about the specific configuration options available in this SDK, read [`LDOptions`](https://launchdarkly.github.io/js-core/packages/sdk/react-native/docs/interfaces/LDOptions.html).
</Accordion>

### Roku

<Accordion title="Expand Roku code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```brightscript title="BrightScript" lines wrap theme={null}
    ' for a legacy Roku application
    config = LaunchDarklyConfig("example-mobile-key")

    ' for a SceneGraph Roku Application
    config = LaunchDarklyConfig("example-mobile-key", CLIENT_SCENEGRAPH_NODE)

    ' configure the application identifier and application version
    config.setApplicationInfoValue("id", "authentication-service")
    config.setApplicationInfoValue("version", "1.0.0")
    ```
  </CodeGroup>
</Accordion>

### Vue

<Accordion title="Expand Vue code sample">
  The Vue SDK relies on the [JavaScript SDK](#javascript) for application metadata configuration. Set the `applicationInfo` option in `ldOptions` when you install the plugin or create a provider.

  Here's how:

  <CodeGroup>
    ```ts title="Vue SDK v3.0" lines wrap theme={null}
    import { createApp } from 'vue'
    import { LDVuePlugin } from '@launchdarkly/vue-client-sdk'
    import App from './App.vue'

    createApp(App)
      .use(LDVuePlugin, {
        clientSideID: 'example-client-side-id',
        context: { kind: 'user', key: 'example-context-key' },
        ldOptions: {
          applicationInfo: {
            id: 'authentication-service',
            version: '1.0.0'
          }
        }
      })
      .mount('#app')
    ```
  </CodeGroup>
</Accordion>

## Server-side SDKs

This feature is available for the following server-side SDKs:

* [.NET (server-side)](#net-server-side)
* [C++ (server-side)](#c++-server-side)
* [Erlang](#erlang)
* [Go](#go)
* [Haskell](#haskell)
* [Java](#java)
* [Lua](#lua)
* [Node.js (server-side)](#node-js-server-side)
* [PHP](#php)
* [Python](#python)
* [Ruby](#ruby)
* [Rust](#rust)

### .NET (server-side)

<Accordion title="Expand .NET (server-side) code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```csharp title=".NET SDK v8 (C#)" lines wrap theme={null}

    var config = Configuration.Builder("YOUR_SDK_KEY")
        .ApplicationInfo(Components.ApplicationInfo()
            .ApplicationId("authentication-service")
            .ApplicationName("Authentication-Service")
            .ApplicationVersion("1.0.0")
            .ApplicationVersionName("v1")
        )
        .Build();

    var client = new LdClient(config);

    ```
  </CodeGroup>

  For a complete list of configuration options, read the documentation for [`ConfigurationBuilder`](https://launchdarkly.github.io/dotnet-core/pkgs/sdk/server/api/LaunchDarkly.Sdk.Server.ConfigurationBuilder.html).
</Accordion>

### C++ (server-side)

<Accordion title="Expand C++ (server-side) code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```cpp title="C++ SDK v3.0 (native)" lines wrap theme={null}
    auto config_builder = server_side::ConfigBuilder("YOUR_SDK_KEY");
    config_builder.AppInfo().Identifier("authentication-service").Version("1.0.0");
    auto config = config_builder.Build();
    if (!config) {
        /* an error occurred, config is not valid */
    }
    ```

    ```c title="C++ SDK v3.0 (C binding)" lines wrap theme={null}
    LDServerConfigBuilder builder = LDServerConfigBuilder_New("YOUR_SDK_KEY");
    LDServerConfigBuilder_AppInfo_Identifier(builder, "authentication-service");
    LDServerConfigBuilder_AppInfo_Version(builder, "1.0.0");
    LDServerConfig config;

    LDStatus status = LDServerConfigBuilder_Build(builder, &config);

    if (!LDStatus_Ok(status)) {
        /* an error occurred, config is not valid */
    }
    ```
  </CodeGroup>

  To learn more, read [`AppInfoBuilder`](https://launchdarkly.github.io/cpp-sdks/libs/server-sdk/docs/html/classlaunchdarkly_1_1config_1_1shared_1_1builders_1_1AppInfoBuilder.html).
</Accordion>

### Erlang

<Accordion title="Expand Erlang code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```erlang title="Erlang" lines wrap theme={null}

    ldclient:start_instance("YOUR_SDK_KEY", #{
      application => #{
        id => <<"authentication-service">>,
        version => <<"1.0.0">>
      }
    })

    ```
  </CodeGroup>

  For a complete list of configuration options, read the documentation for the [`ldclient_config` module](https://hexdocs.pm/launchdarkly_server_sdk/ldclient_config.html).
</Accordion>

### Go

<Accordion title="Expand Go code sample">
  The code in this sample configures the application identifier and application version:

  <CodeGroup>
    ```go title="Go" lines wrap theme={null}
    var config ld.Config
    config.ApplicationInfo.ApplicationID = "authentication-service"
    config.ApplicationInfo.ApplicationVersion = "1.0.0"
    ```
  </CodeGroup>

  To learn more about the configuration options, read [`Config`](https://pkg.go.dev/gopkg.in/launchdarkly/go-server-sdk.v5#Config).
</Accordion>

### Haskell

<Accordion title="Expand Haskell code sample">
  This code sample shows you how to pass custom parameters to the client by creating a custom configuration object.

  The code in this sample configures the application identifier and application version:

  <CodeGroup>
    ```haskell title="Haskell" lines wrap theme={null}
    {-# LANGUAGE OverloadedStrings #-}

    import LaunchDarkly.Server.Config

    import Data.Function ((&))

    config :: Config
    config = makeConfig "YOUR_SDK_KEY" & configSetApplicationInfo appInfo
        where appInfo = makeApplicationInfo
                & withApplicationValue "id" "authentication-service"
                & withApplicationValue "version" "1.0.0"
    ```
  </CodeGroup>
</Accordion>

### Java

<Accordion title="Expand Java code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```java title="Java" lines wrap theme={null}
    LDConfig config = new LDConfig.Builder()
      .applicationInfo(
        Components.applicationInfo()
          .applicationId("authentication-service")
          .applicationVersion("1.0.0")
      ).build();
    ```
  </CodeGroup>

  For a complete list of configuration options for the client, including proxy settings, timeouts, and streaming/polling options, read the Javadoc for [`LDConfig.Builder`](https://launchdarkly.github.io/java-core/lib/sdk/server/com/launchdarkly/sdk/server/LDConfig.Builder.html).
</Accordion>

### Lua

<Accordion title="Expand Lua code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```lua title="Lua SDK v2" lines wrap theme={null}
    local config = {
        appInfo = {
          identifier = "authentication-server",
          version = "1.0.0"
        }
    }
    ```
  </CodeGroup>

  To learn more about the configuration options, read [`clientInit`](https://launchdarkly.github.io/lua-server-sdk/modules/launchdarkly-server-sdk.html#clientInit).
</Accordion>

### Node.js (server-side)

<Accordion title="Expand Node.js (server-side) code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```ts title="Node.js SDK v8.x+ (TypeScript)" lines wrap theme={null}
    import * as ld from '@launchdarkly/node-server-sdk';
    const options: ld.LDOptions = {
      application: {
        id: 'authentication-service',
        version: '1.0.0'
      }
    };
    const client = ld.init('YOUR_SDK_KEY', options);
    ```
  </CodeGroup>

  To learn more about the specific configuration options available in this SDK, read the [SDK's API docs](https://launchdarkly.github.io/js-core/packages/sdk/server-node/docs/interfaces/LDOptions.html).
</Accordion>

### PHP

<Accordion title="Expand PHP code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```php title="PHP" lines wrap theme={null}
    $appInfo = (new ApplicationInfo())->withId('authentication-service')->withVersion('1.0.0');
    $config = [
      "application_info" => $appInfo
    ];

    $client = new LaunchDarkly\LDClient("YOUR_SDK_KEY", $config);
    ```
  </CodeGroup>

  To learn more, read [`ApplicationInfo`](https://launchdarkly.github.io/php-server-sdk/classes/LaunchDarkly-Types-ApplicationInfo.html). For a complete list of configuration options, read the documentation for the [LDClient constructor](http://launchdarkly.github.io/php-server-sdk/classes/LaunchDarkly-LDClient.html#method___construct).
</Accordion>

### Python

<Accordion title="Expand Python code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```python title="Python" lines wrap theme={null}
    config = Config(sdk_key='YOUR_SDK_KEY',
      application = {"id": "authentication-service", "version": "1.0.0"})
    ldclient.set_config(config)

    ```
  </CodeGroup>

  To learn more, read [`application`](https://launchdarkly-python-sdk.readthedocs.io/en/latest/api-main.html#ldclient.config.Config.application). For a complete list of configuration options, read the documentation for the [`ldclient.config` module](https://launchdarkly-python-sdk.readthedocs.io/en/latest/api-main.html#module-ldclient.config).
</Accordion>

### Ruby

<Accordion title="Expand Ruby code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```ruby title="Ruby" lines wrap theme={null}
    LaunchDarkly::Config.new({
      application: {
        id: "authentication-service",
        version: "abc123def456"
      }
    })
    ```
  </CodeGroup>

  To learn more about the specific configuration options available in this SDK, read the [SDK's API docs](https://launchdarkly.github.io/ruby-server-sdk).
</Accordion>

### Rust

<Accordion title="Expand Rust code sample">
  This code sample shows you how to configure the application identifier and application version:

  <CodeGroup>
    ```rust title="Rust" lines wrap theme={null}
    let mut application_info = ApplicationInfo::new();
    application_info
        .application_identifier("authentication-service")
        .application_version("1.0.0");
    let config = ConfigBuilder::new(&sdk_key)
        .application_info(application_info)
        .build();
    ```
  </CodeGroup>

  The `Config` type lets you specify a variety of options. To learn more about the specific configuration options available in this SDK, read the [SDK's API docs](https://docs.rs/launchdarkly-server-sdk/latest/launchdarkly_server_sdk/struct.Config.html).
</Accordion>
