Updates
This update adds skip/snooze controls per container to reduce noisy repeated notifications for known-bad versions.
Per-container Update Policy (February 9, 2026)
This update adds skip/snooze controls per container to reduce noisy repeated notifications for known-bad versions.
What changed
- Added container-level update policy in store:
skipTagsskipDigestssnoozeUntil
- Added API endpoint:
PATCH /api/containers/:id/update-policy- Actions:
skip-current,clear-skips,snooze,unsnooze,clear
- Added UI controls on container cards:
- Skip current update
- Snooze for 1/7/30 days
- Clear snooze or all policy
Behavior
updateKindstill reflects the detected remote update.updateAvailableis suppressed while policy applies (skip/snooze), and becomes true again when a new unmatched version/digest is detected or snooze expires.
Trigger Coordination Improvements (February 9, 2026)
This update improves how triggers can be coordinated when they share the same trigger name (for example docker.update and discord.update).
What changed
1. Trigger execution ordering
You can now control trigger execution order with:
DD_TRIGGER_{trigger_type}_{trigger_name}_ORDER
- Lower values run first
- Default is
100 - If two triggers have the same
ORDER, they are sorted by trigger id
Example:
DD_TRIGGER_DOCKER_UPDATE_ORDER=10
DD_TRIGGER_DISCORD_UPDATE_ORDER=20This ensures the Docker update trigger runs before the Discord notification trigger for the same update event.
2. Trigger name aliases in container labels
Container labels dd.trigger.include and dd.trigger.exclude now accept either:
- full trigger id (
docker.update) - trigger name alias (
update)
Example:
dd.trigger.exclude=updateThis applies to all triggers named update (for example docker.update, discord.update).
3. Shared threshold by trigger name
Triggers sharing the same trigger name can share THRESHOLD automatically:
- if exactly one threshold value is explicitly set among same-name triggers, that value is inherited by the others
- if multiple different threshold values are set, no inheritance is applied
Example:
DD_TRIGGER_DOCKER_UPDATE_THRESHOLD=minorWith no explicit Discord threshold, discord.update inherits minor.
Recommended setup for "update then notify"
DD_TRIGGER_DOCKER_UPDATE_THRESHOLD=minor
DD_TRIGGER_DOCKER_UPDATE_ORDER=10
DD_TRIGGER_DOCKER_UPDATE_PRUNE=true
DD_TRIGGER_DISCORD_UPDATE_ORDER=20
DD_TRIGGER_DISCORD_UPDATE_URL=<discord_webhook_url>
DD_TRIGGER_DISCORD_UPDATE_SIMPLETITLE=Updated ${container.name}
DD_TRIGGER_DISCORD_UPDATE_SIMPLEBODY=Container ${container.name} has been updated from ${container.updateKind.localValue} to ${container.updateKind.remoteValue}