Skip to content

Commit cbd958b

Browse files
committed
💥 Remove remoteConfigurationId from RUM SDK (breaking change, v7)
BREAKING CHANGE: remoteConfigurationId and remoteConfigurationProxy are removed from datadogRum.init() options. Migration guide: // Before (v6) datadogRum.init({ remoteConfigurationId: 'xxx', ...options }) // After (v7) import { fetchRemoteConfiguration } from '@datadog/browser-remote-config' const result = await fetchRemoteConfiguration({ applicationId, configId, site }) if (result.ok) { datadogRum.init({ ...result.value.rum }) } The remote configuration logic now lives in @datadog/browser-remote-config, giving customers more control: parallel fetching, custom caching, error handling.
1 parent ee71250 commit cbd958b

File tree

11 files changed

+4
-1248
lines changed

11 files changed

+4
-1248
lines changed

‎packages/rum-core/src/boot/preStartRum.spec.ts‎

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import {
1515
import type { Clock } from '@datadog/browser-core/test'
1616
import {
1717
callbackAddsInstrumentation,
18-
interceptRequests,
1918
mockClock,
2019
mockEventBridge,
2120
mockSyntheticsWorkerValues,
@@ -401,36 +400,6 @@ describe('preStartRum', () => {
401400
})
402401
})
403402

404-
describe('remote configuration', () => {
405-
let interceptor: ReturnType<typeof interceptRequests>
406-
407-
beforeEach(() => {
408-
interceptor = interceptRequests()
409-
})
410-
411-
it('should start with the remote configuration when a remoteConfigurationId is provided', (done) => {
412-
interceptor.withFetch(() =>
413-
Promise.resolve({
414-
ok: true,
415-
json: () => Promise.resolve({ rum: { sessionSampleRate: 50 } }),
416-
})
417-
)
418-
const { strategy, doStartRumSpy } = createPreStartStrategyWithDefaults()
419-
doStartRumSpy.and.callFake((configuration) => {
420-
expect(configuration.sessionSampleRate).toEqual(50)
421-
done()
422-
return {} as StartRumResult
423-
})
424-
strategy.init(
425-
{
426-
...DEFAULT_INIT_CONFIGURATION,
427-
remoteConfigurationId: '123',
428-
},
429-
PUBLIC_API
430-
)
431-
})
432-
})
433-
434403
describe('plugins', () => {
435404
it('calls the onInit method on provided plugins', () => {
436405
const plugin = { name: 'a', onInit: jasmine.createSpy() }
@@ -494,10 +463,8 @@ describe('preStartRum', () => {
494463

495464
describe('initConfiguration', () => {
496465
let initConfiguration: RumInitConfiguration
497-
let interceptor: ReturnType<typeof interceptRequests>
498466

499467
beforeEach(() => {
500-
interceptor = interceptRequests()
501468
initConfiguration = { ...DEFAULT_INIT_CONFIGURATION, service: 'my-service', version: '1.4.2', env: 'dev' }
502469
})
503470

@@ -525,28 +492,6 @@ describe('preStartRum', () => {
525492

526493
expect(strategy.initConfiguration).toEqual(initConfiguration)
527494
})
528-
529-
it('returns the initConfiguration with the remote configuration when a remoteConfigurationId is provided', (done) => {
530-
interceptor.withFetch(() =>
531-
Promise.resolve({
532-
ok: true,
533-
json: () => Promise.resolve({ rum: { sessionSampleRate: 50 } }),
534-
})
535-
)
536-
const { strategy, doStartRumSpy } = createPreStartStrategyWithDefaults()
537-
doStartRumSpy.and.callFake(() => {
538-
expect(strategy.initConfiguration?.sessionSampleRate).toEqual(50)
539-
done()
540-
return {} as StartRumResult
541-
})
542-
strategy.init(
543-
{
544-
...DEFAULT_INIT_CONFIGURATION,
545-
remoteConfigurationId: '123',
546-
},
547-
PUBLIC_API
548-
)
549-
})
550495
})
551496

552497
describe('buffers API calls before starting RUM', () => {

‎packages/rum-core/src/boot/preStartRum.ts‎

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import {
2323
buildAccountContextManager,
2424
buildGlobalContextManager,
2525
buildUserContextManager,
26-
monitorError,
2726
sanitize,
2827
startTelemetry,
2928
TelemetryService,
@@ -32,11 +31,7 @@ import {
3231
import type { Hooks } from '../domain/hooks'
3332
import { createHooks } from '../domain/hooks'
3433
import type { RumConfiguration, RumInitConfiguration } from '../domain/configuration'
35-
import {
36-
validateAndBuildRumConfiguration,
37-
fetchAndApplyRemoteConfiguration,
38-
serializeRumConfiguration,
39-
} from '../domain/configuration'
34+
import { validateAndBuildRumConfiguration, serializeRumConfiguration } from '../domain/configuration'
4035
import type { ViewOptions } from '../domain/view/trackViews'
4136
import type {
4237
DurationVital,
@@ -216,17 +211,7 @@ export function createPreStartStrategy(
216211

217212
callPluginsMethod(initConfiguration.plugins, 'onInit', { initConfiguration, publicApi })
218213

219-
if (initConfiguration.remoteConfigurationId) {
220-
fetchAndApplyRemoteConfiguration(initConfiguration, { user: userContext, context: globalContext })
221-
.then((initConfiguration) => {
222-
if (initConfiguration) {
223-
doInit(initConfiguration, errorStack)
224-
}
225-
})
226-
.catch(monitorError)
227-
} else {
228-
doInit(initConfiguration, errorStack)
229-
}
214+
doInit(initConfiguration, errorStack)
230215
},
231216

232217
get initConfiguration() {

‎packages/rum-core/src/domain/configuration/configuration.spec.ts‎

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -624,8 +624,6 @@ describe('serializeRumConfiguration', () => {
624624
trackLongTasks: true,
625625
trackBfcacheViews: true,
626626
trackEarlyRequests: true,
627-
remoteConfigurationId: '123',
628-
remoteConfigurationProxy: 'config',
629627
plugins: [{ name: 'foo', getConfigurationTelemetry: () => ({ bar: true }) }],
630628
trackFeatureFlagsForEvents: ['vital'],
631629
profilingSampleRate: 42,
@@ -635,12 +633,7 @@ describe('serializeRumConfiguration', () => {
635633

636634
type MapRumInitConfigurationKey<Key extends string> = Key extends keyof InitConfiguration
637635
? MapInitConfigurationKey<Key>
638-
: Key extends
639-
| 'workerUrl'
640-
| 'allowedTracingUrls'
641-
| 'excludedActivityUrls'
642-
| 'remoteConfigurationProxy'
643-
| 'allowedGraphQlUrls'
636+
: Key extends 'workerUrl' | 'allowedTracingUrls' | 'excludedActivityUrls' | 'allowedGraphQlUrls'
644637
? `use_${CamelToSnakeCase<Key>}`
645638
: Key extends 'trackLongTasks'
646639
? 'track_long_task' // We forgot the s, keeping this for backward compatibility
@@ -684,8 +677,6 @@ describe('serializeRumConfiguration', () => {
684677
compress_intake_requests: true,
685678
plugins: [{ name: 'foo', bar: true }],
686679
track_feature_flags_for_events: ['vital'],
687-
remote_configuration_id: '123',
688-
use_remote_configuration_proxy: true,
689680
profiling_sample_rate: 42,
690681
})
691682
})

‎packages/rum-core/src/domain/configuration/configuration.ts‎

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -96,20 +96,6 @@ export interface RumInitConfiguration extends InitConfiguration {
9696
*/
9797
compressIntakeRequests?: boolean | undefined
9898

99-
/**
100-
* [Internal option] Id of the remote configuration
101-
*
102-
* @internal
103-
*/
104-
remoteConfigurationId?: string | undefined
105-
106-
/**
107-
* [Internal option] set a proxy URL for the remote configuration
108-
*
109-
* @internal
110-
*/
111-
remoteConfigurationProxy?: string | undefined
112-
11399
// tracing options
114100
/**
115101
* A list of request URLs used to inject tracing headers.
@@ -126,7 +112,6 @@ export interface RumInitConfiguration extends InitConfiguration {
126112
* See [Connect RUM and Traces](https://docs.datadoghq.com/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
127113
*
128114
* @category Tracing
129-
* @defaultValue 100
130115
*/
131116
traceSampleRate?: number | undefined
132117
/**
@@ -164,7 +149,6 @@ export interface RumInitConfiguration extends InitConfiguration {
164149
* See [Configure Your Setup For Browser RUM and Browser RUM & Session Replay Sampling](https://docs.datadoghq.com/real_user_monitoring/guide/sampling-browser-plans) for further information.
165150
*
166151
* @category Session Replay
167-
* @defaultValue 0
168152
*/
169153
sessionReplaySampleRate?: number | undefined
170154

@@ -553,9 +537,7 @@ export function serializeRumConfiguration(configuration: RumInitConfiguration) {
553537
...plugin.getConfigurationTelemetry?.(),
554538
})),
555539
track_feature_flags_for_events: configuration.trackFeatureFlagsForEvents,
556-
remote_configuration_id: configuration.remoteConfigurationId,
557540
profiling_sample_rate: configuration.profilingSampleRate,
558-
use_remote_configuration_proxy: !!configuration.remoteConfigurationProxy,
559541
...baseSerializedConfiguration,
560542
} satisfies RawTelemetryConfiguration
561543
}
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
export * from './configuration'
2-
export * from './remoteConfiguration'

‎packages/rum-core/src/domain/configuration/jsonPathParser.spec.ts‎

Lines changed: 0 additions & 64 deletions
This file was deleted.

0 commit comments

Comments
 (0)