braintrust-logger.ts37 lines · main
| 1 | import { initLogger } from 'braintrust' |
| 2 | |
| 3 | const BRAINTRUST_API_KEY = process.env.BRAINTRUST_API_KEY |
| 4 | const BRAINTRUST_PROJECT_ID = process.env.BRAINTRUST_PROJECT_ID |
| 5 | |
| 6 | export const IS_TRACING_ENABLED = |
| 7 | BRAINTRUST_API_KEY !== undefined && BRAINTRUST_PROJECT_ID !== undefined |
| 8 | |
| 9 | if (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. |
| 18 | export 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 | } |