Frequently Asked Questions (FAQs)

This page answers frequently asked questions about dartcodeai, the Dart ecosystem SDKs, and feature flag best practices.

1. General

1.1. What is dartcodeai?

dartcodeai is a feature flag management platform built for the Dart ecosystem. It allows developers to enable, disable, or roll out features dynamically without redeploying their applications.

1.2. How is dartcodeai different from other feature flag tools?

dartcodeai provides first-class support for Dart and Flutter, integrates with the OpenFeature standard, and offers both SDK-based and direct API integrations.

1.3. Do I need to use the OpenFeature SDK?

Yes, dartcodeai’s recommended integration is via the OpenFeature Dart SDK with the dartcodeai provider. This ensures compatibility with the OpenFeature specification and portability between providers.

2. Setup & Usage

2.1. How do I get started?

  1. Create an dartcodeai account and obtain your API key.

  2. Add the SDKs to your Dart/Flutter project.

  3. Initialize the OpenFeature API with the dartcodeai provider.

  4. Evaluate flags using the SDK.

2.2. How do I evaluate a feature flag?

Basic example:

final enabled = await client.getBooleanValue('new-dashboard', false);
if (enabled) {
  print('Showing new dashboard');
} else {
  print('Fallback to old dashboard');
}

2.3. Can I target specific users?

Yes. You can pass a targeting key and an evaluation context:

final enabled = await client.getBooleanValue(
  'pro-feature',
  false,
  targetingKey: 'user-123',
  evaluationContext: {'plan': 'enterprise'},
);

3. Development & Testing

3.1. Can I run dartcodeai locally?

Yes. Use the InMemoryProvider for testing or run an OREP server for remote evaluations in development. See Advanced Topics.

3.2. Do flags work offline?

Yes. The SDK caches the last known state of flags and falls back to default values if the service is unreachable.

3.3. Is there Flutter support?

Yes. Flutter apps can integrate via the SDK or by making direct API calls. See Flutter Integration.

4. Security & Privacy

4.1. How does dartcodeai handle sensitive data?

Attributes used for targeting are only processed for evaluation and not stored. Developers can mark fields as privateAttributes to exclude them from logs. See Security & Privacy.

4.2. Are API calls encrypted?

Yes. All communication with dartcodeai APIs uses TLS (HTTPS).

4.3. Can I use dartcodeai in a multi-tenant environment?

Yes. The SDK and APIs enforce tenant isolation using the X-Tenant-ID header.

5. Operations

5.1. How often are flags refreshed?

By default, every 5 minutes with polling. You can configure polling intervals or enable streaming for near real-time updates.

5.2. What happens if a flag doesn’t exist?

The SDK will return the provided default value. You should always provide defaults when evaluating flags.

5.3. How do I manage stale flags?

Flags should be reviewed and removed after experiments or rollouts. See Best Practices.

6. Support

6.1. Where can I get help?