Repository navigation
chore(deps): update glpi/glpi docker tag to v12 - #49
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the
|
renovate
Bot
force-pushed
the
renovate/glpi-glpi-12.x
branch
7 times, most recently
from
October 13, 2026 19:05
6b0a748 to
b0db84a
Compare
renovate
Bot
force-pushed
the
renovate/glpi-glpi-12.x
branch
5 times, most recently
from
October 21, 2026 18:33
38df9bc to
6ed7935
Compare
renovate
Bot
force-pushed
the
renovate/glpi-glpi-12.x
branch
2 times, most recently
from
October 28, 2026 18:37
27b7bbd to
13e55dc
Compare
renovate
Bot
force-pushed
the
renovate/glpi-glpi-12.x
branch
from
November 2, 2026 19:04
13e55dc to
db00d12
Compare
renovate
Bot
force-pushed
the
renovate/glpi-glpi-12.x
branch
from
November 8, 2026 01:32
db00d12 to
0805bcf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
11.0.11→12.0.1Release Notes
glpi-project/glpi (glpi/glpi)
v12.0.1Compare Source
Added
Changed
Deprecated
Removed
API changes
Added
Changes
Deprecated
Removed
v12.0.0Compare Source
Added
morethanandlessthansearch operators for numeric fields (number, integer, decimal, count, mio).If your GLPI instance is behind a reverse proxy, you should add its IP(s) or CIDR range(s) to the new
GLPI_TRUSTED_REVERSE_PROXIESconstant and modify the newGLPI_REVERSE_PROXY_HEADERSconstant to include the headers your proxy uses to forward the client IP (X-Forwarded-Forby default,Forwardedand the otherX-Forwarded-*headers are also supported).When several proxies are chained, all of them must be listed in
GLPI_TRUSTED_REVERSE_PROXIES.Only the required HTTP headers should be listed for better security as any header not handled by the proxy could be spoofed by the client.
Setup > Data and Privacymenu item to centralize all data policies and privacy related settings.Setup > Data and Privacy.root_knowbaseitems_idconfiguration. It can be edited like any other article but it cannot be deleted. On upgrade, articles that have no parent (including the ones created from the former categories) become children of it.=istruthy=and=isnottruthy=RSQL operators.Changed
Setup > GeneraltoSetup > Security.system:statusnow gives information about database version.ERRORstatus for automatic actions that have repeatedly failed.Action failure is tracked based on a shutdown handler that checks if the action has completed normally.
When an action failure is caught, it will go back to a scheduled status and increment an error counter. If the action fails 5 times, the action gets put in an ERROR status and it will need manual intervention.
Failed actions get rescheduled using a backoff strategy starting at 1 minute and doubling for each failure up to a max delay of 30 minutes, plus a random delay between 0 and 2 minutes.
ABORTEDstatus for automatic actions terminated externally (ex: killed process). These actions are scheduled to re-run as soon as possible.status_msgproperty for the cronttask (automatic actions) service in the status checker format changed from "RUNNING: %d, STUCK: %d, TOTAL: %d" to "RUNNING: %d, STUCK: %d, ERROR: %d, TOTAL: %d".If your monitoring relies on parsing this string, make sure it can handle the new format.
erroredproperty for the cronttask (automatic actions) service in the status checker to indicate the names of the errored actions requiring manual intervention.Setup > GeneraltoSetup > Data and Privacyand renamed to "Historical logs".==and!=RSQL operators with boolean fields are coerced to=istruthy=and=isnottruthy=. There should be no noticeable change in behavior with any existing queries, but this was done to fix behavior with a field added with HLAPI v3.statetostatusto align with the built-in asset schemas in High-Level API v3. The name remains unchanged in v2.Deprecated
Removed
Sec-Fetch-Site/Originheader validation instead of per-request tokens. All_glpi_csrf_tokenhidden form fields andX-Glpi-Csrf-TokenAJAX headers must be removed from plugins. See API changes below for the full list of removed methods and helpers.KnowbaseItemCategoryitemtype and theknowbasecategoryright have been removed. Knowledge base categories are now regular articles; hierarchy is expressed by linking child articles to parent articles.TreeBrowse) support for the knowledge base. The KB aside provides browsing.SearchandBrowsetabs of the knowledge base article list. The list is now a plain search page.API changes
CronTaskmethods have been added.Added
Glpi\DBAL\QueryElementInterface, implemented by every SQL building block that may carry bound values (QueryExpression,QueryIdentifier,QueryValue,AbstractQuery). It exposesgetValue()for the SQL fragment andgetParams()for the values to bind for its?placeholders; both must always be used together.Glpi\DBAL\QueryIdentifier, to designate a database identifier (table or field name) that has to be quoted, instead of relying on a bare string.Glpi\DBAL\QueryValue, to designate a scalar value used in a statement. It renders as a?placeholder and carries the value to bind for it, instead of the value being inlined into the SQL. Not to be confused withQueryParam, which renders as?but binds nothing.Changes
QueryFunctionmethods now accept anyQueryElementInterfacewhere they used to accept only astringor aQueryExpressionSession::haveRight()now only returns a booleanCommonGLPI,CommonDBTMparameters now have a native PHP typeKnowbaseItem_Commentis now finalKnowbaseItem_Revisionis now finalusers_id_validatefield forCommonITILValidationis no longer supported. Useitems_id_targetanditemtype_targetinstead.Document::getDownloadLink()is no longer supported.knowbaseitemcategories_idfield inKnowbaseItemis no longer supported. Use the_parentsarray instead (parent articles, stored inglpi_knowbaseitems_knowbaseitems.knowbaseitems_id_parent).certificatesandentities_idoptions inNotificationTargetCertificateis no longer supported. These values are automatically computed based on the linked certificate.domainsandentities_idoptions inNotificationTargetDomainis no longer supported. These values are automatically computed based on the linked domain.bypass_rights,expose_privateandis_self_serviceparameters inCommonITILObject::getTimelineItems()is no longer supported.Ticket:link_to_problemmassive action is no longer supported. UseCommonITILObject_CommonITILObject:addmassive action instead.Ticket_Ticket:addmassive action is no longer supported. UseCommonITILObject_CommonITILObject:addmassive action instead.countElementsInTable()/DbUtils::countElementsInTable()method signatures changed.countDistinctElementsInTable/DbUtils::countDistinctElementsInTable()method signatures changed.getAllDataFromTable/DbUtils::getAllDataFromTable()method signatures changed.Dbutilsand the global counterparts insrc/autoload/dbutils-aliases.phpnow have strict type declarations except for methods that have been deprecated.User::getAuthToken()cannot be used forcookie_tokenanymore.glpi_userstable. It is now stored in theglpi_user_tokenstable.Auth::setRememberMeCookie()signature changed. It no longer accepts an empty value to trigger the removal of the cookie.KnowbaseItem_KnowbaseItemCategoryrenamed toKnowbaseItem_KnowbaseItem; tableglpi_knowbaseitems_knowbaseitemcategoriesrenamed toglpi_knowbaseitems_knowbaseitemswith columnsknowbaseitems_id(child) andknowbaseitems_id_parent(parent).knowbaseitemcategories_idcolumn ofITILCategoryandTaskCategoryis renamed toknowbaseitems_idand now references a knowledge base article.KnowbaseItem::getForCategory()renamed toKnowbaseItem::getChildrenArticles(); the HL API/Knowledge base/Categoryendpoints and theKBCategoryschema are removed.Glpi\Api\HL\Controller\AbstractController::getRawKnownSchemas()now has an optional$api_versionparameter to accommodate complex schema differences between API versions.Deprecated
ORDER BYclause.CommonITILSatisfaction::showSatisactionForm(), useCommonITILSatisfaction::showSatisfactionForm()instead.Glpi\Features\Inventoriable::showInventoryInfo()Glpi\Features\Inventoriable::displayAgentInformation()User::loadMinimalSession()DBConnection::switchToMaster()DBConnection::switchToSlave()DBmysql::$slaveDBmysql::isSlave()DBSlaveclasscountElementsInTableForMyEntities()/DbUtils::countElementsInTableForMyEntities()getTreeValueName()/DbUtils::getTreeValueName()getTreeForItem()/DbUtils::getTreeForItem()contructTreeFromList()/DbUtils::constructTreeFromList()contructListFromTree()/DbUtils::constructListFromTree()get_hour_from_sql()/DbUtils::getHourFromSql()$withcommentand$translateparameters ofgetTreeLeafValueName()andDbUtils::getTreeLeafValueName()Session::getNewCSRFToken(): CSRF protection is now handled viaSec-Fetch-Site/Originheader validation; token-based CSRF is no longer used.Session::validateCSRF(): replaced by header-based CSRF validation inCheckCsrfListener.Session::checkCSRF(): replaced by header-based CSRF validation inCheckCsrfListener.Session::cleanCSRFTokens(): no longer needed as CSRF tokens are no longer stored in session.csrf_token()Twig function: remove all_glpi_csrf_tokenhidden fields from forms; they are no longer required.getAjaxCsrfToken()JavaScript function: remove allX-Glpi-Csrf-Tokenrequest headers from AJAX calls; they are no longer required.fields.csrfField()Twig macro infields_macros.html.twig.escapeMarkupText()javascript function.Html::link()inc/includes.phpfile.Knowbaseclass. The knowledge base is browsed from the side panel ofKnowbaseItem.KnowbaseItem::SEEALLconstant.KnowbaseItem::searchForm()KnowbaseItem::showList()KnowbaseItem::showRecentPopular()knowbaseitems_id_parentparameter andallmy,myunpublished,allunpublished,allpublishedtypes ofKnowbaseItem::getListRequest().Glpi\Toolbox\IPUtilities::isCidrMatch(), useGlpi\Toolbox\IPUtilities::isIPInList()instead.Glpi\Toolbox\IPUtilities::isTrustedReverseProxy(), useSymfony\Component\HttpFoundation\Request::isFromTrustedProxy()instead.Removed
diff-match-patchJS libraryhotkeys-jsJS libraryjquery-prettytextdiffJS libraryjquery.rateitJS libraryjquery.fancytreeJS library. UseWunderbauminstead.Forms/FaIconSelectorJS moduleKnowbaseJS moduleleague/csvPHP library. Usephpoffice/phpspreadsheetinstead.guzzlehttp/guzzlePHP library. UseGlpi\Toolbox\HttpClientinstead.GLPI_SERVERSIDE_URL_ALLOWLISTconstant, replaced byGLPI_SERVERSIDE_URL_ALLOWED_PRIVATE_NETWORKS_CONTEXTSAuth::getErr()AuthLDAP::DELETED_USER_PRESERVEAuthLDAP::DELETED_USER_DELETEAuthLDAP::DELETED_USER_WITHDRAWDYNINFOAuthLDAP::DELETED_USER_DISABLEAuthLDAP::DELETED_USER_DISABLEANDWITHDRAWDYNINFOAuthLDAP::DELETED_USER_DISABLEANDDELETEGROUPSCommonITILObject::assign()CommonITILObject::showSatisfactionTabContent()ComputerAntivirusclassComputerVirtualMachineclassConfig::showFormDBSlave()Config::showFormSecurity()DBConnection::PROPERTY_SLAVEconstantDBConnection::createDBSlaveConfig()DBConnection::createSlaveConnectionFile()DBConnection::deleteDBSlaveConfig()DBConnection::getDBSlaveConf()DBConnection::isDBSlaveActive()DBConnection::saveDBSlaveConf()DBmysql::doQueryOrDie()DBmysql::deleteOrDie()DBmysql::guessTimezone()DBmysql::insertOrDie()DBmysql::query()DBmysql::queryOrDie()DBmysql::updateOrDie()DBmysql::truncate()DBmysql::truncateOrDie()DbUtils::getEntitiesRestrictRequest()Document::send()Glpi\Application\View\Extension\DataHelpersExtension::getVerbatimValue()Glpi\Application\View\Extension\PluginExtension::getPluginWebDir()Glpi\Dashoboard\Filter::getAll()Glpi\Http\Response::send()Glpi\Http\Response::sendContent()Glpi\Http\Response::sendError()Glpi\Http\Response::sendHeaders()Glpi\Inventory\Asset\Software::getCompareKey()Glpi\Plugin\Hook::CSRF_COMPLIANTconstantGlpi\Plugin\Hook::SHOW_IN_TIMELINEconstantGlpi\Plugin\HookManager::enableCSRF()Glpi\Toolbox\SanitizerclassHtml::ajaxFooter()Html::changeProgressBarMessage()Html::changeProgressBarPosition()Html::cleanInputText()Html::cleanPostForTextArea()Html::createProgressBar()Html::displayDebugInfos()Html::displayErrorAndDie()Html::displayNotFoundError()Html::displayProgressBar()Html::displayRightError()Html::entities_deep()Html::entity_decode_deep()Html::glpi_flush()Html::jsGetDropdownValue()Html::jsGetElementbyID()Html::jsSetDropdownValue()Html::progressBar()Item_PlugclassITILFollowup::ADDALLTICKETconstantITILFollowup::ADDGROUPTICKETconstantITILFollowup::ADDMYTICKETconstantKnowbaseItem::normalizeKbRevisionDiffHtml()KnowbaseItem_KnowbaseItemCategoryclassKnowbaseItem_Comment::getCommentForm()KnowbaseItem_Comment::showForItem()KnowbaseItem_Revision::showForItem()KnowbaseItemCategoryclassKnowbaseItemTranslation::defineTabs()KnowbaseItemTranslation::displayTabContentForItem()KnowbaseItemTranslation::getTabNameForItem()KnowbaseItemTranslation::showForm()KnowbaseItemTranslation::showFull()KnowbaseItemTranslation::showTranslations()LevelAgreement::getDataForTicket()Migration::addNewMessageArea()Migration::setOutputHandler()Migration::displayError()Migration::displayTitle()Migration::displayWarning()Pdu_PlugclassPlugin::getWebDir()QueryExprfessionclassQueryParamclassQuerySubQueryclassQueryUnionclassReminder::addVisibilityRestrict()SavedSearch::addVisibilityRestrict()Search::joinDropdownTranslations()SynchronizeUsersCommand::convertOldDeleteStrategyToNew()Ticket::getDatasToAddOLA()Ticket::olaAffect()Ticket_Ticket::getLinkedTicketsTo()TimerclassToolbox::addslashes_deep()Toolbox::callCurl(): useGlpi\Toolbox\HttpClientinsteadToolbox::getGuzzleClient(): useGlpi\Toolbox\HttpClientinsteadToolbox::getURLContent(): useGlpi\Toolbox\HttpClientinsteadToolbox::isUrlSafe()Toolbox::seems_utf8()Toolbox::sendFile()Toolbox::stripslashes_deep()v11.0.12Compare Source
Added
Changed
The "Other financial and administrative information" report now includes the licenses that are not linked to any software, so its totals can change.
Default behavior when submitting a Form that has only one destination is now redirecting to created item instead of showing the feedback page. Previous behavior is obtained by unchecking "Go to created item after creation" in General configuration > Default values.
Webhooks on ITIL tasks now match the entity of their parent item. A non-recursive task webhook defined in the root entity is no longer triggered by tasks of sub-entities: enable "Sub-entities" on the webhook to keep the previous behavior.
The "Refused equipments" setting of the logs purge now purges the history of refused equipments instead of the refused equipments themselves.
Deprecated
Removed
API changes
Added
Changes
Deprecated
Glpi\Application\Environment::shouldAddExtraCypressDataDuringInstallation()Glpi\Application\Environment::shouldAddExtraE2EDataDuringInstallation()Removed
Configuration
📅 Schedule: (in timezone UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.