Andras Bacsai
e2c254a5a8
Changes auto-committed by Conductor
2025-10-16 17:08:08 +02:00
Andras Bacsai
cdf6b5f161
Fix preview domain generation for services with multiple domains
...
When a docker compose service has multiple comma-separated domains, the
generate() method was only processing the first domain and truncating the rest.
The issue was that Url::fromString() can't parse comma-separated URLs - it only
parses the first one.
Fixed by:
1. Splitting comma-separated domains with explode(',', $domain_string)
2. Processing each domain individually in a foreach loop
3. Generating preview URLs for each domain using the same template/random/pr_id
4. Joining the results back with implode(',', $preview_fqdns)
This ensures all domains get properly transformed for preview deployments.
Example:
- Original: http://domain1.com,http://domain2.com
- Preview: http://57.domain1.com,http://57.domain2.com
- Before fix: http://57.domain1.com,http (truncated)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 13:10:29 +02:00
Andras Bacsai
db3514cd8e
Fix json_decode null handling in PreviewsCompose
...
Fixed three potential fatal errors where json_decode could return null:
1. save() method (lines 39-41): Added null coalescing to default to empty array,
and ensure service entry exists before writing domain
2. generate() method (line 56): Changed to use assoc flag consistently and
fallback to empty array
3. generate() method (lines 95-97): Same fix as save() - null coalescing and
service entry initialization
All json_decode calls now consistently:
- Use the assoc flag to return arrays (not objects)
- Fall back to empty array with ?: []
- Initialize service entry with ?? [] before writing
This prevents "Attempt to modify property of null" fatal errors.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 13:04:23 +02:00
Andras Bacsai
f77ad4cbd9
Complete Livewire legacy model binding migration (25+ components)
...
This completes the migration from Livewire's legacy `id="model.property"`
pattern to explicit properties with manual synchronization. This allows
disabling the `legacy_model_binding` feature flag.
**Components Migrated (Final Session - 9 components):**
- Server/Proxy.php (1 field)
- Service/EditDomain.php (1 field) - Fixed Collection/string bug & parent sync
- Application/Previews.php (2 fields - array handling)
- Service/EditCompose.php (4 fields)
- Service/FileStorage.php (6 fields)
- Service/Database.php (7 fields)
- Service/ServiceApplicationView.php (10 fields)
- Application/General.php (53 fields) - LARGEST migration
- Application/PreviewsCompose.php (1 field)
**Total Migration Summary:**
- 25+ components migrated across all phases
- 150+ explicit properties added
- 0 legacy bindings remaining (verified via grep)
- All wire:model, id, @entangle bindings updated
- All updater hooks renamed (updatedApplicationX → updatedX)
**Technical Changes:**
- Added explicit public properties (camelCase)
- Implemented syncData(bool $toModel) bidirectional sync
- Updated validation rules (removed model. prefix)
- Updated all action methods (mount, submit, instantSave)
- Fixed updater hooks: updatedBuildPack, updatedBaseDirectory, updatedIsStatic
- Updated Blade views (id & wire:model bindings)
- Applied Collection/string confusion fixes
- Added model refresh + re-sync pattern
**Critical Fixes:**
- EditDomain.php Collection/string confusion (use intermediate variables)
- EditDomain.php parent component sync (refresh + re-sync after save)
- General.php domain field empty (syncData at end of mount)
- General.php wire:model bindings (application.* → property)
- General.php updater hooks (wrong naming convention)
**Files Modified:** 34 files
- 17 PHP Livewire components
- 17 Blade view templates
- 1 MIGRATION_REPORT.md (documentation)
**Ready to disable legacy_model_binding flag in config/livewire.php**
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 15:38:59 +02:00
Andras Bacsai
ae64f8cb86
fix validation on a few views
2025-10-06 21:25:24 +02:00
Andras Bacsai
d63802e03d
feat(deployments): add log copying functionality to clipboard in dev
2025-10-02 18:34:39 +02:00
Andras Bacsai
1fe7df7e38
fix(git): trim whitespace from repository, branch, and commit SHA fields
...
- Add automatic trimming in Application model's boot method for git_repository, git_branch, and git_commit_sha fields
- Add real-time trimming in Source Livewire component via updated{Property} methods
- Refresh component state after save to ensure UI displays trimmed values
- Prevents deployment issues caused by accidental whitespace in git configuration
2025-09-30 12:33:40 +02:00
Andras Bacsai
a03c1b3b4b
refactor(dashboard): remove deployment loading logic and introduce DeploymentsIndicator component for better UI management
2025-09-30 11:43:30 +02:00
Andras Bacsai
708a08fdd6
fix(application): enhance domain handling by replacing both dots and dashes with underscores for HTML form binding
2025-09-25 13:19:12 +02:00
Andras Bacsai
4ce495d91e
Update app/Livewire/Project/Application/PreviewsCompose.php
...
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-09-24 17:53:18 +02:00
Michael Engel
8ee4ddf489
fix(PreviewCompose): adds port to preview urls
2025-09-24 10:52:01 +02:00
Andras Bacsai
4fc62ea33f
Merge pull request #6496 from QarthO/fix/url-validation
...
fix(domains) url validation silently fails with surrounding whitespace
2025-09-22 12:49:43 +02:00
Andras Bacsai
9e8fb36bc8
feat(deployment): implement cancellation checks during deployment process to enhance user control and prevent unnecessary execution
2025-09-16 13:40:51 +02:00
Andras Bacsai
5b3b4bbc43
refactor(environment): remove 'is_build_time' attribute from environment variable handling across the application to simplify configuration
2025-09-11 16:51:56 +02:00
Andras Bacsai
501e6a2650
refactor(environment): standardize service name formatting by replacing '-' and '.' with '_' in environment variable keys
2025-09-11 13:59:02 +02:00
Andras Bacsai
0db2835565
fix(application): add functionality to stop and remove Docker containers on server
2025-09-11 12:39:28 +02:00
Andras Bacsai
a7671ed379
refactor(dns-validation): rename DNS validation functions for consistency and clarity, and remove unused code
2025-09-09 09:00:35 +02:00
Andras Bacsai
339118558c
feat(settings): add option to restrict PR deployments to repository members and contributors
2025-09-05 14:30:51 +02:00
QarthO
bfc8a25b72
move domain trimming before URL validation
2025-08-29 09:09:03 -04:00
Andras Bacsai
80499a03d8
feat(domains): implement domain conflict detection and user confirmation modal across application components
2025-08-28 10:52:41 +02:00
Andras Bacsai
e0aa28ba31
refactor(domains): rename check_domain_usage to checkDomainUsage and update references across the application
2025-08-28 10:00:19 +02:00
Andras Bacsai
2e85ce0e0e
refactor(urls): replace generateFqdn with generateUrl for consistent URL generation across applications
2025-08-28 09:49:58 +02:00
Andras Bacsai
63fcc0ebc3
feat(acl): Change views/backend code to able to use proper ACL's later on. Currently it is not enabled.
2025-08-26 10:27:38 +02:00
Andras Bacsai
6ef16f6170
fix(auth): enhance authorization checks in application management
2025-08-23 18:19:50 +02:00
Andras Bacsai
40f108d6e1
feat(auth): implement authorization checks for application management
2025-08-22 16:47:59 +02:00
Andras Bacsai
a6fc39e798
feat(git-settings): add support for shallow cloning in application settings
...
- Introduced a new boolean setting `is_git_shallow_clone_enabled` to the application settings model.
- Updated the `Advanced` component to include a checkbox for enabling shallow cloning.
- Modified the `setGitImportSettings` and `generateGitImportCommands` methods to handle shallow clone logic.
- Created a migration to add the new setting to the database schema.
- Enhanced the deployment process to utilize shallow cloning for improved performance.
2025-08-21 10:16:57 +02:00
Andras Bacsai
5c4a265542
refactor(validation): implement centralized validation patterns across components
...
- Introduced `ValidationPatterns` class to standardize validation rules and messages for various fields across multiple components.
- Updated components including `General`, `StackForm`, `Create`, and `Show` to utilize the new validation patterns, ensuring consistent validation logic.
- Enhanced error messages for required fields and added regex validation for names and descriptions to improve user feedback.
- Adjusted styling in the `create.blade.php` view for better visual hierarchy.
2025-08-19 14:15:31 +02:00
Andras Bacsai
460198bb05
fix(application): clear Docker Compose specific data when switching away from dockercompose
2025-08-18 11:31:14 +02:00
Andras Bacsai
970fd3d9e6
refactor(parsers): streamline domain handling in applicationParser and improve DNS validation logic
2025-08-12 10:07:11 +02:00
Andras Bacsai
e8892b3d29
feat(core): finally fqdn is fqdn and url is url. haha
2025-08-12 10:06:19 +02:00
Andras Bacsai
a0bc4dac55
fix(application): streamline environment variable updates for Docker Compose services and enhance FQDN generation logic
2025-08-12 10:06:19 +02:00
Andras Bacsai
5ddaf3a61f
fix(application): add option to suppress toast notifications when loading compose file
2025-07-18 23:22:24 +02:00
Andras Bacsai
039aa86321
fix(application): update service environment variables when generating domain for Docker Compose
2025-07-18 23:16:12 +02:00
Andras Bacsai
90ccaeba51
feat(application): implement environment variable updates for Docker Compose applications, including creation, updating, and deletion of SERVICE_FQDN and SERVICE_URL variables
2025-07-18 20:48:56 +02:00
Andras Bacsai
13f10028db
feat(previews): implement soft delete and cleanup for ApplicationPreview, enhancing resource management in DeleteResourceJob
2025-07-14 21:17:40 +02:00
Andras Bacsai
5bdf2e8481
refactor(previews): move preview domain generation logic to ApplicationPreview model for better encapsulation and consistency across webhook handlers
2025-07-14 19:12:57 +02:00
Andras Bacsai
a9e542bc4b
fix(previews): enhance domain generation logic for application previews, ensuring unique domains are created when none are set
2025-07-14 15:42:01 +02:00
Andras Bacsai
3bb28c29be
fix(application): sanitize service names for HTML form binding and ensure original names are stored in docker compose domains
2025-07-14 14:45:01 +02:00
Andras Bacsai
0b84792871
feat(deployment): add pull request filtering and pagination to deployment and backup execution components
...
fix(ui): make them more stylish yeah
2025-07-13 12:36:53 +02:00
Andras Bacsai
6d94aaf0f8
refactor(previews): streamline preview URL generation by utilizing application method
2025-07-07 13:14:45 +02:00
Andras Bacsai
3643a388bf
fix(github): changing github app breaks the webhook. it does not anymore
2025-06-21 19:28:38 +02:00
Andras Bacsai
1704a25a24
fix(previews): escape container names in stopContainers method to prevent shell injection vulnerabilities
2025-06-04 09:11:08 +02:00
Andras Bacsai
ff20cb0b7c
fix(application-configuration): prevent access to preview deployments for deploy_key applications and update menu visibility accordingly
2025-05-30 14:15:07 +02:00
Andras Bacsai
b0e33eb59d
fix(application-management): improve stop messages for application, database, and service to enhance clarity and formatting
2025-05-30 14:04:43 +02:00
Andras Bacsai
200b5cd4fb
refactor(service-management): enhance container stopping logic by implementing parallel processing and removing deprecated methods
2025-05-30 12:56:22 +02:00
Andras Bacsai
9f06e7193e
feat(previews): add force deploy without cache functionality and update deploy method to accept force rebuild parameter
2025-05-30 10:09:13 +02:00
Andras Bacsai
102bdb5bc3
refactor(application): enhance application stopping logic to support multiple servers
2025-05-26 21:44:34 +02:00
Andras Bacsai
be0453d9df
fix: Traefik start on new server validation
...
fix: Multiple server selection ui flow
2025-05-26 21:06:00 +02:00
peaklabs-dev
cb41670af9
refactor(ui): show toast when server does not work and on stop
2025-05-20 15:22:13 +02:00
Andras Bacsai
786bfa960f
improvement(core): simplify events for app/db/service status changes
2025-05-19 21:50:32 +02:00