admin-lte 4.0.0-rc4 → 4.0.0-rc6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/.browserslistrc +1 -0
  2. package/.claude/settings.local.json +22 -17
  3. package/CHANGELOG.md +95 -0
  4. package/CLAUDE.md +61 -88
  5. package/README.md +76 -19
  6. package/SECURITY.md +99 -0
  7. package/dist/UI/general.html +219 -70
  8. package/dist/UI/icons.html +50 -12
  9. package/dist/UI/timeline.html +64 -18
  10. package/dist/css/adminlte.css +102 -112
  11. package/dist/css/adminlte.css.map +1 -1
  12. package/dist/css/adminlte.min.css +2 -2
  13. package/dist/css/adminlte.min.css.map +1 -1
  14. package/dist/css/adminlte.rtl.css +102 -112
  15. package/dist/css/adminlte.rtl.css.map +1 -1
  16. package/dist/css/adminlte.rtl.min.css +2 -2
  17. package/dist/css/adminlte.rtl.min.css.map +1 -1
  18. package/dist/docs/browser-support.html +47 -11
  19. package/dist/docs/color-mode.html +63 -23
  20. package/dist/docs/components/main-header.html +67 -17
  21. package/dist/docs/components/main-sidebar.html +47 -11
  22. package/dist/docs/faq.html +47 -11
  23. package/dist/docs/how-to-contribute.html +47 -11
  24. package/dist/docs/introduction.html +47 -11
  25. package/dist/docs/javascript/pushmenu.html +876 -0
  26. package/dist/docs/javascript/treeview.html +47 -11
  27. package/dist/docs/layout.html +49 -11
  28. package/dist/docs/license.html +47 -11
  29. package/dist/examples/lockscreen.html +22 -2
  30. package/dist/examples/login-v2.html +30 -5
  31. package/dist/examples/login.html +30 -5
  32. package/dist/examples/register-v2.html +30 -5
  33. package/dist/examples/register.html +30 -5
  34. package/dist/forms/general.html +70 -17
  35. package/dist/generate/theme.html +58 -14
  36. package/dist/index.html +83 -14
  37. package/dist/index2.html +151 -31
  38. package/dist/index3.html +94 -23
  39. package/dist/js/adminlte.js +102 -16
  40. package/dist/js/adminlte.js.map +1 -1
  41. package/dist/js/adminlte.min.js +2 -2
  42. package/dist/js/adminlte.min.js.map +1 -1
  43. package/dist/layout/collapsed-sidebar.html +47 -10
  44. package/dist/layout/fixed-complete.html +49 -13
  45. package/dist/layout/fixed-footer.html +48 -11
  46. package/dist/layout/fixed-header.html +48 -11
  47. package/dist/layout/fixed-sidebar.html +49 -11
  48. package/dist/layout/layout-custom-area.html +58 -13
  49. package/dist/layout/layout-rtl.html +48 -11
  50. package/dist/layout/logo-switch.html +43 -10
  51. package/dist/layout/sidebar-mini.html +47 -10
  52. package/dist/layout/unfixed-sidebar.html +48 -11
  53. package/dist/tables/simple.html +119 -34
  54. package/dist/widgets/cards.html +62 -11
  55. package/dist/widgets/info-box.html +134 -28
  56. package/dist/widgets/small-box.html +51 -11
  57. package/index.html +1 -1
  58. package/package.json +26 -26
  59. package/src/scss/_accessibility.scss +0 -6
  60. package/src/scss/_app-sidebar.scss +7 -1
  61. package/src/scss/_cards.scss +6 -4
  62. package/src/scss/_dropdown.scss +5 -28
  63. package/src/scss/adminlte.scss +1 -1
  64. package/src/ts/accessibility.ts +13 -5
  65. package/src/ts/adminlte.ts +1 -1
  66. package/src/ts/card-widget.ts +4 -2
  67. package/src/ts/push-menu.ts +81 -7
  68. package/src/ts/treeview.ts +19 -1
  69. package/README 2.md +0 -106
package/.browserslistrc CHANGED
@@ -14,3 +14,4 @@ not Explorer <= 11
14
14
  not ie 11
15
15
  not android 4.4.3
16
16
  not ios_saf < 15.4
17
+ not kaios <= 2.5 # fix floating label issues in Firefox (see https://github.com/postcss/autoprefixer/issues/1533)
@@ -1,28 +1,33 @@
1
1
  {
2
2
  "permissions": {
3
3
  "allow": [
4
- "WebFetch(domain:github.com)",
5
- "Bash(npm run css-lint)",
4
+ "Bash(npm audit:*)",
6
5
  "Bash(npm run build:*)",
7
- "Bash(npm install)",
8
- "Bash(npm run:*)",
9
- "Bash(npm test:*)",
6
+ "Bash(npm ls:*)",
7
+ "Bash(gh pr list:*)",
8
+ "Bash(npm outdated:*)",
10
9
  "Bash(npm install:*)",
11
- "Bash(npm start)",
12
- "WebFetch(domain:adminlte.io)",
10
+ "Bash(gh pr view:*)",
11
+ "Bash(gh pr diff:*)",
13
12
  "Bash(rm:*)",
14
- "Bash(find:*)",
15
- "Bash(sed:*)",
16
- "Bash(gh pr list:*)",
17
- "Bash(npm audit:*)",
18
- "Bash(npm outdated)",
19
- "Bash(npm update:*)",
13
+ "Bash(gh api:*)",
14
+ "Bash(gh issue list:*)",
15
+ "Bash(gh issue view:*)",
16
+ "Bash(npm run css:*)",
17
+ "Bash(npm run js:*)",
18
+ "Bash(npm run js-lint:*)",
19
+ "Bash(npm run css-lint:*)",
20
+ "Bash(npm run lint:*)",
21
+ "Bash(npm whoami:*)",
22
+ "Bash(npm run production:*)",
20
23
  "Bash(git add:*)",
21
24
  "Bash(git commit:*)",
22
- "Bash(git tag:*)",
23
- "Bash(gh release create:*)",
25
+ "Bash(npm view:*)",
26
+ "Bash(cat:*)",
27
+ "Bash(npm pack:*)",
24
28
  "Bash(npm publish:*)"
25
29
  ],
26
- "deny": []
30
+ "deny": [],
31
+ "ask": []
27
32
  }
28
- }
33
+ }
package/CHANGELOG.md CHANGED
@@ -7,6 +7,101 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [4.0.0-rc6] - 2025-12-08
11
+
12
+ ### Security
13
+
14
+ - **Fixed 4 Security Vulnerabilities:** Resolved all npm audit security issues
15
+ - Fixed high severity reflected XSS vulnerability in Astro server islands
16
+ - Fixed moderate severity authentication bypass via url.pathname in Astro
17
+ - Fixed moderate severity stored XSS in Astro Cloudflare adapter /_image endpoint
18
+ - Fixed moderate severity unsanitized class attribute in mdast-util-to-hast
19
+ - All vulnerabilities resolved by updating to Astro 5.16.4+
20
+
21
+ ### Added
22
+
23
+ - **Sidebar State Persistence:** New feature to remember sidebar collapsed/expanded state
24
+ - Sidebar state now persists across page refreshes using localStorage
25
+ - Configurable via `enablePersistence` option (default: `true`)
26
+ - SSR-safe implementation with proper environment checks
27
+ - Mobile-aware: doesn't restore state on small screens (respects responsive breakpoints)
28
+ - Graceful error handling for private browsing mode
29
+ - Storage key: `lte.sidebar.state`
30
+
31
+ ### Changed
32
+
33
+ - **GitHub Actions:** Updated all workflows to Node.js 22 (from Node.js 18)
34
+ - Node.js 18 reached End-of-Life on April 30, 2025
35
+ - Node.js 22 is the current Active LTS (supported until April 2027)
36
+ - Updated `setup-node` action from v3 to v4 across all workflows
37
+ - Updated CodeQL actions from v2 to v3
38
+ - Added `FORCE_COLOR: 2` environment variable to codeql.yml for consistency
39
+
40
+ ### Fixed
41
+
42
+ - **Release Workflow:** Fixed zip command in release.yml
43
+ - Corrected `-d` flag to `-r` for recursive directory zipping
44
+ - Fixed filename inconsistency in release artifacts
45
+ - **Nested Card Expand Icon:** Fixed issue #5909 where nested collapsed cards didn't show expand icon
46
+ - Updated CSS selectors to use direct child (>) scoping for card state icons
47
+ - Collapse/expand icons now correctly display for nested cards independently
48
+ - Card body/footer display rules now only affect direct children, not nested cards
49
+ - **Card Widget JavaScript:** Fixed nested card collapse/expand affecting child cards
50
+ - Added `:scope >` selector to only target direct card-body/footer children
51
+ - Prevents parent card collapse from affecting nested card animations
52
+
53
+ ### Updated
54
+
55
+ - **Dependencies:** Updated 15+ packages to latest versions
56
+ - @astrojs/check: 0.9.5 → 0.9.6
57
+ - @astrojs/mdx: 4.3.9 → 4.3.12
58
+ - @rollup/plugin-typescript: 12.1.3 → 12.3.0
59
+ - @typescript-eslint/eslint-plugin: 8.46.2 → 8.48.1
60
+ - @typescript-eslint/parser: 8.46.2 → 8.48.1
61
+ - astro: 5.15.6 → 5.16.4 (includes security fixes)
62
+ - autoprefixer: 10.4.21 → 10.4.22
63
+ - eslint: 9.39.0 → 9.39.1
64
+ - eslint-plugin-astro: 1.4.0 → 1.5.0
65
+ - nodemon: 3.1.10 → 3.1.11
66
+ - prettier: 3.5.3 → 3.7.4
67
+ - rimraf: 6.1.0 → 6.1.2
68
+ - rollup: 4.52.4 → 4.53.3
69
+ - sass: 1.93.2 → 1.94.2
70
+ - stylelint: 16.25.0 → 16.26.1
71
+ - terser: 5.44.0 → 5.44.1
72
+
73
+ ## [4.0.0-rc5] - 2025-10-14
74
+
75
+ ### Updated
76
+ - **Dependencies:** Updated 17+ packages to latest versions for improved security and performance
77
+ - @astrojs/mdx: 4.3.0 → 4.3.7
78
+ - @typescript-eslint/eslint-plugin: 8.36.0 → 8.46.1
79
+ - @typescript-eslint/parser: 8.36.0 → 8.46.1
80
+ - astro: 5.11.0 → 5.14.4
81
+ - bootstrap: 5.3.7 → 5.3.8
82
+ - concurrently: 9.2.0 → 9.2.1
83
+ - cross-env: 7.0.3 → 10.1.0 (major version)
84
+ - eslint: 9.30.1 → 9.37.0
85
+ - eslint-config-xo: 0.47.0 → 0.49.0
86
+ - eslint-config-xo-typescript: 8.0.1 → 9.0.0 (major version)
87
+ - eslint-plugin-unicorn: 59.0.1 → 61.0.2
88
+ - fs-extra: 11.3.0 → 11.3.2
89
+ - rollup: 4.44.2 → 4.52.4
90
+ - sass: 1.89.2 → 1.93.2
91
+ - stylelint: 16.21.1 → 16.25.0
92
+ - terser: 5.43.1 → 5.44.0
93
+ - typescript: 5.8.3 → 5.9.3
94
+
95
+ ### Fixed
96
+ - **Security Vulnerabilities:** Resolved 2 security issues
97
+ - Fixed high severity DoS vulnerability in axios (updated to 0.30.2+)
98
+ - Fixed critical vulnerability in form-data random function (updated to 4.0.4+)
99
+
100
+ ### Removed
101
+ - **Deprecated Files:** Removed `.eslintignore` file
102
+ - ESLint ignores are now properly configured in `eslint.config.js`
103
+ - Eliminates deprecation warnings in ESLint 9.x
104
+
10
105
  ## [4.0.0-rc4] - 2025-07-10
11
106
 
12
107
  ### Updated
package/CLAUDE.md CHANGED
@@ -4,103 +4,76 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
4
4
 
5
5
  ## Project Overview
6
6
 
7
- AdminLTE is a Bootstrap 5-based admin dashboard template with TypeScript components and SCSS styling. The project uses Astro for documentation generation and includes comprehensive build tooling for development and production.
7
+ AdminLTE is a Bootstrap 5 admin dashboard template (v4.0.0-rc5). It provides responsive UI components for building admin panels and control dashboards.
8
8
 
9
- ## Development Commands
9
+ ## Build Commands
10
10
 
11
- ### Start Development
12
11
  ```bash
13
- npm start # Start development server with file watching (opens http://localhost:3000)
14
- npm run dev # Same as npm start
12
+ npm install # Install dependencies
13
+ npm start # Start dev server with file watching (http://localhost:3000)
14
+ npm run build # Build all assets (CSS, JS, docs)
15
+ npm run production # Full production build with linting and bundlewatch
16
+ npm run lint # Run all linters (JS, CSS, docs, lockfile)
15
17
  ```
16
18
 
17
- ### Build Commands
18
- ```bash
19
- npm run build # Quick development build (CSS + JS + assets + docs)
20
- npm run production # Full production build with linting and optimization
21
- npm run compile # Build all assets (CSS, JS, assets, docs)
22
- ```
19
+ ### Individual Build Tasks
23
20
 
24
- ### Asset-Specific Commands
25
21
  ```bash
26
- npm run css # Build CSS only (compile + prefix + RTL + minify)
27
- npm run js # Build JavaScript only (compile + minify)
28
- npm run assets # Process assets only
22
+ npm run css # Build CSS only (compile, prefix, rtl, minify)
23
+ npm run js # Build JavaScript only (compile, minify)
24
+ npm run css-lint # Lint SCSS files
25
+ npm run js-lint # Lint TypeScript/JavaScript files
29
26
  ```
30
27
 
31
- ### Linting and Quality
32
- ```bash
33
- npm run lint # Run all linters (JS, CSS, docs, lockfile)
34
- npm run js-lint # ESLint for JavaScript/TypeScript
35
- npm run css-lint # Stylelint for SCSS
36
- npm run docs-lint # Astro check for documentation
37
- ```
28
+ ## Architecture
38
29
 
39
- ### Individual Build Steps
40
- ```bash
41
- npm run css-compile # Compile SCSS to CSS
42
- npm run css-rtl # Generate RTL versions
43
- npm run js-compile # Compile TypeScript to JavaScript
44
- npm run docs-compile # Build documentation with Astro
45
- ```
30
+ ### Source Structure
46
31
 
47
- ## Architecture
32
+ - **src/ts/** - TypeScript source files compiled via Rollup to `dist/js/adminlte.js`
33
+ - **src/scss/** - SCSS source files compiled via Sass to `dist/css/adminlte.css`
34
+ - **src/html/** - Astro-based documentation/demo pages
35
+ - **src/config/** - Build tool configurations (rollup, postcss, astro, assets)
36
+ - **src/assets/** - Static images copied to dist
37
+
38
+ ### JavaScript Components (src/ts/)
39
+
40
+ Entry point: `adminlte.ts` exports all components:
41
+ - `Layout` - Core layout management and hold-transition behavior
42
+ - `PushMenu` - Sidebar toggle functionality
43
+ - `Treeview` - Hierarchical menu navigation
44
+ - `CardWidget` - Card collapse/expand/remove actions
45
+ - `DirectChat` - Chat widget toggle
46
+ - `FullScreen` - Fullscreen toggle functionality
47
+ - `initAccessibility` - WCAG 2.1 AA accessibility features
48
+
49
+ ### SCSS Structure (src/scss/)
50
+
51
+ Entry point: `adminlte.scss` imports Bootstrap then AdminLTE components:
52
+ - `_bootstrap-variables.scss` - Bootstrap variable overrides
53
+ - `_variables.scss` / `_variables-dark.scss` - AdminLTE theme variables
54
+ - `parts/` - Organized component groups (core, components, extra-components, pages, miscellaneous)
55
+ - Individual component files (`_cards.scss`, `_app-sidebar.scss`, etc.)
56
+
57
+ ### Documentation (src/html/)
58
+
59
+ Built with Astro framework:
60
+ - `pages/` - Demo pages and documentation
61
+ - `components/` - Reusable Astro components and MDX content
62
+ - Output goes to `dist/html/` then flattened to `dist/`
63
+
64
+ ### Build Output (dist/)
65
+
66
+ Production assets:
67
+ - `dist/js/adminlte.min.js` - Compiled and minified JavaScript (UMD format)
68
+ - `dist/css/adminlte.min.css` - Compiled and minified CSS
69
+ - `dist/css/*.rtl.css` - RTL (right-to-left) variants
70
+ - `dist/assets/` - Static assets
71
+
72
+ ## Key Technologies
48
73
 
49
- ### Core Structure
50
- - **src/ts/**: TypeScript source files for UI components
51
- - **src/scss/**: SCSS source files for styling
52
- - **src/html/**: Astro-based documentation and examples
53
- - **src/config/**: Build configuration files
54
- - **src/assets/**: Static assets (images, etc.)
55
- - **dist/**: Built assets and documentation
56
-
57
- ### Key Components (src/ts/)
58
- - **adminlte.ts**: Main entry point that initializes all components
59
- - **layout.ts**: Core layout management and theme handling
60
- - **accessibility.ts**: WCAG 2.1 AA compliance features
61
- - **card-widget.ts**: Collapsible card functionality
62
- - **treeview.ts**: Navigation tree component
63
- - **push-menu.ts**: Sidebar menu toggle
64
- - **direct-chat.ts**: Chat widget functionality
65
- - **fullscreen.ts**: Fullscreen mode toggle
66
-
67
- ### Build System
68
- - **Rollup**: JavaScript bundling (UMD format)
69
- - **Sass**: SCSS compilation with Bootstrap integration
70
- - **PostCSS**: CSS processing with autoprefixer and RTL support
71
- - **Astro**: Static site generation for documentation
72
- - **ESLint**: JavaScript/TypeScript linting with TypeScript ESLint, Unicorn, and Astro plugins
73
-
74
- ### Styling Architecture
75
- - Built on Bootstrap 5.3.7 with custom variables
76
- - Modular SCSS structure in parts/ directory
77
- - Dark mode support with separate variable files
78
- - RTL (Right-to-Left) language support
79
- - Accessibility-focused styling
80
-
81
- ### Development Workflow
82
- 1. Source files are watched during development
83
- 2. CSS and JS are automatically compiled and copied to src/html/public/
84
- 3. Astro serves documentation with hot reloading
85
- 4. Production builds include minification and optimization
86
-
87
- ## Key Files and Configurations
88
-
89
- ### Build Configuration
90
- - **src/config/rollup.config.js**: JavaScript bundling configuration
91
- - **src/config/astro.config.mjs**: Documentation build configuration
92
- - **src/config/postcss.config.mjs**: CSS processing configuration
93
- - **eslint.config.js**: Linting rules and file ignores
94
-
95
- ### Main Entry Points
96
- - **src/ts/adminlte.ts**: Main TypeScript entry point
97
- - **src/scss/adminlte.scss**: Main SCSS entry point
98
- - **dist/js/adminlte.min.js**: Built JavaScript for production
99
- - **dist/css/adminlte.min.css**: Built CSS for production
100
-
101
- ### Development Notes
102
- - The project uses ES modules (type: "module" in package.json)
103
- - TypeScript configuration is in tsconfig.json
104
- - File watching is handled by nodemon with specific patterns
105
- - Assets are copied to src/html/public/ during build for Astro integration
106
- - Production builds are flattened to dist/ root for deployment
74
+ - Bootstrap 5.3.x - CSS framework base
75
+ - TypeScript - JavaScript source language
76
+ - Sass - CSS preprocessor
77
+ - Rollup - JavaScript bundler
78
+ - Astro - Documentation site generator
79
+ - PostCSS with Autoprefixer and RTLCSS - CSS post-processing
package/README.md CHANGED
@@ -9,23 +9,28 @@
9
9
  **AdminLTE** is a fully responsive administration template. Based on **[Bootstrap 5](https://getbootstrap.com/)** framework and also the JavaScript plugins.
10
10
  Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops.
11
11
 
12
- ## What's New in v4.0.0-rc3
12
+ ## What's New in v4.0.0-rc6
13
13
 
14
- **Production Deployment & Cross-Platform Compatibility** - This release resolves critical production deployment issues:
14
+ **Security & Feature Release** - Important security fixes and new sidebar persistence feature:
15
15
 
16
- - **Fixed Production Builds** - Resolved CSS/JS path issues, sidebar navigation, and image loading in all deployment scenarios
17
- - **Smart Path Resolution** - Automatic relative path calculation works for root deployment, sub-folders, and CDN hosting
18
- - **RTL CSS Fix** - Eliminated rtlcss interference with standard LTR production builds
19
- - **Updated Dependencies** - Bootstrap 5.3.7, Bootstrap Icons 1.13.1, OverlayScrollbars 2.11.0
20
- - **Zero Console Errors** - Fixed all CDN integrity mismatches and runtime issues
21
- - **FTP/Static Host Ready** - Perfect compatibility with traditional hosting and modern static platforms
16
+ - **Security Fixes** - Resolved 4 vulnerabilities (XSS in Astro, auth bypass, unsanitized attributes)
17
+ - **Sidebar State Persistence** - Sidebar now remembers collapsed/expanded state across page refreshes
18
+ - **Node.js 22** - Updated all GitHub Actions workflows to Node.js 22 LTS (supported until 2027)
19
+ - **Latest Dependencies** - 15+ packages updated including Astro 5.16.4, Prettier 3.7.4, Rollup 4.53.3
20
+ - **CI/CD Improvements** - Updated CodeQL actions to v3, fixed release workflow bugs
22
21
 
23
22
  **Key Improvements:**
24
- - ✅ Development and production environments now behave identically
25
- - ✅ Images, CSS, and JavaScript load correctly in any deployment structure
26
- - ✅ Sidebar navigation displays properly with badges and arrow indicators
27
- - ✅ All CDN resources load without console errors
28
- - ✅ Complete production build included in repository for easy deployment
23
+
24
+ - ✅ Zero security vulnerabilities - all npm audit issues resolved
25
+ - ✅ Sidebar state persists in localStorage (configurable, SSR-safe, mobile-aware)
26
+ - ✅ GitHub Actions use Node.js 22 (Active LTS until April 2027)
27
+ - ✅ CodeQL security scanning updated to latest v3 actions
28
+ - ✅ Release workflow fixed for proper asset packaging
29
+
30
+ **Install the latest:**
31
+ ```bash
32
+ npm install admin-lte@4.0.0-rc6
33
+ ```
29
34
 
30
35
  See the [CHANGELOG.md](CHANGELOG.md) for complete details.
31
36
 
@@ -69,7 +74,7 @@ To build for production:
69
74
 
70
75
  AdminLTE supports all modern browsers with the latest Bootstrap 5.3.7:
71
76
  - Chrome (latest)
72
- - Firefox (latest)
77
+ - Firefox (latest)
73
78
  - Safari (latest)
74
79
  - Edge (latest)
75
80
 
@@ -82,6 +87,62 @@ AdminLTE v4 build scripts work cross-platform:
82
87
 
83
88
  All npm scripts use cross-platform utilities to ensure consistent behavior across different operating systems.
84
89
 
90
+ ## Security & Production Deployment
91
+
92
+ ### Important Security Notice
93
+
94
+ AdminLTE is a **UI template** - when deploying to production, follow these critical guidelines:
95
+
96
+ **What to Deploy:**
97
+ - Only compiled production assets: `dist/js/adminlte.min.js` and `dist/css/adminlte.min.css`
98
+ - Your application-specific files
99
+
100
+ **What NOT to Deploy:**
101
+ - `node_modules/` directory
102
+ - Demo/example HTML files (index.html, index2.html, index3.html, etc.)
103
+ - Source files (`src/` directory)
104
+ - Development configuration files
105
+
106
+ **CVE-2021-36471 Notice:**
107
+ This CVE is **disputed** and does not represent a vulnerability in AdminLTE. It refers to demo pages being accessible when developers incorrectly deploy example files to production. AdminLTE v4 has a clear separation between development demos and production assets. See [SECURITY.md](SECURITY.md) for complete details.
108
+
109
+ **Production Build:**
110
+ ```bash
111
+ npm run production # Builds optimized assets in dist/
112
+ ```
113
+
114
+ For detailed security guidelines, authentication requirements, and best practices, see [SECURITY.md](SECURITY.md).
115
+
116
+ ## Sponsorship
117
+
118
+ Support AdminLTE development by becoming a sponsor or donor.
119
+
120
+ <p align="center">
121
+ <a href="https://github.com/sponsors/danny007in">
122
+ <img src="https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86" alt="Sponsor on GitHub" />
123
+ </a>
124
+ &nbsp;&nbsp;
125
+ <a href="https://www.paypal.me/daniel007in">
126
+ <img src="https://img.shields.io/static/v1?label=Donate&message=%E2%9D%A4&logo=PayPal&color=%2300457C" alt="Donate via PayPal" />
127
+ </a>
128
+ </p>
129
+
130
+ ## Our Sponsors
131
+
132
+ <p align="center">
133
+ <a href="https://github.com/spizzo14"><img src="https://unavatar.io/github/spizzo14?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: spizzo14" loading="lazy" /></a>&nbsp;&nbsp;
134
+ <a href="https://github.com/tomhappyblock"><img src="https://unavatar.io/github/tomhappyblock?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: tomhappyblock" loading="lazy" /></a>&nbsp;&nbsp;
135
+ <a href="https://github.com/stefanmorderca"><img src="https://unavatar.io/github/stefanmorderca?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: stefanmorderca" loading="lazy" /></a>&nbsp;&nbsp;
136
+ <a href="https://github.com/tito10047"><img src="https://unavatar.io/github/tito10047?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: tito10047" loading="lazy" /></a>&nbsp;&nbsp;
137
+ <a href="https://github.com/sitchi"><img src="https://unavatar.io/github/sitchi?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: sitchi" loading="lazy" /></a>&nbsp;&nbsp;
138
+ <a href="https://github.com/npreee"><img src="https://unavatar.io/github/npreee?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: npreee" loading="lazy" /></a>&nbsp;&nbsp;
139
+ <a href="https://github.com/isaacmorais"><img src="https://unavatar.io/github/isaacmorais?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: isaacmorais" loading="lazy" /></a>&nbsp;&nbsp;
140
+ </p>
141
+
142
+ <p align="center">
143
+ <a href="https://github.com/sponsors/danny007in">Your avatar here? Become a sponsor</a>
144
+ </p>
145
+
85
146
  ## Contributing
86
147
 
87
148
  - Highly welcome.
@@ -95,11 +156,6 @@ All npm scripts use cross-platform utilities to ensure consistent behavior acros
95
156
  - After installation completes, run `npm start`
96
157
  - Cool, Send your changes in PR to `master` branch.
97
158
 
98
- ## Sponsorship
99
-
100
- Support AdminLTE development by becoming a sponsor.
101
- [Github Sponsors](https://github.com/sponsors/danny007in) or
102
- [PayPal](https://www.paypal.me/daniel007in)
103
159
 
104
160
  ## License
105
161
 
@@ -113,3 +169,4 @@ AdminLTE.io reserves the right to change the license of future releases.
113
169
  - [Pickaface](https://pickaface.net/)
114
170
  - [Unsplash](https://unsplash.com/)
115
171
  - [Uifaces](http://uifaces.com/)
172
+ - [Unavatar](https://unavatar.io/)
package/SECURITY.md ADDED
@@ -0,0 +1,99 @@
1
+ # Security Policy
2
+
3
+ ## Reporting Security Issues
4
+
5
+ If you discover a security vulnerability in AdminLTE, please report it by emailing the maintainers or opening a private security advisory on GitHub. We take security seriously and will respond promptly.
6
+
7
+ ## Supported Versions
8
+
9
+ | Version | Supported |
10
+ | ------- | ------------------ |
11
+ | 4.x | :white_check_mark: |
12
+ | 3.x | :x: |
13
+ | < 3.0 | :x: |
14
+
15
+ ## Security Best Practices
16
+
17
+ AdminLTE is a frontend admin dashboard template. When deploying applications built with AdminLTE, follow these security best practices:
18
+
19
+ ### 1. Production Deployment
20
+
21
+ - **Never expose `node_modules` directory** in production environments
22
+ - **Remove demo/example files** (like `index2.html`, `index3.html`) from production builds
23
+ - **Use a proper build process** that only includes necessary production assets
24
+ - **Configure web server properly** to prevent directory traversal attacks
25
+
26
+ ### 2. Build Process
27
+
28
+ When deploying to production:
29
+
30
+ ```bash
31
+ # Build only production assets
32
+ npm run production
33
+
34
+ # Deploy only the dist/ directory contents you need
35
+ # Typically: dist/js/adminlte.min.js and dist/css/adminlte.min.css
36
+ ```
37
+
38
+ ### 3. What NOT to Deploy
39
+
40
+ Do not deploy these to production:
41
+ - `node_modules/` directory
42
+ - Example/demo HTML files (`index.html`, `index2.html`, `index3.html`, etc.)
43
+ - Source files (`src/` directory)
44
+ - Development configuration files
45
+ - Documentation files
46
+
47
+ ## Known CVE Issues
48
+
49
+ ### CVE-2021-36471 (Disputed)
50
+
51
+ **Status**: This CVE is **disputed** and does not represent a vulnerability in AdminLTE itself.
52
+
53
+ **Issue**: CVE-2021-36471 claims AdminLTE 3.1.0 has a "Directory Traversal vulnerability" that allows remote attackers to view demo pages via `/admin/index2.html` and `/admin/index3.html`.
54
+
55
+ **Clarification**:
56
+ - The `index2.html` and `index3.html` files are **example/demo pages** intended for developer reference during development
57
+ - This is **not a vulnerability in AdminLTE** - it is a **deployment misconfiguration** by website developers
58
+ - The issue occurs when developers incorrectly deploy:
59
+ - Their entire `node_modules` folder publicly
60
+ - Demo/example files in production environments
61
+ - Without proper web server configuration
62
+
63
+ **Resolution**:
64
+ - AdminLTE 4.x has restructured the project architecture with clear separation between development demos and production assets
65
+ - Follow the production deployment best practices above
66
+ - Only deploy the compiled production assets from `dist/js/` and `dist/css/`
67
+ - The original CVE researcher acknowledged this should be classified as low/info severity, not critical
68
+
69
+ **For More Information**:
70
+ - [GitHub Issue #4948](https://github.com/ColorlibHQ/AdminLTE/issues/4948)
71
+ - [CVE Record](https://www.cve.org/CVERecord?id=CVE-2021-36471) (marked as disputed)
72
+
73
+ ## Secure Development
74
+
75
+ ### Content Security Policy (CSP)
76
+
77
+ When implementing AdminLTE in your application, consider adding appropriate Content Security Policy headers to prevent XSS attacks.
78
+
79
+ ### Authentication & Authorization
80
+
81
+ AdminLTE is a **UI template only** and does not include authentication or authorization. You must:
82
+ - Implement proper authentication in your backend
83
+ - Secure all API endpoints
84
+ - Use HTTPS in production
85
+ - Implement proper session management
86
+ - Follow OWASP security guidelines
87
+
88
+ ### Dependencies
89
+
90
+ - Keep AdminLTE and its dependencies up to date
91
+ - Regularly run `npm audit` to check for vulnerabilities
92
+ - Review security advisories for Bootstrap and other dependencies
93
+
94
+ ## Contact
95
+
96
+ For security concerns, please contact the maintainers through:
97
+ - GitHub Issues (for general questions)
98
+ - GitHub Security Advisories (for sensitive security issues)
99
+ - Project maintainer email (check package.json)