Commit graph

298 commits

Author SHA1 Message Date
Andras Bacsai
513f6b54f7 feat: implement Hetzner deletion failure notification system with email and messaging support 2025-10-10 09:35:58 +02:00
Andras Bacsai
2c64136503 feat(backup): enhance backup job with S3 upload handling and notifications
- Introduced a new notification class, BackupSuccessWithS3Warning, to alert users when local backups succeed but S3 uploads fail.
- Updated DatabaseBackupJob to track local backup success and handle S3 upload errors, improving error reporting and user notifications.
- Modified ScheduledDatabaseBackupExecution model to include a new s3_uploaded boolean field for tracking S3 upload status.
- Adjusted views and validation logic to reflect changes in backup execution status and S3 handling.
- Added tests to ensure the new s3_uploaded column is correctly implemented and validated.
2025-10-07 15:02:23 +02:00
Andras Bacsai
cef3d3af5d feat(proxy): enhance proxy configuration regeneration by extracting custom commands
- Added a new function to extract custom proxy commands from existing Traefik configurations before regenerating the proxy configuration.
- Updated the proxy configuration generation logic to include these custom commands, ensuring they are preserved during regeneration.
- Introduced unit tests to validate the extraction of custom commands and handle various scenarios, including invalid YAML and different proxy types.
2025-10-07 11:11:13 +02:00
Andras Bacsai
590de8ce37 feat(docker): enhance Docker image handling with new validation and parsing logic
- Refactored DockerImage component to use separate properties for image name, tag, and SHA256 digest.
- Introduced DockerImageFormat validation rule to enforce correct image format.
- Updated DockerImageParser to handle new parsing logic for image tags and SHA256 hashes.
- Enhanced UI to separate input fields for image name, tag, and SHA256 digest, improving user experience.
- Added comprehensive tests for DockerImageParser to ensure accurate parsing and validation of image formats.
2025-10-03 11:31:00 +02:00
Andras Bacsai
0e02eff4a1
Merge branch 'v4.x' into allow-dep 2025-10-03 10:57:10 +02:00
Andras Bacsai
aadde3a83e feat(deployments): enhance Docker build argument handling for multiline variables
- Introduced new helper functions to generate Docker build arguments and environment flags, accommodating multiline variables with proper escaping.
- Updated the ApplicationDeploymentJob to utilize these new functions, improving the handling of environment variables during deployment.
- Added comprehensive tests to ensure correct behavior for multiline variables and special characters.
2025-10-02 13:54:36 +02:00
Andras Bacsai
502dd72a34 fix(validation): update git:// URL validation to support port numbers and tilde characters in paths 2025-09-29 12:21:15 +02:00
Andras Bacsai
810ba3dd9e feat(validation): enhance ValidGitRepositoryUrl to support additional safe characters and add comprehensive unit tests for various Git repository URL formats 2025-09-28 22:18:21 +02:00
Andras Bacsai
320a7c97f9 refactor(tests): simplify matchWatchPaths tests and update implementation for better clarity 2025-09-26 14:33:18 +02:00
Andras Bacsai
0691a1834a feat(application): implement order-based pattern matching for watch paths with negation support 2025-09-25 14:26:11 +02:00
Andras Bacsai
38e5e85344
Merge pull request #6598 from ossamalafhel/feature/watch-paths-for-services
feat: 👀 Show Watch Paths field for Docker Compose applicationsFeature/watch paths for services
2025-09-25 13:17:29 +02:00
Andras Bacsai
1f691e274b
Merge branch 'v4.x' into feature/watch-paths-for-services 2025-09-25 12:11:01 +02:00
Andras Bacsai
47b060e291 refactor(ui): improve styling and consistency in environment variable warning and docker cleanup components 2025-09-25 11:45:07 +02:00
GitHub Actions
c1c149968e Fix team invitation email case sensitivity bug
- Add email normalization to TeamInvitation model using setEmailAttribute()
- Add HasFactory trait to Team model for testing support
- Create TeamFactory for testing
- Add tests to verify email normalization works correctly
- Fixes issue where mixed case emails in invitations would cause lookup failures
- Resolves #6291

The bug occurred because:
1. User model normalizes emails to lowercase
2. TeamInvitation model did not normalize emails
3. When invitation was created with mixed case, it was stored as-is
4. User lookup failed due to case mismatch during invitation acceptance
5. This caused users to not be able to see teams they were invited to

This fix ensures both models normalize emails consistently.
2025-09-16 15:31:48 +01:00
Ossama Lafhel
5247185933 feat(add-watch-paths-for-services): show watch paths field for docker compose applications
- Fix UI template to display Watch Paths for all GitHub-based applications
- Remove condition that limited Watch Paths to private repositories only
- Add comprehensive unit tests for isWatchPathsTriggered() method
- Test various pattern matching scenarios (wildcards, globs, etc.)
- Watch Paths now works for Docker Compose apps with both public and private repos
2025-09-13 05:40:07 +02:00
Andras Bacsai
a60d6dadc7 fix(private-key): implement transaction handling and error verification for private key storage operations 2025-09-09 16:46:38 +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
579cc25898 fix(ssh): introduce SshRetryHandler and SshRetryable trait for enhanced SSH command retry logic with exponential backoff and error handling 2025-09-07 17:17:35 +02:00
saurabhraghuvanshii
3c126927d5 enhancement: allow deploy from container image hash 2025-08-28 02:10:14 +05:30
Andras Bacsai
cde528bf5e fix(parsers): enhance volume string handling by preserving mode in application and service parsers. Update related unit tests for validation. 2025-08-27 16:54:49 +02:00
Andras Bacsai
5fbad08e45 fix(parsers): implement parseDockerVolumeString function to handle various Docker volume formats and modes, including environment variables and Windows paths. Add unit tests for comprehensive coverage. 2025-08-27 16:39:38 +02:00
Andras Bacsai
990331cd74 feat(validation): add ValidIpOrCidr rule for validating IP addresses and CIDR notations; update API access settings UI and add comprehensive tests 2025-08-26 10:27:38 +02:00
Andras Bacsai
42bdc2a5fd refactor(docker compose): remove deprecated newParser function and associated test file to streamline codebase 2025-08-17 18:03:00 +02:00
Andras Bacsai
8e8400f595 feat(utf8-handling): implement UTF-8 sanitization for command outputs and enhance error handling in logs processing 2025-06-05 14:27:39 +02:00
Andras Bacsai
c97415a8ef chore(tests): update test environment database name and add new feature test for converting container environment variables to array 2025-05-22 14:30:16 +02:00
Andras Bacsai
78ef80f800 refactor 2025-04-23 13:22:01 +02:00
Andras Bacsai
e4648bcf9c feat(docker): add HTTP Basic Authentication support and enhance hostname parsing in Docker run conversion 2025-04-23 11:57:26 +02:00
Andras Bacsai
8520beff51 refactor(docker): remove debug statement and enhance hostname handling in Docker run conversion 2025-04-23 11:21:37 +02:00
Andras Bacsai
27e4882d57 feat(core): You can validate compose files with docker compose config
fix(core): labels are now accepted with both compose styles
refactor: remove lots of ray's
2025-02-27 11:29:04 +01:00
Andras Bacsai
57f61d4589 fix: docker image parser 2025-01-20 13:59:02 +01:00
Andras Bacsai
15ac12e131 test: setup database for upcoming tests 2024-12-04 12:43:52 +01:00
Andras Bacsai
327b4308d4 fix: add tests for git url converts 2024-11-12 11:32:18 +01:00
Andras Bacsai
47cd8f9e13 fix: for --gpus device support 2024-11-06 12:26:05 +01:00
Andras Bacsai
ff6f089483 feat: add --gpu support for custom docker command 2024-11-06 10:13:40 +01:00
Andras Bacsai
2eef8ee433 add dusk tests 2024-10-28 22:57:56 +01:00
Lucas Michot
d557a22b91 Remove all ray() calls 2024-10-28 13:51:23 +01:00
Andras Bacsai
3835dc3fd7 Refactor DuskTestCase.php to use a hardcoded base URL 2024-10-17 21:26:06 +02:00
Andras Bacsai
cbff462a5a Refactor Chrome Driver port in browser-tests.yml and DuskTestCase.php 2024-10-17 21:20:55 +02:00
Andras Bacsai
8bb021e62a Refactor DuskTestCase to support headless Chrome and maximize window size 2024-10-17 21:18:37 +02:00
Andras Bacsai
becaf92fd8 test dusk gh 2024-10-17 21:15:48 +02:00
Andras Bacsai
b38e214f23
Merge branch 'next' into tests/LoginPageTest 2024-10-17 16:28:46 +02:00
Andras Bacsai
e6566d8be3 fix: new parser with SERVICE_URL_ envs 2024-10-10 11:46:41 +02:00
Andras Bacsai
ee74abb3eb
Merge branch 'next' into tests/LoginPageTest 2024-09-12 20:21:40 +02:00
Andras Bacsai
1d72f76072 fix: appwrite template + parser 2024-09-09 15:04:51 +02:00
ALsJourney
38d4e4a035 Added a HowTo Markdown on how to run tests 2024-09-08 21:41:56 +02:00
Andras Bacsai
8b3eed5895 chore: Update version to 4.0.0-beta.332 2024-09-07 20:56:56 +02:00
ALsJourney
cddd4b59f9 Added a basic login test and also added 2 small variables to dev .env file
Small test just to see if you wish to continue this way of me writing tests in this shape and form. you can run them locally with php artisan dusk:chrome-driver --detect, run it with ./vendor/laravel/dusk/bin/chromedriver-mac-arm --port=9515  then run tests with php artisan dusk
2024-09-06 14:16:40 +02:00
Andras Bacsai
b57e2960f2 fix: parser 2024-09-06 12:05:22 +02:00
Andras Bacsai
a32e53c5a3 feat: Update Docker Compose file with DB_URL environment variable 2024-09-06 10:02:44 +02:00
Andras Bacsai
8150b6fdaf fix: check if array is associative or not 2024-09-03 17:04:56 +02:00
Andras Bacsai
cfc6518157 refactor: Update parse method in Advanced, All, ApplicationPreview, General, and ApplicationDeploymentJob classes 2024-08-29 12:39:37 +02:00
Andras Bacsai
d27b1766e6 feat: Add Code Server environment variables to Service model 2024-08-29 10:44:16 +02:00
Andras Bacsai
5525c02c7f fix: delete preview deployments + cleanup stucked
fix: parser
2024-08-28 22:05:49 +02:00
Andras Bacsai
43f2f1ef2b fix: if compose file has more that 6 components, force stop
fix: parser
2024-08-28 15:45:11 +02:00
Andras Bacsai
954d82207d MORE PARSERS 2024-08-27 21:48:25 +02:00
Andras Bacsai
d8d821e7a9 parser parser 2024-08-27 16:02:52 +02:00
Andras Bacsai
fe89269b4b rename parser functions 2024-08-23 20:57:22 +02:00
Andras Bacsai
dfa30bbb7f more tests 2024-08-23 17:37:15 +02:00
Andras Bacsai
9d5556aea2 test: more tests 2024-08-23 17:33:06 +02:00
Andras Bacsai
6fbdfee3e7 refactor: Update dockerComposeParser to use YAML data from $yaml instead of $compose 2024-08-23 14:31:16 +02:00
Andras Bacsai
af1b479d73 fix: parser
ui: storage layout changed
2024-08-23 14:21:12 +02:00
Andras Bacsai
1e24ab9146 fix: parser parser parser 2024-08-22 15:05:04 +02:00
Andras Bacsai
ecb2c3b7b8 chore: new compose parser with tests 2024-08-21 20:32:02 +02:00
Andras Bacsai
3ebb35a5cd fix: remove lemon + paddle things 2024-06-25 13:54:58 +02:00
Thijmen
d86274cc37 Fix styling 2024-06-10 20:43:34 +00:00
Andras Bacsai
c7da43f50d feat: add static ipv4 ipv6 support 2024-02-25 23:13:27 +01:00
Andras Bacsai
8a0046c571 update packages + fix tests 2024-02-14 09:21:25 +01:00
Andras Bacsai
364a6aa3a2 fix: boolean docker options 2024-02-14 08:42:47 +01:00
Andras Bacsai
798d747164 add Docker run command parse test 2024-02-09 13:38:17 +01:00
Andras Bacsai
829e41f93f Delete TeamSharedVariablesIndexTest.php 2024-01-26 11:12:07 +01:00
Andras Bacsai
fb478c79b3 feat: shared environments 2024-01-23 17:13:23 +01:00
Andras Bacsai
f0abdcc2da okay, now it is way better 2023-09-27 12:45:53 +02:00
Andras Bacsai
291b9a84ef refactoring 2023-08-29 14:36:17 +02:00
Andras Bacsai
82a01b4483 format muhahaha 2023-08-11 20:48:52 +02:00
Andras Bacsai
f2228cec7b testing php storm code cleanup and styling 2023-08-08 11:51:36 +02:00
Andras Bacsai
167379b0e0 fix 2023-05-24 15:25:08 +02:00
Andras Bacsai
6e7ee0ca48 a ton 👷‍♂️ 2023-05-24 14:26:50 +02:00
Joao Patricio
e7763f3b73 Refactor for CoolifyTask. 2023-05-03 06:15:45 +01:00
Andras Bacsai
02edfaf54b fix: tests 2023-04-12 13:39:26 +02:00
Joao Patricio
e6f0059e5e Changes output to JSON serialization. 2023-04-07 15:58:45 +01:00
Joao Patricio
27172740e9 Adds Dusk and Gitpod 2023-04-03 09:31:04 +01:00
Joao Patricio
940cb3c000 Have the output Marker and markTidyer. 2023-04-01 20:50:57 +01:00
Joao Patricio
a642cc2470 Cleans up tests. 2023-03-31 17:54:55 +01:00
Joao Patricio
2d25d3848c Merge remote-tracking branch 'origin/v4' into ijpatricio-wip-4
# Conflicts:
#	bootstrap/helpers.php
#	docker/dev/supervisord.conf
2023-03-31 10:56:46 +01:00
Joao Patricio
ae0bb7727b wip 2023-03-30 20:32:48 +01:00
Joao Patricio
04626eb1ee wip 2023-03-30 20:26:53 +01:00
Joao Patricio
a852a15dab wip 2023-03-30 20:24:43 +01:00
Andras Bacsai
da2f657342 wip 2023-03-30 15:52:19 +02:00
Joao Patricio
eb6dc9615c Merge branch 'v4' into ijpatricio-wip-4
# Conflicts:
#	tests/Feature/DockerCommandsTest.php
2023-03-30 10:17:40 +01:00
Joao Patricio
e2f527fc7b wip 2023-03-30 09:04:44 +01:00
Andras Bacsai
78c4344583 feat: add deployments as activity
fix: tests
refactor: remoteProcess
2023-03-29 12:27:02 +02:00
Joao Patricio
29fb40bd16 Refactoring: extract process handling from async job. 2023-03-21 10:32:38 +00:00
Joao Patricio
cf121062a1 Refactoring: extract process handling from async job. 2023-03-21 09:56:49 +00:00
Joao Patricio
d0d33da493 Refactoring: extract process handling from async job. 2023-03-21 09:31:16 +00:00
Joao Patricio
e74c464857 Refactoring: extract process handling from async job. 2023-03-21 09:08:36 +00:00
Joao Patricio
97cd5ed537 Converts unit test to Pest. Outlines GH Action 2023-03-20 21:24:53 +00:00
Joao Patricio
d7c7494007 Adds Pest tests. Starts GH Action. 2023-03-20 21:17:28 +00:00
Andras Bacsai
edd1719431 init of v4 🌮 2023-03-17 15:33:48 +01:00