Conversation
Bundles Sizes Evolution
🚀 CPU Performance
🧠 Memory Performance
|
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage 🔗 Commit SHA: 24f284c | Docs | Datadog PR Page | Was this helpful? Give us feedback! |
- STACK.md - Technologies and dependencies - ARCHITECTURE.md - System design and patterns - STRUCTURE.md - Directory layout - CONVENTIONS.md - Code style and patterns - TESTING.md - Test structure - INTEGRATIONS.md - External services - CONCERNS.md - Technical debt and issues
Creates new @datadog/browser-remote-config package with:
- Independent remote configuration fetching and parsing
- Support for dynamic value resolution (cookies, DOM, JS paths)
- Lightweight package with only @datadog/browser-core dependency
- Comprehensive unit and integration tests (67 passing tests)
- Full TypeScript support with strict mode
Removes remote configuration from rum-core:
- Removes remoteConfigurationId and remoteConfigurationProxy from SDK init
- Removes async remote config fetch from bootstrap
- Simplifies SDK initialization flow
- Enables parallel fetching/initialization by customers
Benefits:
- Customers can use remote config independently of RUM SDK
- SDK is simpler and lighter
- Clear separation of concerns
- Enables parallel fetching/initialization strategies
This is a breaking change appropriate for v7 major version.
Customers migrating from v6 to v7:
- Old: datadogRum.init({ remoteConfigurationId: 'xxx' })
- New: const cfg = await fetchRemoteConfiguration(...); datadogRum.init({ ...cfg.value?.rum })
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extracts remote configuration fetching and parsing logic from rum-core into a new standalone package
@datadog/browser-remote-config, enabling customers to use remote config independently of the RUM SDK.This is a breaking change appropriate for v7 major version.
Key Changes
New Package: @datadog/browser-remote-config
Public API:
fetchRemoteConfiguration(options)- Fetch remote config from DatadogbuildEndpoint(options)- Construct endpoint URLsresolveDynamicValues(configValue, options)- Resolve dynamic values (cookies, DOM, JS paths)parseJsonPath(path)- Parse JSON paths for JS resolutionFeatures:
Changes to rum-core
Removed:
remoteConfiguration.ts- moved to remote-configremoteConfiguration.types.ts- moved to remote-configjsonPathParser.ts- moved to remote-configModified:
remoteConfigurationIdandremoteConfigurationProxyfrom RumInitConfigurationpreStartRum.ts- no more async remote config fetchMigration Guide
Old pattern (v6):
New pattern (v7):
Benefits
✅ Decoupling: Customers can use remote config independently
✅ Simplicity: SDK no longer handles async remote config fetch
✅ Flexibility: Enables parallel fetching and custom initialization
✅ Lightweight: SDK is simpler and lighter
✅ Reusability: Remote config package works with any RUM-compatible SDK
Test Results
Files Changed
New files:
packages/remote-config/- Complete new packagesrc/remoteConfiguration.ts- Core fetch and resolve logicsrc/remoteConfiguration.types.ts- Type definitionssrc/jsonPathParser.ts- JSON path parsingsrc/index.ts- Public API exportssrc/remoteConfiguration.spec.ts- Tests (67 tests)src/jsonPathParser.spec.ts- Parser testspackage.json- Package configurationREADME.md- Documentation with usage examplesModified files:
packages/rum-core/- Removed remote config logic and teststest/e2e/- Updated test framework to remove RemoteConfiguration type dependencytest/e2e/scenario/rum/remoteConfiguration.scenario.ts- Disabled (functionality moved to standalone package)Test Plan
🤖 Generated with Claude Code