Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions src/main/java/dev/braintrust/config/BraintrustConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import java.util.Optional;
import java.util.function.Consumer;
import javax.annotation.Nullable;
import javax.net.ssl.SSLContext;
import javax.net.ssl.X509TrustManager;

/**
* Configuration for Braintrust SDK. Uses builder pattern with sensible defaults and environment
Expand All @@ -23,6 +25,8 @@ public final class BraintrustConfig {
private final boolean enableTraceConsoleLog;
private final boolean debug;
private final Duration requestTimeout;
private final SSLContext sslContext;
private final X509TrustManager x509TrustManager;

private BraintrustConfig(Builder builder) {
this.apiKey = builder.apiKey;
Expand All @@ -33,6 +37,8 @@ private BraintrustConfig(Builder builder) {
this.enableTraceConsoleLog = builder.enableTraceConsoleLog;
this.debug = builder.debug;
this.requestTimeout = builder.requestTimeout;
this.sslContext = builder.sslContext;
this.x509TrustManager = builder.x509TrustManager;
}

public String apiKey() {
Expand Down Expand Up @@ -67,6 +73,14 @@ public Duration requestTimeout() {
return requestTimeout;
}

public SSLContext sslContext() {
return sslContext;
}

public X509TrustManager x509TrustManager() {
return x509TrustManager;
}

/** Creates a new builder initialized with environment variables. */
public static Builder builder() {
return new Builder();
Expand Down Expand Up @@ -94,6 +108,8 @@ public static final class Builder {
private String orgName;
private boolean enableTraceConsoleLog;
private boolean debug;
private SSLContext sslContext;
private X509TrustManager x509TrustManager;
private Duration requestTimeout = Duration.ofSeconds(30);

private Builder() {
Expand Down Expand Up @@ -155,6 +171,16 @@ public Builder requestTimeout(Duration timeout) {
return this;
}

public Builder sslContext(SSLContext sslContext) {
this.sslContext = sslContext;
return this;
}

public Builder x509TrustManager(X509TrustManager x509TrustManager) {
this.x509TrustManager = x509TrustManager;
return this;
}

public BraintrustConfig build() {
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalStateException(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,13 @@ private CompletableResultCode exportWithParent(String parent, List<SpanData> spa
"Created exporter with x-bt-parent: {}", p);
}

// If SSLContext is set, then apply it
if (config.sslContext() != null
&& config.x509TrustManager() != null) {
exporterBuilder.setSslContext(
config.sslContext(), config.x509TrustManager());
}

return exporterBuilder.build();
});

Expand Down
Loading