diff --git a/packages/core/src/domain/configuration/endpointBuilder.ts b/packages/core/src/domain/configuration/endpointBuilder.ts index 16b3192bf9..158f0c847c 100644 --- a/packages/core/src/domain/configuration/endpointBuilder.ts +++ b/packages/core/src/domain/configuration/endpointBuilder.ts @@ -4,7 +4,7 @@ import { normalizeUrl } from '../../tools/utils/urlPolyfill' import { ExperimentalFeature, isExperimentalFeatureEnabled } from '../../tools/experimentalFeatures' import { generateUUID } from '../../tools/utils/stringUtils' import type { InitConfiguration } from './configuration' -import { INTAKE_SITE_US1, INTAKE_SITE_FED_STAGING } from './intakeSites' +import { INTAKE_SITE_US1, INTAKE_SITE_FED_STAGING, PCI_INTAKE_HOST_US1 } from './intakeSites' // replaced at build time declare const __BUILD_ENV__SDK_VERSION__: string @@ -63,7 +63,7 @@ function buildEndpointHost(trackType: TrackType, initConfiguration: InitConfigur const { site = INTAKE_SITE_US1, internalAnalyticsSubdomain } = initConfiguration if (trackType === 'logs' && initConfiguration.usePciIntake && site === INTAKE_SITE_US1) { - return 'pci.browser-intake-datadoghq.com' + return PCI_INTAKE_HOST_US1 } if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) { diff --git a/packages/core/src/domain/configuration/intakeSites.ts b/packages/core/src/domain/configuration/intakeSites.ts index eef9a99fe6..170484f3e1 100644 --- a/packages/core/src/domain/configuration/intakeSites.ts +++ b/packages/core/src/domain/configuration/intakeSites.ts @@ -3,3 +3,5 @@ export const INTAKE_SITE_FED_STAGING = 'dd0g-gov.com' export const INTAKE_SITE_US1 = 'datadoghq.com' export const INTAKE_SITE_EU1 = 'datadoghq.eu' export const INTAKE_SITE_US1_FED = 'ddog-gov.com' + +export const PCI_INTAKE_HOST_US1 = 'pci.browser-intake-datadoghq.com' diff --git a/packages/core/src/domain/configuration/transportConfiguration.spec.ts b/packages/core/src/domain/configuration/transportConfiguration.spec.ts index abe993ad25..9989d979db 100644 --- a/packages/core/src/domain/configuration/transportConfiguration.spec.ts +++ b/packages/core/src/domain/configuration/transportConfiguration.spec.ts @@ -87,10 +87,12 @@ describe('transportConfiguration', () => { ;[ { site: 'datadoghq.eu', intakeDomain: 'browser-intake-datadoghq.eu' }, { site: 'datadoghq.com', intakeDomain: 'browser-intake-datadoghq.com' }, + { site: 'datadoghq.com', intakeDomain: 'pci.browser-intake-datadoghq.com' }, { site: 'us3.datadoghq.com', intakeDomain: 'browser-intake-us3-datadoghq.com' }, { site: 'us5.datadoghq.com', intakeDomain: 'browser-intake-us5-datadoghq.com' }, - { site: 'ddog-gov.com', intakeDomain: 'browser-intake-ddog-gov.com' }, { site: 'ap1.datadoghq.com', intakeDomain: 'browser-intake-ap1-datadoghq.com' }, + { site: 'ddog-gov.com', intakeDomain: 'browser-intake-ddog-gov.com' }, + { site: 'datad0g.com', intakeDomain: 'browser-intake-datad0g.com' }, { site: 'dd0g-gov.com', intakeDomain: 'http-intake.logs.dd0g-gov.com' }, ].forEach(({ site, intakeDomain }) => { it(`should detect intake request for ${site} site`, () => { diff --git a/packages/core/src/domain/configuration/transportConfiguration.ts b/packages/core/src/domain/configuration/transportConfiguration.ts index 929f0318f2..edb690674a 100644 --- a/packages/core/src/domain/configuration/transportConfiguration.ts +++ b/packages/core/src/domain/configuration/transportConfiguration.ts @@ -3,7 +3,7 @@ import type { InitConfiguration } from './configuration' import type { EndpointBuilder } from './endpointBuilder' import { createEndpointBuilder } from './endpointBuilder' import { buildTags } from './tags' -import { INTAKE_SITE_US1 } from './intakeSites' +import { INTAKE_SITE_US1, PCI_INTAKE_HOST_US1 } from './intakeSites' export interface TransportConfiguration { logsEndpointBuilder: EndpointBuilder @@ -21,10 +21,12 @@ export interface ReplicaConfiguration { } export function computeTransportConfiguration(initConfiguration: InitConfiguration): TransportConfiguration { + const site = initConfiguration.site || INTAKE_SITE_US1 + const tags = buildTags(initConfiguration) const endpointBuilders = computeEndpointBuilders(initConfiguration, tags) - const intakeUrlPrefixes = objectValues(endpointBuilders).map((builder) => builder.urlPrefix) + const intakeUrlPrefixes = computeIntakeUrlPrefixes(endpointBuilders, site) const replicaConfiguration = computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags) @@ -32,7 +34,7 @@ export function computeTransportConfiguration(initConfiguration: InitConfigurati { isIntakeUrl: (url: string) => intakeUrlPrefixes.some((intakeEndpoint) => url.indexOf(intakeEndpoint) === 0), replica: replicaConfiguration, - site: initConfiguration.site || INTAKE_SITE_US1, + site, }, endpointBuilders ) @@ -69,3 +71,16 @@ function computeReplicaConfiguration( return assign({ applicationId: initConfiguration.replica.applicationId }, replicaEndpointBuilders) } + +function computeIntakeUrlPrefixes( + endpointBuilders: ReturnType, + site: string +): string[] { + const intakeUrlPrefixes = objectValues(endpointBuilders).map((builder) => builder.urlPrefix) + + if (site === INTAKE_SITE_US1) { + intakeUrlPrefixes.push(`https://${PCI_INTAKE_HOST_US1}/`) + } + + return intakeUrlPrefixes +}