chore: pre-release v0.2.1-dev

This commit is contained in:
Zimeng Xiong
2026-01-14 10:38:28 -08:00
parent 8f9b9b4945
commit 44fb456405
7 changed files with 580 additions and 31 deletions
+550
View File
File diff suppressed because it is too large Load Diff
+22 -23
View File
@@ -1,30 +1,29 @@
# ExcaliDash v0.1.5 CSRF Protection (8a78b2b)
Date: 2025-11-23 - Implemented comprehensive CSRF (Cross-Site Request Forgery) protection for enhanced security
- Added new backend/src/security.ts module for security utilities
- Frontend API layer now handles CSRF tokens automatically
- Added integration tests for CSRF validation
Compatibility: v0.1.x (Backward Compatible) Upload Progress Indicator (8f9b9b4)
# Security - Added a visual upload progress bar when users upload files
- New UploadContext for managing upload state across components
- New UploadStatus component displaying real-time upload progress
- Save status indicator when navigating back from the editor
- Improved error handling and recovery for failed uploads
- RCE: implemented strict Zod schema validation and input sanitization on file uploads; added path traversal guards to file handling logic Bug Fixes
- XSS: used DOMPurify for HTML sanitization; blocked execution-capable SVG attributes and enforces CSP headers. - Fixed broken e2e tests (cae8f3c)
- Replaced deprecated substr() with substring()
- Fixed stale state issues in error handling
- Fixed missing useEffect dependencies
- Fixed CSS class conflicts in progress bar styling
- Added error recovery for save state in Editor
- DoS: moved CPU-intensive operations to worker threads to prevent event loop blocking; request rate limiting (1,000 req/15 min per IP) and streaming for large files Infrastructure
# Infras & Deployment - Updated docker-compose configurations with new environment variables
- E2E test suite improvements and reliability fixes
- non-root execution (uid 1001) in containers - Added Kubernetes deployment note in README
- migrated to multi-stage Docker builds
# Database
- migrated to better-sqlite3, converted all DB interactions to non-blocking async operations and offloaded integrity checks to worker threads.
- implemented SQLite magic header validation; added automatic backup triggers preceding data import
- input validation logic
# Frontend
- updated Settings UI to show version
+1 -1
View File
@@ -1 +1 @@
0.1.8 0.2.1
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "backend", "name": "backend",
"version": "0.1.8", "version": "0.2.1",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
@@ -42,4 +42,4 @@
"typescript": "^5.9.3", "typescript": "^5.9.3",
"vitest": "^4.0.15" "vitest": "^4.0.15"
} }
} }
+2 -2
View File
@@ -6,8 +6,8 @@ services:
- DATABASE_URL=file:/app/prisma/dev.db - DATABASE_URL=file:/app/prisma/dev.db
- PORT=8000 - PORT=8000
- NODE_ENV=production - NODE_ENV=production
# Required for horizontal scaling (k8s): must be the same across all instances # Required for horizontal scaling (k8s): uncomment and set to same value on all instances
- CSRF_SECRET=${CSRF_SECRET} # - CSRF_SECRET=${CSRF_SECRET}
volumes: volumes:
- backend-data:/app/prisma - backend-data:/app/prisma
networks: networks:
+2 -2
View File
@@ -8,8 +8,8 @@ services:
- DATABASE_URL=file:/app/prisma/dev.db - DATABASE_URL=file:/app/prisma/dev.db
- PORT=8000 - PORT=8000
- NODE_ENV=production - NODE_ENV=production
# Required for horizontal scaling (k8s): must be the same across all instances # Required for horizontal scaling (k8s): uncomment and set to same value on all instances
- CSRF_SECRET=${CSRF_SECRET} # - CSRF_SECRET=${CSRF_SECRET}
volumes: volumes:
- backend-data:/app/prisma - backend-data:/app/prisma
networks: networks:
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "frontend", "name": "frontend",
"private": true, "private": true,
"version": "0.1.8", "version": "0.2.1",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",