Skip to content

v4.1.2#10452

Merged
andrasbacsai merged 224 commits into
v4.xfrom
next
Jun 4, 2026
Merged

v4.1.2#10452
andrasbacsai merged 224 commits into
v4.xfrom
next

Conversation

@andrasbacsai

@andrasbacsai andrasbacsai commented May 29, 2026

Copy link
Copy Markdown
Member

What's Changed

Security & Fixes

New Services & Templates

Improvements

andrasbacsai and others added 30 commits March 11, 2026 11:30
- Add gitSshCommand parameter to setGitImportSettings and buildGitCheckoutCommand
- Extract hardcoded ssh commands to variables for consistency
- Apply custom ssh credentials to all git operations including submodule sync/update
- Configure git url rewriting for github token-based authentication with submodules
- Add comprehensive test suite for submodule credential propagation
navigator.clipboard is undefined in insecure contexts (HTTP), causing
a silent TypeError when clicking the copy logs button. Added a secure
context check and proper Promise chaining so failures surface as user-
visible error messages instead of silent crashes.

Affects deployment log view and shared get-logs component.
… on smaller screens for modals with much content
…nt cuttoffs of the content area and restore close-outside click behaviour
Only push the configured Docker registry image tag for production deployments, and cover preview and missing-tag cases with unit tests.
Exclude generated Docker Compose SERVICE_FQDN, SERVICE_URL, and SERVICE_NAME variables from runtime, build-time, and build arg environments so stale stored values cannot override generated service names for preview deployments.
The earlier refreshStatus fix kept user-typed values intact but Livewire still
absorbed deferred wire:model values into the snapshot on every broadcast-
triggered roundtrip, clearing the unsaved-changes indicator and making the form
look auto-saved. Move all status-derived display (DB URLs, SSL toggle/mode,
cert expiry) out of each DB General form into a sibling StatusInfo Livewire
component, so the form never roundtrips on broadcasts.

Shared scaffolding lives in App\Traits\HasDatabaseStatusInfo plus an x-database-
status-info Blade component, leaving each per-DB StatusInfo class as a ~20-50
line declaration of label, SSL mode options, and SSL save hooks. Parents
dispatch databaseUpdated from save methods so the sibling refreshes after writes.

Tests cover the architecture (no DB form subscribes to status broadcasts) and
the sibling's refresh-on-status-change behavior.
…tus trait

Clickhouse, Dragonfly, and Keydb still called syncData() inside the
DatabaseProxyStopped broadcast handler, clobbering in-progress edits to
name/description/credentials. Refresh only is_public/public_port/
public_port_timeout instead, matching the pattern used elsewhere.

Also null-guard HasDatabaseStatusInfo::getListeners() against an absent
Auth::user()/currentTeam(), add explicit return types on getListeners()
and render(), and convert inline comments in the SSL refresh test to a
PHPDoc block.
Co-authored-by: ShadowArcanist <162910371+ShadowArcanist@users.noreply.github.com>
Render skipped service database backups with the service database backup route while preserving standalone database backup links.
Apply HTTP/1.1 transport config to HTTPS git clone and submodule commands,
including GitHub App credential rewrites, to avoid flaky large repo imports.
Move the environment variable search field above the production section
and hide production and preview headings when a search has no results.
Escape SQL LIKE wildcard characters in environment variable searches and hide production or preview sections when the filtered results are empty.
Publish upgrade-postgres.sh with install and upgrade flows, include the
PostgreSQL compose override when present, and sync the script to BunnyCDN.
Keep the running Coolify image tag when restarting the stack after
PostgreSQL upgrade or rollback so compose does not fall back to latest.
@andrasbacsai andrasbacsai merged commit e7dff30 into v4.x Jun 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment