Client SDK reference

5 minute read

CloudBees Unify Feature Management SDKs for client applications provide desktop and embedded system integration for Java, C/C++, and .NET applications running on user devices. Use this reference when implementing feature flags in desktop applications, embedded systems, and client-side services.

Each reference covers SDK version 6.x. Refer to the CloudBees Unify changelog for version-specific differences.

Java client SDK methods

The Java client SDK provides feature flag management for Java desktop applications, standalone clients, and embedded Java systems.

Initialize the Java client SDK (setup)

This method configures the SDK with your application key and establishes connection to CloudBees Unify for Java client applications.

public static CompletableFuture<CoreState> setup(String appKey) public static CompletableFuture<CoreState> setup(String appKey, RoxOptions options)

Configures the SDK for client-side operation and retrieves feature flag configuration from CloudBees Unify. Returns CompletableFuture<CoreState> that completes when SDK has retrieved data.

Parameter Type Description

appKey

String

Environment-specific SDK key from CloudBees Unify.

options

RoxOptions

Configuration instance with desired client SDK settings.

Register flag containers (register)

This method registers container instances to make Java client flags available for configuration.

public static void register(String namespace, Object container)

Registers a container instance containing flag definitions for Java client applications. Container fields become flags in the UI named with the object structure.

Shut down the Java client SDK (shutdown)

This method deactivates the SDK and unregisters all feature flags for Java client applications.

public static void shutdown()

Performs cleanup and closes connections when Java client application exits. Call during application shutdown to ensure proper resource cleanup.

Java client SDK configuration options

Configuration options control client SDK behavior, logging, and performance settings for Java desktop applications.

RoxOptions configuration

The RoxOptions class provides configuration settings for Java client SDK behavior and performance tuning.

setVerboseLevel()

Controls logging verbosity for debugging client applications.

setCustomPlatform()

Sets custom platform identifier for specialized client environments.

setGlobalFreeze()

Configures global flag freeze behavior for client applications.

setImpressionHandler()

Sets callback for flag evaluation events in client context.

C client SDK methods

The C client SDK provides low-level feature flag management for embedded systems, native desktop applications, and high-performance client services.

Initialize the C client SDK (rox_setup)

This method configures the SDK with your application key and establishes connection to CloudBees Unify for C client applications.

#include <rox/client.h> void rox_setup(const char *rollout_key, RoxOptions *options)

Configures the SDK for native client operation and retrieves feature flag configuration. Optimized for embedded systems and high-performance client applications.

Parameter Type Description

rollout_key

const char*

Environment-specific SDK key from CloudBees Unify.

options

RoxOptions*

Pointer to configuration structure with desired settings.

Register flag containers (rox_register)

This method registers flag containers to make C client flags available for configuration.

void rox_register(const char *namespace, void *container)

Registers container structure containing flag definitions for C client applications. Struct members become flags accessible through CloudBees Unify UI.

Shut down the C client SDK (rox_shutdown)

This method performs graceful shutdown of the C client SDK and cleans system resources.

void rox_shutdown()

Releases memory, closes network connections, and cleans background threads. Call before application exit to prevent resource leaks.

C client SDK configuration options

Configuration structures control C client SDK behavior and system resource usage.

RoxOptions structure

The RoxOptions struct provides configuration parameters for C client SDK operation and resource management.

rox_options_set_version()

Sets client application version for targeting and analytics.

rox_options_set_fetch_interval()

Configures polling interval for configuration updates from CloudBees Unify.

rox_options_set_impression_handler()

Sets callback function for flag evaluation events.

rox_options_set_dev_mode_key()

Enables development mode with special SDK key for testing.

C++ client SDK methods

The C client SDK provides object-oriented feature flag management for C desktop applications and embedded systems with C++ support.

Initialize the C++ client SDK (setup)

This method configures the SDK with your application key and establishes connection to CloudBees Unify for C++ client applications.

Configures the SDK for C client operation using object-oriented patterns. Provides RAII support and modern C conventions for resource management.

Register flag containers (register)

This method registers container classes to make C++ client flags available for configuration.

Registers container objects containing flag definitions for C client applications. Uses C class members and properties for flag organization and access.

Shut down the C++ client SDK (shutdown)

This method performs graceful shutdown of the C++ client SDK with proper destructor handling.

Releases resources using C RAII patterns and ensures proper cleanup. Integrates with C application lifecycle for automatic resource management.

.NET client SDK methods

The .NET client SDK provides feature flag management for .NET desktop applications, WPF applications, and Windows client services.

Initialize the .NET client SDK (Setup)

This method configures the SDK with your application key and establishes connection to CloudBees Unify for .NET client applications.

public static Task<RoxSetupResult> Setup(string apiKey) public static Task<RoxSetupResult> Setup(string apiKey, RoxOptions options)

Configures the SDK for .NET client operation and retrieves feature flag configuration. Returns task that completes when SDK has established connection with CloudBees Unify.

Parameter Type Description

apiKey

string

Environment-specific SDK key from CloudBees Unify.

options

RoxOptions

Configuration instance with desired .NET client settings.

Register flag containers (Register)

This method registers container classes to make .NET client flags available for configuration.

public static void Register(string nameSpace, object container)

Registers container object containing flag properties for .NET client applications. Container properties become flags accessible through CloudBees Unify UI.

Shut down the .NET client SDK (Shutdown)

This method performs graceful shutdown of the .NET client SDK and releases managed resources.

public static void Shutdown()

Disposes resources and closes connections when .NET client application exits. Integrates with .NET garbage collection and resource disposal patterns.

.NET client SDK configuration options

Configuration classes control .NET client SDK behavior and integration with .NET application patterns.

RoxOptions class

The RoxOptions class provides configuration properties for .NET client SDK behavior and Windows integration.

Version

Sets client application version for targeting and feature rollouts.

ImpressionHandler

Configures callback delegate for flag evaluation events.

ConfigurationFetchedHandler

Sets callback delegate for configuration update events.

CustomPropertyGenerator

Enables dynamic property generation for advanced targeting.

Common client SDK patterns

Client SDKs support common patterns for desktop and embedded application feature flag implementation.

Offline operation

Client SDKs cache flag configuration locally to ensure continued operation without network connectivity.

Local caching enables offline application functionality with last-known flag configuration. Cache updates occur when network connectivity is restored and configuration sync completes.

Resource-constrained environments

Client SDKs optimize memory usage and network requests for embedded systems and low-resource environments.

Configuration polling intervals can be tuned for different resource constraints and network availability. Memory usage is minimized through efficient flag storage and evaluation algorithms.

Application lifecycle integration

Client SDKs integrate with application startup, shutdown, and lifecycle events for different platforms.

Initialization occurs during application startup with graceful handling of network delays. Shutdown procedures ensure proper resource cleanup and prevent resource leaks.

Local development and testing

Client SDKs provide local override capabilities and development modes for testing without affecting production.

Development mode enables local flag overrides and testing scenarios. Debug logging provides detailed information about flag evaluation and network operations.

Client SDK configuration patterns

Configuration approaches for different client application types and deployment scenarios.

Desktop application configuration

Desktop applications benefit from persistent local configuration and user-specific settings.

Configuration persists between application sessions for consistent user experience. User-specific targeting enables personalized feature rollouts and A/B testing.

Embedded system configuration

Embedded systems require minimal resource usage and reliable offline operation.

Configuration optimized for limited memory and storage constraints. Network polling intervals tuned for power consumption and bandwidth limitations.

Enterprise client configuration

Enterprise client applications support centralized management and policy enforcement.

Proxy configuration enables deployment in corporate networks with restricted access. Centralized flag management supports enterprise governance and compliance requirements.