Commit Graph
15113 Commits
Author SHA1 Message Date
Andras BacsaiandGitHub 71bafa0d54 fix(validation): add URL validation for proxy redirect input (#9241) 2026-03-30 21:02:06 +02:00
Andras BacsaiandGitHub 179770d836 fix(validation): add input validation for server advanced settings page (#9242) 2026-03-30 21:01:28 +02:00
Andras BacsaiandGitHub 0b9d2c9e11 fix(validation): add input validation for sentinel configuration (#9243) 2026-03-30 21:00:18 +02:00
Andras BacsaiandGitHub b8fb29f9a8 fix(validation): add input validation for database backup timeout (#9245) 2026-03-30 20:59:37 +02:00
Andras BacsaiandGitHub c52d50cc0a fix(validation): add input validation for emails configuration (#9259) 2026-03-30 20:57:46 +02:00
Andras Bacsai 1497ad35a9 fix(models): use snake_case for Eloquent attribute access
Update property access in database components and Application model to
use snake_case conventions (common_name, subject_alternative_names)
for Eloquent attributes. Also add null-safe operators (?->) for
settings access in Application model to handle null values safely.
2026-03-30 17:29:28 +02:00
Andras BacsaiandGitHub 22b267db37 feat(ui): improve schedule task single view for better UX (#9266) 2026-03-30 15:10:57 +02:00
Andras BacsaiandGitHub 9a0087ff69 fix(validation): add input validation for database public port and proxy timeout (#9272) 2026-03-30 15:10:26 +02:00
Andras Bacsai 61f47cc7ee feat(deployments): support Docker image tags for preview deployments
Add end-to-end support for `docker_registry_image_tag` in preview and deployment queue flows.

- Extend deploy API to accept `pull_request_id` alias and `docker_tag` for preview deploys
- Persist preview-specific Docker tags on `application_previews` and `application_deployment_queues`
- Pass tag through `queue_application_deployment()` and de-duplicate queued jobs by tag
- Update deployment job logic to resolve and use preview Docker tags for dockerimage build packs
- Update Livewire previews UI/state to manage per-preview tags and manual preview/tag inputs
- Add migration for new tag columns and model fillable/casts updates
- Add feature and unit tests covering API behavior and tag resolution
2026-03-30 13:35:35 +02:00
Andras BacsaiandGitHub 3fddc795f6 refactor: define explicit fillable attributes on all Eloquent models (#9282) 2026-03-30 13:11:58 +02:00
Andras Bacsai 850c37bedd fix(database): auto-generate missing CA cert on SSL regeneration
Prevent null CA certificate access during database SSL certificate regeneration
across KeyDB, MariaDB, MongoDB, MySQL, PostgreSQL, and Redis components.

If no CA certificate exists, attempt to generate one and re-query; if still
missing, dispatch a clear error and stop regeneration gracefully.

Add `SslCertificateRegenerationTest` coverage for missing-CA and CA-query
scenarios to prevent regressions.
2026-03-30 13:10:49 +02:00
Andras Bacsai 1da1f32f0e refactor: use forceCreate() for internal model creation
Replace create() with forceCreate() across internal model creation operations to bypass mass assignment protection. This is appropriate for internal code that constructs complete model state without user input.

Add InternalModelCreationMassAssignmentTest to ensure internal model creation behavior is properly tested. Optimize imports by using shortened Livewire attribute references and removing unused imports.
2026-03-30 13:04:11 +02:00
Andras Bacsai 71cde5a063 Merge remote-tracking branch 'origin/next' into refactor/sync-model-attributes 2026-03-30 12:41:31 +02:00
Andras BacsaiandGitHub eb3d88a9ea feat(service): Add ElectricSQL (#8190) 2026-03-30 11:49:39 +02:00
Andras BacsaiandGitHub 47692be982 fix(service): use FQDN instead of URL for Grafana GF_SERVER_DOMAIN (#9080) 2026-03-30 11:49:09 +02:00
Andras BacsaiandGitHub 915d2a05af fix(service): pin clickhouse version on Langfuse service to avoid error during clickhouse init (#9236) 2026-03-30 11:48:49 +02:00
Andras BacsaiandGitHub e944f80d9b fix(service): listmonk db config env typo (#9250) 2026-03-30 11:48:32 +02:00
Andras BacsaiandGitHub 7a1999ce39 feat(ui): add two step confirmation to enable self registration (#9277) 2026-03-30 11:47:59 +02:00
Andras BacsaiandGitHub 30c7ab7b7d fix(notification): updated cloud subscription links to valid url (#9296) 2026-03-30 11:47:21 +02:00
Andras Bacsai 09f1c71a76 Merge remote-tracking branch 'origin/next' into refactor/sync-model-attributes 2026-03-30 08:14:32 +02:00
Andras Bacsai c0c0349880 refactor(models): add fillable attributes for database configuration options
Add explicit fillable attributes to Service and all Standalone* database models
for new configuration options: public_port_timeout, enable_ssl, ssl_mode,
is_log_drain_enabled, is_include_timestamps, and custom_docker_run_options.

Add tests to MassAssignmentProtectionTest to verify these attributes are
properly protected by mass assignment protection across all relevant models.
2026-03-30 08:11:23 +02:00
ShadowArcanist 31ae8dd9db fix(notification): updated cloud subscription links to valid url 2026-03-30 11:37:28 +05:30
Andras BacsaiandGitHub 53b32369e8 fix(clone): exclude uuid when replicating persistent volumes (#9290) 2026-03-30 08:06:49 +02:00
Andras Bacsai 4ec9b7ef69 fix(clone): include uuid field when cloning persistent volumes
Ensure that the uuid field is preserved during clone operations for persistent
volumes across all clone methods (CloneMe, ResourceOperations, and the clone_application
helper). This prevents UUID conflicts and ensures cloned volumes receive new unique
identifiers as intended.

Adds test coverage validating that cloned persistent volumes receive new UUIDs
distinct from the original volumes.
2026-03-30 00:06:45 +02:00
Andras BacsaiandGitHub 9ccdbf66b0 feat(api): Add support for Preserve Repository During Deployment in API (#8371) 2026-03-29 23:54:48 +02:00
Andras Bacsai 7b1e75f37d Merge remote-tracking branch 'origin/next' into pr-8371-v4.x 2026-03-29 23:52:37 +02:00
Andras Bacsai 7ad51241f3 Merge remote-tracking branch 'origin/next' into refactor/sync-model-attributes
# Conflicts:
#	app/Models/Application.php
#	app/Models/Service.php
#	app/Models/StandaloneClickhouse.php
#	app/Models/StandaloneDragonfly.php
#	app/Models/StandaloneKeydb.php
#	app/Models/StandaloneMariadb.php
#	app/Models/StandaloneMongodb.php
#	app/Models/StandaloneMysql.php
#	app/Models/StandalonePostgresql.php
#	app/Models/StandaloneRedis.php
#	app/Models/Team.php
#	app/Models/User.php
#	tests/Feature/MassAssignmentProtectionTest.php
2026-03-29 21:32:54 +02:00
Andras BacsaiandGitHub f267a28cb2 fix: harden GetLogs Livewire component properties (#9229) 2026-03-29 21:29:23 +02:00
Andras Bacsai a52352f6cc Merge remote-tracking branch 'origin/next' into refactor/sync-model-attributes 2026-03-29 21:28:41 +02:00
Andras BacsaiandClaude Opus 4.6 9f46586d4a refactor: define explicit fillable attributes on all Eloquent models
Replace $guarded usage with explicit $fillable arrays across all models.
Sync fillable definitions with current database schema and add tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 21:25:41 +02:00
Andras BacsaiandGitHub 7b3b6fa6ef fix(application): persist redirect value in setRedirect (#9279) 2026-03-29 21:03:14 +02:00
Andras Bacsai b3256d4df1 fix(security): harden model assignment and sensitive data handling
Restrict mass-assignable attributes across user/team/redis models and
switch privileged root/team creation paths to forceFill/forceCreate.

Encrypt legacy ClickHouse admin passwords via migration and cast the
correct ClickHouse password field as encrypted.

Tighten API and runtime exposure by removing sensitive team fields from
responses and sanitizing Git/compose error messages.

Expand security-focused feature coverage for command-injection and mass
assignment protections.
2026-03-29 20:56:04 +02:00
Andras Bacsai 3fde1e0f9f fix(application): persist redirect value in setRedirect
Assign the selected redirect option before validation so valid changes are saved.
Add feature tests to verify redirect persistence and rejection when no www domain exists.
2026-03-29 20:50:03 +02:00
Andras Bacsai a5840501b4 fix(forms): use Alpine state for password visibility toggles
Replace shared `changePasswordFieldType` JS with component-local Alpine logic
across input, textarea, and env-var-input components. This keeps toggle
behavior consistent, resets visibility on `success` events, and preserves
`truncate` styling only when showing plaintext on enabled fields.

Also adds `PasswordVisibilityComponentTest` to verify Alpine bindings are
rendered and legacy handler references are removed.
2026-03-29 20:47:36 +02:00
Andras BacsaiandGitHub 9e96a20a49 fix: add validation and escaping for Docker network names (#9228) 2026-03-29 20:46:39 +02:00
Andras BacsaiandGitHub 1027c73d0f refactor: scope server and project queries to current team (#9230) 2026-03-29 20:28:21 +02:00
ShadowArcanist 3a0cfeeab6 feat(ui): add two step confirmation to enable self registration 2026-03-29 22:48:02 +05:30
Andras Bacsai 3ba4553df5 fix(security): enforce team-scoped project/env lookups in onboarding
Use firstOrFail() for team-scoped project and environment lookups across
new-project Livewire flows so missing or cross-team UUIDs fail closed.
Also dispatch an error when boarding selects a non-owned project, and
update IDOR feature tests for the new error/exception behavior.
2026-03-29 15:55:03 +02:00
Andras BacsaiandGitHub 96ae9ade23 fix: add input validation for install/build/start command fields (#9227) 2026-03-29 15:48:30 +02:00
ShadowArcanist c9f20ba2a2 fix(validation): add input validation for database public port and proxy timeout 2026-03-29 19:11:28 +05:30
ShadowArcanist a1e5357870 feat(ui): add helper text for frequency input on scheduled task view 2026-03-29 15:46:11 +05:30
ShadowArcanist 401227932e feat(ui): reorganize scheduled task single view layout 2026-03-29 15:43:46 +05:30
ShadowArcanist 5037497ada feat(ui): add enable/disable button for scheduled task 2026-03-29 15:36:32 +05:30
ShadowArcanist 1f864dc49b feat(ui): show task name on title for scheduled task single view 2026-03-29 15:29:17 +05:30
ShadowArcanist d33cd7ca71 fix(ui): keep sidebar visible on scheduled task single view 2026-03-29 15:27:40 +05:30
ShadowArcanist 1daff4e23c fix(validation): add input validation for emails configuration 2026-03-29 12:13:30 +05:30
MaxwellandGitHub ac47040fd1 Fixed typo in listmonk db config
Correct db__name to db__database
2026-03-29 14:35:48 +10:00
ShadowArcanist b98346f3c3 fix(validation): validate cron expressions in update backup API endpoint 2026-03-29 03:02:15 +05:30
ShadowArcanist 40420e33e3 fix(validation): add timeout validation to database backup API endpoints 2026-03-29 02:53:18 +05:30
ShadowArcanist 67f8eb929f fix(validation): add input validation for database backup timeout 2026-03-29 02:48:32 +05:30