coolify/app/Livewire/Project
Andras Bacsai 94560ea6c7 feat: streamline S3 restore with single-step flow and improved UI consistency
Major architectural improvements:
- Merged download and restore into single atomic operation
- Eliminated separate S3DownloadFinished event (redundant)
- Files now transfer directly: S3 → helper container → server → database container
- Removed download progress tracking in favor of unified restore progress

UI/UX improvements:
- Unified restore method selection with visual cards
- Consistent "File Information" display between local and S3 restore
- Single slide-over for all restore operations (removed separate S3 download monitor)
- Better visual feedback with loading states

Security enhancements:
- Added isSafeTmpPath() helper for path traversal protection
- URL decode validation to catch encoded attacks
- Canonical path resolution to prevent symlink attacks
- Comprehensive path validation in all cleanup events

Cleanup improvements:
- S3RestoreJobFinished now handles all cleanup (helper container + all temp files)
- RestoreJobFinished uses new isSafeTmpPath() validation
- CoolifyTask dispatches cleanup events even on job failure
- All cleanup uses non-throwing commands (2>/dev/null || true)

Other improvements:
- S3 storage policy authorization on Show component
- Storage Form properly syncs is_usable state after test
- Removed debug code and improved error handling
- Better command organization and documentation

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 10:05:18 +01:00
..
Application fix: remove duplicate deployment queue call causing false error messages 2025-11-10 21:31:06 +01:00
Database feat: streamline S3 restore with single-step flow and improved UI consistency 2025-11-17 10:05:18 +01:00
New feat: display service logos in original colors with consistent sizing 2025-10-24 10:22:33 +02:00
Resource fix: enable docker network connection for pgadmin service 2025-10-13 14:13:40 +02:00
Service Merge branch 'next' into port-detection-lol 2025-11-11 11:21:26 +01:00
Shared fix(ScheduledTask): change timeout property type to int for consistency in syncData method 2025-11-11 15:30:10 +01:00
AddEmpty.php fix(project): update redirect logic after resource creation to include environment UUID 2025-10-07 20:46:32 +02:00
CloneMe.php fix(clone): update destinations method call to ensure correct retrieval of selected destination 2025-09-18 13:44:56 +02:00
DeleteEnvironment.php feat(auth): enhance authorization checks in Livewire components for resource management 2025-08-26 10:27:38 +02:00
DeleteProject.php feat(auth): enhance authorization checks in Livewire components for resource management 2025-08-26 10:27:38 +02:00
Edit.php feat(validation): centralize validation patterns for names and descriptions 2025-08-19 12:14:48 +02:00
EnvironmentEdit.php feat(validation): centralize validation patterns for names and descriptions 2025-08-19 12:14:48 +02:00
Index.php refactor: simplify project data retrieval and enhance OAuth settings handling 2025-10-27 17:03:19 +01:00
Show.php feat(validation): centralize validation patterns for names and descriptions 2025-08-19 12:14:48 +02:00