braintrust-logger.ts37 lines · main
1import { initLogger } from 'braintrust'
2
3const BRAINTRUST_API_KEY = process.env.BRAINTRUST_API_KEY
4const BRAINTRUST_PROJECT_ID = process.env.BRAINTRUST_PROJECT_ID
5
6export const IS_TRACING_ENABLED =
7 BRAINTRUST_API_KEY !== undefined && BRAINTRUST_PROJECT_ID !== undefined
8
9if (IS_TRACING_ENABLED) {
10 initLogger({
11 apiKey: BRAINTRUST_API_KEY,
12 projectId: BRAINTRUST_PROJECT_ID,
13 })
14}
15
16// Checks compliance flags for tracing and returns true only when all checks pass.
17// Defaults to disabling tracing when states are unknown.
18export function isTracingAllowed({
19 orgHasHipaaAddon,
20 projectIsSensitive,
21 projectRegion,
22}: {
23 orgHasHipaaAddon: boolean | undefined
24 projectIsSensitive: boolean | null | undefined
25 projectRegion: string | undefined
26}) {
27 // Disable tracing for EU (or unknown) regions
28 if (projectRegion === undefined || projectRegion.startsWith('eu-')) return false
29
30 // Disable tracing for orgs with an unknown HIPAA addon state
31 if (orgHasHipaaAddon === undefined) return false
32
33 // Disable tracing for projects within a HIPAA-enabled org that are sensitive (or unknown sensitivity)
34 if (orgHasHipaaAddon && projectIsSensitive !== false) return false
35
36 return true
37}