coolify/tests/Unit
Andras Bacsai dac940807a fix(deployment): properly escape shell arguments in nixpacks commands
Add escapeShellValue() helper function to safely escape shell values by wrapping
them in single quotes and escaping embedded quotes. Use this function throughout
the nixpacks command building to prevent shell injection vulnerabilities when
passing user-provided build commands, start commands, and environment variables.

This fixes unsafe string concatenation that could allow command injection when
user input contains special shell characters like &&, |, ;, etc.
2026-03-23 21:55:46 +01:00
..
Actions chore: prepare for PR 2026-03-10 18:32:19 +01:00
Api Add autogenerate_domain API parameter for applications 2025-12-05 21:16:04 +01:00
Jobs Combine stop+start into single activity for real-time logs 2025-12-03 16:21:26 +01:00
Livewire feat: enhance environment variable handling to support mixed formats and add comprehensive tests 2025-12-27 15:24:09 +01:00
Notifications/Channels
Parsers Inject commit-based image tags for Docker Compose build services 2025-12-05 11:41:47 +01:00
Policies feat(healthchecks): add command health checks with input validation 2026-02-25 11:38:09 +01:00
Project/Database feat: add validation methods for S3 bucket names, paths, and server paths; update import logic to prevent command injection 2025-11-25 16:40:35 +01:00
Rules
AllExcludedContainersConsistencyTest.php fix: don't show health status for exited containers 2025-11-24 09:09:37 +01:00
ApplicationComposeEditorLoadTest.php test(factories): add missing model factories for app test suite 2026-03-03 09:50:05 +01:00
ApplicationConfigurationChangeTest.php fix: trigger configuration changed detection for build settings 2025-11-27 12:22:54 +01:00
ApplicationDeploymentCustomBuildCommandTest.php Fix: Docker build args injection regex to support service names 2025-12-01 13:16:05 +01:00
ApplicationDeploymentEmptyEnvTest.php
ApplicationDeploymentErrorLoggingTest.php
ApplicationDeploymentNixpacksNullEnvTest.php fix(deployment): properly escape shell arguments in nixpacks commands 2026-03-23 21:55:46 +01:00
ApplicationDeploymentTypeTest.php fix(application): clarify deployment type precedence logic 2026-03-12 13:48:30 +01:00
ApplicationGitSecurityTest.php
ApplicationHealthcheckRemovalTest.php
ApplicationNetworkAliasesSyncTest.php
ApplicationParserStringableTest.php fix: convert Stringable to plain strings in applicationParser for strict comparisons and collection lookups 2025-11-24 09:22:27 +01:00
ApplicationPortDetectionTest.php test(factories): add missing model factories for app test suite 2026-03-03 09:50:05 +01:00
ApplicationServiceEnvironmentVariablesTest.php fix: properly handle SERVICE_URL and SERVICE_FQDN for abbreviated service names (#7243) 2025-11-21 11:21:49 +01:00
ApplicationSettingStaticCastTest.php
ApplicationWatchPathsTest.php
BashEnvEscapingTest.php
CheckForUpdatesJobTest.php Fix: Fragile service name parsing in applyServiceApplicationPrerequisites 2025-11-28 17:42:04 +01:00
CheckTraefikVersionForServerJobTest.php
CheckTraefikVersionJobTest.php
ClickhouseOfficialImageMigrationTest.php fix: prevent metric charts from freezing when navigating with wire:navigate 2026-01-02 12:36:17 +01:00
CloudInitScriptValidationTest.php
ComposerAuthEnvEscapingTest.php fix(env): skip escaping for valid JSON in environment variables (#6160) 2026-01-28 10:59:00 +01:00
ContainerHealthStatusTest.php test(factories): add missing model factories for app test suite 2026-03-03 09:50:05 +01:00
ContainerStatusAggregatorTest.php Fix complex status logic: handle degraded sub-resources and mixed running+starting states 2025-12-02 21:47:15 +01:00
CoolifyTaskCleanupTest.php
DatabaseBackupSecurityTest.php fix: enhance security by validating and escaping database names, file paths, and proxy configuration filenames to prevent command injection 2025-11-27 14:36:31 +01:00
DatalistComponentTest.php
DeploymentExceptionTest.php
DockerComposeEmptyStringPreservationTest.php
DockerComposeEmptyTopLevelSectionsTest.php
DockerComposeLabelParsingTest.php
DockerComposePreserveRepositoryStartCommandTest.php fix(docker-compose): respect preserveRepository when injecting --project-directory 2026-03-13 13:53:03 +01:00
DockerComposeRawContentRemovalTest.php
DockerComposeRawSeparationTest.php
DockerfileArgInsertionTest.php
DockerImageAutoParseTest.php
DockerImageParserTest.php
EnvironmentVariableFillableTest.php feat(models): add is_required to EnvironmentVariable fillable array 2026-03-02 12:34:30 +01:00
EnvironmentVariableMagicVariableTest.php feat: add magic variable detection and update UI behavior accordingly 2025-12-27 15:24:09 +01:00
EnvironmentVariableParsingEdgeCasesTest.php fix(bootstrap): add bounds check to extractBalancedBraceContent 2026-03-02 12:24:40 +01:00
EnvVarInputComponentTest.php
EscapeShellValueTest.php fix(deployment): properly escape shell arguments in nixpacks commands 2026-03-23 21:55:46 +01:00
ExcludeFromHealthCheckTest.php fix: don't show health status for exited containers 2025-11-24 09:09:37 +01:00
ExecuteInDockerEscapingTest.php chore: prepare for PR 2026-02-25 11:50:57 +01:00
ExtractHardcodedEnvironmentVariablesTest.php feat: add comprehensive environment variable parsing with nested resolution and hardcoded variable detection 2025-12-27 15:24:53 +01:00
ExtractYamlEnvironmentCommentsTest.php feat: add function to extract inline comments from docker-compose YAML environment variables 2025-12-27 15:24:09 +01:00
FileStorageSecurityTest.php fix: enhance security by validating and escaping database names, file paths, and proxy configuration filenames to prevent command injection 2025-11-27 14:36:31 +01:00
FormatBytesTest.php
FormatContainerStatusTest.php feat: implement formatContainerStatus helper for human-readable status formatting and add unit tests 2025-11-21 09:12:56 +01:00
GetContainersStatusEmptyContainerSafeguardTest.php chore: prepare for PR 2026-03-10 18:34:37 +01:00
GetContainersStatusServiceAggregationTest.php fix: correct Sentinel default health status and remove debug logging 2025-11-20 11:10:34 +01:00
GitlabSourceCommandsTest.php feat(gitlab): add GitLab source integration with SSH and HTTP basic auth 2026-03-11 15:30:46 +01:00
GitLsRemoteParsingTest.php
GitRefValidationTest.php fix(git-ref-validation): prevent command injection via git references 2026-03-10 22:22:48 +01:00
GlobalSearchNewImageQuickActionTest.php
HealthCheckCommandInjectionTest.php Squashed commit from '4fhp-investigate-os-command-injection' 2026-03-16 16:40:16 +01:00
HetznerDeletionFailedNotificationTest.php test(factories): add missing model factories for app test suite 2026-03-03 09:50:05 +01:00
HetznerServiceTest.php feat: add Hetzner Cloud server linking for manually-added servers 2025-12-11 22:14:41 +01:00
HetznerSshKeysTest.php
LocalFileVolumeReadOnlyTest.php fix: Detect read-only Docker volumes with long-form syntax and enable refresh 2025-12-11 14:18:58 +01:00
LogDrainCommandInjectionTest.php fix(log-drain): prevent command injection by base64-encoding environment variables 2026-03-10 22:22:51 +01:00
LogViewerXssSecurityTest.php Move inline styles to global CSS file 2025-12-04 13:15:01 +01:00
MetricsDownsamplingTest.php fix: prevent metric charts from freezing when navigating with wire:navigate 2026-01-02 12:36:17 +01:00
NestedEnvironmentVariableParsingTest.php chore: prepare for PR 2026-03-10 17:37:13 +01:00
NestedEnvironmentVariableTest.php feat: add comprehensive environment variable parsing with nested resolution and hardcoded variable detection 2025-12-27 15:24:53 +01:00
NotifyOutdatedTraefikServersJobTest.php
ParseCommandsByLineForSudoTest.php fix: resolve Docker validation race conditions and sudo prefix bug 2025-11-27 09:04:42 +01:00
ParseDockerVolumeStringTest.php
ParseEnvFormatToArrayTest.php feat: add comment field to environment variables 2025-12-27 15:24:09 +01:00
PathTraversalSecurityTest.php
PostgresqlInitScriptSecurityTest.php fix: enhance security by validating and escaping database names, file paths, and proxy configuration filenames to prevent command injection 2025-11-27 14:36:31 +01:00
PostgRESTDetectionTest.php Fix PostgREST misclassification and empty Domains section 2025-12-01 16:52:09 +01:00
PreSaveValidationTest.php
PreviewDeploymentBindMountTest.php fix(storages): hide PR suffix for services and fix instantSave logic 2026-03-16 21:10:00 +01:00
PreviewDeploymentPortTest.php test: Add comprehensive preview deployment port and path tests 2025-12-17 21:35:54 +01:00
PrivateKeyStorageTest.php chore: prepare for PR 2026-02-26 16:27:02 +01:00
ProxyConfigRecoveryTest.php feat(proxy): add database-backed config storage with disk backups 2026-03-11 14:11:31 +01:00
ProxyConfigurationSecurityTest.php fix: enhance security by validating and escaping database names, file paths, and proxy configuration filenames to prevent command injection 2025-11-27 14:36:31 +01:00
ProxyCustomCommandsTest.php
ProxyHelperTest.php Fix: Traefik proxy startup issues - handle null versions and filter predefined networks 2025-11-28 17:53:26 +01:00
RestartCountTrackingTest.php
RestoreJobFinishedNullServerTest.php
RestoreJobFinishedSecurityTest.php
RestoreJobFinishedShellEscapingTest.php feat: improve S3 restore path handling and validation state 2025-11-25 10:18:30 +01:00
S3RestoreSecurityTest.php
S3RestoreTest.php
S3StorageTest.php
SanitizeLogsForExportTest.php feat(gitlab): add GitLab source integration with SSH and HTTP basic auth 2026-03-11 15:30:46 +01:00
ScheduledJobManagerLockTest.php chore: prepare for PR 2026-02-25 12:07:29 +01:00
ScheduledJobsRetryConfigTest.php
ScheduledTaskJobTimeoutTest.php
ServerManagerJobExecutionTimeTest.php Fix: Pass $serverTimezone to shouldRunNow() in ServerCheckJob dispatch 2025-12-02 16:58:43 +01:00
ServerManagerJobSentinelCheckTest.php test(factories): add missing model factories for app test suite 2026-03-03 09:50:05 +01:00
ServerQueryScopeTest.php test(factories): add missing model factories for app test suite 2026-03-03 09:50:05 +01:00
ServerStatusAccessorTest.php feat(tests): add comprehensive tests for ContainerStatusAggregator and serverStatus accessor 2025-11-20 17:31:07 +01:00
ServiceApplicationPrerequisitesTest.php Fix: Fragile service name parsing in applyServiceApplicationPrerequisites 2025-11-28 17:42:04 +01:00
ServiceConfigurationRefreshTest.php
ServiceExcludedStatusTest.php fix: don't show health status for exited containers 2025-11-24 09:09:37 +01:00
ServiceIndexValidationTest.php fix(proxy): add validation and normalization for database proxy timeout 2026-03-10 09:59:19 +01:00
ServiceNameSecurityTest.php
ServiceParserEnvVarPreservationTest.php chore: prepare for PR 2026-03-11 07:04:33 +01:00
ServiceParserImageUpdateTest.php
ServiceParserPathDuplicationTest.php fix: prevent SERVICE_FQDN/SERVICE_URL path duplication on FQDN updates 2025-11-27 10:57:24 +01:00
ServiceParserPortDetectionLogicTest.php
ServicePortSpecificVariablesTest.php
ServiceRequiredPortTest.php test(factories): add missing model factories for app test suite 2026-03-03 09:50:05 +01:00
SshCommandInjectionTest.php chore: prepare for PR 2026-03-03 11:51:38 +01:00
SshKeyValidationTest.php fix(ssh): handle chmod failures gracefully and simplify key management 2026-03-16 21:27:10 +01:00
SshMultiplexingDisableTest.php Fix SSH multiplexing contention for concurrent scheduled tasks (#6736) 2025-12-05 09:54:30 +01:00
SshRetryMechanismTest.php
StartKeydbConfigPermissionTest.php chore: prepare for PR 2026-02-23 13:26:01 +01:00
StartProxyTest.php
StartRedisConfigPermissionTest.php chore: prepare for PR 2026-02-23 13:26:01 +01:00
StartupExecutionCleanupTest.php
StopProxyTest.php fix(docker): migrate database start actions from --time to -t flag 2025-11-28 11:18:12 +01:00
StripCoolifyCustomFieldsTest.php feat: add validation for YAML parsing, integer parameters, and Docker Compose custom fields 2025-11-20 18:34:49 +01:00
TimescaleDbDetectionTest.php
UpdateComposeAbbreviatedVariablesTest.php fix: handle map-style environment variables in updateCompose 2025-11-21 11:21:49 +01:00
UpdateCoolifyTest.php Fix: Fragile service name parsing in applyServiceApplicationPrerequisites 2025-11-28 17:42:04 +01:00
ValidateShellSafePathTest.php
ValidGitRepositoryUrlTest.php
ValidHostnameTest.php
ValidProxyConfigFilenameTest.php Add ValidProxyConfigFilename rule for dynamic proxy config validation 2025-12-09 16:12:45 +01:00
VolumeArrayFormatSecurityTest.php
VolumeSecurityTest.php
WindowsPathVolumeTest.php