[ 
https://issues.apache.org/jira/browse/ATLAS-5307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Prasad P. Pawar updated ATLAS-5307:
-----------------------------------
    Description: 
Address high-priority automated dependency review findings for the React UI 
({{{}dashboard/{}}}), classic UI ({{{}dashboardv2/{}}}), and documentation site 
({{{}docs/{}}}). Bump direct and transitive npm packages to patched versions 
and refresh lockfiles so builds stay reproducible.
h3. Scope
||Area||Manifests updated||
|React dashboard|{{{}dashboard/package.json{}}}, 
{{dashboard/package-lock.json}}|
|Lineage bundle 
(dashboard)|{{{}dashboard/src/views/Lineage/atlas-lineage/package.json{}}}, 
{{package-lock.json}}|
|Classic UI|{{{}dashboardv2/package.json{}}}, {{dashboardv2/package-lock.json}}|
|Lineage bundle 
(dashboardv2)|{{{}dashboardv2/public/js/external_lib/atlas-lineage/package.json{}}},
 {{package-lock.json}}|
|Documentation site|{{{}docs/package.json{}}}, {{docs/package-lock.json}}|
|Build tooling|Root {{pom.xml}} — RAT excludes for generated webpack/docz 
output only (no runtime dependency change)|
h3. Package updates (frontend)

dashboard
 * {{vite}} 6.4.1 → 6.4.2 (dev server file access hardening)
 * {{axios}} 1.13.5 → 1.15.2
 * {{lodash}} / {{lodash-es}} overrides → 4.18.1
 * {{flatted}} override → 3.4.2 (eslint transitive)

dashboard + dashboardv2 atlas-lineage
 * {{@babel/core}} 7.29.0, {{@babel/preset-env}} 7.29.5
 * Overrides: {{lodash}} 4.18.1, {{serialize-javascript}} 7.0.3, 
{{@babel/plugin-transform-modules-systemjs}} 7.29.4

dashboardv2
 * {{lodash}} override 4.17.23 → 4.18.1

docs
 * {{axios}} 1.13.5 → 1.15.2
 * Overrides: {{node-forge}} 1.4.0, {{lodash}} 4.18.1, 
{{@babel/plugin-transform-modules-systemjs}} 7.29.4, {{serialize-javascript}} 
7.0.3, {{fast-uri}} 3.1.2, {{picomatch}} 2.3.2






h3. 1. Direct dependencies (app code uses these)
||Package||Old → New||Used in project||API / method usage||Code change needed?||
|vite|6.4.1 → 6.4.2|{{dashboard/vite.config.ts}}|{{{}defineConfig{}}}, 
{{{}server.host{}}}, {{{}server.proxy{}}}, {{{}build.rollupOptions{}}}, 
{{resolve.alias}}|No — patch release; dev-server hardening only|
|axios|1.13.5 → 1.15.2|{{{}dashboard/src/api/apiMethods/fetchApi.ts{}}}, type 
imports in 3 other TS files; {{docs/theme/.../TeamList}} (import only, 
unused)|{{{}axios(){}}}, {{{}axios.isAxiosError(){}}}, 
{{{}AxiosRequestConfig{}}}, {{{}AxiosResponse{}}}, {{{}error.response{}}}, 
{{error.code}}|No — same public API; {{tsc}} passes|
 
Dashboard axios call sites

 ** {{fetchApi.ts}} — main HTTP wrapper
 ** {{{}FormAutocomplete.tsx{}}}, {{{}QuickSearch.tsx{}}}, {{Labels.tsx}} — 
{{AxiosResponse}} typing only
----
h3. 2. Overrides / transitive (not imported directly in app source)
||Package||Old → New||Role||Direct imports in Atlas source?||Code change 
needed?||
|lodash / lodash-es|4.17.23 → 4.18.1|{{dashboardv2}} (via underscore/lodash 
global), {{{}docs/theme{}}}, lineage via {{{}dagre-d3{}}}, 
{{react-quill-new}}|Yes — see below|No for current usage|
|flatted|3.3.3 → 3.4.2|ESLint transitive ({{{}dashboard{}}})|No|No|
|serialize-javascript|4.x → 7.0.3|Webpack 4 / terser (lineage bundles)|No|No — 
lineage webpack build passes|
|@babel/plugin-transform-modules-systemjs|7.29.0 → 7.29.4|Transitive via 
{{@babel/preset-env}}|No — webpack uses {{preset-env}} + 
{{transform-class-properties}} only|No|
|@babel/core / preset-env|7.23.2 → 7.29.0 / 7.29.5|Lineage 
{{babel-loader}}|{{{}presets: ["@babel/preset-env"]{}}}, {{plugins: 
["@babel/plugin-transform-class-properties"]}}|No|
|node-forge|1.3.2 → 1.4.0|Docz / webpack-dev-server transitive|No|No|
|fast-uri|3.1.0 → 3.1.2|Docz transitive|No|No|
|picomatch|2.3.1 → 2.3.2|Docz / tooling transitive|No|No|
 
----
h3. 3. Lodash — only area with _behavioral_ changes (not renames)

4.18.1 tightens behavior in two APIs. No method was renamed or removed that 
Atlas uses.
||Lodash API||Change in 4.18.x||Used in Atlas?||Impact on Atlas||
|{{_.unset}} / {{_.omit}}|Blocks {{constructor}} / {{prototype}} as path keys 
(prototype-pollution hardening)|{{_.omit}} used widely in dashboardv2 
({{{}Utils.js{}}}, {{{}GlossaryLayoutView.js{}}}, {{{}TableLayout.js{}}}, 
audit/search views, etc.) with normal keys ({{{}typeName{}}}, {{{}guid{}}}, 
{{{}limit{}}}, …)|No impact — paths are plain property names, not 
{{{}constructor{}}}/{{{}prototype{}}}|
|{{_.template}}|Stricter validation of {{options.imports}} keys; throws on 
forbidden identifiers|{{_.template(...)}} in dashboardv2 
({{{}BackgridHeader.js{}}}, search/audit column buttons, 
{{{}Backgrid.ColumnManager.js{}}}) with static template strings, no custom 
{{imports}}|No impact|
|{{{}_.get{}}}, {{{}_.extend{}}}, {{{}_.each{}}}, {{{}_.sortBy{}}}, 
{{{}_.isArray{}}}, {{{}_.isEmpty{}}}, {{{}_.has{}}}, {{{}_.union{}}}, 
{{{}_.keys{}}}, {{{}_.pick{}}}, {{{}_.flatten{}}}, fp helpers|Unchanged 
signatures|docs/theme, dashboardv2, GlossaryExport.js|No impact|
|{{_.numberFormatWithComma}}|Custom mixin in 
{{dashboardv2/public/js/utils/Helper.js}} (not core lodash)|Statistics, search, 
glossary views|No impact|
 
React dashboard ({{{}dashboard/src{}}}) does not import lodash directly; it 
gets lodash-es only transitively through react-quill-new (standard lodash-es 
APIs).
----
h3. 4. Axios — internal hardening only (no renames in our usage)

Upgrades 1.13.5 → 1.15.2 add/fix internal handling (e.g. {{{}mergeConfig{}}}, 
proxy loopback normalization, prototype-pollution guards). Public methods we 
use are unchanged:

 ** {{axios(config)}}
 ** {{axios.isAxiosError(error)}}
 ** Types: {{{}AxiosRequestConfig{}}}, {{AxiosResponse}}
No Atlas file needs updates for renamed axios methods.
----
h3. 5. Vite — patch only

6.4.1 → 6.4.2 fixes dev-server WebSocket {{fetchModule}} path when 
{{server.host}} is exposed. Config in {{vite.config.ts}} is unchanged and valid.

  was:
Address high-priority automated dependency review findings for the React UI 
({{{}dashboard/{}}}), classic UI ({{{}dashboardv2/{}}}), and documentation site 
({{{}docs/{}}}). Bump direct and transitive npm packages to patched versions 
and refresh lockfiles so builds stay reproducible.
h3. Scope
||Area||Manifests updated||
|React dashboard|{{{}dashboard/package.json{}}}, 
{{dashboard/package-lock.json}}|
|Lineage bundle 
(dashboard)|{{{}dashboard/src/views/Lineage/atlas-lineage/package.json{}}}, 
{{package-lock.json}}|
|Classic UI|{{{}dashboardv2/package.json{}}}, {{dashboardv2/package-lock.json}}|
|Lineage bundle 
(dashboardv2)|{{{}dashboardv2/public/js/external_lib/atlas-lineage/package.json{}}},
 {{package-lock.json}}|
|Documentation site|{{{}docs/package.json{}}}, {{docs/package-lock.json}}|
|Build tooling|Root {{pom.xml}} — RAT excludes for generated webpack/docz 
output only (no runtime dependency change)|
h3. Package updates (frontend)

dashboard
 * {{vite}} 6.4.1 → 6.4.2 (dev server file access hardening)
 * {{axios}} 1.13.5 → 1.15.2
 * {{lodash}} / {{lodash-es}} overrides → 4.18.1
 * {{flatted}} override → 3.4.2 (eslint transitive)

dashboard + dashboardv2 atlas-lineage
 * {{@babel/core}} 7.29.0, {{@babel/preset-env}} 7.29.5
 * Overrides: {{lodash}} 4.18.1, {{serialize-javascript}} 7.0.3, 
{{@babel/plugin-transform-modules-systemjs}} 7.29.4

dashboardv2
 * {{lodash}} override 4.17.23 → 4.18.1

docs
 * {{axios}} 1.13.5 → 1.15.2
 * Overrides: {{node-forge}} 1.4.0, {{lodash}} 4.18.1, 
{{@babel/plugin-transform-modules-systemjs}} 7.29.4, {{serialize-javascript}} 
7.0.3, {{fast-uri}} 3.1.2, {{picomatch}} 2.3.2


> Atlas UI: Update frontend npm dependencies in dashboard, dashboardv2, and docs
> ------------------------------------------------------------------------------
>
>                 Key: ATLAS-5307
>                 URL: https://issues.apache.org/jira/browse/ATLAS-5307
>             Project: Atlas
>          Issue Type: Bug
>          Components: atlas-webui
>    Affects Versions: 3.0.0
>            Reporter: Prasad P. Pawar
>            Assignee: Prasad P. Pawar
>            Priority: Major
>
> Address high-priority automated dependency review findings for the React UI 
> ({{{}dashboard/{}}}), classic UI ({{{}dashboardv2/{}}}), and documentation 
> site ({{{}docs/{}}}). Bump direct and transitive npm packages to patched 
> versions and refresh lockfiles so builds stay reproducible.
> h3. Scope
> ||Area||Manifests updated||
> |React dashboard|{{{}dashboard/package.json{}}}, 
> {{dashboard/package-lock.json}}|
> |Lineage bundle 
> (dashboard)|{{{}dashboard/src/views/Lineage/atlas-lineage/package.json{}}}, 
> {{package-lock.json}}|
> |Classic UI|{{{}dashboardv2/package.json{}}}, 
> {{dashboardv2/package-lock.json}}|
> |Lineage bundle 
> (dashboardv2)|{{{}dashboardv2/public/js/external_lib/atlas-lineage/package.json{}}},
>  {{package-lock.json}}|
> |Documentation site|{{{}docs/package.json{}}}, {{docs/package-lock.json}}|
> |Build tooling|Root {{pom.xml}} — RAT excludes for generated webpack/docz 
> output only (no runtime dependency change)|
> h3. Package updates (frontend)
> dashboard
>  * {{vite}} 6.4.1 → 6.4.2 (dev server file access hardening)
>  * {{axios}} 1.13.5 → 1.15.2
>  * {{lodash}} / {{lodash-es}} overrides → 4.18.1
>  * {{flatted}} override → 3.4.2 (eslint transitive)
> dashboard + dashboardv2 atlas-lineage
>  * {{@babel/core}} 7.29.0, {{@babel/preset-env}} 7.29.5
>  * Overrides: {{lodash}} 4.18.1, {{serialize-javascript}} 7.0.3, 
> {{@babel/plugin-transform-modules-systemjs}} 7.29.4
> dashboardv2
>  * {{lodash}} override 4.17.23 → 4.18.1
> docs
>  * {{axios}} 1.13.5 → 1.15.2
>  * Overrides: {{node-forge}} 1.4.0, {{lodash}} 4.18.1, 
> {{@babel/plugin-transform-modules-systemjs}} 7.29.4, {{serialize-javascript}} 
> 7.0.3, {{fast-uri}} 3.1.2, {{picomatch}} 2.3.2
> h3. 1. Direct dependencies (app code uses these)
> ||Package||Old → New||Used in project||API / method usage||Code change 
> needed?||
> |vite|6.4.1 → 6.4.2|{{dashboard/vite.config.ts}}|{{{}defineConfig{}}}, 
> {{{}server.host{}}}, {{{}server.proxy{}}}, {{{}build.rollupOptions{}}}, 
> {{resolve.alias}}|No — patch release; dev-server hardening only|
> |axios|1.13.5 → 1.15.2|{{{}dashboard/src/api/apiMethods/fetchApi.ts{}}}, type 
> imports in 3 other TS files; {{docs/theme/.../TeamList}} (import only, 
> unused)|{{{}axios(){}}}, {{{}axios.isAxiosError(){}}}, 
> {{{}AxiosRequestConfig{}}}, {{{}AxiosResponse{}}}, {{{}error.response{}}}, 
> {{error.code}}|No — same public API; {{tsc}} passes|
>  
> Dashboard axios call sites
>  ** {{fetchApi.ts}} — main HTTP wrapper
>  ** {{{}FormAutocomplete.tsx{}}}, {{{}QuickSearch.tsx{}}}, {{Labels.tsx}} — 
> {{AxiosResponse}} typing only
> ----
> h3. 2. Overrides / transitive (not imported directly in app source)
> ||Package||Old → New||Role||Direct imports in Atlas source?||Code change 
> needed?||
> |lodash / lodash-es|4.17.23 → 4.18.1|{{dashboardv2}} (via underscore/lodash 
> global), {{{}docs/theme{}}}, lineage via {{{}dagre-d3{}}}, 
> {{react-quill-new}}|Yes — see below|No for current usage|
> |flatted|3.3.3 → 3.4.2|ESLint transitive ({{{}dashboard{}}})|No|No|
> |serialize-javascript|4.x → 7.0.3|Webpack 4 / terser (lineage bundles)|No|No 
> — lineage webpack build passes|
> |@babel/plugin-transform-modules-systemjs|7.29.0 → 7.29.4|Transitive via 
> {{@babel/preset-env}}|No — webpack uses {{preset-env}} + 
> {{transform-class-properties}} only|No|
> |@babel/core / preset-env|7.23.2 → 7.29.0 / 7.29.5|Lineage 
> {{babel-loader}}|{{{}presets: ["@babel/preset-env"]{}}}, {{plugins: 
> ["@babel/plugin-transform-class-properties"]}}|No|
> |node-forge|1.3.2 → 1.4.0|Docz / webpack-dev-server transitive|No|No|
> |fast-uri|3.1.0 → 3.1.2|Docz transitive|No|No|
> |picomatch|2.3.1 → 2.3.2|Docz / tooling transitive|No|No|
>  
> ----
> h3. 3. Lodash — only area with _behavioral_ changes (not renames)
> 4.18.1 tightens behavior in two APIs. No method was renamed or removed that 
> Atlas uses.
> ||Lodash API||Change in 4.18.x||Used in Atlas?||Impact on Atlas||
> |{{_.unset}} / {{_.omit}}|Blocks {{constructor}} / {{prototype}} as path keys 
> (prototype-pollution hardening)|{{_.omit}} used widely in dashboardv2 
> ({{{}Utils.js{}}}, {{{}GlossaryLayoutView.js{}}}, {{{}TableLayout.js{}}}, 
> audit/search views, etc.) with normal keys ({{{}typeName{}}}, {{{}guid{}}}, 
> {{{}limit{}}}, …)|No impact — paths are plain property names, not 
> {{{}constructor{}}}/{{{}prototype{}}}|
> |{{_.template}}|Stricter validation of {{options.imports}} keys; throws on 
> forbidden identifiers|{{_.template(...)}} in dashboardv2 
> ({{{}BackgridHeader.js{}}}, search/audit column buttons, 
> {{{}Backgrid.ColumnManager.js{}}}) with static template strings, no custom 
> {{imports}}|No impact|
> |{{{}_.get{}}}, {{{}_.extend{}}}, {{{}_.each{}}}, {{{}_.sortBy{}}}, 
> {{{}_.isArray{}}}, {{{}_.isEmpty{}}}, {{{}_.has{}}}, {{{}_.union{}}}, 
> {{{}_.keys{}}}, {{{}_.pick{}}}, {{{}_.flatten{}}}, fp helpers|Unchanged 
> signatures|docs/theme, dashboardv2, GlossaryExport.js|No impact|
> |{{_.numberFormatWithComma}}|Custom mixin in 
> {{dashboardv2/public/js/utils/Helper.js}} (not core lodash)|Statistics, 
> search, glossary views|No impact|
>  
> React dashboard ({{{}dashboard/src{}}}) does not import lodash directly; it 
> gets lodash-es only transitively through react-quill-new (standard lodash-es 
> APIs).
> ----
> h3. 4. Axios — internal hardening only (no renames in our usage)
> Upgrades 1.13.5 → 1.15.2 add/fix internal handling (e.g. {{{}mergeConfig{}}}, 
> proxy loopback normalization, prototype-pollution guards). Public methods we 
> use are unchanged:
>  ** {{axios(config)}}
>  ** {{axios.isAxiosError(error)}}
>  ** Types: {{{}AxiosRequestConfig{}}}, {{AxiosResponse}}
> No Atlas file needs updates for renamed axios methods.
> ----
> h3. 5. Vite — patch only
> 6.4.1 → 6.4.2 fixes dev-server WebSocket {{fetchModule}} path when 
> {{server.host}} is exposed. Config in {{vite.config.ts}} is unchanged and 
> valid.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to