15388 Commits
Author SHA1 Message Date
Andras Bacsai 7a1999ce39 feat(ui): add two step confirmation to enable self registration (#9277) 2026-03-30 11:47:59 +02:00
Andras Bacsai 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 Bacsai 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 Bacsai 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 Bacsai 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 Bacsai 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 Bacsai 9e96a20a49 fix: add validation and escaping for Docker network names (#9228) 2026-03-29 20:46:39 +02:00
Andras Bacsai 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 Bacsai 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
Maxwell 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
ShadowArcanist 791aa10b3f fix(validation): use int|string for Livewire numeric properties and remove nullable from API rules 2026-03-29 02:24:36 +05:30
ShadowArcanist 1ebba7da3a fix(validation): add input validation for sentinel configuration 2026-03-29 01:56:06 +05:30
ShadowArcanist 15a98b52c9 fix(validation): add input validation for server_disk_usage_check_frequency on API 2026-03-29 01:24:08 +05:30
ShadowArcanist c52a199120 fix(validation): add input validation for server advanced settings page 2026-03-29 01:14:08 +05:30
ShadowArcanist 73258c317e fix(validation): add URL validation for proxy redirect input 2026-03-29 00:34:32 +05:30
ShadowArcanist 105b4a9267 fix(validation): add input validation for port exposes and port mappings fields 2026-03-28 23:23:25 +05:30
ShadowArcanist 407b6df744 fix(validation): add IP validation for custom DNS servers input 2026-03-28 22:30:17 +05:30
Ricky Wanga 7f26680ace Merge branch 'next' into v4.x 2026-03-28 17:44:31 +01:00
Andras Bacsai 72118d61f9 feat(databases): add public port timeout configuration
Add support for configuring public port timeout on databases via API:
- Add public_port_timeout field to schema documentation with 3600s default
- Add validation rules (integer|nullable|min:1)
- Update all database type configurations to support the field
- Add comprehensive test coverage for the feature
2026-03-28 17:08:02 +01:00
Ricky Wanga e78af08bdf Merge branch 'next' into v4.x 2026-03-28 16:56:14 +01:00
ShadowArcanist 6197558a38 fix(validation): add input validation for resource limit fields 2026-03-28 21:08:48 +05:30
Gauthier POGAM--LE MONTAGNER 4213bd5215 fix(langfuse): pin clickhouse version to avoid error during clickhouse init
The releases published on 27/03/26 causes Clickhouse to incorrectly
initialize. This prevent the DB from restarting after the initial run.

This pin the version to the most recent version that was working
properly.
2026-03-28 16:21:57 +01:00
Andras Bacsai 3b2e6e11f1 refactor: use random_int() for email change verification codes (#9226) 2026-03-28 15:18:00 +01:00
ShadowArcanist 1a59c4c7c9 feat(ui): categorize application advanced settings into logical sections 2026-03-28 19:25:50 +05:30
Andras Bacsai 377ce24b6d Add URL validation for notification webhook fields (#9224) 2026-03-28 14:39:27 +01:00
ShadowArcanist 4fd90171eb feat(ui): add info callout to clone resource section about excluded items 2026-03-28 18:57:07 +05:30
Andras Bacsai 0b8c75f8ed fix(webhooks): add validation to block unsafe webhook URLs
Prevent server-side request forgery (SSRF) attacks by validating webhook URLs before sending requests. Blocks loopback addresses, cloud metadata endpoints, and localhost URLs.

- Add SafeWebhookUrl rule validation in SendWebhookJob.handle()
- Log warning when unsafe URLs are rejected
- Add comprehensive unit tests covering valid and invalid URL scenarios
2026-03-28 14:23:08 +01:00