diff --git a/app/Http/Controllers/Api/ApplicationsController.php b/app/Http/Controllers/Api/ApplicationsController.php index 614208c78..35ff2632d 100644 --- a/app/Http/Controllers/Api/ApplicationsController.php +++ b/app/Http/Controllers/Api/ApplicationsController.php @@ -70,7 +70,8 @@ class ApplicationsController extends Controller items: new OA\Items(ref: '#/components/schemas/Application') ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -180,8 +181,10 @@ class ApplicationsController extends Controller 'watch_paths' => ['type' => 'string', 'description' => 'The watch paths.'], 'use_build_server' => ['type' => 'boolean', 'nullable' => true, 'description' => 'Use build server.'], ], - )), - ]), + ) + ), + ] + ), responses: [ new OA\Response( response: 200, @@ -284,8 +287,10 @@ class ApplicationsController extends Controller 'watch_paths' => ['type' => 'string', 'description' => 'The watch paths.'], 'use_build_server' => ['type' => 'boolean', 'nullable' => true, 'description' => 'Use build server.'], ], - )), - ]), + ) + ), + ] + ), responses: [ new OA\Response( response: 200, @@ -388,8 +393,10 @@ class ApplicationsController extends Controller 'watch_paths' => ['type' => 'string', 'description' => 'The watch paths.'], 'use_build_server' => ['type' => 'boolean', 'nullable' => true, 'description' => 'Use build server.'], ], - )), - ]), + ) + ), + ] + ), responses: [ new OA\Response( response: 200, @@ -476,8 +483,10 @@ class ApplicationsController extends Controller 'instant_deploy' => ['type' => 'boolean', 'description' => 'The flag to indicate if the application should be deployed instantly.'], 'use_build_server' => ['type' => 'boolean', 'nullable' => true, 'description' => 'Use build server.'], ], - )), - ]), + ) + ), + ] + ), responses: [ new OA\Response( response: 200, @@ -561,8 +570,10 @@ class ApplicationsController extends Controller 'instant_deploy' => ['type' => 'boolean', 'description' => 'The flag to indicate if the application should be deployed instantly.'], 'use_build_server' => ['type' => 'boolean', 'nullable' => true, 'description' => 'Use build server.'], ], - )), - ]), + ) + ), + ] + ), responses: [ new OA\Response( response: 200, @@ -612,8 +623,10 @@ class ApplicationsController extends Controller 'instant_deploy' => ['type' => 'boolean', 'description' => 'The flag to indicate if the application should be deployed instantly.'], 'use_build_server' => ['type' => 'boolean', 'nullable' => true, 'description' => 'Use build server.'], ], - )), - ]), + ) + ), + ] + ), responses: [ new OA\Response( response: 200, @@ -1268,7 +1281,8 @@ class ApplicationsController extends Controller ref: '#/components/schemas/Application' ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -1340,7 +1354,8 @@ class ApplicationsController extends Controller ] ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -1466,8 +1481,10 @@ class ApplicationsController extends Controller 'watch_paths' => ['type' => 'string', 'description' => 'The watch paths.'], 'use_build_server' => ['type' => 'boolean', 'nullable' => true, 'description' => 'Use build server.'], ], - )), - ]), + ) + ), + ] + ), responses: [ new OA\Response( response: 200, @@ -1482,7 +1499,8 @@ class ApplicationsController extends Controller ] ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -1598,9 +1616,10 @@ class ApplicationsController extends Controller $errors = []; $fqdn = str($fqdn)->trim()->explode(',')->map(function ($domain) use (&$errors) { $domain = trim($domain); - if (filter_var($domain, FILTER_VALIDATE_URL) === false || !preg_match('/^https?:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}/', $domain)) { + if (filter_var($domain, FILTER_VALIDATE_URL) === false || ! preg_match('/^https?:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}/', $domain)) { $errors[] = 'Invalid domain: '.$domain; } + return $domain; }); if (count($errors) > 0) { @@ -1706,7 +1725,8 @@ class ApplicationsController extends Controller items: new OA\Items(ref: '#/components/schemas/EnvironmentVariable') ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -1812,7 +1832,8 @@ class ApplicationsController extends Controller ] ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -2000,7 +2021,8 @@ class ApplicationsController extends Controller ] ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -2181,7 +2203,8 @@ class ApplicationsController extends Controller ] ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -2330,7 +2353,8 @@ class ApplicationsController extends Controller ] ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -2422,9 +2446,11 @@ class ApplicationsController extends Controller properties: [ 'message' => ['type' => 'string', 'example' => 'Deployment request queued.', 'description' => 'Message.'], 'deployment_uuid' => ['type' => 'string', 'example' => 'doogksw', 'description' => 'UUID of the deployment.'], - ]) + ] + ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -2510,7 +2536,8 @@ class ApplicationsController extends Controller ] ) ), - ]), + ] + ), new OA\Response( response: 401, ref: '#/components/responses/401', @@ -2584,7 +2611,8 @@ class ApplicationsController extends Controller ] ) ), - ]), + ] + ), new OA\Response( response: 401, @@ -2827,30 +2855,3 @@ class ApplicationsController extends Controller } } } - - $fqdn = str($fqdn)->replaceStart(',', '')->trim(); - $errors = []; - $fqdn = str($fqdn)->trim()->explode(',')->map(function ($domain) use (&$errors) { - if (filter_var($domain, FILTER_VALIDATE_URL) === false) { - $errors[] = 'Invalid domain: ' . $domain; - } - - return str($domain)->trim()->lower(); - }); - if (count($errors) > 0) { - return response()->json([ - 'message' => 'Validation failed.', - 'errors' => $errors, - ], 422); - } - if (checkIfDomainIsAlreadyUsed($fqdn, $teamId, $uuid)) { - return response()->json([ - 'message' => 'Validation failed.', - 'errors' => [ - 'domains' => 'One of the domain is already used.', - ], - ], 422); - } - } - } -} diff --git a/app/Livewire/Project/Shared/EnvironmentVariable/Show.php b/app/Livewire/Project/Shared/EnvironmentVariable/Show.php index e71cd9f42..6294d97c6 100644 --- a/app/Livewire/Project/Shared/EnvironmentVariable/Show.php +++ b/app/Livewire/Project/Shared/EnvironmentVariable/Show.php @@ -88,6 +88,9 @@ class Show extends Component public function lock() { $this->env->is_shown_once = true; + if ($this->isSharedVariable) { + unset($this->env->is_required); + } $this->serialize(); $this->env->save(); $this->checkEnvs(); diff --git a/app/Livewire/SharedVariables/Environment/Show.php b/app/Livewire/SharedVariables/Environment/Show.php index daf1df212..6a33eb60d 100644 --- a/app/Livewire/SharedVariables/Environment/Show.php +++ b/app/Livewire/SharedVariables/Environment/Show.php @@ -16,7 +16,7 @@ class Show extends Component public array $parameters; - protected $listeners = ['refreshEnvs' => '$refresh', 'saveKey']; + protected $listeners = ['refreshEnvs' => '$refresh', 'saveKey', 'environmentVariableDeleted' => '$refresh']; public function saveKey($data) { diff --git a/app/Livewire/SharedVariables/Project/Show.php b/app/Livewire/SharedVariables/Project/Show.php index 8d4844442..0171283c4 100644 --- a/app/Livewire/SharedVariables/Project/Show.php +++ b/app/Livewire/SharedVariables/Project/Show.php @@ -9,7 +9,7 @@ class Show extends Component { public Project $project; - protected $listeners = ['refreshEnvs' => '$refresh', 'saveKey' => 'saveKey']; + protected $listeners = ['refreshEnvs' => '$refresh', 'saveKey' => 'saveKey', 'environmentVariableDeleted' => '$refresh']; public function saveKey($data) { diff --git a/app/Livewire/SharedVariables/Team/Index.php b/app/Livewire/SharedVariables/Team/Index.php index a3085304a..a76ccf58a 100644 --- a/app/Livewire/SharedVariables/Team/Index.php +++ b/app/Livewire/SharedVariables/Team/Index.php @@ -9,7 +9,7 @@ class Index extends Component { public Team $team; - protected $listeners = ['refreshEnvs' => '$refresh', 'saveKey' => 'saveKey']; + protected $listeners = ['refreshEnvs' => '$refresh', 'saveKey' => 'saveKey', 'environmentVariableDeleted' => '$refresh']; public function saveKey($data) { diff --git a/config/constants.php b/config/constants.php index 4923cfc15..f7d5a7831 100644 --- a/config/constants.php +++ b/config/constants.php @@ -2,7 +2,7 @@ return [ 'coolify' => [ - 'version' => '4.0.0-beta.375', + 'version' => '4.0.0-beta.376', 'self_hosted' => env('SELF_HOSTED', true), 'autoupdate' => env('AUTOUPDATE'), 'base_config_path' => env('BASE_CONFIG_PATH', '/data/coolify'), diff --git a/versions.json b/versions.json index 1c4e813ea..2d1633ed6 100644 --- a/versions.json +++ b/versions.json @@ -1,10 +1,10 @@ { "coolify": { "v4": { - "version": "4.0.0-beta.375" + "version": "4.0.0-beta.376" }, "nightly": { - "version": "4.0.0-beta.376" + "version": "4.0.0-beta.377" }, "helper": { "version": "1.0.4" @@ -16,4 +16,4 @@ "version": "0.0.15" } } -} +} \ No newline at end of file