diff --git a/content/.gitignore b/content/.gitignore index fdb635d0123b2..b193de93aa8e0 100644 --- a/content/.gitignore +++ b/content/.gitignore @@ -1,3 +1,5 @@ # GENERATED FILE: DO NOT EDIT # Ignore .md files compiled from Markdoc /en/real_user_monitoring/guide/proxy-mobile-rum-data.md + +/en/real_user_monitoring/guide/proxy-rum-data.md \ No newline at end of file diff --git a/content/en/real_user_monitoring/guide/proxy-rum-data.md b/content/en/real_user_monitoring/guide/proxy-rum-data.md deleted file mode 100644 index c4d318e57374e..0000000000000 --- a/content/en/real_user_monitoring/guide/proxy-rum-data.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: Proxy Your Browser RUM Data - -aliases: - - /real_user_monitoring/faq/proxy_rum_data/ -further_reading: - - link: '/real_user_monitoring/' - tag: 'Documentation' - text: 'Learn about Real User Monitoring' ---- - -## Overview - -The RUM Browser SDK can be configured to send requests through a proxy. When you set the SDK's `proxy` [initialization parameter][1] to a URL such as `https://www.example-proxy.com/any-endpoint`, all RUM data is sent to that URL using the POST method. The RUM data still needs to be forwarded to Datadog from the proxy. - -## Prerequisite proxy setup - -To successfully forward a request to Datadog, your proxy must - -1. [Build the Datadog intake URL](#build-the-datadog-intake-url). -2. Add an `X-Forwarded-For` header containing the request client IP address for accurate geoIP. -3. Forward the request to the Datadog intake URL using the POST method. -4. Leave the request body unchanged. - -
- -
- -### Build the Datadog intake URL - -A Datadog intake URL (example: `https://browser-intake-datadoghq.eu/api/v2/rum?ddsource=browser&...`) has three parts: - -- the Datadog intake origin corresponding to your `site` [initialization parameter][1] (example: `https://browser-intake-datadoghq.eu`) -- the path containing the API version and the product (example: `/api/v2/rum` for RUM data or `/api/v2/replay` for Session Replay data) -- the parameters (example: `ddsource=browser&...`) - -The Datadog intake origin corresponding to your `site` parameter should be defined in your proxy implementation. The path and parameters for each request sent to the proxy can be accessed in the request's `ddforward` parameter (for example, `https://www.example-proxy.com/any-endpoint?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`). - -The Datadog intake origins for each site are listed below: - -| Site | Site Parameter | Datadog intake origin | -|---------|---------------------------|--------------------------------------------| -| US1 | `datadoghq.com` (default) | `https://browser-intake-datadoghq.com` | -| US3 | `us3.datadoghq.com` | `https://browser-intake-us3-datadoghq.com` | -| US5 | `us5.datadoghq.com` | `https://browser-intake-us5-datadoghq.com` | -| EU1 | `datadoghq.eu` | `https://browser-intake-datadoghq.eu` | -| US1-FED | `ddog-gov.com` | `https://browser-intake-ddog-gov.com` | -| AP1 | `ap1.datadoghq.com` | `https://browser-intake-ap1-datadoghq.com` | - -## Recommended SDK setup - -Configure the URL of the proxy in the `proxy` initialization parameter. The RUM Browser SDK adds a `ddforward` query parameter to all requests to your proxy. This query parameter contains the URL path and parameters that all data must be forwarded to. - -{{< tabs >}} -{{% tab "NPM" %}} - -```javascript -import { Datacenter, datadogRum } from '@datadog/browser-rum'; - -datadogRum.init({ - applicationId: '', - clientToken: '', - site: '', - proxy: '', -}); -``` - -{{% /tab %}} -{{% tab "CDN async" %}} -```javascript -window.DD_RUM.onReady(function() { - window.DD_RUM.init({ - clientToken: '', - applicationId: '', - proxy: '', - }); -}); -``` -{{% /tab %}} -{{% tab "CDN sync" %}} - -```javascript -window.DD_RUM && - window.DD_RUM.init({ - clientToken: '', - applicationId: '', - proxy: '' - }); -``` - -{{% /tab %}} -{{< /tabs >}} - -For example, with a `site` set to `datadoghq.eu` and a `proxy` set to `https://example.org/datadog-intake-proxy`, the RUM Browser SDK sends requests to a URL like this: `https://example.org/datadog-intake-proxy?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`. The proxy forwards the request to `https://browser-intake-datadoghq.eu/api/v2/rum?ddsource=browser`. - -## Alternate SDK setup - -From Browser SDK v5.4.0, the `proxy` initialization parameter supports a function input. This function allows you to have more control on how the path and parameters are added to the proxy URL. - -This function receives an object with the following properties: - -- `path`: the path for the Datadog requests (example: `/api/v2/rum`) -- `parameters`: the parameters of the Datadog requests (example: `ddsource=browser&...`) - -**Note**: - -- **JSP web applications** need to use the `\` escape character to properly propagate these parameters to the browser. For example: - ```javascript - proxy: (options) => 'http://proxyURL:proxyPort\${options.path}?\${options.parameters}', - ``` - -{{< tabs >}} -{{% tab "NPM" %}} - -```javascript -import { Datacenter, datadogRum } from '@datadog/browser-rum'; - -datadogRum.init({ - applicationId: '', - clientToken: '', - site: '', - proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}`, -}); -``` - -{{% /tab %}} -{{% tab "CDN async" %}} -```javascript -window.DD_RUM.onReady(function() { - window.DD_RUM.init({ - clientToken: '', - applicationId: '', - proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}`, - }) -}) -``` -{{% /tab %}} -{{% tab "CDN sync" %}} - -```javascript -window.DD_RUM && - window.DD_RUM.init({ - clientToken: '', - applicationId: '', - proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}` - }); -``` - -{{% /tab %}} -{{< /tabs >}} - -For example, with a `site` set to `datadoghq.eu` and the `proxy` configuration from the example, the RUM Browser SDK sends requests to an URL that looks this: `https://www.proxy.com/foo/api/v2/rum/bar?ddsource=browser`. The proxy will need to forward the request to the URL `https://browser-intake-datadoghq.eu/api/v2/rum?ddsource=browser`. - -**Note:** -- Some privacy blockers already target the intake [URL patterns][2], so you may want to take that into account when building your proxy URL. -- The `proxy` function is called for each request, so it should avoid any heavy computation. - -## Legacy SDK setup (<4.34.0) - -Before Browser SDK v4.34.0, the `proxyUrl` initialization parameter was used, and the Datadog intake origin was included in the `ddforward` attribute. The proxy implementation was in charge of validating this host, and failure to do so resulted in various vulnerabilities. - -The Datadog intake origin needs to be defined in your proxy implementation to ensure security. If you are still using a proxy with an older version of the Browser SDK, upgrade to a newer version of the Browser SDK to avoid vulnerabilities. - -## Further Reading - -{{< partial name="whats-next/whats-next.html" >}} - -[1]: /real_user_monitoring/browser/setup/#initialization-parameters -[2]: https://github.com/easylist/easylist/blob/997fb6533c719a015c21723b34e0cedefcc0d83d/easyprivacy/easyprivacy_general.txt#L3840 - - diff --git a/content/en/real_user_monitoring/guide/proxy-rum-data.mdoc.md b/content/en/real_user_monitoring/guide/proxy-rum-data.mdoc.md new file mode 100644 index 0000000000000..7e1373329d932 --- /dev/null +++ b/content/en/real_user_monitoring/guide/proxy-rum-data.mdoc.md @@ -0,0 +1,219 @@ +--- +title: Proxy Your Browser RUM Data +aliases: + - /real_user_monitoring/faq/proxy_rum_data/ +content_filters: + - trait_id: lib_src + option_group_id: rum_browser_sdk_source_options + label: "SDK source" + - trait_id: rum_browser_sdk_version + option_group_id: rum_browser_sdk_version_for_proxying_options +further_reading: + - link: '/real_user_monitoring/' + tag: 'Documentation' + text: 'Learn about Real User Monitoring' +--- + +{% if equals($rum_browser_sdk_version, "lt_4_34_0") %} +{% alert level="danger" %} +Upgrade to Browser SDK `4.34.0` or later to avoid security vulnerabilities in your proxy configuration. +{% /alert %} +{% /if %} + +## Overview + +The RUM Browser SDK can be configured to send requests through a proxy. When you set the SDK's `proxy` [initialization parameter][1] to a URL such as `https://www.example-proxy.com/any-endpoint`, all RUM data is sent to that URL using the POST method. The RUM data still needs to be forwarded to Datadog from the proxy. + +## Prerequisite proxy setup + +To successfully forward a request to Datadog, your proxy must + +1. [Build the Datadog intake URL](#build-the-datadog-intake-url). +2. Add an `X-Forwarded-For` header containing the request client IP address for accurate geoIP. +3. Forward the request to the Datadog intake URL using the POST method. +4. Leave the request body unchanged. + +{% alert level="warning" %} +- For security reasons, remove any HTTP headers that potentially contain sensitive information, such as the `cookie` header. +- The request body can contain binary data and should not be converted to a string. Make sure your proxy implementation forwards the raw body without conversion. +- Make sure your proxy implementation does not allow a malicious actor to send requests to a different server (ex: https://browser-intake-datadoghq.com.malicious.com). +{% /alert %} + +### Build the Datadog intake URL + +Your Datadog intake URL should have the format `/` (for example, `https://browser-intake-datadoghq.eu/api/v2/rum?ddsource=browser&...`). + +{% table %} +--- +* intake origin +* + The Datadog intake origin corresponds to your `site` [initialization parameter][1]. The Datadog intake origin corresponding to your site parameter should be defined in your proxy implementation. + + {% site-region region="us" %} + The intake origin for your Datadog site is `https://browser-intake-datadoghq.com`. + {% /site-region %} + + {% site-region region="us3" %} + The intake origin for your Datadog site is `https://browser-intake-us3-datadoghq.com`. + {% /site-region %} + + {% site-region region="us5" %} + The intake origin for your Datadog site is `https://browser-intake-us5-datadoghq.com`. + {% /site-region %} + + {% site-region region="eu" %} + The intake origin for your Datadog site is `https://browser-intake-datadoghq.eu`. + {% /site-region %} + + {% site-region region="ap1" %} + The intake origin for your Datadog site is `https://browser-intake-ap1-datadoghq.com`. + {% /site-region %} + + {% site-region region="fed" %} + The intake origin for your Datadog site is `https://browser-intake-ddog-gov.com`. + {% /site-region %} +--- +* path +* + The path contains the API version and the product (for example, `/api/v2/rum` for RUM data or `/api/v2/replay` for Session Replay data). + + The path for each request can be accessed in the request's `ddforward` parameter (for example, `https://www.example-proxy.com/any-endpoint?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`). +--- +* parameters +* + The request parameters (for example, `ddsource=browser&...`) can be accessed in the request's `ddforward` parameter (for example, `https://www.example-proxy.com/any-endpoint?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`). + +{% /table %} + +## SDK setup + + +{% if or(equals($rum_browser_sdk_version, "gte_5_4_0"),equals($rum_browser_sdk_version, "gte_4_34_0")) %} + +Configure the URL of the proxy in the `proxy` initialization parameter: + + +{% if equals($lib_src, "npm") %} +```javascript +import { Datacenter, datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '{% region-param key="dd_site" /%}', + proxy: '', +}); +``` +{% /if %} + + + +{% if equals($lib_src, "cdn_async") %} +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: '', + }); +}); +``` + +{% /if %} + + + +{% if equals($lib_src, "cdn_sync") %} +```javascript +window.DD_RUM && + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: '' + }); +``` +{% /if %} + + +The RUM Browser SDK adds a `ddforward` query parameter to all requests to your proxy. This query parameter contains the URL path and parameters that all data must be forwarded to. + +For example, with a `site` set to `datadoghq.eu` and a `proxy` set to `https://example.org/datadog-intake-proxy`, the RUM Browser SDK sends requests to a URL like this: `https://example.org/datadog-intake-proxy?ddforward=%2Fapi%2Fv2%2Frum%3Fddsource%3Dbrowser`. The proxy forwards the request to `https://browser-intake-datadoghq.eu/api/v2/rum?ddsource=browser`. + + +{% if equals($rum_browser_sdk_version, "gte_5_4_0") %} +### Passing a function to the `proxy` initialization parameter + +The `proxy` initialization parameter also supports a function input. This function allows you to have more control on how the path and parameters are added to the proxy URL. + +This function receives an object with the following properties: + +- `path`: the path for the Datadog requests (example: `/api/v2/rum`) +- `parameters`: the parameters of the Datadog requests (example: `ddsource=browser&...`) + + +{% if equals($lib_src, "npm") %} +```javascript +import { Datacenter, datadogRum } from '@datadog/browser-rum'; + +datadogRum.init({ + applicationId: '', + clientToken: '', + site: '{% region-param key="dd_site" /%}', + proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}`, +}); +``` +{% /if %} + + + +{% if equals($lib_src, "cdn_async") %} +```javascript +window.DD_RUM.onReady(function() { + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}`, + }) +}) +``` +{% /if %} + + + +{% if equals($lib_src, "cdn_sync") %} +```javascript +window.DD_RUM && + window.DD_RUM.init({ + clientToken: '', + applicationId: '', + proxy: (options) => `https://www.proxy.com/foo${options.path}/bar?${options.parameters}` + }); +``` +{% /if %} + + +**Note:** +- Some privacy blockers already target the intake [URL patterns][2], so you may want to take that into account when building your proxy URL. +- The `proxy` function is called for each request, so it should avoid any heavy computation. +- **JSP web applications** need to use the `\` escape character to properly propagate these parameters to the browser. For example: + ```javascript + proxy: (options) => 'http://proxyURL:proxyPort\${options.path}?\${options.parameters}', + ``` +{% /if %} + + +{% /if %} + + + +{% if equals($rum_browser_sdk_version, "lt_4_34_0") %} +Before Browser SDK v4.34.0, the `proxyUrl` initialization parameter was used, and the Datadog intake origin was included in the `ddforward` attribute. The proxy implementation was in charge of validating this host, and failure to do so resulted in various vulnerabilities. + +The Datadog intake origin needs to be defined in your proxy implementation to ensure security. + +**To avoid security vulnerabilities, you must upgrade to Browser SDK `4.34.0` or later.** +{% /if %} + + +[1]: /real_user_monitoring/browser/setup/client/?tab=rum#initialization-parameters +[2]: https://github.com/easylist/easylist/blob/997fb6533c719a015c21723b34e0cedefcc0d83d/easyprivacy/easyprivacy_general.txt#L3840 diff --git a/customization_config/en/option_groups/real_user_monitoring.yaml b/customization_config/en/option_groups/real_user_monitoring.yaml new file mode 100644 index 0000000000000..0636ed77ba2f7 --- /dev/null +++ b/customization_config/en/option_groups/real_user_monitoring.yaml @@ -0,0 +1,22 @@ +rum_sdk_platform_options: + - id: android + default: true + - id: ios + - id: react_native + +rum_mobile_proxy_protocol_options: + - id: http_https + default: true + - id: socks + +rum_browser_sdk_source_options: + - id: npm + default: true + - id: cdn_async + - id: cdn_sync + +rum_browser_sdk_version_for_proxying_options: +- id: gte_5_4_0 + default: true +- id: gte_4_34_0 +- id: lt_4_34_0 \ No newline at end of file diff --git a/customization_config/en/option_groups/real_user_monitoring/sdk.yaml b/customization_config/en/option_groups/real_user_monitoring/sdk.yaml deleted file mode 100644 index 7f2759d6fadb7..0000000000000 --- a/customization_config/en/option_groups/real_user_monitoring/sdk.yaml +++ /dev/null @@ -1,10 +0,0 @@ -rum_sdk_platform_options: - - id: android - default: true - - id: ios - - id: react_native - -rum_mobile_proxy_protocol_options: - - id: http_https - default: true - - id: socks \ No newline at end of file diff --git a/customization_config/en/options/options.yaml b/customization_config/en/options/general.yaml similarity index 99% rename from customization_config/en/options/options.yaml rename to customization_config/en/options/general.yaml index 40007fa83f874..2234e3f4b73aa 100644 --- a/customization_config/en/options/options.yaml +++ b/customization_config/en/options/general.yaml @@ -12,6 +12,7 @@ # and give it a unique ID. options: + - label: .NET id: dot_net diff --git a/customization_config/en/options/version_numbers.yaml b/customization_config/en/options/version_numbers.yaml new file mode 100644 index 0000000000000..3961cc945fe85 --- /dev/null +++ b/customization_config/en/options/version_numbers.yaml @@ -0,0 +1,13 @@ +options: + +# Earlier than 4.34.0 +- label: "<4.34.0" + id: lt_4_34_0 + +# 4.34.0 or later +- label: ">=4.34.0" + id: gte_4_34_0 + +# 5.4.0 or later +- label: ">=5.4.0" + id: gte_5_4_0 \ No newline at end of file diff --git a/customization_config/en/traits/general.yaml b/customization_config/en/traits/general.yaml new file mode 100644 index 0000000000000..5fcb65480bfec --- /dev/null +++ b/customization_config/en/traits/general.yaml @@ -0,0 +1,35 @@ +traits: +- id: prog_lang + label: Programming Language + internal_notes: Do not use for frameworks like Next or React Native. Instead, use `env`. + +- id: protocol + label: Protocol + internal_notes: For example, HTTP, gRPC, or SOCKS. + +- id: platform + label: "Platform" + internal_notes: The target platform (language, framework, specific env) for a library, SDK, or other third-party entity. Do not use if every option is a pure programming language (Go, Python, etc.) -- use `prog_lang` instead. Re-label to "Framework", "SDK", etc. if it's more appropriate for your context. + +- id: host + label: "Host" + internal_notes: Hosting platform, such as AWS or GCP. Can also refer to containers like Kubernetes. + +- id: host_type + label: "Host type" + internal_notes: The machine or container type within a given host, such as EC2. Use only as a followup to a `host` selection. + +- id: os + label: "OS" + internal_notes: Env operating system, such as Linux or Windows. Can refer to a mobile OS, but `mobile_os` is preferred for lists of mobile-only options. + +- id: database + label: "Database" + +- id: mobile_os + label: "OS" + internal_notes: Mobile operating system, such as Android. + +- id: lib_src + label: "Source" + internal_notes: The source of a software library that the customer is trying to use in their code, such as an SDK. This is most often a package manager like NPM. But it could also have a more general value, like "CDN" or "GitHub". \ No newline at end of file diff --git a/customization_config/en/traits/software_versions.yaml b/customization_config/en/traits/software_versions.yaml new file mode 100644 index 0000000000000..75a0081dadd71 --- /dev/null +++ b/customization_config/en/traits/software_versions.yaml @@ -0,0 +1,5 @@ +traits: + +- id: rum_browser_sdk_version + label: "SDK version" + internal_notes: The customer's version of the RUM browser SDK. Its value should be a semantic version represented in snake case, such as "1_2_3", "lt_1_2_3", "gt_1_2_3", "lte_1_2_3", etc. diff --git a/customization_config/en/traits/traits.yaml b/customization_config/en/traits/traits.yaml deleted file mode 100644 index a324e2f7c2206..0000000000000 --- a/customization_config/en/traits/traits.yaml +++ /dev/null @@ -1,35 +0,0 @@ -traits: - - id: prog_lang - label: Programming Language - internal_notes: Do not use for frameworks like Next or React Native. Instead, use `env`. - - - id: protocol - label: Protocol - internal_notes: For example, HTTP, gRPC, or SOCKS. - - - id: platform - label: "Platform" - internal_notes: The target platform (language, framework, specific env) for a library, SDK, or other third-party entity. Do not use if every option is a pure programming language (Go, Python, etc.) -- use `prog_lang` instead. Re-label to "Framework", "SDK", etc. if it's more appropriate for your context. - - - id: host - label: "Host" - internal_notes: Hosting platform, such as AWS or GCP. Can also refer to containers like Kubernetes. - - - id: host_type - label: "Host type" - internal_notes: The machine or container type within a given host, such as EC2. Use only as a followup to a `host` selection. - - - id: os - label: "OS" - internal_notes: Env operating system, such as Linux or Windows. Can refer to a mobile OS, but `mobile_os` is preferred for lists of mobile-only options. - - - id: database - label: "Database" - - - id: mobile_os - label: "OS" - internal_notes: Mobile operating system, such as Android. - - - id: pkg_mgr - label: "Package manager" - internal_notes: Software package manager, such as npm. \ No newline at end of file diff --git a/package.json b/package.json index 763d5396d3be1..b05ab486b1581 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@popperjs/core": "^2.11.8", "alpinejs": "^3.13.7", "bootstrap": "^5.2", - "cdocs-hugo-integration": "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v1.1.5.tgz", + "cdocs-hugo-integration": "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v1.1.9.tgz", "del": "4.1.1", "fancy-log": "^1.3.3", "geo-locate": "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/geo-locate-v1.0.1.tgz", diff --git a/yarn.lock b/yarn.lock index 898a8b3d7a3e1..54493a6bea747 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6520,9 +6520,9 @@ __metadata: languageName: node linkType: hard -"cdocs-data@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-data-v1.0.2.tgz": - version: 1.0.2 - resolution: "cdocs-data@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-data-v1.0.2.tgz" +"cdocs-data@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-data-v1.0.3.tgz": + version: 1.0.3 + resolution: "cdocs-data@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-data-v1.0.3.tgz" dependencies: js-yaml: ^4.1.0 jsdom: ^26.0.0 @@ -6532,18 +6532,18 @@ __metadata: typedoc-plugin-zod: ^1.3.1 uuid: ^11.0.5 zod: ^3.22.4 - checksum: 69058b63360bcce5274879bd4da2b4b20e253f3ce6a8a4d9fdff15b94118ca8e8fad21601be9cce58a849cf963f1adb8bac094c708f06041b15c9940fa76b4e1 + checksum: e6825dd85817ccb4f91879d0e86a0cd46982571a5508d2a3c8df4e9c7d5bb5eec5b84020bfd01b8f945e64958082de4a9c00dbc147e2f5a19b92af9a3b72d026 languageName: node linkType: hard -"cdocs-hugo-integration@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v1.1.5.tgz": - version: 1.1.5 - resolution: "cdocs-hugo-integration@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v1.1.5.tgz" +"cdocs-hugo-integration@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v1.1.9.tgz": + version: 1.1.9 + resolution: "cdocs-hugo-integration@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v1.1.9.tgz" dependencies: "@prettier/sync": ^0.5.2 "@types/markdown-it": ^14.1.2 "@vitejs/plugin-react": ^4.3.3 - cdocs-data: "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-data-v1.0.2.tgz" + cdocs-data: "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-data-v1.0.3.tgz" cdocs-markdoc: "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-markdoc-v1.0.1.tgz" chroma-highlight: ^2.4.2 interweave: ^13.1.0 @@ -6562,7 +6562,7 @@ __metadata: vite: ^5.4.10 vite-plugin-singlefile: ^2.0.2 zod: ^3.22.4 - checksum: 371991f1c07385f3b781317f590e05c6dd8f323f5575a7b8e6d9e70627a357d76574bfaead52cfcbea8b5fe3c18cb1830ebf2d77ac285685a449e401859b7df0 + checksum: 98ec8f23adf4058c97ed8ea94b1611276c016889c0d89f8621e6a6e4cec8773e82e4f8645d5f2b66799017e24776f88d8cfa1e212d8265c8cbf468d693db995a languageName: node linkType: hard @@ -7595,7 +7595,7 @@ __metadata: acorn: ^7.4.1 alpinejs: ^3.13.7 bootstrap: ^5.2 - cdocs-hugo-integration: "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v1.1.5.tgz" + cdocs-hugo-integration: "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v1.1.9.tgz" cross-env: ^5.2.1 del: 4.1.1 eslint: ^6.8.0