v4.1.0-saas.5 - 2025-05-09
Bug Fixes
-
(deployments) Invalid Location header when returning 201 Created
(cfccf2a) by @alfrunesThe location strips the
/api
path prefix and returns the remaining
absolute path as relative. Instead, always return the absolute path. -
(gui) Fixed an issue that would prevent showing unassigned static group devices
(ME-519) (cf7f15d) by @mineralsfree -
(gui) Fixed an issue that would add device filter automatically
(MEN-8309) (8d0233c) by @mineralsfree -
(gui) Fixed an issue with a filter input not reset after save
(MEN-8309) (ed6b9f9) by @mineralsfree -
(gui) Fixed an issue with 'true' value being set after selecting 'exists' operator
(MEN-8309) (b8c8d8a) by @mineralsfree -
(gui) Ensured selection filter is reset when attribute or value input are emptied
(MEN-8309) (9cb2ff3) by @mineralsfree -
(gui) Restored global settings layout after general input layout adjustments
(f83c94e) by @mzedel -
(gui) Fixed an issue that prevented showing deployment calendar entries
(a7d386f) by @mzedel -
Check if deployment was found when updating device deployment status
(MEN-7749) (6b15227) by @bahaa-ghazal -
Ensure email is always encoded in lowercase when stored
(MEN-8328) (d80c818) by @alfrunesAdded a bson codec for model.Email that will ensure that emails are
always encoded in lowercase in the database to ensure case insensitive
queries.
Documentation
-
(deployments) Fix API specification
(QA-990) (4f8d069) by @kjaskiewiczzRemove type properties from fields where value is not strictly defined.
-
(inventory) Migrate API specs to OpenAPI v3.0.1
(QA-886) (e7ce7e5) by @kjaskiewiczz
Features
-
(create-artifact-worker) Update
mender-artifact
to latest v4.1.0
(MEN-8337) (153cb8e) by @lluiscamposModifying also the integration to build the tool from source instead or
repurposing the upstream Debian package. This has the main advantage
that we can compile it statically (by disabling a feature that we don't
use) and that we have control of the compatibility aspects of the
binary. -
(deviceauth) Rate limit authenticated devices API
(MEN-7744) (8c80280) by @alfrunesAdded adaptive ratelimiting for devices APIs based on the
max_devices
limit. Two new configuration options are exposed:ratelimits.interval
- duration until the quota resetsratelimits.quotas
- mapping plan names to quota weights. The final
burst limit is computed asratelimits.quotas[plan] * max_devices
The rate limiting counter is independent for each API path (independent
of method and version). -
(deviceauth) Rate limit device requests
(MEN-7744) (9c3041f) by @alfrunesAdded adaptive ratelimiting for devices APIs based on the
max_devices
limit. Two new configuration options are exposed:ratelimits.devices.enable
- enable device level rate limitratelimits.devices.interval
- duration until the quota resetsratelimits.devices.quota_plan
- mapping plan names to quota
weights. The final burst limit is computed as
ratelimits.quotas[plan] * max_devices
ratelimits.devices.quota_default
- rate limit fallback for plans
with undefined limits.
The rate limiting counter is independent for each API path (independent
of method and version). -
Add caching for device limits
(MEN-7760) (5466c62) by @alfrunes -
Implemented content type checker middleware for gin framework
(MEN-8327) (9016554) by @bahaa-ghazal
Revert
-
Gin utility for applying middleware to routes
(9f5c79c) by @alfrunesThe func does not implement what it is intended to do and instead
applies the middleware to all routes in the group.