/** * Shared Datadog transport: site resolution, API + application key secrets, * JSON requests, and dry-run mutation previews. * * Auth is secret-backed (not OAuth). Default user secrets are `datadogApiKey` * and `datadogApplicationKey`. Extra accounts use `account: "work"` → * `datadogApiKey-work` / `datadogApplicationKey-work`. Placeholders resolve * on approved hosts only. */ export const DEFAULT_API_KEY_SECRET = 'datadogApiKey' export const DEFAULT_APP_KEY_SECRET = 'datadogApplicationKey' export const DEFAULT_SITE = 'datadoghq.com' export const DEFAULT_API_HOST = 'api.datadoghq.com' export const DATADOG_API_HOSTS = [ 'api.datadoghq.com', 'api.us3.datadoghq.com', 'api.us5.datadoghq.com', 'api.datadoghq.eu', 'api.ap1.datadoghq.com', 'api.ap2.datadoghq.com', 'api.uk1.datadoghq.com', 'api.ddog-gov.com', 'api.us2.ddog-gov.com', ] as const export const ALLOWED_HOSTS_QUERY = DATADOG_API_HOSTS.join(',') const SITE_ALIASES: Record = { us1: 'datadoghq.com', us: 'datadoghq.com', us3: 'us3.datadoghq.com', us5: 'us5.datadoghq.com', eu: 'datadoghq.eu', eu1: 'datadoghq.eu', ap1: 'ap1.datadoghq.com', ap2: 'ap2.datadoghq.com', uk1: 'uk1.datadoghq.com', gov: 'ddog-gov.com', 'us1-fed': 'ddog-gov.com', us1fed: 'ddog-gov.com', 'us2-fed': 'us2.ddog-gov.com', us2fed: 'us2.ddog-gov.com', } const SECRET_SUFFIX = '(?:-[A-Za-z0-9][A-Za-z0-9_-]{0,47})?' const API_KEY_SECRET_PATTERN = new RegExp('^datadogApiKey' + SECRET_SUFFIX + '$') const APP_KEY_SECRET_PATTERN = new RegExp('^datadogApplicationKey' + SECRET_SUFFIX + '$') const ACCOUNT_LABEL_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_-]{0,47}$/ export type DatadogAuthOptions = { /** * Extra Datadog account label. `work` reads `datadogApiKey-work` and * `datadogApplicationKey-work`. Omit (or pass `default`) for the defaults. */ account?: string /** Override the API key secret name. Must be `datadogApiKey` or `datadogApiKey-