Repository navigation
chore(deps): update ghcr.io/stalwartlabs/stalwart docker tag to v1 - #12723
Open
runtipi-update-bot[bot] wants to merge 1 commit into
Open
runtipi-update-bot[bot] wants to merge 1 commit into
runtipi-update-bot[bot] wants to merge 1 commit into
Conversation
Collaborator
|
Migration to v1 needs test: https://stalw.art/docs/migration/upgrade-0-16/ |
runtipi-update-bot
Bot
force-pushed
the
renovate/ghcr.io-stalwartlabs-stalwart-1.x
branch
6 times, most recently
from
November 4, 2026 12:16
6b70536 to
da245d5
Compare
runtipi-update-bot
Bot
force-pushed
the
renovate/ghcr.io-stalwartlabs-stalwart-1.x
branch
from
November 5, 2026 12:29
da245d5 to
09cf507
Compare
runtipi-update-bot
Bot
force-pushed
the
renovate/ghcr.io-stalwartlabs-stalwart-1.x
branch
from
November 7, 2026 15:37
09cf507 to
6045e52
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.16.27->v1.0.3Release Notes
stalwartlabs/stalwart (ghcr.io/stalwartlabs/stalwart)
v1.0.3Compare Source
[1.0.3] - 2026-11-04
Third-party apps (not the WebUI) need the new Stalwart OAuth scopes. Apps signing in through Stalwart or an external OpenID Connect provider could not manage app passwords, API keys or account settings. This access is now granted by the scopes
urn:stalwart:oauth:scope:security,urn:stalwart:oauth:scope:settingsandurn:stalwart:oauth:scope:full:scopes(only a superuser can allowfull), and have the app request them.Add the new permissions to the default roles (not a breaking change). This release adds new permissions, and default roles are created only on the first start of a new installation, so on an upgraded server they are missing and the features they control stay unavailable. Restart the server once with the environment variable
STALWART_UPDATE_ROLE_PERMISSIONS=trueto add them, then remove the variable. See Default roles on upgraded servers for details.Added
SymmetricKeyobjects.zstdincompressionAlgorithm).BlobRecodetask, which rewrites stored blobs with a chosen compression and encryption.STALWART_UPDATE_ROLE_PERMISSIONSenvironment variable. When set totrue(or1), startup adds to each default role every permission introduced after v1.0.0 that a new install would give that role and that the role is missing.urn:stalwart:oauth:scope:security,urn:stalwart:oauth:scope:settingsandurn:stalwart:oauth:scope:full, so clients signing in through Stalwart or an external OpenID Connect provider can manage app passwords, API keys and account settings.Fixed
/copymethods called with the sameaccountIdandfromAccountIdreturn a clear error message.PushSubscriptionobjects created with an emptytypeslist no longer receiveStateChangenotifications, andEmailPushnotifications are delivered regardless oftypes.SEARCHaccepts up to 32 levels of nested filters, so free-text searches from Apple Mail no longer fail withToo many nested filters.Check binary attestation here
v1.0.2Compare Source
[1.0.2] - 2026-11-02
Encryption at rest must be re-enabled after upgrading. The algorithm is now chosen from each user's key, so the per-account cipher choice of earlier versions (AES-128, AES-256, AES-256-GCM, ChaCha20-Poly1305) no longer exists, and accounts that had encryption at rest enabled are set to
Disabledon upgrade. Until a user (or an administrator) selects their public key again under the account's encryption settings, new messages for that account are stored unencrypted. Registered public keys and messages already encrypted are not affected. The server-wide settings also moved:Email.encryptAtRestis replaced byatRestEnablein the newEncryptionsettings (enabled by default, so servers that had disabled it must disable it again), andEmail.encryptOnAppendby the per-accountencryptOnAppendsetting. See the encryption at rest documentation for details.Administrators of upgraded servers must be granted the new permissions. Default roles are created only when a server is first installed, so on servers upgraded from an earlier version the System Administrator role does not include the permissions added in this release, and the Encryption, External Public Keys and S/MIME Trust Anchors sections stay hidden. Find the role id with
x:Role/get(it is the id indefaultAdminRoleIds, returned byx:Authentication/getwith"ids": ["singleton"], that is not the User role), then grant the permissions with:Added
authenticatedEncryption(AES-GCM with RSA-OAEP) andstrictKeyWrapEncoding(RFC 5753 encoding instead of the Outlook-compatible one) switches, and server-computedkeyType,fingerprints,capabilitiesandwarnings(expiring soon, weak RSA, address mismatch, post-quantum only, no known decryptor, unusable).gatewayOutboundpolicy (disable,opportunisticorrequired), a minimum key trust level, a separate encrypted copy per recipient with its own DKIM and DKIM2 signatures, and5.7.5bounces when encryption is required but not possible.harvestKeysexpression.SmimeTrustAnchor), intermediate certificate retrieval through Authority Information Access and daily certificate revocation list checks.encryption.*telemetry events and metrics, including theencryption.key-lookup-timehistogram.rt=of the reported message, as required by spec-08 section 16.2. When no hosted domain matches, the DSN is signed with DKIM only.dkim2.dsn-not-alignedanddkim2.dsn-propagatedtelemetry events.Applicationobjects have anoauthScopeslist of extra scopes that the WebUI requests at sign-in, for external identity providers that release a claim only with a scope of its own.trustedProvidersetting lets a tenant-owned directory reach an identity provider on a private network.Changed
ML-DSA-44andEd25519algorithm withSHA-512is replaced by pureML-DSA-44(as per draft-ietf-dkim-dkim2-spec-08).QUOTED-PRINTABLEvalues without aCHARSETparameter are decoded as UTF-8 when valid, otherwise as Windows-1252, instead of ISO-8859-1.Fixed
bh=that other implementations rejected.REQUESTwith an olderSEQUENCEno longer removes a newer override from the attendee's copy (RFC 5546, section 2.1.5)./adminand/accountreturned 404; it is now downloaded again.401) includeConnection: close, instead of the connection being closed without notice.acceptparameter contains a line break, returns500instead of aborting the connection.RENAMErefuses to move a mailbox into its own subtree (such asAtoA/B/C) withNO [CANNOT], instead of creating a parent loop.maxMailboxNameLength, which only applied to names containing/.IDcommand, andUIDONLYis not enabled for Microsoft's sync service (Microsoft Office 365), which left the new Outlook without folders or mail.fileintoaccept names of up tomaxMailboxNameLengthoctets (RFC 8621, section 1.6.1); JMAPMailbox/setrejected names of exactly that length.APPEND/MULTIAPPENDorEmail/importsend anEmailPushwith their id, so push subscribers no longer get an empty notification.Email/queryChangeswithcollapseThreadsreports the previous representative of a thread as removed when a newer email joins the thread, and adds it back when that email is destroyed.Email/setplaces inline attachments that have acid(image, audio or video, disposition notattachment) inmultipart/relatedwith the HTML body instead ofmultipart/mixed, so clients display them in the message body andEmail/getreturns them inattachments.Email/get,Email/set,Email/copyandSearchSnippet/getreturnnotFoundfor an Email id destroyed by a thread merge instead of resolving it with the stalethreadId.Blob/uploadalready did.emailandprofilescopes, are ignored at the authorization endpoint instead of failing withinvalid_scope(OpenID Connect Core, section 3.1.2.1).SMFIC_BODYcarries only the message body instead of the whole message, so milters no longer receive the headers twice.store.not-configuredforever.mayWriteOwnright.--MM-DDdates keep their day when uploaded, and month-only dates are written zero-padded (--03).MIXED_CHARSETonly compares the scripts of letters, so single-script text containing characters such as U+202F no longer triggers it.error sending request.DestroyAccountremoves the account's spam training samples, whose message bodies otherwise stayed in the blob store for up toholdSamplesFor.Check binary attestation here
v1.0.1Compare Source
[1.0.1] - 2026-10-28
Added
opentelemetryandprometheuscrates, with 4x to 14x faster encoding.stalwart.*in OTLP,stalwart_*with unit and_totalsuffixes in Prometheus); dashboards and alerts must be updated.serviceName,serviceNamespaceandresourceAttributessettings replacing theOTEL_*environment variables.Changed
$draftkeyword are no longer encrypted on append, so they are submitted as written by the client. The Sent copy of messages submitted over JMAP is stored unencrypted.prompt=consentalways shows it. All cluster nodes must be upgraded before relying on the new sign-in flow.accountIdfilter.Fixed
00:00with a time zone instead of the date only.PRIORITY, for example when accepting an invitation from BusyCal.Mailbox/setreturns only the id of created mailboxes instead of also the server-set and defaulted properties (RFC 8620, section 5.3).AddressBook/set,ContactCard/setandIdentity/setreturn only the id of created objects, andCalendar/setandCalendarEvent/setomit some defaulted properties (RFC 8620, section 5.3).config.jsonis created with the process umask (usually0644), so the data store credentials are readable by other local users.accountIdfilter fails withunsupportedFilterfor users without theimpersonatepermission instead of ignoring the filter like the other account-owned objects.aarch64release builds crash withSIGSEGVunder concurrent writes (C and C++ dependencies are now compiled with outline atomics).FORGED_RCVD_TRAILis added for everyReceivedheader whose reverse DNS name ends with a dot, such as those written by Gmail.impersonatepermission can reach accounts of other tenants. The permission is now never granted to tenant members and cannot be added to a tenant's permissions.install.shusesType=simpleinstead ofType=notify.Check binary attestation here
v1.0.0Compare Source
[1.0.0] - 2026-10-26
This version includes multiple breaking changes and a new database layout, so existing v0.16.x deployments cannot be upgraded in place. Please read the migration documentation for more information on how to migrate from v0.16.x.
Added
docx,xlsx,pptx), OpenDocument (odt,ods,odp), EPUB and RTF documents found in attachments and files.METADATAextension (RFC 5464).ML-DSA-44andEd25519withSHA-512.Message-Instancehash algorithms (SHA-256andSHA-512).mail,contacts,calendarsandfiles) per client and grant.X-Forwarded-FororForwarded) and number of trusted proxy hops.Changed
Fixed
Check binary attestation here
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.