v8.8.0

SagerNet/sing-boxv8.8.0Sep 30, 2026by snipe

Upgrading?

AI Summary

Snipe-IT v8.8.0 is a major release requiring PHP 8.2+, introducing an official mobile app beta, sync adapters, and a unified calendar.

Key Highlights

  • Requires PHP 8.2.0 or greater (8.4+ recommended) with a note about future features.
  • Official Snipe-IT Mobile App is now in Beta for iOS and Android.
  • Sync adapters (beta) introduced for systems like Jamf Pro, Google Workspace, and Fleet.
  • New Non-Admin Dashboard and Unified Calendar features added.

Breaking Changes

  • Requires PHP 8.2.0 or greater

New Features

  • Official Mobile App (Beta)
  • Sync Adapters (Beta)
  • Unified Calendar
  • Non-Admin Dashboard
  • Asset Model Merge Tool
  • Microsoft Graph mailer integration

Full Release Notes

> [!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!

<img width="500" height="281" alt="atomic" src="https://github.com/user-attachments/assets/b8abdf6d-0013-43eb-b102-0d9e4a372c04" />

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](https://discord.gg/yZFtShAcKk)!** It’s full of great people. We even wrote about it [here](https://grokstar.dev/culture/2024/06/the-unlikely-rise-of-discord-as-a-support-channel/)!
- **Follow us on Bluesky** at [@snipeitapp.com](https://bsky.app/profile/snipeitapp.com)
- **Follow us on Mastodon** at [hachyderm.io/@grokability](https://hachyderm.io/@grokability)
- **Join us on Reddit** (a thing I never thought I'd say) at [/r/Snipe_IT](https://www.reddit.com/r/Snipe_IT/)
- **Join us in [MacAdmins Slack](https://join.slack.com/t/macadmins/shared_invite/zt-4blwac4fa-u8AGhqN5QwjfCUZ_jyI2jA)** 
- **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](https://github.com/grokability/snipe-it-mobile).

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](https://github.com/grokability/snipe-it-mobile/discussions).**

## 🔄 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.

<img width="3758" height="3268" alt="FireShot Capture 141 - Sync Adapters __ Snipe-IT Demo -  snipe-it test" src="https://github.com/user-attachments/assets/0461f4bd-f068-49a7-9318-4f8d2c5de3a2" />

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](https://snipe-it.readme.io/docs/sync-adapters). 

> [!CAUTION]  
>  **If you have existing assets, you VERY LIKELY want to CHECK the "Match vendor hosts to existing assets by serial number" box. Skipping that part will create duplicate assets, since your vendor's ID hasn't yet been stored in our system.**

<img width="788" height="123" alt="Screenshot 2026-09-30 at 7 01 15 PM" src="https://github.com/user-attachments/assets/33f5d228-c76e-4aee-a15d-b7b80ca51938" />

In testing this, the most common mixup people have when things aren't syncing as expected is that the asset tag template field was filled in with potentially non-unique variables. Check your logs when you first start to play around with this and adjust as needed. 

If we're missing one that makes sense for us to add, just open a feature request and we'll take a look. 


## 🎛️ Non-Admin Dashboard

The dashboard was admin-only for as long as anyone can remember. That's no longer the case. Anyone who can manage at least one type of checkoutable item (assets, accessories, licenses, consumables, or components) or users now gets a dashboard tailored to what they're allowed to see:

<img width="3504" height="3283" alt="FireShot Capture 017 - Dashboard __ Snipe-IT Demo -  snipe-it test" src="https://github.com/user-attachments/assets/d9749f4d-0585-4054-8d1e-411a0e20c1c3" />

Users who don't have permissions will still get redirected to their individual profile where they can only see their own items. 

## 🗓️ Unified Calendar

People have been asking for this for nearly a decade, and it's finally here. We have a new top-level `/calendar` page that shows every scheduled event Snipe-IT knows about in one place: asset audits, expected checkins, EOL and warranty expirations, license expirations and terminations, user end dates, maintenances, and reservations. A "Today" widget on the dashboard pulls the same feed for a rolling 7-day preview so you know what's coming as soon as you login, and can drill down through "type" selectors on the calendar page itself.

<img width="3504" height="1894" alt="FireShot Capture 016 - Calendar __ Snipe-IT Demo -  snipe-it test" src="https://github.com/user-attachments/assets/3fbccef1-0292-4942-9b6b-4018af8162d4" />


<img width="3517" height="3283" alt="FireShot_Capture_017_-_Dashboard____Snipe-IT_Demo_-__snipe-it_test_" src="https://github.com/user-attachments/assets/632f531d-2dfa-4722-b603-fb8dc039e440" />

Similar to the non-admin dashboard, users will only see this new icon/page if they have the ability to manage actions or items where we log a calendar event. 


## 🛎️ Requestables Overhaul

Big changes in the checkout-request workflow:

- Reservation windows. Requests can carry a start and end date, and those windows show up on the unified calendar. Click a reservation event, get the pre-filled fulfill screen for that specific request. 
- Reservations with a start or end date are automatically added to the new calendar
- Quantity is only required on the types where it actually makes sense.
- Calendar events for reservations link to the item's checkout screen 

## ⛙ Asset Model Merge Tool

We knew this was going to be needed, *especially* with the new sync adapters, since it's very possible to accidentally create new asset models if your mapping isn't _just_ right (marketing model name vs internal model name). This new tool works similar to the user-merge, which lets you pick which is the "real" one, and the "survivor" absorbs the assets and logging of the others.

https://github.com/user-attachments/assets/6d5d2ee9-e605-4eda-9ab2-cdf03de57b1c


## 📤 Microsoft Graph mailer

Native support for sending mail through Microsoft Graph, which is the OAuth-based path that Microsoft 365 tenants generally prefer over legacy SMTP AUTH. 

## 💃 OIDC access tokens can hit the API

You can now use OIDC-issued access tokens as bearer tokens against `/api/v1`. No more workaround of minting a Passport personal-access token separately.

## 🕹️More Bulk Controls

- **Categories bulk edit.** Same UX as the assets / licenses / users bulk edit flows we shipped in prior releases.
- **Locations bulk edit.** Ditto for locations.

## 🥺Deprecations

- **`maintenance_type` string field on the maintenances API is deprecated.** The `/api/v1/maintenances/*` endpoints now return both the legacy `maintenance_type` string AND a new `maintenance_type_details` object (`id` / `name` / `tag_color`). Read `maintenance_type_details.name` for the same value going forward. The bare string field will be removed in a future major release.

## 🎉 Upgrading

Same as always: `php upgrade.php` from your Snipe-IT directory. Full walkthrough at [snipe-it.readme.io/docs/upgrading](https://snipe-it.readme.io/docs/upgrading).

Docs note: we're in the middle of updating [the docs](https://snipe-it.readme.io) 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
* Force Manager 'value' to be string (even though it's an integer) by @uberbrady in https://github.com/grokability/snipe-it/pull/19535
* 🖼️ Requestable Items: allow bulk fulfillment, replenish from pending, allow more types of items by @snipe in https://github.com/grokability/snipe-it/pull/19539
* 🎥 Calendar UI by @snipe in https://github.com/grokability/snipe-it/pull/19494
* Fixed #18907 - Change default queue, make all notifications queable. by @uberbrady in https://github.com/grokability/snipe-it/pull/19126
* Add necessary parts to invoke new 'background' queued mail provider by @uberbrady in https://github.com/grokability/snipe-it/pull/19552
* Added location as checkout target for asset history importer by @snipe in https://github.com/grokability/snipe-it/pull/19553
* Bumped Boost from v2.5.4 to v2.6.0 by @marcusmoore in https://github.com/grokability/snipe-it/pull/19554
* Cap the calendar backfill to 2000 rows per model source by @snipe in https://github.com/grokability/snipe-it/pull/19557
* Email Notifications: Made Asset Image size responsive by @Godmartinz in https://github.com/grokability/snipe-it/pull/19561
* Testing: Allowed tests to be run in parallel by @marcusmoore in https://github.com/grokability/snipe-it/pull/19565
* Fix backup restoration when using a unix socket by @NyCodeGHG in https://github.com/grokability/snipe-it/pull/19558
* Added support for sending mail via Microsoft Graph by @SBCV-apegram in https://github.com/grokability/snipe-it/pull/19574
* Docker: Allow for overriding of specific apache limits by @misilot in https://github.com/grokability/snipe-it/pull/19576
* 🎥 Locations: Add bulk edit, improve bulk delete by @snipe in https://github.com/grokability/snipe-it/pull/19577
* Tighten up the default configuration for Trusted Proxies. Added Tests. by @uberbrady in https://github.com/grokability/snipe-it/pull/19578
* API Transformers: Check individual rows, not just general permissions by @snipe in https://github.com/grokability/snipe-it/pull/19579
* Added orphaned file checker console command - Fixed #8898 by @snipe in https://github.com/grokability/snipe-it/pull/19582
* Acceptances: Delete pending acceptances when checking in accessory via API by @marcusmoore in https://github.com/grokability/snipe-it/pull/19580
* Bumped Boost to v2.7.0 by @marcusmoore in https://github.com/grokability/snipe-it/pull/19581
* a11y: Added sr-only on non-tabbed tables by @snipe in https://github.com/grokability/snipe-it/pull/19585
* Locations View: Fixed duplicated icon and crossed results by @snipe in https://github.com/grokability/snipe-it/pull/19586
* Fixed #18260 - informal variants of locales returned wrong plural translations by @snipe in https://github.com/grokability/snipe-it/pull/19587
* Tests: Slightly improve testing speed by @marcusmoore in https://github.com/grokability/snipe-it/pull/19583
* 🖼️ Importer cleanup and add skip nulls by @snipe in https://github.com/grokability/snipe-it/pull/19588
* Clean up unreachable code (via phpstan) by @snipe in https://github.com/grokability/snipe-it/pull/19589
* Fix double rollbars by @snipe in https://github.com/grokability/snipe-it/pull/19590
* Removed unused label constants by @snipe in https://github.com/grokability/snipe-it/pull/19591
* Fixed phpstan complaining about `env()` outside of config files by @snipe in https://github.com/grokability/snipe-it/pull/19592
* Fixed phpstan “will always evaluate to true” errors by @snipe in https://github.com/grokability/snipe-it/pull/19593
* Add more relations to delete console command by @snipe in https://github.com/grokability/snipe-it/pull/19599
* Fix missing company creation modal by @MatheusGarvao in https://github.com/grokability/snipe-it/pull/19600
* Change the 'default' queue back to 'sync' :/ by @uberbrady in https://github.com/grokability/snipe-it/pull/19604
* Improve deployment notes for Claude by @uberbrady in https://github.com/grokability/snipe-it/pull/19607
* Unified all modals into blade components by @snipe in https://github.com/grokability/snipe-it/pull/19610
* add TZe_241_B by @Godmartinz in https://github.com/grokability/snipe-it/pull/19611
* Bump crowdin/github-action from 2 to 3 by @dependabot[bot] in https://github.com/grokability/snipe-it/pull/19596
* Update AssetModelsController docblocks for route model binding by @darkdi in https://github.com/grokability/snipe-it/pull/19594
* API: Fixed sorting by order_number in components endpoint by @marcusmoore in https://github.com/grokability/snipe-it/pull/19613
* Wrong format for <img tag in checkin emails by @andreaci in https://github.com/grokability/snipe-it/pull/19623
* Labels: Fixes Default label values from being nulled when switching Label Engines by @Godmartinz in https://github.com/grokability/snipe-it/pull/19619
* Added “clone” permission gate by @snipe in https://github.com/grokability/snipe-it/pull/19631
* Read SCIM group members as ids instead of hydrating User models by @marcusmoore in https://github.com/grokability/snipe-it/pull/19634
* Update to the latest (patched) laravel-scim-server by @uberbrady in https://github.com/grokability/snipe-it/pull/19645
* Bumped Boost to v2.8.1 by @marcusmoore in https://github.com/grokability/snipe-it/pull/19632
* Fixed stale pending acceptances from various scenarios by @marcusmoore in https://github.com/grokability/snipe-it/pull/19555
* Notifications: Fixes #19532 Accepted and Declined notifications are sent to CC emails only by @Godmartinz in https://github.com/grokability/snipe-it/pull/19637
* Optional OIDC bearer-token authentication for the API by @rodchristiansen in https://github.com/grokability/snipe-it/pull/19378
* Yank out stray \Log::error() lines - whoops! by @uberbrady in https://github.com/grokability/snipe-it/pull/19660
* Upgrade Livewire to 4.3.3 by @uberbrady in https://github.com/grokability/snipe-it/pull/19406
* Notifications: [FD-57297] Fixes Asset Checkout, Add tests for checkout and checkin webhook notification payloads by @Godmartinz in https://github.com/grokability/snipe-it/pull/19655
* 🖼️ Added Fleet, InTune, Unifi, Addigy, etc RMM/MDM sync adapters by @snipe in https://github.com/grokability/snipe-it/pull/19628
* Better handle incomplete checkouts for non-users by @snipe in https://github.com/grokability/snipe-it/pull/19666
* Acceptances: Fixed accepting and declining components by @marcusmoore in https://github.com/grokability/snipe-it/pull/19665
* Labels: adds Dymo Labelwriter_30330 by @Godmartinz in https://github.com/grokability/snipe-it/pull/19663
* Labels: Fixes #19515 the way the QR text is handled from legacy to New Label Engine by @Godmartinz in https://github.com/grokability/snipe-it/pull/19633
* Add checked out to in checkin forms by @snipe in https://github.com/grokability/snipe-it/pull/19678
* Fix for unused custom fields being populated by @uberbrady in https://github.com/grokability/snipe-it/pull/19627
* Drop the dead duplicate depreciation_min string by @darkdi in https://github.com/grokability/snipe-it/pull/19673
* Fixed: Preserve literal angle brackets in info-panel notes by @mrjcap in https://github.com/grokability/snipe-it/pull/19676
* Added more info to checkin pages by @snipe in https://github.com/grokability/snipe-it/pull/19683
* Fix ABM pagination: read meta.paging.nextCursor, not links.next by @bjhinkle in https://github.com/grokability/snipe-it/pull/19686
* Fixed #19518 - added support for SASL LDAP by @snipe in https://github.com/grokability/snipe-it/pull/19556
* Labels: [FD-56300] add support for 1D barcode to zebra 18939 by @Godmartinz in https://github.com/grokability/snipe-it/pull/19679
* Implement PHPStan result caching in GitHub Actions by @staabm in https://github.com/grokability/snipe-it/pull/19668
* Added Ubuntu Landscape adapter by @snipe in https://github.com/grokability/snipe-it/pull/19692
* 🎥 Fixed #19690  - Added model merge from asset model index by @snipe in https://github.com/grokability/snipe-it/pull/19695
* 🎥 Added adapters to settings index filter box by @snipe in https://github.com/grokability/snipe-it/pull/19697
* Added help text for Iru/Kanji and renamed the adapter by @snipe in https://github.com/grokability/snipe-it/pull/19698
* Clean up sync adapter rows on soft-delete and purge by @snipe in https://github.com/grokability/snipe-it/pull/19699
* Fixed #19694 - add more built-in fields to AxM adapter by @snipe in https://github.com/grokability/snipe-it/pull/19700
* Fixed #19693 - added apple’s built in MDM for AxM adapter by @snipe in https://github.com/grokability/snipe-it/pull/19701
* Bulk Checkout: [FD-57246] Fix Select2 Enter handling before AJAX results load by @Godmartinz in https://github.com/grokability/snipe-it/pull/19702
* 🎥 Improved custom http adapter UI field mapping, adding more logging by @snipe in https://github.com/grokability/snipe-it/pull/19703
* 🎥Compact extra vendor fields into dropdown widget by @snipe in https://github.com/grokability/snipe-it/pull/19704
* Fixed #19670 - better handle S3 files consistently by @snipe in https://github.com/grokability/snipe-it/pull/19706
* Better handle detaching groups and users on delete by @snipe in https://github.com/grokability/snipe-it/pull/19711
* Fixed RB-22033 - Google SSO callback 500 when the callback URL is hit without a code by @snipe in https://github.com/grokability/snipe-it/pull/19713
* Better trap transport errors in cli and cron by @snipe in https://github.com/grokability/snipe-it/pull/19714
* Docker: Enable OPcache in Alpine Docker images by @danez in https://github.com/grokability/snipe-it/pull/19712
* Switch to blade component for callout on checkout by @snipe in https://github.com/grokability/snipe-it/pull/19716
* Categories: Added bulk edit to index by @snipe in https://github.com/grokability/snipe-it/pull/19723
* Fixed #12190 - Dashboards for non-admins by @snipe in https://github.com/grokability/snipe-it/pull/19728
* Notifications: Fixed cc emails silently failing by @marcusmoore in https://github.com/grokability/snipe-it/pull/19730


## 🤘Security Rockstars

We've fixed 59 security issues in this release, thanks to the work of these diligent folks who are working every day to keep open source safer for everyone through responsible disclosure and collaboration:

- @0xcelien                                                                                                                                                                                                                                                                                                                
- @QwesiRED                                                                                                                                                                                                                                                                                          
- @arpitjain099                                                                                                                                                                                                                                                                                            
- @baeseungwon1010 (배승원)                                                                                                                                                                                                                                                                                                
- @christopherfi-dev                                                                                                                                                                                                                                                            
- @kaizhi888                                                                                                                                                                                                                                                                                                               
- @pavelkohout396                                                                                                                                                                                                                                                                          
- @PizzaStev3                                                                                                                                                                                                                                                                                           
- @rajivraj                                                                                                                                                                                                                                                                                                                
- @isanghyeon                                                                                                                                                                                                                                                                                            
- @tao0845                                                                                                                                                                                                                                                                                                                 
- @tonghuaroot                                                                                                                                                                                                                                                                                                             
- @W1nterFr3ak                                                                                                                                                                                                                                                                                     
- @d3do-23                                                                                                                                                                                                                                                                           
- @wolvenspud                                                                                                                                                                                                                                                                                                              
- @manus-pi                                                                                                                                                                                                                                                                                                          
- @manus-use   

## New Contributors
* @NyCodeGHG made their first contribution in https://github.com/grokability/snipe-it/pull/19558
* @SBCV-apegram made their first contribution in https://github.com/grokability/snipe-it/pull/19574
* @MatheusGarvao made their first contribution in https://github.com/grokability/snipe-it/pull/19600
* @darkdi made their first contribution in https://github.com/grokability/snipe-it/pull/19594
* @mrjcap made their first contribution in https://github.com/grokability/snipe-it/pull/19676
* @bjhinkle made their first contribution in https://github.com/grokability/snipe-it/pull/19686
* @staabm made their first contribution in https://github.com/grokability/snipe-it/pull/19668
* @danez made their first contribution in https://github.com/grokability/snipe-it/pull/19712
 
**Full Changelog**: https://github.com/grokability/snipe-it/compare/v8.7.2...v8.8.0

Related Repositories