You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Critical dependency upgrades required, particularly Node.js 18 (EOL) which no longer receives security patches. Additional major version upgrades needed for Vite, react-admin, and Material-UI.
Adoption of Node 22 (LTS) means security patches will be available for this important component until 2027.
Critical Risk
Node.js 18 has reached End of Life and receives zero security updates. This is an immediate production security risk.
Current Test Coverage Gap
Major concern: This project has minimal unit and e2e test coverage:
Jest tests exist but limited coverage (src/providers/dataProvider/tests/)
Playwright e2e tests configured but minimal test scenarios
Large manual testing burden for regression validation
High risk of breaking changes going undetected during upgrades
Proposed Cost-Effective Approach
Phase 0: Test Improvement Prerequisite
Complete issue #1149 first - This refactoring of business logic into testable modules will improve the quality and effectiveness of tests implemented in Phase 1.
Phase 1: Test Infrastructure (Before Upgrades)
Rationale: Establish comprehensive test coverage FIRST to catch regressions during upgrades. With thorough e2e coverage, dependency upgrades become straightforward validation exercises.
Expand Unit Test Coverage
Data provider lifecycle callbacks (critical business logic)
Authentication/authorization flows
Form validation schemas
Resource-specific CRUD operations
Audit logging functions
Target: 70%+ coverage of critical paths
Expand E2E Test Coverage
User authentication flows (login, logout, session timeout)
Item creation/editing workflows
Batch management operations
Dispatch workflows
Destruction workflows
Vault location tracking
Permission-based access control scenarios
Target: All critical user journeys covered
Establish Testing Baseline
Run full test suite on current dependency versions
Document all passing tests as regression baseline
Fix any existing test failures
Estimated effort: 3 days
Phase 2: Dependency Upgrades (With Test Safety Net)
Perform upgrades in logical sequence with test validation at each step:
Step 1: Node.js & TypeScript (Day 1-2)
Upgrade Node.js 18.x → 22.12+ LTS (required for Vite 7, supported until April 2027)
Key benefit: Test suite provides automated regression detection, enabling confident implementation of features that would be too risky without comprehensive testing.
Summary
Critical dependency upgrades required, particularly Node.js 18 (EOL) which no longer receives security patches. Additional major version upgrades needed for Vite, react-admin, and Material-UI.
Adoption of Node 22 (LTS) means security patches will be available for this important component until 2027.
Critical Risk
Node.js 18 has reached End of Life and receives zero security updates. This is an immediate production security risk.
Current Test Coverage Gap
Major concern: This project has minimal unit and e2e test coverage:
src/providers/dataProvider/tests/)Proposed Cost-Effective Approach
Phase 0: Test Improvement Prerequisite
Complete issue #1149 first - This refactoring of business logic into testable modules will improve the quality and effectiveness of tests implemented in Phase 1.
Phase 1: Test Infrastructure (Before Upgrades)
Rationale: Establish comprehensive test coverage FIRST to catch regressions during upgrades. With thorough e2e coverage, dependency upgrades become straightforward validation exercises.
Expand Unit Test Coverage
Expand E2E Test Coverage
Establish Testing Baseline
Estimated effort: 3 days
Phase 2: Dependency Upgrades (With Test Safety Net)
Perform upgrades in logical sequence with test validation at each step:
Step 1: Node.js & TypeScript (Day 1-2)
.nvmrcto specify Node 22.12+Step 2: Vite 4.2 → 7 (Day 3)
Note: Minimal Vite-specific code (22-line config, 3 plugins). Plugin compatibility check then upgrade.
@vitejs/plugin-react- official, auto-updatesvite-plugin-babel-macros- verify Vite 7 supportvite-plugin-environment- verify Vite 7 supportrolldown-vitepackage)Step 3: React 18.2 → 19 (Day 4-5)
Step 4: Material-UI 5.11 → 7 (Day 6)
Note: With comprehensive e2e coverage, MUI upgrades are primarily validation exercises.
Step 5: react-admin 4.13 → 5.12 (Day 7)
Note: Few relevant breaking changes, thorough e2e coverage validates admin functionality.
<Admin menu>prop (deprecated since 4.0)<DatagridBody>to use RecordContextStep 6: Backend Compatibility & Testing (Day 8-9)
_extensions/and_devExtensions/npm auditoryarn auditStep 7: Deployment Preparation (Day 10)
Estimated upgrade effort: 10 days
Phase 3: Post-Upgrade
Phase 4: Feature Development (Enabled by Test Suite)
With comprehensive test coverage and modern dependencies in place, implement features efficiently with automated regression detection.
Quick Wins (1.5 days total)
_devExtensions- 0.5 daysclientPermissionsfile with const valuesFeature Enhancements (7.5 days total)
Phase 4 total: 9 days
Key benefit: Test suite provides automated regression detection, enabling confident implementation of features that would be too risky without comprehensive testing.
Total Estimated Effort
Complete project timeline:
Total: 20.5 days for tests + upgrades + all features
Long-term value: Test infrastructure + modern dependencies enable safer, faster development and reduce ongoing maintenance burden.
Dependencies to Upgrade
Critical
Major Version Upgrades
Minor Updates
TypeScript 5.0.2 → 5.9 Key Changes
5.1-5.2: Using declarations, decorator metadata, array copy methods, 50% faster JSDoc parsing
5.3-5.4: Import attributes, NoInfer utility, better closure narrowing
5.5: Array filtering type narrowing, inferred type predicates, regex validation, new Set methods, 33% smaller package
5.6-5.7: Better truthy/falsy detection, ES2024 target support
5.8-5.9: Erasable syntax flag, granular return checks
Breaking: Minimal - mostly stricter type checking and removed deprecated 5.0 options
Vite 4.2 → 7 Key Changes
Vite 5: Rollup 4, import attributes, SSR improvements
Vite 6: Environment API, Module Runner, modern Sass default
Vite 7: Node 20.19+/22.12+ required, baseline-widely-available browser targets, Sass legacy removed, optional Rolldown (16× faster builds)
References
TypeScript
Build Tools
React
Material-UI
React-Admin
Node.js
Related Issues
Prerequisites:
Phase 4 Features: