Releases: FOGProject/fogproject
Releases · FOGProject/fogproject
Release list
1.5.10.2482
Pull Requests
- Port the multi-server CA bundle transfer steps to dev-branch, and drop flags this line lacks by @mastacontrola in #1023
- Fix #1036: inventory empty after Quick Registration (mac encoding in getHostItem) by @mastacontrola in #1037
- Fix #1039: installer fails with DHCP enabled on Debian 13 / Ubuntu 26 (Kea + AppArmor) by @mastacontrola in #1040
- Stop a user PUT locking that account out permanently by @mastacontrola in #1092
- Drop deprecated "${var}" interpolation by @mastacontrola in #1106
- Fix untranslatable, misspelled copy on the pending-MAC report by @mastacontrola in #1108
- Sweep gettext msgids that were built at runtime, and gate it by @mastacontrola in #1110
- Make the iPXE advanced menu actually check the login it asks for by @mastacontrola in #1112
- Stop handing a session to entry points that cannot carry a cookie by @mastacontrola in #1115
- Say 7.4 in the docblocks, which is what FOG has enforced for years by @mastacontrola in #1127
- Verify TLS on outbound requests, and keep the session off third-party hosts by @mastacontrola in #1133
- Run the test suite on pull requests by @mastacontrola in #1140
- Sync the version on merge, not just on the daily sweep (dev-branch) by @darksidemilk in #1161
- Bound every installer network fetch (port of #1159) by @mastacontrola in #1168
- Port: string identifiers read as foreign keys, and php-fpm error log ownership by @mastacontrola in #1167
- Port: verify TLS on the installer's downloads and its calls to itself by @mastacontrola in #1170
- Trigger the merge sync from an event that actually reaches this file (dev-branch) by @darksidemilk in #1172
- Pin iPXE to v2.0.0-fog.7 by @mastacontrola in #1188
- Stop register()'s error handler being fatal by @mastacontrola in #1196
- Fix four hook/event defects that cannot change which listener runs by @mastacontrola in #1201
- Let 1.5 record what FOS tells it: taskLog gets a type and a body (schema 280) by @mastacontrola in #1210
- Give a task the host died on a state of its own (schema 281) by @mastacontrola in #1212
- Type the taskLog rows that were landing empty (schema 282) by @mastacontrola in #1214
- Make the cancel route refuse what it cannot cancel by @mastacontrola in #1216
- Let a stored FOS report be longer than the notification it triggers by @mastacontrola in #1218
- Keep the line breaks in a stored FOS report by @mastacontrola in #1224
- Say why imaging failed, not just that it did by @mastacontrola in #1226
- Apply the site boundary to the API, not just to the management pages by @mastacontrola in #1229
- Push the API object boundary into the query, keeping the id list as fallback by @mastacontrola in #1233
- Keep a host with no primary MAC loadable, and self-heal it by @mastacontrola in #1234
- Keep a FOS report readable after its task is gone by @mastacontrola in #1237
- fix(db): run under the server's own sql_mode (#1245) by @mastacontrola in #1252
- fix(replication): report a refused FTP login as a login failure (#1254) by @mastacontrola in #1256
- fix(core): report and record database operations that fail on machine paths (1.5 port of #1257) by @mastacontrola in #1258
- test: pin FOGManagerController::find()'s failure check by @mastacontrola in #1260
- fix(security): keep the failed statement's bound values out of the fault log (1.5 port of #1261) by @mastacontrola in #1262
- fix(installer): create the fault log directory 0750, not 0755 (1.5 port) by @mastacontrola in #1264
- Fix 1364: insertBatch must name every column a strict server requires by @mastacontrola in #1270
- Schema step 286: give FOG's optional columns a real default by @mastacontrola in #1273
- Give plugin tables real column defaults, and stop createTable dropping them by @mastacontrola in #1274
- fix(installer): report "Skipped" when no web backup was written (1.5 port) by @mastacontrola in #1282
- fix(tasking): stop the first check-in of every task fataling on a null taskCheckIn by @mastacontrola in #1283
- Close two blind gates in the API object-scope tests by @mastacontrola in #1291
- Say why _scopeWhere() carries no reentrancy guard by @mastacontrola in #1294
- fix(installer): don't reject every directory when the distro config is missing by @mastacontrola in #1299
- fix(multicast): make a kill answer whether the sender is actually gone by @mastacontrola in #1301
- fix(snapinhash): stop saving a hash for a file that is not there by @mastacontrola in #1304
- fix(multicast): give the first partition its own max-wait (GH-536) by @mastacontrola in #1305
- fix(pki): make an imported Web CA actually work on dev-branch by @mastacontrola in #1303
- fix(session): give FOG its own PHP session store so GC stops reaping logins (1.5 port) by @mastacontrola in #1307
- fix(session): stop an empty session cookie minting a throwaway session (1.5 port) by @mastacontrola in #1309
- fix(auth): let FOG's own components authenticate without a session (1.5 port) by @mastacontrola in #1314
- fix(api): stop returning credential setting values over REST by @mastacontrola in #1315
- feat(nodes): give a peer FOG server its own signing key by @mastacontrola in #1318
- feat(nodes): give a peer a way to be handed its signing key by @mastacontrola in #1319
- fix(service): let cleanupProcList actually empty the process lists by @mastacontrola in #1322
- test(schema): pin FOG_SCHEMA to the real step count on this branch too by @mastacontrola in #1343
- fix(boot): resolve the boot kernel by architecture, not by hope by @mastacontrola in #1350
- Port BootMenu dead-code removal and hook-argument fixes from working-1.6 by @mastacontrola in #1354
- Store a PHP boolean as '0'/'1', never as '' by @mastacontrola in #1362
- Use MAC of first link-up interface instead of forcing net0 for setmacto by @MrLego8-9 in #1383
- Fix FOGUpdater: GitHub as the update source, https enforced end to end (GHSA-qp3r-8mwm-vg6h) by @mastacontrola in #1386
- Record the real manufacturer, stop blanking the boot log, and look past three NICs by @mastacontrola in #1388
- Stop a task ever pointing at nothing, and free the ones that do (1.5) by @mastacontrola in #1391
- Reap the tasks that can never run, and say why (1.5) by @mastacontrola in #1394
- fix(registration): stop HTML-escaping the password before checking it by @mastacontrola in #1398
- Say which store fog-enroll-mok.sh actually checked by @mastacontrola in #1401
- Point the iPXE build failure at its own log (dev-branch port) by @mastacontrola in #1406
- Stop shipping the generated config world-readable by @mastacontrola in #1433
- Stop the config step printing OK twice by @mastacontrola in #1436
- Pin iPXE to v2.0.0-fog.7.1, which ships the pre-DHCP sleep by @mastacontrola in #1468
- Stop writing FOG_VERSION on a branch, so open PRs stop conflicting by @mastacontrola in https:...
1.5.10.2253
Pull Requests
- Keep FOS kernels signed for Secure Boot, and make enrolment a short visit by @darksidemilk in #961
- Label FOG's directories and ship a policy module instead of a blanket boolean (dev-branch port) by @mastacontrola in #967
- Give FOG its own SELinux type for /images and snapins (dev-branch port) by @mastacontrola in #969
- Configure the local firewall instead of offering to switch it off (dev-branch port) by @mastacontrola in #971
- Stop recommending permissive SELinux, and stop setting it under -y (dev-branch port) by @mastacontrola in #973
- Add "Enroll Secure Boot Key" PXE menu item (dev-branch port) by @mastacontrola in #977
- docs: working-1.6 first, then port to dev-branch (CLAUDE.md) by @darksidemilk in #974
- Secure Boot: document the ipxe.efi fallback chain, bump fog-ipxe pin by @mastacontrola in #980
- Fix doubled slash in the HTTP-to-HTTPS redirect (GH-978) by @mastacontrola in #982
- Add --no-force-https so -S can be undone (GH-978) by @mastacontrola in #984
- Point the Secure Boot DHCP classes at the snponly chain (dev-branch port) by @mastacontrola in #994
- Pin iPXE to v2.0.0-fog.4 for the restored BIOS command set (1.5) by @mastacontrola in #997
- Hide the Secure Boot enrolment menu item on legacy BIOS boots (1.5) by @mastacontrola in #999
- Define FOG_BASE_DIR on 1.5.x, fixing HTTP 500 on kernel/init update by @mastacontrola in #1000
- Gate the API on uType and stop building the lftp command in a shell (GHSA-2hqx-5ffg-w4c3) by @mastacontrola in #1001
- Stop publishing autoexec.ipxe to the TFTP root, and pin iPXE v2.0.0-fog.5 by @mastacontrola in #1004
- PKI: hang Web and Secure Boot CAs off the existing FOG Server CA (dev-branch port) by @darksidemilk in #1017
- Fix silent Secure Boot/Web CA regeneration when only the CA key is offline by @darksidemilk in #1018
- Stable Release PR For 1.5.10.2253 - 2026-08-11 by @fog-workflows[bot] in #1020
Full Changelog: 1.5.10.2149...1.5.10.2253
Commits
- Version Sync: Increment version from 1.5.10.2149 to 1.5.10.2152 for Patches channel on dev-branch to match commit count since master (b1912aad1)
- Availability probe honours FOG_FTP_PORT (bae85f5a6)
- Stop deriving the Debian docroot from a test the install invalidates (923a74724)
- fix(installer): emit every interface IP as a cert SAN (750f1da04)
- fix(installer): config.class.php host constants take the primary IP (130938980)
- Make a custom webroot actually work (ba41fae1c)
- Install the FOG utilities to the fog path (d3a7079ef)
- Make FOGBackup work, and stop the installer claiming empty backups (717a3c7e0)
- Restrict the maintenance endpoints to same-machine requests (200a5072f)
- Stop a second IP on the FOG interface breaking the apache vhost (b9a970a6f)
- Deny maintenance/ to anything but the server itself (c6c6b705a)
- Keep service logs across restarts and rotate them instead of deleting (1efe787bf)
- Settle what $ipaddress means: one address, with $ipaddresses for the set (62626fcfd)
- Write .fogsettings as soon as the database credentials exist (7c5450196)
- Stop installer helper errors from being written into the DHCP config (ac0709e35)
- fix(installer): survive a master database that offers no TLS (361bacf36)
- fix(installer): stop rejecting a valid root environment on usr-merged distros (c7c262806)
- perf(web): stop querying the database on every hook fire (e827fd1bd)
- build(ipxe): stop overlaying upstream's build system, and pass NO_WERROR (cb9d8d9a2)
- build(ipxe): pin the iPXE clone to a release tag (bd93ae8d5)
- Consume iPXE from FOGProject/fog-ipxe instead of carrying it in git (182701dd6)
- Publish autoexec.ipxe at the TFTP root as well, via a hard link (3c0b4ce37)
- Stage the iPXE Secure Boot binaries at /tftpboot/secureboot (421918f3f)
- Pin iPXE to v2.0.0-fog.2 (6fc1abb94)
- Set the SELinux context on the TFTP root instead of disabling SELinux (2121873d9)
- Keep FOS kernels signed for Secure Boot, and make enrolment a short visit (037af2be4)
- Drop the staging half; keep signing, and accept a DER certificate (f62a592ec)
- Derive the Secure Boot paths from FOG_BASE_DIR, not /opt/fog (d36f94637)
- Label FOG's directories and ship a policy module instead of a blanket boolean (09efe7325)
- Give FOG its own SELinux type for /images and snapins (358fec4c5)
- Configure the local firewall instead of offering to switch it off (450826cb3)
- Stop recommending permissive SELinux, and stop setting it under -y (33d1718f3)
- Allocate multicast ports inside the window the installer firewalls (a678260f9)
- Installer: batch the package state queries and the install transaction (fa46760f7)
- Codify: new features land on working-1.6 first, then port here (3024875ba)
- Secure Boot: generate the signing key by default, and show the page (5d23f2030)
- Fix CLAUDE.md: previous commit accidentally stored base64, not text (e12a1c6bd)
- Fix CLAUDE.md corruption from the base64 round-trip (2c867afba)
- Add "Enroll Secure Boot Key" PXE menu item (08c98aecd)
- Version Sync: Increment version from 1.5.10.2191 to 1.5.10.2198 for Patches channel on dev-branch to match commit count since master (35cd62652)
- Secure Boot: document the ipxe.efi fallback chain, bump fog-ipxe pin (661b23cde)
- Fix doubled slash in the HTTP-to-HTTPS redirect (GH-978) ([2c119dc](https://github.com/FOGProject/fogproj...
1.5.10.2149
Pull Requests
- Add Japanese translation by @mashiro-mikage in #870
- Document 1.5 LDAP nested-group migration gap as wontfix and direct users to 1.6 by @mastacontrola with @Copilot in #894
- Make the str_contains() polyfill agree with the function it replaces by @mastacontrola in #901
- Stop the installer reporting failures on a successful upgrade by @mastacontrola in #902
- Resolve the DB unit to one name instead of three by @mastacontrola in #904
- fix(web): stop isLoaded() gates poisoning association writes (1.5 port) by @mastacontrola in #912
- Add isDirty() to stop assocSetter() re-diffing untouched associations by @darksidemilk in #918
- ci: add push-triggered stub delegating to fog-workflows version check (dev-branch) by @darksidemilk in #923
- docs: link Version Sync Automation doc from README by @darksidemilk in #929
- sync branches by @darksidemilk in #936
- refactor(githooks): make fog-version.sh a pure compute, add apply script by @darksidemilk in #931
- feat(githooks): skip apply-fog-version.sh entirely when nothing drifted by @darksidemilk in #937
- docs: add current-version badges for stable/dev-branch/working-1.6 by @darksidemilk in #942
- Stable Release PR For 1.5.10.2149 - 2026-07-30 by @fog-workflows[bot] in #951
Full Changelog: 1.5.10.1903...1.5.10.2149
Commits
- Add Japanese translation (7d73d9f68)
- Update messages.po (a0a87c242)
- Update messages.po (b55c0919d)
- Update functions.sh (ed2c8b527)
- add ja to function for redhat (846b42cd0)
- Update messages.po (6dd592e9c)
- いくつかの翻訳を追加 (83edfea6f)
- Update messages.po (55bfe31b5)
- Merge PR #870: Add Japanese translation (1eca5450b)
- Fix silent failure and data loss when moving captured images out of /images/dev (edb467547)
- Fix uncaught ValueError 500 when a storage group has no nodes (a7be9a645)
- Harden FOG client endpoints against empty-collection crashes (60edfd044)
- Harden lib/fog against PHP 8 min()/max() ValueError on empty arrays (376f13a89)
- Fix zero-byte HTTP 500 on PHP 7.4 from the
mixedhint on Initiator::e() (10d4bce68) - Make the installer verify the web tier and the schema deploy (d9551e06b)
- Guard multicast/imaging lookups against PHP 8 empty-array errors (fb247b0af)
- Stop udp-sender when its session leaves the active set (6fb7ccada)
- Stop resetting the multicast join counter on every poll (6d060fe34)
- Persist multicast sender ownership and scope sessions to the owning node (fa999c8c1)
- Close the multicast join window and stop reporting phantom deployments (9b53a409c)
- Make the multicast port override a pool and enforce the session cap (e6afb75fb)
- Tier schema-deploy authorization by credential channel (3d0b681d1)
- Reconcile orphaned senders even when multicast is globally disabled (05dc69cda)
- Close the GHSA-gj9f batch findings that are still live on 1.5.x (1bcfafb73)
- Escape the inventory report display columns on 1.5.x (edc5322ec)
- Stop a spoofable pre-auth request clearing a host's encryption key (fb2cc3ecc)
- Escape the multicast sender command line at the sink (19682c75d)
- Send the real path when the image path is the image file (d6ffb8c7c)
- Reject '.' and '..' as snapin filenames here too (f008b9a97)
- Stage only what the commit touches in the pre-commit PSR2 pass (8e30a2fdf)
- Let a FOG Client recover from a lost authorize reply (8c9ea2976)
- Stop passing null where an internal string parameter is expected (c82e5b919)
- Initial plan (8a30ab788)
- Document LDAP nested-group 1.5 wontfix limitation (03de85c26)
- Let the rate-limit reply carry its meaning in the body, like the rest (217707d87)
- Stop every non-AD login enumerating the whole group subtree (5ce3121e4)
- Stop the one entry point that read raw superglobal input (e904a07d9)
- Add the filter-field guard to 1.5 (17bedf0a0)
- Make the filtered /names and /ids routes work on PHP 8 (c35b54599)
- Vet only request filter keys, not PHP-built ones (78633f3c7)
- Compile an uncompilable filter to 1=0, as 1.6 does (ac9e68da5)
- Stop a closed session naming a sender that is already dead (919665769)
- Read multicast service settings by name, not by position (cb2901992)
- Read the other services' settings by name too (9fec3c224)
- Initialise MasterIDs before reading it (b9ea2167c)
- Say string, which is what group tasking returns (3149aa3a2)
- Make the str_contains() polyfill agree with the function it replaces (4531858c3)
- Stop the installer reporting failures on a successful upgrade (e4e5b806c)
- Resolve the DB unit to one name instead of three (82a6a0b5d)
- Send a split partition as one stream instead of one sender per chunk (cae235745)
- Collect the chunks of a split partition for multicast ([62ae16e](https://github.com/FOGProject/fogproject/commit...
1.5.10.1903
Pull Requests
- Update functions.sh by @Nono-m0le in #834
- Fix for Full Manual Registration - fails unless a product key is entered even though it says optional. This allows user to hit enter and submit with blank entry. by @wwtechnologies in #836
- fix(ldap): rfc2307 group filter (#837) + DN regex escaping + multi-server access by @mastacontrola in #839
- fix(db): distinct() unique placeholders + drop dead $isEnabled (#843) by @mastacontrola in #846
- Fix Chinese language label by @mashiro-mikage in #862
- Fix login language session persistence by @mashiro-mikage in #861
- Translate report menu labels by @mashiro-mikage in #865
- Stable Release PR For 1.5.10.1903 - 2026-07-11 by @fog-workflows[bot] in #868
New Contributors
- @Nono-m0le made their first contribution in #834
- @wwtechnologies made their first contribution in #836
- @mashiro-mikage made their first contribution in #862
Full Changelog: 1.5.10.1870...1.5.10.1903
Commits
- Update functions.sh (e8a7d916f)
- fix(api): restore timeElapsed value in progress reporting (#835) (36b94e12b)
- fix(registration): allow blank optional product key in full manual registration (#836) (ee401ce19)
- fix(registration): allow blank optional product key in auto/quick registration (508e90586)
- docs(claude): add Claude context file for dev-branch (1.5.x) (f5219bfa2)
- feat(installer): support Kea DHCP with ISC fallback (#730) (979a89867)
- fix(ldap): preg_quote user DN before using it as a regex pattern (f4cb80df2)
- fix(ldap): pick highest access across LDAP servers without clobbering (7369d2b5a)
- Fix LDAP group filter for rfc2307 groups case. (e8406eb6c)
- feat(db): report sanitized DB connection error on failure (#275) (82c024c04)
- fix(db): distinct() unique placeholders + drop dead $isEnabled (#843) (1d5b2500a)
- fix(ldap): drop non-load-bearing (grpMemAttr=group) filter alternative (6d21aeed7)
- fix(installer): drop lastlog-based account check broken on Debian Trixie (#818) (06284f6ba)
- fix(printer): widen pIP column to allow FQDN/host:port (#560) (06749f410)
- fix(reports): stop User Tracking report loading whole table into memory (#700) (6ede9b7ad)
- fix(accesscontrol): seed default rule for the plugin's own menu item (#750) (637ec3d53)
- Fix login language session persistence (006d06fa5)
- Fix Chinese language label (b347c37b1)
- Translate report menu labels (eca1c90f4)
- i18n(reports): keep dynamic report-name msgids extractable (d1e0dc4d5)
- installer: honor -X on DHCP config failure and report unwritten Kea config (b8f82402a)
- installer: refactor writeUpdateFile() to be array-driven and DRY (cf7926411)
- installer: write dedicated/external Kea DHCP sample on skip path (61899caf2)
Closed Issues since last release
- Impossible to register inventory info [WORKING-1.6] (#860)
- CSV export: batch association loads to avoid per-row N+1 queries (#857)
- CSV import/export: name-resolve plain foreign-key columns (follow-up to #828) (#856)
- CSV associations: Site plugin consumer (mirror Location) for host site (follow-up to #828) (#855)
- CSV associations: escape delimiter characters (; : |) in names (follow-up to #828) (#854)
- Infinite-scroll tables: fixed 55vh height isn't adaptive/expandable and can crowd page-bottom content (#853)
- Sidebar menu doesn't auto-refresh after plugin install/activate/remove (requires manual page reload) (#852)
- perf(settings): persistent file-backed settings cache + cache observability (#851)
- perf(settings): add TTL-based per-process cache to getSetting() with cross-process flush signal (#849)
- Docs: end-to-end FOG plugin authoring guide + skeleton plugin (working-1.6) (#847)
- FOGManagerController::distinct() reuses SQL placeholders for multi-condition queries (#843)
- Plugins have no schema upgrade path; re-install is destructive (#840)
- timeElapsed is reported as 0 by the API (#835)
- Group edit: shared-value display for push-down config fields (AD, auto-logout, printer default, kernel/general) (#833)
- Group edit: surface shared member state for all associative/config properties (#832)
- Fresh installation fails with "Unauthorized" on database schema deployment (working-1.6, build 2342) (#825)
- Sequential Snapin execution with stop-on-failure and logging (#824)
- Subject: Inquiry about correct API usage for creating Snapin in FOG (#823)
- installfog.sh cannot upgrade FOG on Debian Trixie: "/lib/common/functions.sh: line 1526: lastlog: command not found" (#818)
- Install fails on Debian Trixie (13) because script tries to install sysv-rc-conf (#797)
- Debian Trixie / Sid fails with libcurl3 (#781)
- How can i override getOptimalStorageNode with a plugin (#683)
- Debian : php-mysqlnd (#648)
- Add detailed error output on failed DB connections (#275)
1.5.10.1870
What's Changed
- merge stable - 1.5.10.1826 into dev by @fog-workflows[bot] in #814
- Stable Release PR For 1.5.10.1826 - 2026-05-15 by @fog-workflows[bot] in #822
- Stable Release PR For 1.5.10.1870 - 2026-06-15 by @fog-workflows[bot] in #829
Full Changelog: 1.5.10.1826...1.5.10.1870
Commits
- feat(api): add token-authenticated DB backup endpoint (abaae49e2)
- docs(contributing): fix broken TOC links and add missing sections (172dc35cd)
- fix(inventory): allowlist writable fields, block mass-assignment (7251c3c6b)
- Should fix issue with inventory mapping. (749d61e99)
- fix(multicast): clear sessions when udp-sender exits on its own (#820) (4b2ce25a2)
- fix(host): PHP 8 safety for mac handling on host creation/check-in (578cf5cfd)
- Should address 067 vuln on dev-branch (53144afdb)
- security(wol): authenticate the inter-node Wake-on-LAN relay (820e99690)
- fix(auth): drop ipxe from the no-auth allowlists (26f37fbbc)
- security(install): protect schema deploy with a per-install token (7a10a8c84)
- security(csp): harden Content-Security-Policy to script-src 'self' (2fd360483)
- fix(hostmanager): early-return getHostByMacAddresses on empty macs (7d7ea75f8)
- Add NULL sentinel to explicitly clear group-general fields on hosts (54334ae3c)
- Preserve per-host fields when updating group-general (fa14632df)
- Revert vuln 009 token check - breaks deployed FOG Client (04ee37464)
- Port /snapin/createwithfile and /storagegroup//uploadsnapinfiles to dev-branch (dd26efb95)
- Make santizeCronField public function (41ba0d882)
- Should switch private santizeCronField to protected (06284ec25)
- Fix vuln 023 again (f70a71470)
- Fix 021 vuln (46dd3ec78)
- Fix 020 vuln at progress insert (efc399b19)
- Fix 009 Vuln with expected (f2cc61b3b)
- Fix issue reported on forums (d7f6fa031)
- Fix 097 vuln (ed1a9d3b2)
- Fix 081 vuln (5123be197)
- Fix 078 vuln (c6b053c60)
- Fix 055 vuln properly (262a8bfa7)
- Fix 055 vuln (edbde2820)
- Fix 029 vuln (dd9c5ca95)
- Fix 023 vuln (dc1dc1c0d)
- Fix 022 vuln (876124eba)
- Fix 021 vuln (8b09fd9a2)
- Address 020 vuln (549b9d1cb)
- Address 020 vuln (fe9267d85)
- Fix 019 vuln (fe0c1938d)
- Remove 010 vuln, though not using proposed patch as we have a different method to obtain this information already baked in (aab1d32f0)
- Fix 137 vuln (6228cad5f)
- Fix security issues (64f7213f9)
- Fix another security thing (117a2722c)
- Should fix multiple noticed issues (e194c5deb)
- Should attempt to fix 3 broken elements at once for security reasons (05403ee09)
- fix(fogcontroller): write 0 for cleared optional *id fields instead of skipping (3ba8b766a)
1.5.10.1826
What's Changed
- merge stable - 1.5.10.1815 into dev by @fog-workflows[bot] in #807
- Update translation for zh_CN.UTF-8 by @BA4TMR in #809
- Stable Release PR For 1.5.10.1826 - 2026-04-15 by @fog-workflows[bot] in #813
New Contributors
Full Changelog: 1.5.10.1815...1.5.10.1826
1.5.10.1815
What's Changed
- merge stable - 1.5.10.1812 into dev by @fog-workflows[bot] in #805
- Persistent Groups Manager does not auto create snapin tasks, only assigns the snapins. by @PorygonPhD in #803
- Stable Release PR For 1.5.10.1815 - 2026-03-25 by @fog-workflows[bot] in #806
New Contributors
- @PorygonPhD made their first contribution in #803
Full Changelog: 1.5.10.1812...1.5.10.1815
1.5.10.1812
What's Changed
- merge stable - 1.5.10.1798 into dev by @fog-workflows[bot] in #800
- Remove hardcoded ftp port for storage node availability check by @CMQuah in #801
- Stable Release PR For 1.5.10.1812 - 2026-03-24 by @fog-workflows[bot] in #804
New Contributors
Full Changelog: 1.5.10.1798...1.5.10.1812
1.5.10.1798
What's Changed
- merge stable - 1.5.10.1763 into dev by @fog-workflows[bot] in #787
- Update Portuguese translation by @eduardomozart in #782
- Change input sanitization to use FILTER_SANITIZE_SPECIAL_CHARS by @eduardomozart in #784
- External dB with new snmysqlexternal parameter by @geotsot in #793
- feat(ldap): Add Active Directory nested group matching and fix PHP LDAP auth errors by @eduardomozart in #791
- Refactor host validation and save logic by @eduardomozart in #785
- hostgetkey store token before save in db and return by @kbats183 in #748
- Stable Release PR For 1.5.10.1798 - 2026-03-15 by @fog-workflows[bot] in #799
New Contributors
- @eduardomozart made their first contribution in #782
- @kbats183 made their first contribution in #748
Full Changelog: 1.5.10.1763...1.5.10.1798
1.5.10.1763
What's Changed
- merge stable - 1.5.10.1754 into dev by @fog-workflows[bot] in #774
- Fix iPXE compilation error for HTTPS FOG Installs (dev-branch) by @rluzuriaga in #776
- Stable Release PR For 1.5.10.1763 - 2026-02-15 by @fog-workflows[bot] in #786
Full Changelog: 1.5.10.1754...1.5.10.1763