Repository navigation
Releases
v8.8.3 - Docker Alpine PHP2SHELL security patch
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater, 8.4+ recommended. PHP 8.2 is still in security release support until 31 Dec 2026, but let's not play that game - and some of the new features we're working on will require PHP 8.3+, so... get on that, ferreal!
Didja miss us? Sorry for the extra tagging/release noise, but we were notified that we released 8.8.2 about 10 minutes before Alpine released their patched PHP versions, so we had to rebuild and push the updated tags.
Ubuntu docker users were already covered by the previous release, so this is just for the docker Alpine folks.
It's... been a long day on our side, probably pretty long on your side too.
Stay safe out there, folks.
What's Changed
- Fixed #19895 - remove PHP 8.4/8.5 deprecation notices by @sudarshanvashisht in #19896
New Contributors
- @sudarshanvashisht made their first contribution in #19896
Full Changelog: v8.8.2...v8.8.3
v8.8.2
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater, 8.4+ recommended. PHP 8.2 is still in security release support until 31 Dec 2026, but let's not play that game - and some of the new features we're working on will require PHP 8.3+, so... get on that, ferreal!
Happy PHPocalypse for those who celebrate.
We're sure you've heard about the PHP2SHELL exploit that was patched today. If not, you can read a little about it here, but suffice to say it's BAD. Like, really really bad.
Absolutely EVERYONE is encouraged to upgrade their version of PHP ASAFP
Our hosted fleet is fully patched, so those of you nestled in our loving arms are already good to go with nothing for you to do. This release fixes just a few small bugs, but it really a convenience release so that folks on docker can get a real tagged version instead of using latest.
Docker Users
We don’t pin the patch versions in the docker images, so a rebuild will get whatever is latest for the distro.
Ubuntu back-patches their packages and then gives them a sub version (the 24.0.13) version, for example:
apt list --installed | grep php
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libapache2-mod-php8.3/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php-common/now 2:93ubuntu2 all [installed,local]
php-memcached/now 3.2.0+2.2.0-4ubuntu3 amd64 [installed,local]
php8.3-bcmath/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-cli/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-common/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-curl/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-dev/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-gd/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-igbinary/now 3.2.13-1ubuntu3 amd64 [installed,local]
php8.3-ldap/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-mbstring/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-memcached/now 3.2.0+2.2.0-4ubuntu3 amd64 [installed,local]
php8.3-msgpack/now 1:2.2.0~rc2-3ubuntu1 amd64 [installed,local]
php8.3-mysql/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-opcache/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-readline/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-redis/now 5.3.7+4.3.0-3ubuntu1 amd64 [installed,local]
php8.3-xml/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]
php8.3-zip/now 8.3.6-0ubuntu0.24.04.13 amd64 [installed,local]Similarly, Alpine has back-patched for this security vulnerability.
Check inside the running container, replacing snipe-it with the container name:
docker exec snipe-it php -v
To see the full Alpine package versions:
docker exec snipe-it sh -c 'apk info -v | grep -E "^php[0-9]+-"'
What's Changed
- Fixed #19870 and #19869 - small maintenance improvements by @snipe in #19871
- Fixed #19595 - numbers in custom fields exporting inconsistently by @snipe in #19872
- 🎥 Fixed #19778 - allow bulk scanner auditing by 2D bardcode by @snipe in #19874
- Fixed #19626 - respect lastname firstname order more thoroughly by @snipe in #19875
- Fixed potentially missing rows in license seats api endpoint by @marcusmoore in #19883
- Bulk Checkout: Fixes redirect option not persisting by @Godmartinz in #19881
- Fixed #19887 - use alpine 3.24 to get newer php by @markof88 in #19889
- Fixed #18508 Custom Fields: Allow cloning custom fieldsets by @marcusmoore in #19793
Full Changelog: v8.8.1...v8.8.2
v8.8.1
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater, 8.4+ recommended. PHP 8.2 is still in security release support until 31 Dec 2026, but let's not play that game - and some of the new features we're working on will require PHP 8.3+, so... get on that, ferreal!
Happy Monday (or Tuesday, depending on timezone), nerds!
Whew! We've moving at light speed, but so much good stuff to share with you.
LOTS of work on the new sync adapters - and thank you ALL who have given us feedback on them. We don't have direct access to every one of them, so your quick feedback has been able to help us improve them for everyone. They are still in beta, but we love that folks are already integrating them. Of all the features we've released in the past few years, this one really seems to have landed, and we're thrilled.
The Highlight Reel
There have been 673 commits since the last tagged release (v8.8.0), 77 issues resolved, and 81 security fixes.
Don't be too spooked by the CVEs in the changelog. None of them ever hit production as they're largely dev tools or dependencies that never surface in the end product, but it's important to keep up to date on these things.
🎥 Checkbox multi-select dropdowns
Some (where appropriate) multi-select dropdowns in Snipe-IT now render with actual checkboxes next to each option. You'll mostly see this on very long lists where the "tag-style" multi-select kind of sucked.
🎥 Label Editor
You can now build, tweak, preview and save your own label layouts without fighting template files thanks to some big changes with the label engine. Great work from @Godmartinz!
Create a new custom label from scratch, go nuts! Choose either a sheet or tape label, configure its dimensions and layout, and then customize its content, supported features, and appearance in the label editor.
You can also import a previously exported custom label configuration from a JSON file or by pasting the configuration text. The imported label can then be reviewed, edited, and saved as a new custom label. This allows for crowdsourcing labels, which we're hoping will help the entire community.
... and tons more. Check it out here: #18938
🎥 Bulk actions and archive for Components, Consumables, and Accessories - and marking Consumables as "consumed"
You can now bulk edit, bulk delete, bulk check in, and archive without actually deleting. Consumables got a similar pass, and we added a new "mark as consumed" option for assignments that aren't coming back.
Bulk reminders for unaccepted items
We added a select-all or selective send checkbox UI to the unaccepted items UI. (Note: That interface has also moved out of the reports section, since it kinda didn't belong there to start with.)
We also added a new API endpoint so you can wire this up to a cron and send regular reminders at whatever cadence you like.
Company-specific webhooks for check-in and check-out
If you run FMCS with per-company Slack or Teams channels, check-in and check-out webhooks now route to the company's own integration instead of a shared global one.
Sync adapters updates
A ton happened on the adapter side this release, in no small part to the incredibly quick feedback we got from the community.
- The Intune settings page gained a new Custom Extras widget where you can pair any Snipe-IT custom field with a dot-path into the vendor record (for example
hardwareInformation.systemManagementBIOSVersion), and we'll be rolling this out to the other adapters in follow-up releases. - Intune's preset field list grew from 4 to 28, now including Wi-Fi MAC, storage total and free, encryption state, IMEI, MEID, Azure AD device info, enrollment profile, management cert expiration, and more.
- Intune gained an opt-in per-device enrichment checkbox for Ethernet MAC and Physical Memory, since Graph's LIST endpoint returns null for those (off by default because it adds a Graph call per device).
- Intune also picked up scope tag filters, so you can narrow a sync to tagged devices only.
- Every adapter now has a Model Fieldset default on its settings page, so any asset model the adapter has to auto-create gets linked to that fieldset.
- Every adapter now has a Skip-adding-new-assets checkbox, for folks who want sync to only update existing records and never create.
- AxM MAC addresses now come out colon-formatted and uppercased (
01:23:45:67:89:AB), so themac_addresscustom-field validator stops rejecting them. - AxM dual-SIM IMEIs are now handled correctly, with
abm_imei_1andabm_imei_2as separate mapping targets (see the upgrade note below if you hadabm_imeimapped). - Jamf Pro asset-tag push now writes to
general.assetTaginstead ofuserAndLocation.assetTag, which Jamf was silently discarding. - Sync adapter pagination no longer loses the query string on the last page.
last_seennow honorsAPP_TIMEZONEproperly.- Model constraints are enforced across adapters and the importer.
- Breadcrumb trails now extend into adapter sub-tabs so you know where you are (🎥 in #19859).
Note
Sync Adapters are still in beta They're coming along great, but it's important to know that they're a work in progress. We're working tirelessly to make them fit every integration, but they are still beta, so use them at your own risk.
Entra SCIM de-provisioning no longer fails when employeeNumber changes
If an Entra tenant flipped a user to inactive in the same PATCH that updated their employeeNumber, the whole PATCH would 500 on the enterprise-schema op and the user wouldn't actually get deactivated. We now scan every schema node for the attribute before giving up. If you were hitting the Entra de-provisioning failure, you'll get working de-provisioning back automatically after upgrade with no config change needed.
Docs note: we're in the middle of updating the docs to reflect all the new features, screenshots, and changes in this release. If you see something in the app that isn't in the docs yet, that's why. We're working through them.
Upgrading
Same as always, run php upgrade.php from your Snipe-IT directory. Full walkthrough at snipe-it.readme.io/docs/upgrading.
A couple of upgrade heads-ups
- If you were using the AxM adapter and had
abm_imeimapped to a custom field, you'll need to re-map it toabm_imei_1(and optionallyabm_imei_2for dual-SIM devices), because the old key is no longer in the picker. - If you had any custom integration on the Jamf side relying on
userAndLocation.assetTag, you'll want to update it, because the push now writes togeneral.assetTagwhere Jamf actually stores asset tags.
Quick update on the official mobile app
Thanks (yet again) for all of the feedback! You've all been amazing, and we should be ready to go into public beta by the end of the month!
What's Changed
- Notifications: Fixed #19719 - Added location to checkout and checkin email by @marcusmoore in #19740
- Fixed #19752 - add checkbox to skip adding new assets if no existing match in Snipe-IT by @snipe in #19756
- Sync Adapters: Fixed #19755 - preserve query string when pagination is empty by @snipe in #19757
- Fixed #19754 - handle two IMEI numbers, format MAC addresses by @snipe in #19758
- Fixed #19745 - added additional known fields from Intune API by @snipe in #19759
- De-normed company ID on calendar events table by @snipe in #19764
- Notifications: 🖼️ Run Check in/outs through Company specific webhook integrations by @Godmartinz in #19669
- Depreciations: Adds Diminishing Values Depreciation by @Godmartinz in #19331
- Sy...
v8.8.0
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater, 8.4+ recommended. PHP 8.2 is still in security release support until 31 Dec 2026, but let's not play that game - and some of the new features we're working on will require PHP 8.3+, so... get on that!
Whew! Over 750 commits and 83 merged pull requests since v8.7.2, and enough features we decided to go for a mid-release. So much exciting stuff in this release, check it out for yourself!
- 📱 Official Snipe-IT Mobile App is in Beta!
- 🔄 Sync adapters (beta)!!
- 🎛 Non-Admin Dashboard
- 🗓 Unified Calendar
- 🛎 Requestables Overhaul
- ⛙ Asset Model Merge Tool
- 📤 Microsoft Graph mailer
- 💃 OIDC access tokens
- 🕹 More Bulk Controls
- 🥺 Deprecations
- 🎉 Upgrading
- 🤘Security Rockstars
BUT FIRST...
Join the Community!
- Join our Discord! It’s full of great people. We even wrote about it here!
- Follow us on Bluesky at @snipeitapp.com
- Follow us on Mastodon at hachyderm.io/@grokability
- Join us on Reddit (a thing I never thought I'd say) at /r/Snipe_IT
- Join us in MacAdmins Slack
- Subscribe here on Github for notifications about new releases. (We recommend selecting "Releases" only for most users - this repo can get noisy.)
Okay, onto the new stuff:
📱Official Snipe-IT Mobile App is in Beta!
There are a ton of great unofficial Snipe-IT mobile apps out there, but folks have been clamoring for one that is built in-house so they know it will be maintained by us. Welp, it's finally here, and it is, of course, open source.
If you're up for testing the beta, you can do that here:
- iOS: https://testflight.apple.com/join/3B3YcWph
- Android: https://play.google.com/store/apps/details?id=com.grokability.snipeitmobile
If you run into issues or have feature requests, please use the discussions tab in the snipe-it-mobile repo.
🔄 Sync adapters (beta)!!
One of the things we've always been really proud about here is our REST API. We know that you're all using bespoke tools, and the (incredible) Snipe-IT community has come up with some great independent scripts to get info from your MDM/RMM/etc into Snipe-IT. Srsly, we cannot thank you all enough! And you can keep using those if that's what works for you.
If you're looking for something native so that you don't have to maintain a python/powershell integration script in addition to everything else you have to balance, we're so excited to introduce native Sync Adapters.
We're shipping today with 19 built-in adapters for the most commonly requested systems, and also a "Custom HTTP" adapter, which means whatever weird Lua integration script you had running on a Raspberry Pi under your desk just might be able to be retired.
Adapters we're shipping right now:
- Addigy
- Apple Business Manager
- Fleet
- Google Workspace
- Jamf Pro
- Jamf Platform
- Jamf School
- JumpCloud
- Kandji
- Kaseya VSA 10
- Landscape (Canonical)
- Meraki Systems Manager
- Microsoft Intune
- Mosyle
- NinjaOne
- osctrl
- UniFi
- Workspace ONE
- Zentral
Documentation on the new sync adapters is [available here](h...
v8.7.2
Howdy howdy! Just a quick point release to tidy things up as we've been getting your (really useful) feedback (TYSM!). Small MariaDB fixes, a few SCIM fixes, and some importer tweaks as well.
What's Changed
- API+UI: Use observers to prevent double logging on restores by @snipe in #19500
- Custom Consumables Report: Fixed #15586 - Added custom consumables report by @snipe in #19502
- Backup/Restore: Fixed #19506 and #19506 - MariaDB executable/path change by @snipe in #19507
- LDAP Wizard: Fixed #19519 - better handle mTLS by @snipe in #19523
- Restore SSL database keys within tests by @marcusmoore in #19522
- Asset Checkin Notification: [FD-55583] Fix Null location bug by @Godmartinz in #19520
- Fixed
--forcenot skipping the PHP version prompt in ldap:troubleshoot by @kratos0718 in #19514 - Improve Boost settings by @marcusmoore in #19508
- Importer: Small UI improvements, send welcome email if user created by @snipe in #19525
- Added #10606: support shift-click checkbox range selection by @DanielDavis05 in #19509
New Contributors
- @kratos0718 made their first contribution in #19514
- @DanielDavis05 made their first contribution in #19509
Full Changelog: v8.7.1...v8.7.2
v8.7.1
Happy Monday, folks! This is just a small patch release for some quality-of-life fixes, mostly for the importer and LDAP wizards, with a few SCIM fixes as well. Also, you can now manage maintenance types in the UI. We'll be improving that UI moving forward, but we wanted to at least get that capability into your hands.
What's Changed
- Asset Importer: Fixed #19468 - removed requiredness for custom fields by @snipe in #19471
- Cleaned up some PHPStan errors, re-ran baseline by @uberbrady in #19480
- Importer: Fix for Livewire+modal+select2 search by @snipe in #19483
- Action_logs cleanup script by @uberbrady in #19462
- Fix the add_link_colors_to_settings migration by @sirzerator in #19475
- Change Address parsing to better handle Okta's SCIM by @uberbrady in #19485
- Rebuild Docker images weekly to pick up security patches by @markof88 in #19397
- 🖼️ LDAP Wizard: Fixed #19481 - added ldap summary to last page of wizard by @snipe in #19486
- Annotated Attribute return types on eloquent models by @marcusmoore in #19490
- Normalize HTTP responses for external services by @uberbrady in #19487
- Manage maintenance types UI by @snipe in #19492
- Handle SCIM group syncing with very large user+group syncs by @snipe in #19496
- Custom Fields - Fixed #19498 - re-add radio buttons as booleans by @snipe in #19499
New Contributors
- @sirzerator made their first contribution in #19475
- @markof88 made their first contribution in #19397
Full Changelog: v8.7.0...v8.7.1
v8.7.0
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater, 8.4+ recommended. PHP 8.2 is still in security release support until 31 Dec 2026, but let's not play that game
Buckle up, friends. This one has been simmering on develop for a while and it turned into a proper feast. 1,182 commits across 136 pull requests, several long-running feature branches finally released, and a lot of little "oh crap THAT was still broken?" cleanups along the way. Grab a coffee.
The Highlight Reel
Replenish and orders (for real this time)
Accessories, consumables, and components now have proper "add stock" and "remove stock" flows with a ledger. Instead of admins hand-editing the qty field on a parent row and hoping for the best, every quantity change writes an action-log entry with the delta, a note, and (optionally) an order number. This leads the way to orders being a real first-class object that you can start from and add things to. (That's not here yet, but it's coming.)
We skipped licenses for now, as they have a more complex structure, but we wanted to get at least these three into your hands now.
LDAP wizard, from monolith to multi-step
The mile-long "LDAP settings" blade has been retired to a nice pasture. In its place: a four-step Livewire wizard (Connection → Auth + Scope → Attribute Mapping → Sync + Defaults) with a per-step "Test connection" button so you can find out you fat-fingered the bind DN before you save. Department and group sync now runs on first login too, so people don't show up in Snipe-IT as departmentless ghosts until an admin manually pokes them. We still include - for now - a link to the old LDAP form just in case any issues come up.
We also fixed a handful of fields that were not named correctly and therefore were never correctly mapping. Yay!
SCIM: now with Okta and Microsoft Entra multi-company support
Entra/Okta (and possibly others) were rejecting Snipe-IT's SCIM responses for multi-company setups. Not anymore. Also fixed: SCIM group handling, SCIM addresses handling, and a nested-attributes case that could throw a 500. If you've been avoiding automated SCIM provisioning because it "mostly" worked, come back and try again. (Srsly, SCIM rules.)
Requestable accessories
Users can now request accessories from the requestable-items link, not just assets and asset models. Same familiar request flow, same admin queue, just with a wider net of things people can ask for. (We're going to be refactoring requestables in the next few weeks as well, to work out some of the friction points folks have been surfacing over time.)
Superuser Impersonation
Superusers can now impersonate other users to reproduce a bug report without needing the user's password. Great for "I clicked the button and nothing happened" requests where you can't tell if it's a permission gate, a browser thing, or wishful thinking.
This is OP by design, so it requires extra steps. You'll need to add ALLOW_USER_IMPERSONATION=your-username to your .env (with your-username being the username you want to grant impersonation abilities to) to enable this. Superusers cannot impersonate each other.
Transfer all items between users
When someone leaves the company, one click moves every asset/ accessory/consumable/license assigned to them over to their replacement.
Optional password on user creation
For SSO-only shops or orgs where the user is never going to login, the "password required" fields are now optional. If the "this user can login" button is checked, the password field is required, otherwise it's hidden.
Quickscan check-in by serial
Quickscan check-in now accepts either an asset tag OR a serial number. Barcodes can vary in what they encode, so this stops the "wait, our label prints the serial not the tag" problems.
Component report
Long-requested. A proper component-level report showing what's assigned where, plus its own bulk actions.
Importer wizard
The CSV importer got the same treatment as LDAP: proper wizard flow with column mapping, preview, and clearer error surfacing when a row won't take. alert_on_response on category imports now actually gets read, API-driven asset imports stop writing null created_by, and the general "why did this row fail" story is a whole lot better.
Backup + restore safety net
Restore actually validates the uploaded archive now, AND takes a safety backup of the current database BEFORE it wipes anything. If the restore then blows up, you get a pointer to the pre-restore backup file instead of an empty database and a heart attack. Backups also got a tooltip explaining the pruning behavior, and the pre-restore snapshot honors your DB prefix if you're using one.
Bulk everything (well, almost)
Bulk operations expanded to (deep breath): audit, delete-accessories, delete-companies, delete-departments, delete-depreciations, delete-status-labels, delete-imports, delete-licenses, checkin-with-location. The refactored bulk-actions dropdown now dynamically enables/disables actions based on what's actually valid for the selected rows, so you can't accidentally try to "bulk restore" a batch of items that aren't deleted.
FMCS Floater Mode
We added a new setting in Admin > General called "floater mode". This allows items/users with no company assigned to "float" and be visible to everyone. With floater mode enabled with FMCS:
- A user in Company A can see their own company's records AND every uncompanied record.
- A user with no company can see every record in the system.
- An asset with no company can be checked out to anyone.
- Any asset can be checked out to a target that has no company.
Read more about FMCS and floater mode in the docs!
UI + accessibility
- CSS sticky columns replace the bootstrap-table fixed-columns extension across the board. No more jagged / drifting last-column overlay on narrow viewports. The old fixed-columns extension is out of the bundle entirely.
- Alert menu now Livewire-driven, no more full-page refresh to see a new alert appear, and this should result in faster page loads overall for folks who have the "show alerts in menu" option checked.
- Accessibility pass. Aria labels, alt tags, help-text component, inline error component. WCAG AAA is the target.
- Advanced-search deeplinks. The filter modal now writes
?filter[...]to the URL, so you can share "everyone in Sales with a laptop older than 4 years" with a coworker just by pasting the link.
Datepicker Custom Field Type
Where appropriate, datepickers have been replaced by a date time picker, where precise times can be selected - and datetime picker is now an available custom field type.
We added a neat little preview for your custom fields as well, so you can see exactly what your users will see in the asset form.
Bug fixes/features worth a callout
- Duplicate checkout requests on double-click no longer create duplicate rows.
- Maintenance responsible-party now respects a deliberate clear (
null) instead of silently filling in the acting user (#19452). - Currency exports normalized across every table's XLSX / CSV output (#19415).
- MS Teams webhook payloads formatted correctly.
- EULA PDF no longer chokes on nested markdown, and the end-user download works too.
- Checkin location choices were refactored to be more consistent across checkout screens.
- Category / model view pages should run faster now, as we fixed an N+1 loading issue.
- Login Page now respects light/dark mode previously selected
- FMCS+Location Scoping now allows you to download a CSV of the mismatched items
Parent companies
One-level company hierarchy is here. Set a company's parent, and child companies inherit the FMCS scoping rules you'd expect. If you've been building out org structure with a bunch of top-level companies because you had no other option, you can now group them the way your organization actually looks, and you don't have to add people to every single sub-company manually if they should be able to manage items from several companies.
Upgrading
Same as always: php upgrade.php from your Snipe-IT directory. Full walkthrough at snipe-it.readme.io/docs/upgrading.
Docs note: we're in the middle of updating the docs to reflect all the new features, screenshots, and changes in this release. If you see something in the app that isn't in the docs yet, that's why. We're working through them.
What's Changed
- SCIM: added throttle by @snipe in https://github.com...
v8.6.3
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater, 8.4+ recommended. PHP 8.2 is still in security release support until 31 Dec 2026, but let's not play that game
This is largely a security release, but also fixes some more niche SCIM/LDAP issues and adds some additional UX love around more confusing and/or dangerous features (such as remote login headers.)
What's Changed
- Authentication/LDAP - Fixed [FD-56031] - throw Exception if STARTTLS fails by @uberbrady in #19190
Full Changelog: v8.6.2...v8.6.3
v8.6.2
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater, 8.4+ recommended. PHP 8.2 is still in security release support until 31 Dec 2026, but let's not play that game
Happy Caturday, nerds!
This release largely addresses some SCIM issues stemming from the newly mappable fields from the last release (largely affecting Azure/Entra and Okta, since they both behave very differently), and a handful of security issues and general bugs, but we also added new markdown textarea custom fields.
We've also optimized a bunch of queries to speed custom asset report and the models API endpoint.
BUT ALSO - there's one new feature that we're excited about that may or may not matter to your workflow:
Feature: "Floater" company setting
We've always had two use cases for FMCS: folks who wanted null to be a sort of floater company where anything can be assigned to users without a company, and people who wanted null company to act as a pseudo company, where it was restricted to only fellow-null-company-ed things.
We now have a setting in Admin Settings > General > Treat items and users without company associations as floaters.
When disabled, items can only be checked out to targets without a company association if the item also has no company - null is treated as its own pseudo-company. When enabled, items from any company can be checked out to targets with no company assignment.
New QR Codes for Non-Assets
We also now include QR codes for things-other-than-assets (locations, etc). Those will generally show up in your side info-panel. They are not customizable at this point, they just serve as a simple way to, for example, scan the QR code on your phone from your laptop to continue your work on a mobile device. I'm sure we'll get tons of feedback on how people want those to work moving forward and we'll adjust accordingly.
SCIM Fixes
A lot of these fixes address Azure/Entra specifically, but we've improved support for managers, email addresses, user work addresses and groups.
Documentation
We're (still, always) working as quickly as we can to update the docs with new endpoints, new screenshots, all the new features, etc. We appreciate your patience. We're pretty proud of the work that's gone into our docs, but that also means every release means a bunch of places that need updates. We're working on it as fast as we can, but if there's something that isn't documented or you have a question about in the meantime, our GH Discussions or Discord are a great place to start.
Security
There are (as always) security improvements, so folks are encouraged to upgrade, even if none of the stuff we're excited about is stuff you're excited about.
What's Changed
- Fixed FD-55359 - adds CSS color validation by @snipe in #19097
- Fixed "not deployable" translation usage by @Godmartinz in #19102
- Fixed FD-55710 - flatten EXIST queries by @snipe in #19108
- Adds #19083 display name as an option for label field options by @Godmartinz in #19104
- 🎥 Fixed #19086 - added markdown textarea custom fields by @snipe in #19117
- Check in and delete by company via command line by @snipe in #19118
- Bump note length validation for supplier model by @marcusmoore in #19127
- Fixed #19128: Rendering on general settings page by @marcusmoore in #19132
- 🎥 Fixed #19133 - added optional clear asset name to quick scan checkin/audit by @snipe in #19135
- Accessories component blades by @snipe in #19140
- Updated consumables to use blade components by @snipe in #19141
- Components component blade by @snipe in #19142
- [FD-55583] Fixed google webhook check in notification by @Godmartinz in #19103
- Fix to SCIM companies, and some PHP errors around inheritance by @snipe in #19144
- Logging: Fixed FD-55757 - Added changed log meta to accessories and licenses by @snipe in #19160
- QR Codes: Added QR codes for non-assets by @snipe in #19158
- Labels: FD[55918] Fixes location not displaying on labels when assigned to. by @Godmartinz in #19161
- Auditing: Added try catch around sending notification by @marcusmoore in #19162
- Custom Asset Report: Fixed [RB-21669] - use subquery for action_date by @uberbrady in #19182
- SCIM: Fix address handling and work around Entra email changes by @uberbrady in #19183
- Fixed #19095 and #19096 - SCIM updates in Azure/Entra by @snipe in #19115
- Reporting: improve validation for item and target types by @marcusmoore in #19175
- Importer: allow rendering simple error messages by @marcusmoore in #19170
- FMCS/Console: Fixed #19166 scope check updates for multiple companies, adds floater by @snipe in #19167
Full Changelog: v8.6.1...v8.6.2
v8.6.1
This is a re-tag because we suspect one of the merges for multiple companies got mushed up, so the feature list will be the same as the v8.6.0 release. We repeated the feature list here since a lot of folks (understandably) don't watch the releases that closely and we didn't want them to miss the good stuff!
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater, 8.4+ recommended. PHP 8.2 is still in security release support until 31 Dec 2026, but let's not play that game
Wow wow wow. Wow.
We know it was just two weeks ago from our last mid-release, but this one was just too juicy to sit on. The changelog looks small, but it addresses some of our most sought-after features. Here's the highlight reel:
Users can now have more than one company
Yep. If you have FMCS (Full Multiple Company Support) enabled and need to control access via companies, this was previously potentially a problem. You might have a user who you don't want to promote to superuser (the only permission that bypasses FMCS constraints, but also has a LOT of access to stuff you might not want them to have), but they needed to manage items across several companies, and we couldn't support that in the past. Now we do.
Bulk license seat checkin via GUI
Screen.Recording.2026-05-22.at.11.32.35.AM.mov
Bulk checkin assets via GUI
Screen.Recording.2026-05-21.at.10.08.14.PM.mov
SCIM
We've ironed out a bunch of provider-specific SCIM issues that came from us adding groups, locations, manager, and company, but we are still hearing small murmurs about Okta SCIM integration, so if you're having trouble, do let us know.
Also, the new multiple-companies-for-users isn't supported by SCIM (yet?), so we suggest waiting on mapping groups if you have a situation where users might belong to multiple companies. (That mapping gets squirrely with different providers - we're working through issues as quickly as we can.)
Reddit? Somehow?
So there was an unofficial (but blessed by us) subreddit for Snipe-IT. The creator of the sub asked for a mod to take it over, and we applied and - oh no - we were approved, because we needed one more place to keep track of bugs and requests. Anyway, if Reddit is your jam, you can find us here: https://www.reddit.com/r/Snipe_IT/ - Don't be super-shocked if we direct you back to GH if your ask is a bug or a feature request though.
Documentation
This is our second release in a month, and a lot has changed. We're working as quickly as we can to update the docs with new endpoints, new screenshots, all the new features, etc. We appreciate your patience. We're pretty proud of the work that's gone into our docs, but that also means every release means a bunch of places that need updates. We're working on it as fast as we can, but if there's something that isn't documented or you have a question about in the meantime, our GH Discussions or Discord are a great place to start,
Security
There are (as always) security improvements, so folks are encouraged to upgrade, even if none of the stuff we're excited about is stuff you're excited about.
Mobile Update
We're slated to release the official Snipe-IT mobile app this week! And of course it will be open source. It will be a beta release, so be kind - a lot of work has gone into this over the past year, and we're pretty proud of what we've got (but we also know that this is the beginning, not the end, of the task.)
API pagination
If you use our API, we've simplified the pagination parts. Before, if you were building an integration, you'd have to do a bunch of math (booo) to figure out what the limit and offset were. We've made this a lot simpler for you, so you can now pass page=1, page=2, and we'll sort it out for you. You can still use the old offset/limit parameters, so nothing needs to change on your end if you've already got something that works, but new integrations should be a bit easier now.
What's Changed
- Fixed anchor tag on report index page by @marcusmoore in #19012
- Fixed importer
created_attimestamp getting weird on large imports by @snipe in #19017 - Disabled debugbar on acceptance report by @marcusmoore in #19022
- Fixed duplicate headers in users csv export by @marcusmoore in #19023
- Tighten permission changes and UI, fixed #18831 by @snipe in #19024
- Fixed asset maintenances page not rendering with missing asset by @marcusmoore in #19021
- Added page number support in API, added
per_page,total_pages, andcurrent_pageto API response by @snipe in #19019 - Fixed SCIMConfig typo "string_starts_with" by @snipe in #19026
- Fixed #18659 - added more data to user export by @snipe in #19027
- Move and rename CheckInOutRequest to CheckInOutTrait by @snipe in #19028
- Fixed #19029 - switch back to text for purchase cost by @snipe in #19030
- Optimize incorrect checkout acceptances command by @snipe in #19032
- Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #19041
- Fixed #18624: Remove trailing slashes in license urls by @marcusmoore in #19043
- 🖼️ Add custom maintenance types, responsible party and assigned to to maintenances by @snipe in #19039
- Remove direct symfony dom-crawler and css-selector dev dependencies by @joelpittet in #19053
- Bulk checkin assets from UI by @snipe in #19056
- 🎥 Bulk checkin license seats by @snipe in #19058
Join the Community!
- Join our Discord! It’s full of great people. We even wrote about it here!
- Follow us on Bluesky at @snipeitapp.com
- Follow us on Mastodon at hachyderm.io/@grokability
- Follow our blog at Grokstar.Dev
- Subscribe here on Github for notifications about new releases. (We recommend selecting "Releases" only for most users - this repo can get noisy.)
Full Changelog: v8.5.0...v8.6.1











