openfeature_provider_intellitoggle

An OpenFeature provider for IntelliToggle, enabling Dart backends to evaluate feature flags using the OpenFeature API standard.

This package integrates seamlessly with openfeature_dart_server_sdk and supports IntelliToggle's advanced targeting, rule-based rollouts, and experimentation platform.


πŸ”§ Features

  • βœ… Supports Boolean, String, Number, and Object flag evaluations
  • πŸ” Real-time updates via IntelliToggle event system
  • πŸ§ͺ Includes InMemoryProvider for local development and testing
  • 🌐 Optional OREP/OPTSP server support for remote evaluation (e.g. test suites)

πŸ’» Installation

Add to your server-side Dart project:

dependencies:
  openfeature_dart_server_sdk: ^0.1.0
  openfeature_provider_intellitoggle: ^0.0.2

Then install:

dart pub get

πŸš€ Getting Started

import 'package:openfeature_dart_server_sdk/openfeature_dart_server_sdk.dart';
import 'package:openfeature_provider_intellitoggle/openfeature_provider_intellitoggle.dart';

void main() async {
  final provider = IntelliToggleProvider(
    sdkKey: 'YOUR_INTELLITOGGLE_SDK_KEY',
  );

  await OpenFeatureAPI().setProvider(provider);

  final client = IntelliToggleClient(namespace: 'my-service');

  final enabled = await client.getBooleanValue(
    'new-dashboard-enabled',
    false,
    evaluationContext: {
      'targetingKey': 'user-123',
      'role': 'beta_tester',
    },
  );

  print('Feature enabled: $enabled');
}

πŸ§ͺ Local Development & Testing

Use the included InMemoryProvider for fast testing without external dependencies:

final provider = InMemoryProvider();
provider.setFlag('experimental-mode', true);

await OpenFeatureAPI().setProvider(provider);

final client = IntelliToggleClient(namespace: 'test');
final enabled = await client.getBooleanValue('experimental-mode', false);
print('Flag = $enabled'); // true

βš™οΈ OREP Server (Optional)

Start a remote flag evaluation API:

dart run bin/orep_server.dart

Configure using environment variables:

Variable Default
OREP_PORT 8080
OREP_HOST 0.0.0.0
OREP_AUTH_TOKEN changeme-token

πŸ“š Resources


πŸ“ License

MIT


---

Let me know if you'd like a `bin/orep_server.dart` usage snippet or an `example/main.dart` to pair with this for pub.dev’s [score metrics](https://dart.dev/tools/pub/score).

Libraries

openfeature_provider_intellitoggle
Main entry point for the IntelliToggle OpenFeature provider package.