braintrust-logger.ts 1.2 KB

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