BellaClient constructor
BellaClient(
- BellaClientOptions options
Implementation
BellaClient(BellaClientOptions options) {
_cache = options.cache;
final resolvedAppClient =
options.appClient ?? Platform.environment['BELLA_BAXTER_APP_CLIENT'];
final dio = Dio(BaseOptions(
baseUrl: options.baseUrl,
connectTimeout: options.connectTimeout,
receiveTimeout: options.receiveTimeout,
));
if (options.apiKey != null) {
final parsed = _parseBaxToken(options.apiKey!);
dio.interceptors.add(_BellaHmacInterceptor(
keyId: parsed.keyId,
signingSecret: parsed.signingSecret,
appClient: resolvedAppClient,
));
} else {
dio.interceptors.add(_BellaBearerInterceptor(
accessToken: options.accessToken!,
appClient: resolvedAppClient,
));
}
// E2EE: transparently encrypts the secrets request / decrypts the response.
// ZKE: when privateKey is set, uses the persistent device key; otherwise
// generates an ephemeral key pair (default behaviour).
dio.interceptors.add(BellaE2eeInterceptor(
privateKeyBytes: options.privateKey,
onWrappedDekReceived: options.onWrappedDekReceived,
));
_api = BellaBaxter(dio: dio);
}