FreeNAS/freenas 9026944src/middlewared/middlewared/plugins/pool_ import_pool.py

Raise better validation error in the event zfs does not see the zpool
DeltaFile
+32-15src/middlewared/middlewared/plugins/pool_/import_pool.py
+32-151 files

FreeNAS/freenas f84f4a2src/middlewared/middlewared/api/v26_04_0 pool.py, src/middlewared/middlewared/plugins/pool_ import_pool.py

Add initial reimport method
DeltaFile
+92-1src/middlewared/middlewared/plugins/pool_/import_pool.py
+14-4src/middlewared/middlewared/api/v26_04_0/pool.py
+106-52 files

FreeNAS/freenas 178f117src/middlewared/middlewared/plugins directoryservices.py, src/middlewared/middlewared/test/integration/utils system.py

Convert list to tuples.
Remove extraneous variable in utility function.
DeltaFile
+2-2src/middlewared/middlewared/plugins/directoryservices.py
+1-2src/middlewared/middlewared/test/integration/utils/system.py
+3-42 files

FreeNAS/freenas c547b8esrc/middlewared/middlewared/test/integration/utils system.py

Fix typo
DeltaFile
+1-1src/middlewared/middlewared/test/integration/utils/system.py
+1-11 files

FreeNAS/freenas 5998ddesrc/middlewared/middlewared/utils/directoryservices krb5.py

Acquire threading lock for GSSAPI ops

This commit adds a threading lock for GSSAPI operations in
middleware utilities. Locking is implemented through a
minimal decorator in order to keep the code diff small.
DeltaFile
+17-0src/middlewared/middlewared/utils/directoryservices/krb5.py
+17-01 files

FreeNAS/freenas 41a8712src/middlewared/middlewared/plugins directoryservices.py, src/middlewared/middlewared/plugins/service_/services all.py

Add start of auth-rpcgss-module to enable gssproxy as part of enabling directory services.
Add a CI test to confirm the kernel is configured for gssproxy.
DeltaFile
+17-1src/middlewared/middlewared/test/integration/utils/system.py
+8-0src/middlewared/middlewared/plugins/service_/services/pseudo/misc.py
+6-0src/middlewared/middlewared/plugins/directoryservices.py
+4-1tests/directory_services/test_activedirectory_basic.py
+2-0src/middlewared/middlewared/plugins/service_/services/all.py
+37-25 files

FreeNAS/freenas 0f3bc2dsrc/middlewared/middlewared/plugins/enclosure_ enclosure_class.py

tag rear slots for R20 series
DeltaFile
+10-4src/middlewared/middlewared/plugins/enclosure_/enclosure_class.py
+10-41 files

FreeNAS/freenas 39ed631src/middlewared/middlewared/plugins/enclosure_ enclosure_class.py

handle SMC backplane for R20A
DeltaFile
+2-2src/middlewared/middlewared/plugins/enclosure_/enclosure_class.py
+2-21 files

FreeNAS/freenas 22fbaf9src/middlewared/middlewared/alembic/versions/26.04 2025-12-15_18-18_convert-api-keys.py

Update migration
DeltaFile
+2-2src/middlewared/middlewared/alembic/versions/26.04/2025-12-15_18-18_convert-api-keys.py
+2-21 files

FreeNAS/freenas 25fee93src/middlewared/middlewared/plugins auth.py, src/middlewared/middlewared/utils/account authenticator.py utmp.py

Remove python-pam and plumb in pam_truenas
DeltaFile
+356-509src/middlewared/middlewared/utils/account/authenticator.py
+231-231tests/unit/test_utmp.py
+0-397src/middlewared/middlewared/utils/account/utmp.py
+0-358tests/unit/test_pam_tdb.py
+142-91src/middlewared/middlewared/plugins/auth.py
+47-115src/middlewared/middlewared/utils/account/faillock.py
+776-1,70125 files not shown
+1,245-2,05831 files

FreeNAS/freenas 02a3c08src/middlewared/middlewared/plugins auth.py api_key.py, src/middlewared/middlewared/utils user_api_key.py

Fix
DeltaFile
+3-4src/middlewared/middlewared/utils/account/authenticator.py
+2-3src/middlewared/middlewared/plugins/auth.py
+1-2src/middlewared/middlewared/utils/user_api_key.py
+1-1src/middlewared/middlewared/plugins/api_key.py
+7-104 files

FreeNAS/freenas 24ad318src/middlewared/middlewared/plugins failover.py, src/middlewared/middlewared/plugins/failover_ detect_utils.py detect_enclosure.py

Properly failover on shutdown in HA
DeltaFile
+127-0src/middlewared/middlewared/plugins/failover_/detect_utils.py
+2-116src/middlewared/middlewared/plugins/failover_/detect_enclosure.py
+4-55src/middlewared/middlewared/plugins/system/product.py
+58-0src/middlewared/middlewared/plugins/system/product_utils.py
+49-0src/middlewared/middlewared/scripts/ha_panic.py
+5-3src/middlewared/middlewared/plugins/failover.py
+245-1743 files not shown
+253-1749 files

FreeNAS/freenas a3a0f7dsrc/middlewared/middlewared/scripts generate_s3_providers.py

NAS-138971 / 26.04 / Fix breaking build due to rclone (#17844)

This commit fixes an issue where we now have newer version of rclone
which uses different indentation as opposed to the older version which
the regex needs to account for.
DeltaFile
+1-1src/middlewared/middlewared/scripts/generate_s3_providers.py
+1-11 files

FreeNAS/freenas 5633aedsrc/middlewared/middlewared/api/v26_04_0 app_image.py

NAS-138846 / 26.04 / Fix App Image pydantic model (#17843)

This commit fixes an issue with app image pydantic model where we are
not getting author field from docker if it is unset upstream (earlier
docker used to return empty string). While fixing author field,
created/comment have been updated as well to account for null fields if
we get them from upstream.

References

> GET /images/{name}/json now omits the following fields if their value
is empty: Parent, Comment, DockerVersion, Author.

https://docs.docker.com/reference/api/engine/version-history/
DeltaFile
+6-6src/middlewared/middlewared/api/v26_04_0/app_image.py
+6-61 files

FreeNAS/freenas 8098dcasrc/middlewared/middlewared/scripts generate_s3_providers.py

Fix breaking build due to rclone

This commit fixes an issue where we now have newer version of rclone which uses different indentation as opposed to the older version which the regex needs to account for.
DeltaFile
+1-1src/middlewared/middlewared/scripts/generate_s3_providers.py
+1-11 files

FreeNAS/freenas bb1513asrc/middlewared/middlewared/plugins failover.py, src/middlewared/middlewared/plugins/failover_ detect_utils.py detect_enclosure.py

Properly failover on shutdown in HA
DeltaFile
+127-0src/middlewared/middlewared/plugins/failover_/detect_utils.py
+2-116src/middlewared/middlewared/plugins/failover_/detect_enclosure.py
+4-55src/middlewared/middlewared/plugins/system/product.py
+58-0src/middlewared/middlewared/plugins/system/product_utils.py
+49-0src/middlewared/middlewared/scripts/ha_panic.py
+5-3src/middlewared/middlewared/plugins/failover.py
+245-1743 files not shown
+253-1749 files

FreeNAS/freenas 5c97bcbsrc/middlewared/middlewared/plugins failover.py, src/middlewared/middlewared/plugins/failover_ detect_utils.py detect_enclosure.py

Properly failover on shutdown in HA
DeltaFile
+127-0src/middlewared/middlewared/plugins/failover_/detect_utils.py
+2-116src/middlewared/middlewared/plugins/failover_/detect_enclosure.py
+4-55src/middlewared/middlewared/plugins/system/product.py
+58-0src/middlewared/middlewared/plugins/system/product_utils.py
+49-0src/middlewared/middlewared/scripts/ha_panic.py
+5-3src/middlewared/middlewared/plugins/failover.py
+245-1743 files not shown
+253-1749 files

FreeNAS/freenas 1de75a5src/middlewared/middlewared/api/v26_04_0 app_image.py

Fix App Image pydantic model

This commit fixes an issue with app image pydantic model where we are not getting author field from docker if it is unset upstream (earlier docker used to return empty string). While fixing author field, created/comment have been updated as well to account for null fields if we get them from upstream.
DeltaFile
+6-6src/middlewared/middlewared/api/v26_04_0/app_image.py
+6-61 files

FreeNAS/freenas 94ffae6src/middlewared/middlewared/plugins directoryservices.py, src/middlewared/middlewared/plugins/service_/services all.py

Fix the use-gss-proxy issue by starting `auth-rpcgss-module as part of directory services setup.
Created a pseudo service to manage miscellaneous startup activities.
DeltaFile
+33-0src/middlewared/middlewared/plugins/service_/services/pseudo/misc.py
+4-0src/middlewared/middlewared/plugins/directoryservices.py
+2-0src/middlewared/middlewared/plugins/service_/services/all.py
+39-03 files

FreeNAS/freenas 1c5e780src/middlewared/middlewared/utils/account faillock.py

Fix
DeltaFile
+6-1src/middlewared/middlewared/utils/account/faillock.py
+6-11 files

FreeNAS/freenas c2c0df1src/middlewared/middlewared/plugins/audit audit.py

NAS-138907 / 26.04 / Disallow quota fill warning being greater than the critical threshold (by creatorcary) (#17841)

Original PR: https://github.com/truenas/middleware/pull/17835

---------

Co-authored-by: Logan Cary <logan.cary at ixsystems.com>
DeltaFile
+8-0src/middlewared/middlewared/plugins/audit/audit.py
+8-01 files

FreeNAS/freenas d05024fsrc/middlewared/middlewared/plugins/enclosure_ slot_mappings.py enclosure_class.py

fix
DeltaFile
+14-14src/middlewared/middlewared/plugins/enclosure_/slot_mappings.py
+4-4src/middlewared/middlewared/plugins/enclosure_/enclosure_class.py
+18-182 files

FreeNAS/freenas 175ff51src/middlewared/middlewared/plugins/audit audit.py

more precise error message

(cherry picked from commit 039ee4ce2e571ca84b72a2253ddc33df7e3cd533)
DeltaFile
+8-2src/middlewared/middlewared/plugins/audit/audit.py
+8-21 files

FreeNAS/freenas 4dbd67csrc/middlewared/middlewared/plugins/audit audit.py

error if quota_fill_warning not less than quota_fill_critical

(cherry picked from commit 768d89e0046ecf8e2e960e31cb5bcce72a254e7a)
DeltaFile
+2-0src/middlewared/middlewared/plugins/audit/audit.py
+2-01 files

FreeNAS/freenas a7fd91csrc/middlewared/middlewared/plugins/audit audit.py

NAS-138907 / 25.10.2 / Disallow quota fill warning being greater than the critical threshold (#17835)

DeltaFile
+8-0src/middlewared/middlewared/plugins/audit/audit.py
+8-01 files

FreeNAS/freenas 479eee0src/middlewared/middlewared/plugins/service_/services nfs.py

Add missing await.
DeltaFile
+1-1src/middlewared/middlewared/plugins/service_/services/nfs.py
+1-11 files

FreeNAS/freenas 7e1545bsrc/middlewared/middlewared/pytest/unit/plugins test_ldap.py

NAS-138966 / 25.10.2 / Address regression of pytest test (by anodos325) (#17840)

This commit fixes a regression in an internal unit test for the
attribute map parser for LDAP configuration.

Original PR: https://github.com/truenas/middleware/pull/17839

Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
DeltaFile
+3-3src/middlewared/middlewared/pytest/unit/plugins/test_ldap.py
+3-31 files

FreeNAS/freenas 0989426src/middlewared/middlewared/plugins/enclosure_ slot_mappings.py map2.py

fix R20B
DeltaFile
+21-1src/middlewared/middlewared/plugins/enclosure_/slot_mappings.py
+11-7src/middlewared/middlewared/plugins/enclosure_/map2.py
+2-2src/middlewared/middlewared/plugins/enclosure_/enclosure_class.py
+34-103 files

FreeNAS/freenas 71dd4c2src/middlewared/middlewared/pytest/unit/plugins test_ldap.py

Address regression of pytest test (#17839)

This commit fixes a regression in an internal unit test for the
attribute map parser for LDAP configuration.
DeltaFile
+3-3src/middlewared/middlewared/pytest/unit/plugins/test_ldap.py
+3-31 files

FreeNAS/freenas c3ef891src/middlewared/middlewared/pytest/unit/plugins test_ldap.py

Address regression of pytest test

This commit fixes a regression in an internal unit test for
the attribute map parser for LDAP configuration.
DeltaFile
+3-3src/middlewared/middlewared/pytest/unit/plugins/test_ldap.py
+3-31 files