Commit graph

222 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
adb8f9d88e feat(auth): implement authorization checks for database management 2025-08-23 18:50:35 +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
5cfe6464aa fix(database): conditionally set started_at only if the database is running 2025-08-18 12:09:58 +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
🏔️ Peak
e5e1bdcd4d
fix(backups): large database backups are not working (#6217) 2025-07-18 15:47:14 +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
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
4c887a3126 fix(database-heading): simplify stop database message for clarity 2025-06-05 13:33:02 +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
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
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
fe24296de7 feat(backup): implement custom database type selection and enhance scheduled backups management 2025-04-30 16:44:44 +02:00
Andras Bacsai
f31624c6eb fix(General): change redis_password property to nullable string 2025-04-06 21:13:15 +02:00
Andras Bacsai
d6d1c9ad82 feat(database): add CA certificate generation for database servers 2025-03-31 14:02:15 +02: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
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
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
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
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
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
peaklabs-dev
875d1d49bb
feat(ui): Add ssl settings to Postgres ui 2025-01-29 13:25:05 +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
52a38f238b fix(redis): update environment variable keys from standalone_redis_id to resourceable_id 2025-01-22 11:54:53 +01:00
peaklabs-dev
85f38b7cb5
refactor: improve data formatting and UI
- move date and duration functions to a shared function
- remove duplicate code
- redesigned the deployment executions tab
- added start and end times for backups, scheduled tasks, deployments and docker cleanup executions
- calculated the duration for backups, scheduled tasks, deployments and Docker cleanup executions
- redesigned status badges with colors to make it easier to see your current status
- removed dependency on dayjs
- fixed calculation of execution time was sometimes incorrect
2025-01-15 18:35:20 +01:00
Andras Bacsai
d9965fbdbe fix: wording 2025-01-14 09:22:15 +01:00
peaklabs-dev
8709a7749b
fix: db without s3 should still backup 2025-01-13 21:26:20 +01:00
peaklabs-dev
e9f691bf45
fix: storage retention setting
- feat: add storage retention to local storage as well
- fix: UI input for max storage now allows exact decimals so MB input is now also possible
- fix: Database column is now decimal instead of integer
- fix: variable naming of storage check no longer overwrites $backup - renamed it to $backupExecution
2025-01-13 19:49:12 +01:00
peaklabs-dev
3dfca4e4bd
fix: backup job deletion - delete all backups from s3 and local 2025-01-13 17:31:55 +01:00
peaklabs-dev
c03b629e85
fix: deletion of single backup 2025-01-13 17:21:03 +01:00
peaklabs-dev
a5fadb0536
fix: function calls 2025-01-13 16:54:17 +01:00
peaklabs-dev
a8b77b389a
feat: use new backup deletion functions 2025-01-13 16:38:16 +01:00
🏔️ Peak
0905479c8b
Merge pull request #4767 from peaklabs-dev/fix-backup-executions
fix: edge case where backup executions could be null
2025-01-10 20:57:27 +01:00
Andras Bacsai
1fe4dd722b Revert "rector: arrrrr"
This reverts commit 16c0cd10d8.
2025-01-07 15:31:43 +01:00
Andras Bacsai
16c0cd10d8 rector: arrrrr 2025-01-07 14:52:08 +01:00
peaklabs-dev
96d2a1a512
fix: edge case where executions could be null 2025-01-07 14:49:04 +01:00
Andras Bacsai
965d656c5b fix: update import command to append file redirection for database restoration 2025-01-07 14:39:31 +01:00
Andras Bacsai
40d9e05c0b feat: restore backup from server file 2025-01-07 14:39:31 +01:00
Andras Bacsai
5064fa246e feat/fix: able to import full db backups for pg/mysql/mariadb 2025-01-07 13:00:41 +01:00
Andras Bacsai
f2b62e93ce fix: readonly does not exists
fix: validate after setting timezone to the new value
2025-01-07 09:29:38 +01:00
Andras Bacsai
c33132d8d9 fix: show backup timezone on the UI 2025-01-03 20:39:27 +01:00
Andras Bacsai
07984ce74f Merge branch 'next' into fix-postgres-init-scripts 2024-12-18 10:35:16 +01:00
Andras Bacsai
9e3467578f feat: add environment_uuid support and update API documentation
- Introduced `environment_uuid` as a required field in various API endpoints and schemas.
- Updated descriptions to clarify that either `environment_name` or `environment_uuid` must be provided.
- Modified routes and controller methods to accommodate the new UUID parameter.
- Adjusted frontend components to utilize `environment_uuid` for better consistency and clarity.
- Removed deprecated fields related to environment handling.

This change enhances the API's flexibility in identifying environments, improving overall usability.
2024-12-17 13:42:16 +01:00
Andras Bacsai
bf9d89f279
Merge branch 'next' into fix-environement-route 2024-12-17 12:17:50 +01:00
Andras Bacsai
38256af9b3 fix: refactor database view 2024-12-17 12:10:55 +01:00
🏔️ Peak
f8a2d92ea0
Merge branch 'next' into fix-postgres-init-scripts 2024-12-16 12:36:50 +01:00
Andras Bacsai
d58abd1998 refactor 2024-12-16 10:38:18 +01:00
🏔️ Peak
7328724f3d
Merge branch 'coollabsio:main' into fix-postgres-init-scripts 2024-12-04 13:15:58 +01:00
peaklabs-dev
277fd78769
new uuid routes 2024-11-22 16:03:20 +01:00
peaklabs-dev
4cc4e28f29
fix clear frequency on exit and error 2024-11-14 18:27:06 +01:00
peaklabs-dev
67bd06d4f2
fix s3 is always set to true if you make an error like invalid cron 2024-11-14 18:25:04 +01:00
peaklabs-dev
b282c1f3ed
fix backup job without s3 can not be added 2024-11-14 18:20:26 +01:00
Andras Bacsai
c7daa32e21 ui fix 2024-11-08 11:48:15 +01:00
Andras Bacsai
9b578b2003 do not use Rule (deprecated), changed to Validate 2024-11-05 09:36:40 +01:00
Andras Bacsai
bf29dd4789 fix: keydb view 2024-11-04 14:33:44 +01:00
Andras Bacsai
ffb1e10248 fix dragonfly view 2024-11-04 14:22:42 +01:00
Andras Bacsai
7fb1a1fc75 fix: use Auth(), add new db proxy stop event refactor clickhouse view 2024-11-04 14:18:16 +01:00
Andras Bacsai
34c7aa122c refactor backup edit view 2024-11-04 12:40:10 +01:00
Andras Bacsai
2cbac34877 refactor initscripts view 2024-11-04 12:21:31 +01:00
Andras Bacsai
c11dfdee1f refactor create scheduled backup livewire 2024-11-04 11:53:32 +01:00
Lucas Michot
1ec224fde1 Inline many variables. 2024-10-31 18:20:11 +01:00
Lucas Michot
8e1444eaa7 Get rid of many useless blank lines 2024-10-31 17:44:01 +01:00
🏔️ Peak
588080d12d
Merge pull request #4086 from lucasmichot/feat/useless-catch-variable
Remove all useless catch block useless variables.
2024-10-31 16:26:31 +01:00
Lucas Michot
601f1a4717 Always prefer stricter string comparisons. 2024-10-31 15:23:19 +01:00
Lucas Michot
b1d04912a0 Remove all useless catch block useless variables. 2024-10-31 15:19:37 +01:00
Lucas Michot
c5403b0b3f Always prefer ::class notation 2024-10-28 14:56:13 +01:00
peaklabs-dev
ff60189285
fix 2 step confirmation password is now checked if it is enabled 2024-10-24 16:20:01 +02:00
peaklabs-dev
6dfe6a8142
fix disable tow step confirmation when there is a password 2024-10-22 12:29:48 +02:00
Andras Bacsai
3b0029c400 Refactor Livewire/Project/Database/BackupExecutions.php to remove unused code 2024-10-22 11:11:24 +02:00