Releases: grokability/snipe-it
v8.1.16
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Happy Monday, everyone! This release fixes some bugs around maintenances and bulk editing custom fields, adds the ability create multiple maintenances at one time, and took some steps to speed some things up in some interfaces.
As we mentioned here on Github and on our blog, we're experimenting with a new way of handling issues, requests, etc here. We're trying to break as much as we can down into two-week sprints - you can see the past sprint we just closed here.
We'll also continue experimenting with the Roadmap view on Github in an ongoing effort to convey what we're currently working on, what longer-term features we're trying to find solutions for, and so on. (The roadmap view is a little cumbersome to manage on our end, but we'll keep trying.)
We didn't quite make all of the items in first sprint so they've been moved to the next one, but we'll get a better sense for that over time.
What's Changed
- Fixed #17076: Disable optional status ID form field if value is blank/Do Not Change by @snipe in #17078
- Fixed #17085:
assigned_type
not being nulled on asset delete+checkin by @snipe in #17087 - Bumped container image versions by @kovacs-andras in #16998
- Fixed #16240: Made additional strings translatable by @snipe in #17099
- Fixed #16157: Added advanced search to users by @snipe in #17101
- Fixed #16205: Add an index to
deleted_at
for those with many deleted action_logs by @uberbrady in #17100 - Fixed #17102: Added keywords to admin settings search for notifications by @snipe in #17103
- Fixed #16218: Added centos to the switch case by @snipe in #17107
- Adds a clear button to custom radio buttons in bulk edit by @Godmartinz in #17108
- Fixed #17067: Allow only sending cc email when acceptance required by @marcusmoore in #17115
- Fixed #16934 and #17068: update asset by ID in importer by @snipe in #17114
- Require
assigned_x
to be integer on asset model by @marcusmoore in #16948 - Adds a check for assigned target not being null when creating an asset by @Godmartinz in #16675
- Fixed #11807: Standardize date-picker by @snipe in #17120
- Added highlighting on table search by @snipe in #17122
- Added print button to tables by @snipe in #17124
- Fixed #17117: Use translation for “site default” by @snipe in #17125
- Fixes #17023: Added ability to bulk add maintenances by @snipe in #17126
- Fixed #17084: Adds Eula table to User account area with download option by @Godmartinz in #17110
- Fixed
action_date
inaction_logs
by @snipe in #16469 - Fixed #17127: Added note to EULA info by @snipe in #17129
- Handle potentially missing category upon checkin by @marcusmoore in #17152
- Fixed #17138: category type was case-sensitive by @snipe in #17157
- Changed default visibility on history view columns by @snipe in #17158
- Update location print assigned assets by @Robert-Azelis in #17155
- Update user print assigned assets by @Robert-Azelis in #17154
- Fixed bad method calls in user index api call by @marcusmoore in #17141
- Fixed Expected checkin notification erroring on unknown users by @marcusmoore in #17142
- Fixes #17051: Nulling Custom Fields In Bulk Asset Updates by @spencerrlongg in #17094
- Fixed: #17136 loads item relation properly in account EULA tab by @Godmartinz in #17166
- Fixed #17028: Allows bulk editing assets with a status type of pending by @Godmartinz in #17151
- Added
hasUndeplyableStatus
check to bulk checkout by @Godmartinz in #17092 - Fixed: Adding Total to Consumable View Page by @akemidx in #17109
- Fixed #17163: insufficient permissions on editing an asset maintenance by @snipe in #17174
- Fixed #17172: Better handle checkin date overrides by @snipe in #17175
- Added logic around bulk asset menu options by @snipe in #17176
- Docker: harden updating of
php.ini
in entrypoint by @chrisnovakovic in #17147 - Fixed #17177: use maintenance title for delete confirmation by @snipe in #17178
- Added #14997: Display department manager in user view and list by @timoschwarzer in #14998
- Fixed #14542: Added fullscreen option for location view tabs by @snipe in #17181
New Contributors
- @kovacs-andras made their first contribution in #16998
- @chrisnovakovic made their first contribution in #17147
- @timoschwarzer made their first contribution in #14998
Full Changelog: v8.1.15...v8.1.16
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.)
v8.1.15
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Happy Monday everyone! This release offers some UX fixes, some API enhancements for consistency, and three new classes of things you can use the importer for: manufacturers, suppliers, and categories. See what's on deck for the next release here: https://github.com/grokability/snipe-it/milestone/26.
Important API header change:
In order to to make it easier for you folks to build all the great stuff you do with the Snipe-IT REST API, we've added a few additional headers on API requests. Now every API request will return the following headers regardless of whether you've hit your API limit and are now returning a 429
response:
Header | Value |
---|---|
X-RateLimit-Limit |
The rate limit defined in your .env for API_THROTTLE_PER_MINUTE |
X-RateLimit-Reset |
The reset in seconds |
X-RateLimit-Remaining |
The remaining requests within the X-RateLimit-Reset |
X-RateLimit-Reset-Timestamp |
The epoch timestamp for when the rate limit will reset |
Retry-After |
The reset in seconds, same as X-RateLimit-Reset |
Previous versions of the API would only return some of these headers if you were getting a 429 - too many requests
response.
For example:

What's Changed
- Fixed #16958 - exclude archived assets from expiring assets report by @snipe in #16982
- Moved faker out of dev reqs for seeding by @snipe in #16985
- Fixed:
PHP_UPLOAD_LIMIT
not set for PHP 8.3 by @Tinyblargon in #16993 - Better messaging when an asset fails validation on quick scan by @snipe in #16999
- Ensure boolean returned from method with boolean return type by @marcusmoore in #17007
- Fixed #16961 - Manually add API headers by @snipe in #16986
- Removed
Blade::render
from breadcrumbs by @snipe in #17014 - API Locations - added
company_id
for API request by @Robert-Azelis in #17012 - Updated translations by @snipe in #17017
- Fixed column persistence on User's Self View of Assigned Assets by @akemidx in #17020
- Avoid dividing by zero in DefaultLabel by @marcusmoore in #17022
- Fixed translation strings in Username/Email formats by @akemidx in #17027
- Reference correct translation string by @marcusmoore in #17026
- Added
created_at
date picker on Custom Reports by @akemidx in #17024 - Fixed clear button not actually clearing dates on date picker by @akemidx in #17025
- Replace
two_factor_options
macro by @marcusmoore in #17010 - Replace
skin
anduser_skin
macros with blade component by @marcusmoore in #17009 - Fixed #17034 - larger header color box on small views by @snipe in #17035
- Added #17036 - suppliers importer by @snipe in #17037
- Avoid displaying empty table in
SendAcceptanceReminder
command by @marcusmoore in #17040 - Small refinements for suppliers and locations API and list view by @snipe in #17041
- Docker: Ensure permissions on Laravel log file by @jerm in #17045
- Handle missing location when rendering labels by @marcusmoore in #17044
- Added manufacturer importer by @snipe in #17061
- Replace customfield_elements form macro take two by @marcusmoore in #17042
- Added category importer by @snipe in #17062
- Fixed #15320 - added status label to bulk checkout by @snipe in #17019
- API Models - added
requestable
filter for API request by @Robert-Azelis in #17013 - More robust php.ini update. by @amedranogil in #17038
- Fix to rate-limiter on higher rate-limits by @uberbrady in #17074
New Contributors
- @Tinyblargon made their first contribution in #16993
- @amedranogil made their first contribution in #17038
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.1.4...v8.1.15
v8.1.4
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Happy Friday! This release handles some wonkiness around notifications (slack and emails).
What's Changed
- Removed
2fa_authed
from session upon logout by @marcusmoore in #16884 - Added #16887 - last updated date range for custom report by @snipe in #16889
- Allow updating asset model image via api by @marcusmoore in #16877
- Fix webserver/user file permissions issue by @jerm in #16894
- Fixed #16863 - better handle custom fields validation when unique but not required by @snipe in #16895
- Removed seat "name" from licenses seats API/UI response by @snipe in #16896
- Replaced Form::radio helpers by @marcusmoore in #16898
- Fixed #16901 - use default currency for asset maintenance cost by @snipe in #16905
- Reworked MS Teams deprecation warnings and notifications visibility by @Godmartinz in #16611
- Fixed #16456 - added CSS ids to sidenav options and BYOD by @snipe in #16907
- Fixed #16535 - more info to side rail in accessories by @snipe in #16908
- Fixed #16554 - Added models to deletable check by @snipe in #16909
- Handle settings not being available in full name accessor by @marcusmoore in #16900
- Remove logo outline from L7162_B by @marcusmoore in #16920
- Handle displaying deleted creator of an accessory by @marcusmoore in #16918
- Replace locales macro by @marcusmoore in #16921
- Handle potential hard exception in Asset@getImageUrl method by @marcusmoore in #16916
- Fixed typo in
snipeit.sh
by @JassonCordones in #16930 - A quick check to make sure that webhooks still fire when email is off by @uberbrady in #16942
- Clearer text on status label types by @snipe in #16943
- Gracefully handle error when editing of soft deleted users by @marcusmoore in #16946
- Make checkin emails not send when not configured to be by @uberbrady in #16953
- Removes double scrollbar from groups by @Godmartinz in #16963
- Added dynamic properties to audit notifications by @Godmartinz in #16962
- Improve notifications by @marcusmoore in #16932
- New tests for checkin/checkout counters by @uberbrady in #16980
- Fixed potential slack webhook setting inconsistencies by @marcusmoore in #16968
- Improved creator on accessory show page by @marcusmoore in #16979
New Contributors
- @JassonCordones made their first contribution in #16930
Full Changelog: v8.1.3...v8.1.4
v8.1.3
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Happy Wednesday! This release fixes a few small bugs, updates a library dependency that had a CVE, and hopefully handles some of our docker users.
We're sorry this has been a hassle for the docker folks.
Dockerhub makes it surprisingly un-intuitive to keep your Dockerhub namespace when you switch a GH repo namespace. Why would we want to keep our old Dockerhub namespace, you ask? Good question! Turns out you can't move namespaces and keep your stars and pull counts, which we kinda want, since we're the original creators.
We had to undo some of the much faster build optimizations we had previously made for Docker people - they take almost an hour now - ouch. But we'll be revisiting that and speeding it back up in the next week.
To clarify, Docker folks should be pulling from snipe/snipe-it
, not grokability/snipe-it
. It's counter-intuitive, I know. Dockerhub won't let us move without losing literally a decade of pull and star stats. :(
What's Changed
- Livewire component for smoother check for location companies by @snipe in #16860
- Set upload-limit by @chfsx in #16806
- Adds Label fields offset as an option by @Godmartinz in #16790
- Add barcode support for Avery 3490 by @realchrisolin in #16847
- Fixed #15629 - prevent setting
assigned_to
without setting assigned_type by @uberbrady in #15907 - Fix dockerhub repo we're pushing to, and arm build names by @jerm in #16851
- Added missing contributors by @marcusmoore in #16864
- Fixed #16815: Avoids potential error when settings table is empty by @ntaylor-86 in #16865
- More dockerhub repo references by @jerm in #16868
- One more docker repo name fix by @jerm in #16871
- Redirect options on audit by @snipe in #16873
- Fixed breadcrumbs for cloning by @snipe in #16874
- Fixes CVE-2025-46734: league/commonmark contains a XSS vulnerability in Attributes extension by @joelpittet in #16875
- Move back to multiarch builds with emulation (for now) by @jerm in #16876
New Contributors
- @chfsx made their first contribution in #16806
- @realchrisolin made their first contribution in #16847
Full Changelog: v8.1.2...v8.1.3
v8.1.2
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Happy Monday! This tagged release should hopefully fix the docker builds that were not auto-pushing since the repo move. (We're still trying to find a way to get back to the old location where our 10M docker pulls and stars more accurately reflect reality, but Docker Hub doesn't make that particularly easy.)
We know the docker builds are running very slow right now, and we're working on speeding those up.
What's Changed
- Fixed updating CONTRIBUTORS.md via cli by @marcusmoore in #16829
- Fixed #16834 - better handle bad data in permissions by @snipe in #16836
- Small improvements to scoped views by @snipe in #16837
- Reworked fix for for 24mm_D label indent errror by @Godmartinz in #16826
- Fixed purchase cost column always shown by @akemidx in #16531
- Copy changes from 'master' to develop for docker builds by @uberbrady in #16840
- Removed duplicate input-group color corrections from theme skins by @Godmartinz in #16841
Full Changelog: v8.1.1...v8.1.2
v8.1.1
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Hi again - did you miss us? :)
This is just a point release to smooth out a funky UI artifact on some screens and a few color fixes for dark-mode skins.
What's Changed
- Fixed fieldset display if custom fields are not available by @snipe in #16827
- Fixed Dark Mode color choices for fieldset links by @Godmartinz in #16797
- Handle category being null in CheckoutableListener by @marcusmoore in #16799
- Add audit button to BS table partial, redirect if asset won't validate by @snipe in #16828
Full Changelog: v8.1.0...v8.1.1
v8.1.0 - Security Release
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Happy Tuesday! Hopefully everyone's power is back up and running after Europe's big power outage yesterday.
As you may have noticed, we've got a new address! We moved the Snipe-IT repo from snipe/snipe-it
to grokability/snipe-it
. You can read a little more about that on our blog, but the short version is that everything went smoothly, existing PRs and issues were moved, and redirects from the old repo address to the new digs should be automatic.
We now have file uploads for locations, the ability scope locations to company, the ability to seed common manufacturers, locations as a QR code destination, and we added the ability to add custom fields to audit screens (and a bunch more stuff detailed below.)
This release also fixes a ton of bugs, adds more accessibility controls, and addresses some additional security controls around printable lists of items and a vulnerability in Laravel File Validation. As this is a security release, we strongly recommend upgrading as soon as possible.
Added:
- Added #13475 - Custom fields to audit screen by @snipe in #16653
- Added #13274 - Search more related fields in activity report by @snipe in #16655
- Added #9660 - Location QR code option to labels by @Godmartinz in #16651
- Added #16257 - Acceptance PDF logo upload by @snipe in #16617
- Added #15702 - added
termination_date
, reordered fields for clarity by @snipe in #16762 - Added: #16715 - LinuxMint support to
snipeit.sh
by @jerm in #16763 - Added #2353: Add ability to tie locations to companies - 2023 edition by @Toreg87 in #12577
- Added #9249 - added file uploads to locations by @snipe in #16780
- Added #16217: database config, added option to skip ssl on the database dump by @ntaylor-86 in #16543
- Added validation around user store endpoint by @marcusmoore in #16432
- Added Label 5520 with 1D barcode - remove 2D barcode by @azmcnutt in #16443
- Added highlight to items when the remaining is less than the
min_amt
by @snipe in #16495 - Added pagination to Hardware By Serial API Request by @spencerrlongg in #16561
- Added
min_qty
to asset model bulk edit by @snipe in #16493 - Added
webp
as inline-able images by @snipe in #16631 - Added command to fix bulk checkin action log entries by @marcusmoore in #16500
- Added missing gates to printing locations by @snipe in #16672 - reported by koyomihack00 (Sn1p3r-H4ck3r) - Thank you!
- Added a check for category email alert boolean by @Godmartinz in #16717
- Added Support for Uploading
avif
logo Images by @spencerrlongg in #16674 - Toggle for logging deprecation warnings by @snipe in #16716
- Added console command to disable SAML logins by @jerm in #16521
- Added nullsafe checks to Users by @spencerrlongg in #16793
- Added
pa11y
by @snipe in #16792 - Requestable/Request Item API Endpoints by @spencerrlongg in #15922
- Added option to redirect back to checkedInFrom user for assets/licenses/accessories by @Godmartinz in #16667
- Added/refined ability to scope locations by company by @snipe in #16660
- Improved settings page for location-company scoping by @snipe in #16791
- Added checkout date to license seats by @snipe in #16785
- Added ability to seed common manufacturers by @snipe in #16786
- Added signature to licenses in print view, misc other fixes by @snipe in #16666
- Support more Mint versions and verify newer Ubuntu versions in
snipeit.sh
by @jerm in #16798 - Added modal tests by @snipe in #16441
- Added tests around login attempt logging by @marcusmoore in #16577
- Added tests around deleting assets by @marcusmoore in #16636
- Added tests around emailing and printing assigned assets by @marcusmoore in #16553
Improved
- Replaced call to
Form::close()
by @marcusmoore in #16473 - Convert
Form::select
to blade component by @marcusmoore in #16065 - Remove unneeded eager loading for user show page by @marcusmoore in #16520
- Updated login attempts and throttle duration by @snipe in #16609
- #16628 - added formatting for license keys by @snipe in #16630
- Text tweaks and nicer buttons for requestable items by @snipe in #16643
- Moved warranty/depreciation to be with the other cost/eol values by @akemidx in #16536
- Update
rollbar-laravel
to 8.1 by @marcusmoore in #16613 - Set empty array if group permission is a string or null by @snipe in #16658
- Avoid logging consumable checkins and purge action log of bad entries by @marcusmoore in #16494
- Scope selectlist by company by @snipe in #16306
- [Docker] Don't cache composer deps, remove any .git repos that creep in by @jerm in #16700
- Handle potentially unsafe file output better during restore by @spencerrlongg in #16668
- Use x-icon blade component, nicer small-screen form size for datepicker on assets checkout by @snipe in #16719
- Disallow deleting accessories that have active checkouts by @marcusmoore in #16435
- Upgraded Debugbar to make deprecation warnings easier to find by @uberbrady in #16783
- Better handle
model_id
arrays passed to the API by @snipe in #16788 - Removed deprecation resulting in
Creation of dynamic property
error by @snipe in #16712 - Replaced calls to
Form::radio
helper on user create and edit pages by @marcusmoore in #16819 - Store
accepted_at
anddeclined_at
in action log when accepting/declining assets by @marcusmoore in #16676 - Improved wording in asset checkout emails by @marcusmoore in #16446
- Nicer disclosure UI for optional data by @snipe in #16822
- Update references to the repo to reflect move to @grokability org by @jerm in #16701
- Use fieldsets for branding page by @snipe in #16810
- Separate docker builds into Intel/ARM builds by @jerm in #16702
- Use default BS tables “no results” view, small UI formatting improvements by @snipe in #16821
- Removed
username
andpassword
requirement for LDAP by @fvollmer in #16592 - Updated
SECURITY.md
to indicate v8 is supported by @CloCkWeRX in #16738 - Fixed #8188 - Added Last Name as an email format by @akemidx in #16637
Fixed
- Fixed linking in saved report template dropdown by @marcusmoore in #16436
- Properly handle route model bound LicenseSeat not being found by @marcusmoore in #16488
- Fixed CVE-2025-27515: Laravel File Validation Bypass by @joelpittet in #16445
- Fixed timestamp in action log for bulk accessory check in by @marcusmoore in #16489
- Fixed new user modal pre-populating with first name and last name of acting user by @snipe in #16491
- Fixed various carbon displays by @marcusmoore in #16497
- Fixed location being automatically populated on asse...
v8.0.4
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Happy Wednesday! One more tiny point release that addresses issues some folks might have run into on creating a new user via the "New" modal windows, some auditing errors if you don't have a notification webhook set, and some weird redirects with the new report templates on Snipe-IT installations that live in a subdirectory.
If you're having problem using the upgrade.php
script with an error like Method Illuminate\Routing\Route:: breadcrumbs does not exist
, please run git pull; composer install --no-dev; php upgrade.php
, which will pull the latest code, install dependencies, and then run the upgrade script (which handles migrations, clearing caches, etc.)
Note
Please make sure you have changed your BS_TABLE_STORAGE
value to localStorage
in your .env
and clear your cookies after upgrading. See the pinned issue #16136 for additional information.
What's Changed
- Adds audit notification for MS Teams by @Godmartinz in #16414
- Changed
visited-link
andlink
colors in default theme to be more accessible by @Godmartinz in #16413 - Fixed custom report template route for installations in subdirectories by @marcusmoore in #16420
- Fixed user create modal - check if
$item
is set by @snipe in #16427
Full Changelog: v8.0.3...v8.0.4
v8.0.3
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Howdy folks! This is a small point release that handles a few small bugs that have surfaced over the past week.
If you're having problem using the upgrade.php
script with an error like Method Illuminate \Routing \Route:: breadcrumbs does not exist
, please run git pull; composer install --no-dev; php upgrade.php
, which will pull the latest code, install dependencies, and then run the upgrade script (which handles migrations, clearing caches, etc.)
Note
Please make sure you have changed your BS_TABLE_STORAGE
value to localStorage
in your .env
and clear your cookies after upgrading. See the pinned issue #16136 for additional information.
What's Changed
- Added "Reminder" to subject line of follow up asset checkout emails by @marcusmoore in #16156
- Fixed #16371 - incorrect count and missing name in acceptance reminder email by @snipe in #16375
- Add some safety around the charset-detection and transliteration in backup restore by @uberbrady in #16376
- Wrap long text in PDF export in tables by @snipe in #16378
- Added ldap invert active flag by @azmcnutt in #16379
- Avoid using authenticated user's email address in email partial by @marcusmoore in #16398
- Adds Translation strings to General and Branding Settings by @Godmartinz in #16150
- Fixed duplicate entries preventing LDAP sync from continuing by @Fiala06 in #15911
- Refactored audit notification to mail, added test, added alerts check to scheduler by @Godmartinz in #16251
- Fixed #16402 - localize "each" string in components tab on asset view by @snipe in #16403
- Fixed #16386 - some fields not populating with user data on edit by @snipe in #16409
- Fixed #16407 - weird layout on components for non super user by @snipe in #16410
- Fixed regression from #16150 where branding page could not be saved by @snipe in #16412
- Nicer model name formatting on RMB model not found by @snipe in #16415
New Contributors
Full Changelog: v8.0.2...v8.0.3
v8.0.2
Caution
This version of Snipe-IT REQUIRES PHP 8.2.0 or greater.
Howdy all! Just a small point release today to handle some tiny issues we've seen since the 8.0.0 release. We've also improved the look of the upgrader script to give you color support to make things a little clearer if something went wrong with your upgrade.
We've also changed the behavior of what happens when you edit an asset to a pending status. Previously, editing an asset to a non-deployable asset status would automatically check it in. Now, both deployable and pending status types will stay checked in (if they are checked out) and only archived and undeployable will automatically checkin assets. This is to account for use-cases like when an asset it out for repair should still technically be assigned to the user in question, as it will be returned once it comes back from repair.
Note
Please make sure you have changed your BS_TABLE_STORAGE
value to localStorage
in your .env
and clear your cookies after upgrading. See the pinned issue #16136 for additional information.
What's Changed
- Fixed #16173:
useraccountcontrol
was not included in the ldap query attributes by @joakimbergros in #16337 - Fixed #16331 - Don't make passport:install command require user input by @uberbrady in #16341
- Fixed renaming custom fields by @marcusmoore in #16345
- Nicer
upgrade.php
UI by @snipe in #16342 - Added
name
,model_number
andnotes
for stricter asset model API search by @snipe in #16356 - Added
--no-interaction
to additional passport commands by @snipe in #16363 - Add safety around bulk status update by @spencerrlongg in #16360
- Fixed acceptance reminder command lag on users with no associated email by @Godmartinz in #16361
- Allow pending as an asset status type that does not automatically check the asset in by @snipe in #16354
New Contributors
- @joakimbergros made their first contribution in #16337
Full Changelog: v8.0.1...v8.0.2