Commit graph

1057 commits

Author SHA1 Message Date
Andras Bacsai
fbaa5eb369 feat: Update ApplicationSetting model to include additional boolean casts
- Changed `$cast` to `$casts` in ApplicationSetting model to enable proper boolean casting for new fields.
- Added boolean fields: `is_spa`, `is_build_server_enabled`, `is_preserve_repository_enabled`, `is_container_label_escape_enabled`, `is_container_label_readonly_enabled`, and `use_build_secrets`.

fix: Update Livewire component to reflect new property names

- Updated references in the Livewire component for the new camelCase property names.
- Adjusted bindings and IDs for consistency with the updated model.

test: Add unit tests for ApplicationSetting boolean casting

- Created tests to verify boolean casting for `is_static` and other boolean fields in ApplicationSetting.
- Ensured all boolean fields are correctly defined in the casts array.

test: Implement tests for SynchronizesModelData trait

- Added tests to verify the functionality of the SynchronizesModelData trait, ensuring it correctly syncs properties between the component and the model.
- Included tests for handling non-existent properties gracefully.
2025-11-04 08:43:33 +01:00
Andras Bacsai
1ab4b9aa31 refactor: simplify project data retrieval and enhance OAuth settings handling 2025-10-27 17:03:19 +01:00
Andras Bacsai
261dc39f02 fix: Monaco editor empty for docker compose applications
This commit fixes two related issues preventing the Monaco editor from displaying Docker Compose file content:

1. Data Sync Issue:
   - After loadComposeFile() fetches the compose content from Git and updates the database model, the Livewire component properties were never synced
   - Monaco editor binds to component properties via wire:model, so it remained empty
   - Fixed by calling syncFromModel() after refresh() in loadComposeFile() method

2. Script Duplication Issue:
   - Multiple Monaco editors on the same page (compose files, dockerfile, labels) caused race condition
   - Each instance tried to inject the Monaco loader script simultaneously
   - Resulted in "SyntaxError: Identifier '_amdLoaderGlobal' has already been declared"
   - Fixed by adding a global flag to prevent duplicate script injection

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 12:48:20 +01:00
Andras Bacsai
7a52fd4506
Merge pull request #6992 from coollabsio/andrasbacsai/service-logos-color
feat: display service logos in original colors with consistent sizing
2025-10-24 14:52:26 +02:00
Andras Bacsai
9d0d8c6729 Fix loading icon showing during automatic status checks
The loading icon was appearing during automatic background status checks
(every 10 seconds) even when users didn't click anything, which caused
confusion and made it seem like something was running unexpectedly.

Changes:
- Added manualCheckStatus() method to Application, Database, and Service
  Heading components that wraps the checkStatus() call
- Updated status component buttons to call manualCheckStatus() instead
  of checkStatus()
- Added wire:target="manualCheckStatus" to loading directives so the
  loading icon only appears when users explicitly click the refresh button
- Added delay.shortest to prevent flickering on fast operations

The automatic wire:poll.10000ms="checkStatus" now runs silently in the
background without showing the loading icon, while manual refreshes
still provide visual feedback to the user.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 12:58:52 +02:00
Andras Bacsai
b02689a43e feat: display service logos in original colors with consistent sizing
This commit improves the visual presentation of service, application, and database logos on the new resource selection page:

- Remove grayscale filter: Logos now display in their original colors by default instead of being greyed out
- Dark mode support for SVGs: Updated SVG logos to use `fill="currentColor"` and added `text-black dark:text-white` wrapper for proper light/dark theme adaptation
- Consistent aspect ratios: Removed `aspect-square` and added `object-contain` to preserve original logo proportions
- Uniform sizing: Implemented fixed-size container (4.5rem × 4.5rem) with centered logo positioning to ensure all logos appear at consistent sizes regardless of intrinsic dimensions
- Improved mobile UX: Adjusted sticky search bar positioning from `top-10` to `top-20` to prevent navbar overlap

Files modified:
- resources/views/livewire/project/new/select.blade.php
- resources/views/components/resource-view.blade.php
- app/Livewire/Project/New/Select.php
- public/svgs/*.svg (12 SVG files updated with currentColor)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 10:22:33 +02:00
Andras Bacsai
4ef0a50e09 feat: add category filter dropdown to service selection
Add a searchable category dropdown filter on the new resource page to help users filter services by category.

Features:
- Category dropdown positioned next to search input
- Auto-focus on search field when dropdown opens
- Case-insensitive category filtering
- Proper acronym formatting (AI, API, CI, etc. displayed in uppercase)
- Loading/disabled state while categories are being fetched
- Category search/filter within dropdown
- Alphabetical sorting (case-insensitive)

Backend changes:
- Extract unique categories from service templates
- Handle comma-separated categories
- Format common acronyms to uppercase
- Case-insensitive natural sorting

Frontend changes:
- Searchable dropdown component with Alpine.js
- Category filter integration with existing search
- Disabled state placeholder during loading
- Auto-focus behavior for better UX

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 21:02:12 +02:00
Andras Bacsai
4fc0c946da Changes auto-committed by Conductor 2025-10-21 08:47:38 +02:00
ShadowArcanist
9620455be0
Merge branch 'next' into shadow/fix-docker-time-command 2025-10-17 18:52:40 +05:30
Andras Bacsai
e2c254a5a8 Changes auto-committed by Conductor 2025-10-16 17:08:08 +02:00
Andras Bacsai
d4fb69ea98 fix: ensure authorization check is performed during component mount 2025-10-16 13:23:50 +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
6e8c557ed3 fix: ensure authorization checks are in place for viewing and updating the application 2025-10-16 13:04:44 +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
837a0f4545 Merge branch 'next' into andrasbacsai/livewire-model-binding
Resolved merge conflicts between Livewire model binding refactoring and UI/CSS updates from next branch. Key integrations:

- Preserved unique HTML ID generation for form components
- Maintained wire:model bindings using $modelBinding
- Integrated new wire:dirty.class styles (border-l-warning pattern)
- Kept both syncData(true) and validateDockerComposeForInjection in StackForm
- Merged security tests and helper improvements from next

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 11:05:29 +02:00
Andras Bacsai
cb1f571eb4 fix: prevent command injection in Docker Compose parsing - add pre-save validation
This commit addresses a critical security issue where malicious Docker Compose
data was being saved to the database before validation occurred.

Problem:
- Service models were saved to database first
- Validation ran afterwards during parse()
- Malicious data persisted even when validation failed
- User saw error but damage was already done

Solution:
1. Created validateDockerComposeForInjection() to validate YAML before save
2. Added pre-save validation to all Service creation/update points:
   - Livewire: DockerCompose.php, StackForm.php
   - API: ServicesController.php (create, update, one-click)
3. Validates service names and volume paths (string + array formats)
4. Blocks shell metacharacters: backticks, $(), |, ;, &, >, <, newlines

Security fixes:
- Volume source paths (string format) - validated before save
- Volume source paths (array format) - validated before save
- Service names - validated before save
- Environment variable patterns - safe ${VAR} allowed, ${VAR:-$(cmd)} blocked

Testing:
- 60 security tests pass (176 assertions)
- PreSaveValidationTest.php: 15 tests for pre-save validation
- ValidateShellSafePathTest.php: 15 tests for core validation
- VolumeSecurityTest.php: 15 tests for volume parsing
- ServiceNameSecurityTest.php: 15 tests for service names

Related commits:
- Previous: Added validation during parse() phase
- This commit: Moves validation before database save

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 09:51:37 +02:00
Andras Bacsai
73837058c3
Merge pull request #6879 from coollabsio/fix-docker-image-digest-cleanup
fix: improve Docker image digest handling and add auto-parse feature
2025-10-15 10:49:30 +02:00
Andras Bacsai
20b4288916 fix: improve Docker image digest handling and add auto-parse feature
- Replace manual regex parsing with DockerImageParser in ApplicationsController
- Fix double-decoration bug where image names like nginx@sha256:hash would
  become nginx:hash@sha256 causing malformed references
- Add auto-parse feature in Livewire DockerImage component
- Users can now paste complete references like nginx:stable@sha256:abc123...
  and fields auto-populate
- Update UI placeholder with examples: nginx, docker.io/nginx:latest,
  ghcr.io/user/app:v1.2.3, nginx:stable@sha256:abc123...
- Add comprehensive unit tests for auto-parse functionality
- All tests passing (20 tests, 73 assertions)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 10:19:01 +02:00
Andras Bacsai
3e2f124c83 fix: use computed imageTag variable for digest-based Docker images
The code was computing $imageTag with the 'sha256-' prefix for digest-based
images but then using $parser->getTag() directly when creating the Application,
which bypassed the prefix logic entirely.

This fix ensures that digest-based Docker images preserve their 'sha256-' prefix
by using the computed $imageTag variable instead of calling $parser->getTag()
directly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 09:36:59 +02:00
Andras Bacsai
e20327b9c4 fix: add authorization checks to database Livewire components
Added authorization checks to 11 database-related Livewire components
that were loading sensitive database configuration without verifying
user permissions.

Changes:
- Added authorize('view', $database) to all 8 database type General.php mount() methods
- Added authorization to Configuration.php before loading database
- Added authorization to BackupEdit.php before loading backup config
- Added authorization to Import.php before loading database resource

This prevents unauthorized users from accessing database credentials,
connection strings, and configuration details.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 17:33:42 +02:00
Andras Bacsai
74c70b431c fix: prevent TypeError in database General components with null server
Nullable server + guard to avoid TypeError/NPE. Don't terminate the app, terminate the bug.

Changes:
- Made Server property nullable (?Server $server = null) in all 8 database General components
- Added guard clause in mount() to check for null server before accessing it
- Displays user-friendly error message when destination server is not configured
- Prevents crashes in methods like isLogDrainEnabled() and sslCertificates()

Fixed components:
- Mariadb, Dragonfly, Clickhouse, Keydb
- Mysql, Mongodb, Redis, Postgresql

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 17:04:48 +02:00
Andras Bacsai
ce12c94709 fix: prevent duplicate services on image change and enable real-time UI refresh
This commit addresses two critical issues with Docker Compose service management:

## Issue 1: Duplicate Services Created on Image Change
When changing the image in a docker-compose file, the parser was creating new
ServiceApplication/ServiceDatabase records instead of updating existing ones.

**Root Cause**: The parsers used `firstOrCreate()` with `['name', 'image', 'service_id']`,
meaning any image change would create a new record.

**Fix**: Remove `image` from `firstOrCreate()` queries and update it separately after
finding or creating the service record.

**Changes**:
- `bootstrap/helpers/parsers.php` (serviceParser v3): Fixed in presave loop (lines 1188-1203)
  and main parsing loop (lines 1519-1539)
- `bootstrap/helpers/shared.php` (parseDockerComposeFile v2): Fixed null check logic
  (lines 1308-1348)

## Issue 2: UI Not Refreshing After Changes
When compose file or domain was modified, the Configuration component wasn't receiving
events to refresh its data, requiring manual page refresh to see updates.

**Root Cause**: The Configuration component wasn't listening for refresh events dispatched
by child components (StackForm, EditDomain).

**Fix**: Add event listeners and dispatchers to enable real-time UI updates.

**Changes**:
- `app/Livewire/Project/Service/Configuration.php`: Added listeners for `refreshServices`
  and `refresh` events (lines 36-37)
- `app/Livewire/Project/Service/EditDomain.php`: Added `refreshServices` dispatch (line 76)
- Note: `app/Livewire/Project/Service/StackForm.php` already had the dispatch

## Tests Added
- `tests/Unit/ServiceParserImageUpdateTest.php`: 4 tests verifying no duplicates created
- `tests/Unit/ServiceConfigurationRefreshTest.php`: 4 tests verifying event dispatching

All 8 new tests pass, and all existing unit tests continue to pass.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 10:12:36 +02:00
Andras Bacsai
043b144f5d
Merge branch 'next' into andrasbacsai/livewire-model-binding 2025-10-14 09:02:00 +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
777cdc91f0 fix: enable docker network connection for pgadmin service 2025-10-13 14:13:40 +02:00
Andras Bacsai
a15ab54495 refactor: migrate database components from legacy model binding to explicit properties
- Remove global 'refresh' event listeners from all database General components
- Migrate Redis, MySQL, MariaDB, MongoDB, PostgreSQL, and KeyDB components to use explicit public properties instead of wire:model="database.field"
- Implement syncData() method in each component for manual data synchronization between properties and Eloquent models
- Update all validation rules, messages, and attributes to reference new property names
- Update Blade views to bind inputs to explicit properties (e.g., id="name" instead of id="database.name")
- Prepare codebase for disabling Livewire's legacy_model_binding configuration option

This refactoring resolves form field reset issues caused by global refresh events
and follows Livewire 3 best practices for component property management.
2025-10-13 10:01:17 +02:00
Andras Bacsai
f4e5c195fe refactor: replace direct SslCertificate queries with server relationship methods for consistency 2025-10-09 17:00:05 +02:00
ShadowArcanist
b39690dfa2 Changed docker --time command to -t since --time is deprecated on v28 2025-10-09 13:26:10 +05:30
Andras Bacsai
a39bd8c5b0 fix(project): update redirect logic after resource creation to include environment UUID
- Modified the redirect route after project resource creation to include the UUID of the production environment, ensuring users are directed to the correct resource index page.
- This change enhances navigation and improves user experience by providing direct access to the relevant environment resources.
2025-10-07 20:46:32 +02:00
Andras Bacsai
201e30e849 feat(project): enhance project index with resource creation capabilities
- Added logic to determine if the user can create resources for each project and generate the corresponding route for adding resources based on the project's first environment.
- Updated the project index view to display the new resource creation option alongside existing project settings.
- Adjusted various views to include a margin-top adjustment for better layout consistency.
2025-10-07 17:17:31 +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
9962b69a13 fix(core): set default base_directory and include in submit method
- Updated the base_directory property to default to '/' for better compatibility with Docker setups.
- Included base_directory in the submit method's application array to ensure it is correctly passed during submission, enhancing the functionality of the GithubPrivateRepository component.
2025-10-07 14:12:07 +02:00
Andras Bacsai
eb1f16b62e fix(environment): clear computed property cache after adding environment variables
- Added cache clearing for environment variables and their preview after a new variable is added to ensure the UI reflects the latest data.
- Updated the refreshEnvs method to include cache clearing, enhancing the responsiveness of the environment variable display.
2025-10-07 13:57:59 +02:00
Andras Bacsai
ae64f8cb86 fix validation on a few views 2025-10-06 21:25:24 +02:00
Andras Bacsai
b4cfb78f86 feat(storage): add read-only volume handling and UI notifications
- Introduced `isReadOnlyVolume` method in `LocalFileVolume` and `LocalPersistentVolume` models to determine if a volume is read-only based on Docker Compose configuration.
- Updated `FileStorage` and `Show` components to set `isReadOnly` state during mounting.
- Enhanced UI to display notifications for read-only volumes, preventing modification actions in the interface.
- Refactored file storage and directory management forms to conditionally enable or disable actions based on read-only status.
2025-10-03 20:05:43 +02:00
Andras Bacsai
7d99d6ad34 feat(docker): improve Docker image submission logic with enhanced parsing
- Added logic to strip 'sha256:' prefix and remove '@sha256' suffix from user input for image SHA256 and name.
- Updated image name handling to append '@sha256' when using a digest, ensuring correct formatting.
- Enhanced validation and parsing for Docker images to improve user experience and data integrity.
2025-10-03 11:42:29 +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
d63802e03d feat(deployments): add log copying functionality to clipboard in dev 2025-10-02 18:34:39 +02:00
Andras Bacsai
ce5555ca9f feat(storage): consolidate storage management into a single component with enhanced UI
- Merged the storage management functionalities into the Storage component, replacing the previous Add component.
- Introduced new methods for submitting persistent volumes, file mounts, and directory mounts, improving code organization and maintainability.
- Enhanced the UI with modals for adding volumes, files, and directories, providing a more intuitive user experience.
- Updated validation rules and error handling for improved robustness during storage submissions.
- Removed deprecated Add component and associated views to streamline the codebase.
2025-10-01 18:46:21 +02:00
Andras Bacsai
25a7be23a9 ui(storage): enhance file storage management with new properties and UI improvements
- Added properties to manage file and directory counts, improving data handling in the Livewire component.
- Updated the file storage view to include a tabbed interface for volumes, files, and directories, enhancing user navigation.
- Improved UI layout for better readability and user experience, including consistent styling and informative messages.
2025-10-01 08:23:21 +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
8e7c869d23 fix(git): handle additional repository URL cases for 'tangled' and improve branch assignment logic 2025-09-30 12:22:57 +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
ShadowArcanist
dc2929e1f7 Added info toast to let the user know to restart the app after enabling healthcheck
It only let the user know to restart if healthcheck is enabling while the app is in running state
2025-09-29 10:37:27 +05:30
ShadowArcanist
48ccfa3124 Added confirmation modal for enabling healtcheck + replaced enable checkbox with a button 2025-09-29 10:07:47 +05:30
Andras Bacsai
eac1a9f21b fix(github): update repository URL to point to the v4.x branch for development 2025-09-25 17:31:16 +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
b1abdcee83 feat(environment-variables): implement environment variable analysis for build-time issues
- Added EnvironmentVariableAnalyzer trait to analyze and warn about problematic environment variables during the build process.
- Integrated analysis into ApplicationDeploymentJob and Livewire components to provide feedback on potential build issues.
- Introduced a new Blade component for displaying warnings related to environment variables in the UI.
2025-09-23 08:53:14 +02:00
Andras Bacsai
36dfd1bc6e refactor(github): enhance API request handling and validation
- Updated validation rules for 'custom_user' and 'custom_port' fields to be nullable in the GithubController.
- Refactored API request handling in GithubController, GithubPrivateRepository, and helper functions to use a consistent Http::GitHub method with timeout and retry logic.
- Improved error handling for repository and branch loading processes.
2025-09-22 15:41:56 +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
b1ad24eecf
Merge pull request #6657 from ShadowArcanist/shadow/metrics-visual-improvements
chore(ui): improve sentinel metrics
2025-09-22 09:46:26 +02:00
Andras Bacsai
4f71d14d39 feat(event): introduce ApplicationConfigurationChanged event to handle team-specific configuration updates and broadcast changes
feat(envs): Generate hash from secrets to invalidate docker layers
2025-09-22 09:44:30 +02:00
ShadowArcanist
ee9cf076c3 Removed debug logging for metrics 2025-09-19 23:28:25 +05:30
ShadowArcanist
0ef0247e14 Improved metrics graph tooltip to show usage in a better way and added timestamp to the tooltip 2025-09-19 22:40:08 +05:30
Andras Bacsai
f33df13c4e feat(environment): replace is_buildtime_only with is_runtime and is_buildtime flags for environment variables, updating related logic and views 2025-09-18 18:14:54 +02:00
Andras Bacsai
074c70c8ab fix(clone): update destinations method call to ensure correct retrieval of selected destination 2025-09-18 13:44:56 +02:00
Andras Bacsai
c1bee32f09 feat(deployment): introduce 'use_build_secrets' setting for enhanced security during Docker builds and update related logic in deployment process 2025-09-17 10:34:38 +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
133e72336a Revert "refactor(file-transfer): replace base64 encoding with direct file transfer method in various components for improved clarity and efficiency"
This reverts commit feacedbb04.
2025-09-15 17:56:48 +02:00
Andras Bacsai
97428a4a80 feat(executions): add 'Load All' button to view all logs and implement loadAllLogs method for complete log retrieval 2025-09-15 11:05:29 +02:00
Andras Bacsai
8e155f25b3 refactor(environment): streamline environment variable handling by replacing sorting methods with direct property access and enhancing query ordering for improved performance 2025-09-12 12:09:03 +02:00
Andras Bacsai
20ad2165e7 feat(environment): introduce 'is_buildtime_only' attribute to environment variables for improved build-time configuration 2025-09-11 17:38:16 +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
13af4811f5 feat(storages): add method to retrieve the first storage ID for improved stability in storage display 2025-09-11 13:41:22 +02:00
Andras Bacsai
5e0b86f322
Merge pull request #6170 from mindedtech/Add-SERVICE_NAME-variable-for-docker-compose-services
Add SERVICE_NAME variable for docker compose services
2025-09-11 13:06:10 +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
e74da06465 refactor(clone): consolidate application cloning logic into a dedicated function for improved maintainability and readability 2025-09-11 10:38:08 +02:00
Andras Bacsai
feacedbb04 refactor(file-transfer): replace base64 encoding with direct file transfer method in various components for improved clarity and efficiency 2025-09-09 11:10: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
Arnaud B
e23ab1e621
feat(deployment): add SERVICE_NAME variables for service discovery
This change introduces automatically generated `SERVICE_NAME_<SERVICE>`
environment variables for each service within a Docker Compose deployment.
This allows services to reliably reference each other by name, which is particularly
useful in pull request environments where container names are dynamically suffixed.

- The application parser now generates and injects these `SERVICE_NAME` variables
   into the environment of all services in the compose file.
- `ApplicationDeploymentJob` is updated to correctly handle and filter these
  new variables during deployment.
- UI components and the `EnvironmentVariableProtection` trait have been updated
to make these generated variables read-only, preventing accidental modification.

This commit introduces two new helper functions to standardize resource naming
for pull request deployments:

-  `addPreviewDeploymentSuffix()`: Generates a consistent suffix format (-pr-{id})
   for resource names in preview deployments
-  `generateDockerComposeServiceName()`: Creates SERVICE_NAME environment variables
   for Docker Compose services
2025-09-08 15:22:44 +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
saurabhraghuvanshii
3c126927d5 enhancement: allow deploy from container image hash 2025-08-28 02:10:14 +05:30
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
ae1b0de561 feat(auth): enhance authorization checks in Livewire components for resource management 2025-08-26 10:27:38 +02:00
Andras Bacsai
adb8f9d88e feat(auth): implement authorization checks for database management 2025-08-23 18:50:35 +02:00
Andras Bacsai
6d02f6a60b feat(auth): add comprehensive authorization checks for all kind of resource creations 2025-08-23 18:47:31 +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
8408205955 feat(validation): add custom validation rules for Git repository URLs and branches
- Introduced `ValidGitRepositoryUrl` and `ValidGitBranch` validation rules to ensure safe and valid input for Git repository URLs and branch names.
- Updated relevant Livewire components and API controllers to utilize the new validation rules, enhancing security against command injection and invalid inputs.
- Refactored existing validation logic to improve consistency and maintainability across the application.
2025-08-22 14:38:21 +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
38c0641734 feat(validation): centralize validation patterns for names and descriptions
- Introduced `ValidationPatterns` class to standardize validation rules and messages for name and description fields across the application.
- Updated various components and models to utilize the new validation patterns, ensuring consistent sanitization and validation logic.
- Replaced the `HasSafeNameAttribute` trait with `HasSafeStringAttribute` to enhance attribute handling and maintain consistency in name sanitization.
- Enhanced the `CleanupNames` command to align with the new validation rules, allowing for a broader range of valid characters in names.
2025-08-19 12:14:48 +02:00
Andras Bacsai
e958b3761d feat(cleanup): add command for sanitizing name fields across models
- Introduced `CleanupNames` command to sanitize name fields by removing invalid characters, ensuring only letters, numbers, spaces, dashes, underscores, and dots are retained.
- Implemented options for dry run, model-specific cleaning, database backup, and forced execution.
- Updated `Init` command to call the new `cleanup:names` command.
- Enhanced project and environment validation to enforce name sanitization rules.
- Added `HasSafeNameAttribute` trait to relevant models for consistent name handling.
2025-08-19 11:04:23 +02:00
Andras Bacsai
5cfe6464aa fix(database): conditionally set started_at only if the database is running 2025-08-18 12:09:58 +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
0dada987a2 feat(backup): add disable local backup option and related logic for S3 uploads 2025-08-17 12:34:20 +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
cc5abc093d fix(container): sort containers alphabetically by name in ExecuteContainerCommand and update filtering in Terminal Index 2025-08-12 10:06:19 +02:00
peaklabs-dev
279edf696c
chore(docker): remove unused arguments on StopService 2025-08-04 22:12:56 +02:00
🏔️ Peak
2a526c54d5
fix(docker): volumes get delete when stopping a service if Delete Unused Volumes is activated (#6317) 2025-08-04 21:15:56 +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
43ff38d914 feat(terminal): dispatch focus event for terminal after connection and enhance focus handling in JavaScript 2025-07-18 22:39:42 +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
ef91e43384 feat(container): add updatedSelectedContainer method to connect to non-default containers and update wire:model for improved reactivity 2025-07-18 20:48:56 +02:00
🏔️ Peak
e5e1bdcd4d
fix(backups): large database backups are not working (#6217) 2025-07-18 15:47:14 +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
Nathan James
4d2910e740
Merge branch 'coollabsio:next' into next 2025-07-04 16:07:31 +01:00
Nathan James
4c4b115008
Correct Typo: 'form' -> 'from' 2025-07-04 16:06:53 +01:00
Andras Bacsai
ca62f8dacc refactor(terminal): simplify command construction for SSH execution 2025-07-03 15:48:59 +02:00
Andras Bacsai
13a9816770 fix(service): ensure configuration changes are properly tracked and dispatched 2025-07-03 15:08:13 +02:00
Hicro
43bcfe8d02
fix: removing eager loading (#6071)
since the destionations relationship is not really needed, we could
remove it and avoid the issue with the missing eager constraint.

Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
2025-07-01 11:10:47 +02:00
Andras Bacsai
a1ec86f433 fix(terminal): ensure shell execution only uses valid shell if available in terminal command 2025-07-01 10:37:34 +02:00
Andras Bacsai
8fc79022f3 feat(service): enhance service status handling and UI updates 2025-06-24 12:52:22 +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
f7daddce58 refactor(ui): terminal 2025-06-17 09:28:07 +02:00
Andras Bacsai
87225405a8 refactor(clone-project): enhance server retrieval by including destinations and filtering out build servers 2025-06-16 13:15:40 +02:00
Andras Bacsai
d1d899c0cf refactor(execute-container-command): simplify connection logic and improve terminal availability checks 2025-06-14 13:56:48 +02:00
Andras Bacsai
64dd648b3f fix(terminal): now it should work 2025-06-14 13:00:16 +02:00
Andras Bacsai
581151bb11 refactor(resource-operations): filter out build servers from the server list and clean up commented-out code in the resource operations view 2025-06-13 16:49:27 +02:00
Andras Bacsai
d47d2f14f7 refactor(logs): remove unused methods and debug functionality from Logs.php for cleaner code 2025-06-10 10:48:08 +02:00
Andras Bacsai
8e70b2907f fix(terminal-connection): improve error handling and stability for auto-connection; enhance component readiness checks and retry logic 2025-06-06 21:40:52 +02:00
Andras Bacsai
7df6890920 refactor(terminal-connection): streamline auto-connection logic and improve component readiness checks 2025-06-06 21:34:27 +02:00
Andras Bacsai
ba970d909c feat(terminal-connection): enhance terminal connection handling with auto-connect feature and improved status messaging 2025-06-06 21:15:50 +02:00
Andras Bacsai
4c887a3126 fix(database-heading): simplify stop database message for clarity 2025-06-05 13:33:02 +02:00
Andras Bacsai
618a7d459c refactor(logs): enhance container loading logic and improve UI for logs display across various resource types 2025-06-05 13:24:26 +02:00
Andras Bacsai
908c587ea1 refactor(docker-compose): replace hardcoded Docker Compose configuration with external YAML template for improved database detection testing 2025-06-04 11:32:06 +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
32a14b0050 fix(select-component): handle exceptions during parameter retrieval and environment selection in the mount method 2025-06-02 13:02:01 +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
9480fc2b2f refactor(environment-variables): remove debug logging from bulk submit handling for cleaner code 2025-05-30 09:11:40 +02:00
Andras Bacsai
05a03c44d3 refactor(terminal): enhance terminal connection management and error handling, including improved reconnection logic and cleanup procedures 2025-05-29 14:36:13 +02:00
Andras Bacsai
261a2fe564 feat(ca-certificate): add CA certificate management functionality with UI integration and routing 2025-05-29 14:27:28 +02:00
Andras Bacsai
9d71900952 refactor(terminal-access): streamline resource retrieval and enhance terminal access messaging in UI 2025-05-29 14:26:48 +02:00
Andras Bacsai
46b4cfac68 feat(terminal-access): implement terminal access control for servers and containers, including UI updates and backend logic 2025-05-29 14:09:05 +02:00
Andras Bacsai
58be59a7b3 refactor(service): remove informational dispatch during service stop for cleaner execution 2025-05-29 11:11:49 +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
Andras Bacsai
0603ab13c2 fix(project): update selected environment handling to use environment name instead of UUID 2025-05-22 14:35:31 +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
9c3817ee14 fix(deploy): update resource timestamp handling in deploy_resource method 2025-05-20 11:15:31 +02:00
Andras Bacsai
35b08453e1 refactor(service): consolidate configuration change dispatch logic and remove unused navbar component 2025-05-20 11:15:31 +02:00
Andras Bacsai
2424bd408b
Update app/Livewire/Project/Service/Heading.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-05-20 11:15:07 +02:00
peaklabs-dev
79e620eac5
fix(ui): add back missing service navbar components 2025-05-19 23:35:17 +02:00
Andras Bacsai
786bfa960f improvement(core): simplify events for app/db/service status changes 2025-05-19 21:50:32 +02:00
Andras Bacsai
daefe28fd8 fix(database): include DatabaseStatusChanged event in activityMonitor dispatch 2025-05-19 13:46:52 +02:00
Andras Bacsai
365bf3cbf0 fix(dev): mount points?! 2025-05-03 09:59:42 +02:00
Andras Bacsai
ed0961e0dc refactor(database): enhance application conversion logic and add existence checks for databases and applications 2025-04-30 18:30:33 +02:00
Andras Bacsai
0a1a403940
Update app/Livewire/Project/Service/Database.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-30 18:26:43 +02:00
Andras Bacsai
114fafb270 refactor(database): update DB facade usage for consistency across service files 2025-04-30 17:39:41 +02:00
Andras Bacsai
fe24296de7 feat(backup): implement custom database type selection and enhance scheduled backups management 2025-04-30 16:44:44 +02:00
Andras Bacsai
e062edb689 refactor(core): streamline container stopping process and reduce timeout duration; update related methods for consistency 2025-04-30 15:28:59 +02:00
Andras Bacsai
d8c3418e72 feat(Service): Add functionality to convert between applications and databases in docker-compose based applications
fix(ui): Fix service layout refresh on compose change
2025-04-29 14:27:17 +02:00
Andras Bacsai
65be880d70 fix(ui): Change application image validation to be nullable in service application view 2025-04-29 09:23:26 +02:00
Andras Bacsai
d47946a0ad fix(ui): Disable livewire navigate feature (causing spam of setInterval()) 2025-04-29 09:04:24 +02:00
Andras Bacsai
78ef80f800 refactor 2025-04-23 13:22:01 +02:00
Andras Bacsai
9e608f7ba5 refactor(http-basic-auth): rename 'http_basic_auth_enable' to 'http_basic_auth_enabled' across application files for consistency 2025-04-22 21:30:27 +02:00
Andras Bacsai
7e0373e439
Merge branch 'next' into feat/add-http-basic-auth 2025-04-22 21:18:43 +02:00
Andras Bacsai
00fe6e9003 refactor(environment-variables): remove protected variable checks from delete methods for cleaner logic 2025-04-22 11:40:35 +02:00
Andras Bacsai
cd2f71b463 feat(deployment): add repository_project_id handling for private GitHub apps and clean up unused Caddy label logic 2025-04-22 10:20:57 +02:00
Christopher Kaster
2634f516d5
feat: Add HTTP Basic Authentication 2025-04-17 14:14:32 +02:00
Andras Bacsai
4c95dccfb3 refactor(SourceManagement): sort sources by name and improve UI for changing Git source with better error handling 2025-04-11 20:25:25 +02:00
Andras Bacsai
ec36825545 feat(SourceManagement): add functionality to change Git source and display current source in the application settings 2025-04-11 18:22:42 +02:00
Andras Bacsai
d075241289 feat(Deployment): enhance queue_application_deployment to handle existing deployments and return appropriate status messages 2025-04-11 15:27:56 +02:00
Andras Bacsai
68bd945b09 refactor(Application): rename network_aliases to custom_network_aliases across the application for clarity and consistency 2025-04-09 08:42:50 +02:00
Andras Bacsai
f8607ddf6a
Merge branch 'next' into docker-network-aliases 2025-04-08 13:27:59 +02:00
Andras Bacsai
f63415f027 feat(EnvironmentVariable): implement protection for critical environment variables and enhance deletion logic 2025-04-07 22:57:26 +02:00
Andras Bacsai
f31624c6eb fix(General): change redis_password property to nullable string 2025-04-06 21:13:15 +02:00
Andras Bacsai
d383344ab9 feat(EnvironmentVariable): add handling for Redis credentials in the environment variable component 2025-04-06 21:13:11 +02:00
Andras Bacsai
3176106222 fix(CheckProxy, Status): prevent proxy checks when force_stop is active; remove debug statement in General 2025-04-05 14:32:51 +02:00
Andras Bacsai
fcfd00eebe feat(application): add SPA configuration and update Nginx generation logic 2025-03-31 15:10:50 +02:00
Andras Bacsai
d6d1c9ad82 feat(database): add CA certificate generation for database servers 2025-03-31 14:02:15 +02:00
Andras Bacsai
7686ebfd6c refactor(file-storage): add loadStorageOnServer method for improved error handling 2025-03-28 21:05:34 +01:00
Andras Bacsai
3be6be4c1b refactor(database): require PEM key file for SSL certificate regeneration 2025-03-27 10:02:25 +01:00
Andras Bacsai
1857a54d92 refactor(database): update import statements for Auth in database components 2025-03-26 18:31:42 +01:00
Andras Bacsai
44bf3f4ee3 refactor(database): streamline event listeners in Redis General component 2025-03-26 18:30:52 +01:00
Andras Bacsai
d7ded7f8e5 refactor(database): enhance SSL configuration handling for various databases 2025-03-26 17:24:46 +01:00
Andras Bacsai
5e6c112fcc feat(github): enhance repository loading and validation in applications 2025-03-24 14:29:17 +01:00
Andras Bacsai
806d892031 refactor(application): streamline healthcheck parsing from Dockerfile 2025-03-24 11:43:10 +01:00
Andras Bacsai
120facfca3 feat(api): unify service creation endpoint and enhance validation 2025-03-21 11:31:17 +01:00
Andras Bacsai
950acffe0b refactor(database): streamline SSL configuration handling across database types 2025-03-17 15:15:54 +01:00
Andras Bacsai
009cee1bbd
Merge branch 'next' into feat-db-ssl 2025-03-17 15:15:24 +01:00
Andras Bacsai
b8f99bbda0 fix(core): redirect healthcheck route for dockercompose applications 2025-03-17 11:28:43 +01:00
Piotr Wójcik
0baeaa982b
Merge branch 'next' into docker-network-aliases 2025-03-16 14:50:26 +01:00
Andras Bacsai
798aab6955 refactor(ScheduledTask): clean up code formatting and remove unused import 2025-03-14 16:11:41 +01:00
Andras Bacsai
d894c3d903 feat(database): implement two-step confirmation for database deletion
Added a new delete method in the Database component that includes a two-step confirmation process requiring the user to enter their password. If two-step confirmation is disabled, the deletion proceeds without password verification. Additionally, a confirmation modal has been integrated into the database view to prompt users before deletion, enhancing the safety of this critical operation.
2025-03-12 16:33:35 +01:00
Andras Bacsai
a7318c2d77 fix(domain): dispatch refreshStatus event after successful domain update 2025-03-12 15:37:06 +01:00
Andras Bacsai
3f62225ec3 refactor(scheduled-tasks): Improve scheduled task creation and management 2025-02-27 13:26:35 +01:00
Andras Bacsai
1e28cf56ac fix(ui): Correct redirect routes after task deletion 2025-02-27 13:26:24 +01:00
Andras Bacsai
f98c58a0a3 fix(ui): Restrict service retrieval to current team 2025-02-27 12:17:23 +01: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
40ad118492 fix(core): add server functionality check before dispatching container status 2025-02-22 12:51:22 +01:00
peaklabs-dev
225f24e650
chore: improve code quality suggested by code rabbit 2025-02-19 18:04:58 +01:00
🏔️ Peak
9557957f18
Merge branch 'next' into feat-db-ssl 2025-02-19 17:57:59 +01:00
Andras Bacsai
6e802f43ba fix(core): update service status refresh event handling 2025-02-17 09:52:18 +01:00
Andras Bacsai
a25e2072d3 fix(deployment): improve server selection for deployment cancellation
- Add fallback for build server and deployment server selection
- Use `ownedByCurrentTeam()` scope when finding servers
- Handle cases where server IDs might be null
2025-02-12 10:51:26 +01:00
peaklabs-dev
4fdd5679c9
fix(ui): enable SSL is not working correctly for KeyDB 2025-02-11 20:18:42 +01:00
peaklabs-dev
3e95387e10
Full: SSL Support for KeyDB 2025-02-10 21:29:45 +01:00
peaklabs-dev
90e681e24b
feat: Full SSL support for DrangonflyDB 2025-02-10 21:29:20 +01:00
peaklabs-dev
4547647e98
feat(ssl): improve Redis and remove modes 2025-02-10 19:23:39 +01:00
peaklabs-dev
6b6a9f57f3
fix(ui): remove unused mode for MongoDB 2025-02-10 15:26:05 +01:00
peaklabs-dev
484fc5140b
fix(ssl): rename Redis mode to verify-ca as it is not verify-full 2025-02-08 16:43:15 +01:00
🏔️ Peak
c7840bdf1b
Merge branch 'next' into feat-db-ssl 2025-02-07 23:01:46 +01:00
peaklabs-dev
7b30b1aff1
feat(ssl): Full SSL support for Redis 2025-02-07 22:36:36 +01:00
peaklabs-dev
5b347f3d0f
fix(ssl): remove mode selection for MariaDB as it is not supported 2025-02-07 21:07:40 +01:00
peaklabs-dev
bd33f65c0a
feat(ssl): new modes for MongoDB and get caCert and mountPath correctly 2025-02-07 18:31:41 +01:00
peaklabs-dev
62fb2c2877
fix(ssl): ger caCert and mountPath correctly 2025-02-07 18:30:07 +01:00
peaklabs-dev
367eebc9fc
feat: Add full SSL support to MongoDB 2025-02-05 22:56:29 +01:00
peaklabs-dev
951a454cbc
fix(ssl): regenerating certs for a specific DB
- fix: add mount path to make file mounts work correctly
- fix: get CA cert of the server not some random cert
2025-02-05 21:22:54 +01:00
peaklabs-dev
e81ed1aad8
feat(ssl): Add full MariaDB SSL support 2025-02-04 21:08:20 +01:00
peaklabs-dev
3f857c6dac
feat(ssl): Add full MySQL SSL Support 2025-02-04 18:29:35 +01:00
peaklabs-dev
3c62130e86
fix(ssl): improve SSL cert file mounts
- If SSL is disabled, delete the SSL crt and file mounts in the DB
- If SSL is disabled, delete the SSL folder
- If SSL is enabled, make sure the file mounts are added inside the helper
- remove old file mounts first to make sure the ssl crt content is always up to date and no duplicates are added
2025-02-04 16:34:24 +01:00
Andras Bacsai
d632eb2be9 refactor: simplify service start and restart workflows 2025-02-04 14:34:34 +01:00
Andras Bacsai
8033a89dee fix(ui): simplify service templates loading logic 2025-02-04 13:30:27 +01:00
peaklabs-dev
fd5b7492f8
chore(ui): improve valid until handling 2025-02-03 23:21:09 +01:00
peaklabs-dev
53510928d2
feat(ssl): regenerate certificate and valid until UI 2025-02-03 22:54:31 +01:00
🏔️ Peak
f871c1067b
Merge branch 'next' into feat-db-ssl 2025-02-03 22:20:51 +01:00
Andras Bacsai
0ff7c468c8 fix(ui): skip SERVICE_FQDN and SERVICE_URL variables during update 2025-02-03 15:44:15 +01:00
Andras Bacsai
83f0f9fca4 fix(core): improve public repository URL parsing for branch and base directory 2025-01-31 18:17:00 +01:00
peaklabs-dev
875d1d49bb
feat(ui): Add ssl settings to Postgres ui 2025-01-29 13:25:05 +01:00
Andras Bacsai
e9fd2d8d6f feat(core): add dynamic label reset for application settings 2025-01-28 13:38:26 +01:00
Andras Bacsai
1ec15af1ad fix(database): adjust MongoDB restore command and import view styling 2025-01-28 12:41:22 +01:00
Andras Bacsai
8f1bde2534 fix(core): check cron expression on save 2025-01-28 11:01:50 +01:00
Efthymis Sarmpanis
01b9cbdfea fix: validate cron expression in Scheduled Task update 2025-01-27 22:50:54 +02:00
Andras Bacsai
fddaf9134d fix: disable certain parts if readonly label is turned off 2025-01-27 14:05:18 +01:00
peaklabs-dev
ec9f8de873
fix(labels): generate labels when they are empty not when they are already generated 2025-01-23 14:57:18 +01:00
peaklabs-dev
cc640ad710
fix(labels): docker labels do not generated correctly 2025-01-23 12:42:53 +01:00
peaklabs-dev
09d64d4bf6
feat(terminal): show terminal unavailable if the container does not have a shell on the global terminal UI 2025-01-23 11:51:01 +01:00
peaklabs-dev
007e291bef
fix(terminal): terminal shows that it is not available, even though it is 2025-01-23 11:50:06 +01:00
peaklabs-dev
9f3c6b4b76
fix(env): shared variables can not be updated 2025-01-22 17:02:11 +01:00
Andras Bacsai
52a38f238b fix(redis): update environment variable keys from standalone_redis_id to resourceable_id 2025-01-22 11:54:53 +01:00
peaklabs-dev
31992f4d02
fix(ui):show error on terminal if container has no shell (bash/sh) 2025-01-21 18:36:38 +01:00
Andras Bacsai
4b74ca56c3 feat(core): wip version of coolify.json 2025-01-21 14:09:12 +01:00
Andras Bacsai
57f61d4589 fix: docker image parser 2025-01-20 13:59:02 +01:00
Andras Bacsai
618b89f648
Merge pull request #4842 from peaklabs-dev/docker-cleanup-executions-ui
feat: Docker cleanup execution UI and some UI improvements
2025-01-16 21:42:02 +01:00
Andras Bacsai
3c83c7fd6c
Merge pull request #4754 from coollabsio/improve-git-and-service-provider
Improves: GitHub handling, AppServiceProvider and 500 error message rendering
2025-01-16 21:09:08 +01:00
🏔️ Peak
11d1a9e6fd
Merge branch 'next' into docker-cleanup-executions-ui 2025-01-16 14:41:23 +01:00
Andras Bacsai
55d61ffaee fix: add finished_at to app deployment jobs
fix: show deployment job running measurements
fix: terminal should not be wire:navigated
2025-01-16 12:05:59 +01:00
🏔️ Peak
e2a9cb61aa
Merge branch 'next' into docker-cleanup-executions-ui 2025-01-16 11:28:09 +01:00
Andras Bacsai
23e7463a40 refactor: update redirect calls to use a consistent navigation method in deployment functions 2025-01-16 11:14:04 +01:00
🏔️ Peak
881914dc86
Merge branch 'next' into docker-cleanup-executions-ui 2025-01-16 11:13:57 +01:00
Andras Bacsai
433dff2684 improve navigation 2025-01-16 11:04:50 +01:00