Changes for page Why You Should Upgrade XWiki Regularly for Security and Stability
Last modified by Alex Cotiuga on 2026/07/13 06:43
From version 10.7
edited by Alex Cotiuga
on 2026/07/13 06:43
on 2026/07/13 06:43
Change comment:
There is no comment for this version
To version 1.4
edited by Alex Cotiuga
on 2026/05/12 14:47
on 2026/05/12 14:47
Change comment:
There is no comment for this version
Summary
-
Page properties (5 modified, 0 added, 0 removed)
-
Objects (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,0 @@ 1 -Why You Should Upgrade XWiki Regularly for Security and Stability - Parent
-
... ... @@ -1,1 +1,0 @@ 1 -resources.WebHome - Default language
-
... ... @@ -1,0 +1,1 @@ 1 +en - Hidden
-
... ... @@ -1,1 +1,1 @@ 1 - true1 +false - Content
-
... ... @@ -2,305 +2,292 @@ 2 2 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 3 3 {{html clean="false"}} 4 4 5 - <section class="resource-header" aria-labelledby="hero-title"> 6 - <div class="container"> 7 - <div class="text-center"> 8 - <div class="hero-kicker"> 9 - <i class="fa fa-refresh" aria-hidden="true"></i> 10 - XWiki upgrade guidance 11 - </div> 5 + ## PAGE HEADER 6 + <section class="hero hero-centered service-hero" aria-labelledby="hero-title"> 7 + <div class="container hero-inner"> 8 + <div class="hero-kicker"> 9 + <i class="fa fa-refresh" aria-hidden="true"></i> 10 + XWiki upgrade guidance 12 12 </div> 13 13 14 14 <h1 id="hero-title">Why upgrading your XWiki instance should be a regular priority</h1> 15 15 16 - <p class=" resource-summary">15 + <p class="lead"> 17 17 A working XWiki instance can still become outdated, harder to maintain and exposed to avoidable risks 18 18 when upgrades are postponed for too long. 19 19 </p> 19 + 20 + <p class="hero-support"> 21 + Regular upgrades help keep XWiki secure, stable, compatible and easier to evolve, especially when the platform 22 + is used for internal knowledge, documentation, procedures, workflows or business-critical collaboration. 23 + </p> 24 + 25 + <div class="hero-actions"> 26 + <a class="btn btn-primary" href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a> 27 + <a class="btn btn-secondary" href="#upgrade-tips">Read upgrade tips</a> 28 + </div> 20 20 </div> 21 21 </section> 22 22 23 - <section class="resource-page"> 32 + ## WHY IT MATTERS 33 + <section aria-labelledby="why-title"> 24 24 <div class="container"> 25 - <di vclass="resource-layout">35 + <h2 id="why-title">“It still works” is not the same as “it is safe to keep unchanged”</h2> 26 26 27 - <aside class="resource-sidebar" aria-label="Page summary"> 28 - <h4>In this guide</h4> 37 + <p class="section-intro"> 38 + Many XWiki instances continue to run for years with only small visible problems. That can create the impression 39 + that upgrades are optional. In practice, the longer an instance stays behind, the more risk accumulates around 40 + security fixes, extension compatibility, infrastructure changes, custom code and future upgrade effort. 41 + </p> 42 + 43 + <div class="pathways"> 44 + <article class="pathway-card"> 45 + <div class="pathway-icon"> 46 + <i class="fa fa-shield" aria-hidden="true"></i> 47 + </div> 48 + <h3>Security fixes accumulate</h3> 49 + <p> 50 + Older versions may miss security-related fixes and improvements that are already available in newer releases. 51 + </p> 29 29 <ul> 30 - <li><a href="#why-it-matters">Why upgrades matter</a></li> 31 - <li><a href="#upgrade-checklist">Upgrade checklist</a></li> 32 - <li><a href="#safe-process">Safe process</a></li> 33 - <li><a href="#common-mistakes">Common mistakes</a></li> 34 - <li><a href="#upgrade-rhythm">Upgrade rhythm</a></li> 35 - <li><a href="#upgrade-faq">FAQ</a></li> 53 + <li>Known issues may already be fixed upstream</li> 54 + <li>Public information about vulnerabilities increases risk over time</li> 55 + <li>Security updates are easier to handle when upgrades are regular</li> 36 36 </ul> 37 - </a side>57 + </article> 38 38 39 - <article class="resource-content"> 40 - 59 + <article class="pathway-card"> 60 + <div class="pathway-icon"> 61 + <i class="fa fa-puzzle-piece" aria-hidden="true"></i> 62 + </div> 63 + <h3>Compatibility becomes harder</h3> 41 41 <p> 42 - Many XWiki instances continue to run for years with only small visible problems. This can create the 43 - impression that upgrades are optional, especially when users can still log in, search, edit pages and 44 - access the content they need. 65 + Extensions, custom applications, authentication integrations and infrastructure components evolve together. 45 45 </p> 67 + <ul> 68 + <li>Extensions may require newer XWiki versions</li> 69 + <li>Java, Tomcat and database requirements can change</li> 70 + <li>Large version jumps are harder to validate</li> 71 + </ul> 72 + </article> 46 46 74 + <article class="pathway-card"> 75 + <div class="pathway-icon"> 76 + <i class="fa fa-line-chart" aria-hidden="true"></i> 77 + </div> 78 + <h3>Maintenance cost increases</h3> 47 47 <p> 48 - The real risk is that technical debt accumulates quietly. Security fixes, extension compatibility, 49 - authentication behavior, infrastructure requirements and custom code assumptions continue to evolve. 50 - The longer an instance remains behind, the more difficult the next upgrade becomes. 80 + The longer upgrades are postponed, the more difficult it becomes to understand what changed and what may break. 51 51 </p> 82 + <ul> 83 + <li>More release notes to review</li> 84 + <li>More compatibility checks to perform</li> 85 + <li>More risk around custom code and old assumptions</li> 86 + </ul> 87 + </article> 88 + </div> 89 + </div> 90 + </section> 52 52 53 - <div class="resource-note"> 92 + ## WHAT TO REVIEW 93 + <section id="upgrade-tips" class="services" aria-labelledby="tips-title"> 94 + <div class="container"> 95 + <h2 id="tips-title">Practical tips before planning an XWiki upgrade</h2> 96 + 97 + <p class="section-intro"> 98 + A good upgrade starts before the installation step. The most useful preparation is to understand the current 99 + platform, identify what is business-critical and validate the upgrade outside production. 100 + </p> 101 + 102 + <div class="services-grid"> 103 + <article class="service"> 104 + <div class="service-icon" aria-hidden="true"> 105 + <i class="fa fa-code-fork"></i> 106 + </div> 107 + <div class="service-body"> 108 + <h4>Check your current version and target version</h4> 54 54 <p> 55 - <strong>In practice:</strong> an XWiki upgrade should review the current version, target version, 56 - required intermediate steps, installed extensions, custom code, authentication setup, infrastructure, 57 - backups, rollback expectations and the business-critical features that must be validated before 58 - production is touched. 110 + Identify the current XWiki version, the desired target version and whether intermediate upgrade steps are needed. 59 59 </p> 60 60 </div> 113 + </article> 61 61 62 - <p> 63 - An XWiki upgrade is the process of moving an existing instance to a newer XWiki version while preserving 64 - content, configuration, extensions, customizations, access rights and business-critical behavior. A safe 65 - upgrade is not only a software installation task. It is a controlled maintenance process with preparation, 66 - staging validation, production rollout and follow-up notes. 67 - </p> 115 + <article class="service"> 116 + <div class="service-icon" aria-hidden="true"> 117 + <i class="fa fa-puzzle-piece"></i> 118 + </div> 119 + <div class="service-body"> 120 + <h4>Review installed extensions</h4> 121 + <p> 122 + List installed extensions and check whether they are compatible with the target XWiki version. 123 + </p> 124 + </div> 125 + </article> 68 68 69 - <div class="resource-note"> 127 + <article class="service"> 128 + <div class="service-icon" aria-hidden="true"> 129 + <i class="fa fa-code"></i> 130 + </div> 131 + <div class="service-body"> 132 + <h4>Identify custom code</h4> 70 70 <p> 71 - <strong>The main point:</strong> regular upgrades are not only about new features. They reduce security 72 - exposure, compatibility risk and long-term maintenance cost. 134 + Review custom macros, Velocity scripts, Java components, UI extensions, sheets, templates and local changes. 73 73 </p> 74 74 </div> 137 + </article> 75 75 76 - <h2 id="why-it-matters">Why regular XWiki upgrades matter</h2> 139 + <article class="service"> 140 + <div class="service-icon" aria-hidden="true"> 141 + <i class="fa fa-lock"></i> 142 + </div> 143 + <div class="service-body"> 144 + <h4>Validate authentication</h4> 145 + <p> 146 + LDAP, Active Directory, SSO, OIDC, SAML and MFA configurations should be tested carefully after the upgrade. 147 + </p> 148 + </div> 149 + </article> 77 77 78 - <h3>1. Security fixes accumulate over time</h3> 79 - <p> 80 - Older versions may miss security-related fixes already available in newer releases. Once security issues 81 - become publicly known, running an old version can become a more predictable risk. 82 - </p> 151 + <article class="service"> 152 + <div class="service-icon" aria-hidden="true"> 153 + <i class="fa fa-database"></i> 154 + </div> 155 + <div class="service-body"> 156 + <h4>Prepare backups and a staging clone</h4> 157 + <p> 158 + Never treat production as the first test. Validate the upgrade on staging or a temporary clone first. 159 + </p> 160 + </div> 161 + </article> 83 83 84 - <p> 85 - This does not mean every old instance is immediately exposed in the same way. The real impact depends on 86 - your configuration, installed extensions, access model, authentication setup and whether the instance is 87 - public or private. But staying close to supported versions makes security maintenance more manageable. 88 - </p> 89 - 90 - <p> 91 - For a broader view of security-related checks, see 92 - <a href="$xwiki.getURL('resources.xwiki-security-review')">what an XWiki security review should actually include</a>. 93 - </p> 94 - 95 - <h3>2. Large upgrade gaps are harder to control</h3> 96 - <p> 97 - A small, regular upgrade is usually easier to validate than a large jump after several years. Large gaps 98 - mean more release notes, more compatibility changes, more extension checks and more uncertainty around 99 - custom code. 100 - </p> 101 - 102 - <h3>3. Extensions and customizations can become fragile</h3> 103 - <p> 104 - XWiki instances often include installed extensions, custom Velocity scripts, macros, templates, sheets, 105 - UI extensions, Java components or business-specific applications. These elements need to be reviewed when 106 - planning an upgrade. 107 - </p> 108 - 109 - <p> 110 - For more details on organizing custom work, see 111 - <a href="$xwiki.getURL('resources.xwiki-custom-development')">how to keep XWiki custom development maintainable across upgrades</a>. 112 - </p> 113 - 114 - <h3>4. Infrastructure requirements evolve</h3> 115 - <p> 116 - XWiki upgrades can involve more than the application itself. Java, Tomcat, the database, Docker images, 117 - reverse proxy configuration, PDF export services and authentication integrations may also need attention. 118 - </p> 119 - 120 - <h3>5. Business-critical features need validation</h3> 121 - <p> 122 - A successful upgrade is not only one where the server starts. Users usually depend on login, permissions, 123 - search, dashboards, PDF exports, workflows, notifications, custom applications and important pages. These 124 - should be part of the validation plan. 125 - </p> 126 - 127 - <div class="resource-inline-cta"> 163 + <article class="service"> 164 + <div class="service-icon" aria-hidden="true"> 165 + <i class="fa fa-check-square-o"></i> 166 + </div> 167 + <div class="service-body"> 168 + <h4>Create a validation checklist</h4> 128 128 <p> 129 - <strong>Not sure how risky your current XWiki version is?</strong> 130 - A short technical review can clarify the upgrade path, extension compatibility, 131 - custom code risks and validation needs before production is touched. 170 + Test login, permissions, search, dashboards, PDFs, custom applications, jobs, important pages and integrations. 132 132 </p> 133 - <a class="btn btn-secondary" href="$xwiki.getURL('contact.WebHome')">Request a quick review</a> 134 - <a class="btn btn-secondary" href="$xwiki.getURL('pricing.WebHome')#common-packages">View upgrade pricing</a> 135 135 </div> 173 + </article> 174 + </div> 175 + </div> 176 + </section> 136 136 137 - <h2 id="upgrade-checklist">XWiki upgrade planning checklist</h2> 178 + ## SAFE PROCESS 179 + <section class="split-section" aria-labelledby="process-title"> 180 + <div class="container"> 181 + <div class="split-grid"> 182 + <div class="split-copy"> 183 + <h2 id="process-title">The safest upgrade is the one rehearsed before production</h2> 138 138 139 139 <p> 140 - A pr acticalXWikiupgradeplanshouldcoverboth theapplicationand theenvironmentaroundit.141 - Thefollowingchecklistcanbeusedas a starting pointbeforeupgradingaproductioninstance.186 + A production upgrade should not be the first time the process is tested. A staging environment or temporary 187 + clone allows problems to be discovered before they affect users. 142 142 </p> 143 143 144 - <ul class="resource-checklist"> 145 - <li>Identify the current XWiki version and the target version.</li> 146 - <li>Check whether intermediate upgrade steps are needed.</li> 147 - <li>List installed extensions and verify compatibility with the target version.</li> 148 - <li>Identify custom code: Velocity scripts, macros, sheets, templates, UI extensions and Java components.</li> 149 - <li>Review authentication: LDAP, Active Directory, SSO, OIDC, SAML or MFA.</li> 150 - <li>Prepare a staging environment or temporary clone of production.</li> 151 - <li>Validate backups and clarify rollback expectations.</li> 152 - <li>Test important pages, dashboards, permissions, search, jobs, exports and custom workflows.</li> 153 - <li>Document the steps, issues found and follow-up recommendations.</li> 154 - </ul> 155 - 156 - <h2 id="safe-process">A safer upgrade process</h2> 157 - 158 158 <p> 159 - Production should not be the first place where the upgrade is tested. The safest approach is to rehearse 160 - the upgrade on staging or a temporary clone, resolve compatibility issues there, then perform the production 161 - upgrade with a clear plan. 191 + This is especially important when the instance includes custom applications, authentication integrations, 192 + PDF exports, workflows, advanced permissions or business-critical documentation. 162 162 </p> 194 + </div> 163 163 164 - <ol> 165 - <li><strong>Prepare a clone:</strong> copy the relevant database, filesystem and configuration.</li> 166 - <li><strong>Run the upgrade outside production:</strong> record the steps and issues found.</li> 167 - <li><strong>Validate critical features:</strong> login, rights, search, PDFs, workflows, dashboards and integrations.</li> 168 - <li><strong>Plan the production window:</strong> backups, downtime, rollback and communication.</li> 169 - <li><strong>Document the result:</strong> keep notes for the next upgrade cycle.</li> 170 - </ol> 196 + <ol class="process-list"> 197 + <li> 198 + <strong>Prepare a staging clone</strong> 199 + Copy the relevant database, filesystem and configuration into a controlled non-production environment. 200 + </li> 201 + <li> 202 + <strong>Run the upgrade there first</strong> 203 + Apply the upgrade, resolve compatibility issues and record the steps required. 204 + </li> 205 + <li> 206 + <strong>Validate business-critical features</strong> 207 + Confirm that authentication, rights, search, exports, custom apps and important workflows still work. 208 + </li> 209 + <li> 210 + <strong>Plan the production window</strong> 211 + Define backup, downtime, rollback and communication expectations before touching production. 212 + </li> 213 + <li> 214 + <strong>Document the result</strong> 215 + Keep upgrade notes, observed issues and follow-up recommendations for the next maintenance cycle. 216 + </li> 217 + </ol> 218 + </div> 219 + </div> 220 + </section> 171 171 172 - <h2 id="common-mistakes">Common mistakes to avoid</h2> 222 + ## COMMON MISTAKES 223 + <section aria-labelledby="mistakes-title"> 224 + <div class="container"> 225 + <h2 id="mistakes-title">Common mistakes to avoid</h2> 173 173 174 - <ul> 175 - <li><strong>Upgrading directly in production.</strong> Compatibility issues should be discovered before users are affected.</li> 176 - <li><strong>Checking only public pages.</strong> Authentication, restricted spaces and admin features also need validation.</li> 177 - <li><strong>Ignoring custom code.</strong> Custom scripts and extensions often create the real upgrade complexity.</li> 178 - <li><strong>Skipping backup validation.</strong> A backup is useful only if restore expectations are understood.</li> 179 - <li><strong>Keeping no upgrade notes.</strong> Without notes, the next maintenance cycle starts again from uncertainty.</li> 180 - </ul> 227 + <p class="section-intro"> 228 + Most difficult upgrades are not difficult because XWiki cannot be upgraded. They become difficult because 229 + the environment, customizations or validation steps were not understood early enough. 230 + </p> 181 181 182 - <h2 id="upgrade-rhythm">How often should XWiki be upgraded?</h2> 183 - 232 + <div class="widgets"> 233 + <article class="widget"> 234 + <div class="icon" aria-hidden="true"> 235 + <i class="fa fa-warning"></i> 236 + <h4>Upgrading<br />directly in production</h4> 237 + </div> 184 184 <p> 185 - For many organizations, a practical rhythm is to stay aligned with the current Long Term Support version 186 - and plan upgrades regularly rather than waiting for a major problem. Some environments can upgrade more 187 - frequently, while heavily customized instances may require more planning. 239 + Production should not be the first place where compatibility issues are discovered. 188 188 </p> 241 + </article> 189 189 243 + <article class="widget"> 244 + <div class="icon" aria-hidden="true"> 245 + <i class="fa fa-puzzle-piece"></i> 246 + <h4>Ignoring<br />extensions</h4> 247 + </div> 190 190 <p> 191 - The important part is not only the exact frequency. It is having an upgrade process that is repeatable: 192 - review, staging validation, production rollout, documentation and follow-up. 249 + Extensions and custom code often create the real upgrade complexity. 193 193 </p> 251 + </article> 194 194 195 - <h2 id="upgrade-faq">XWiki upgrade FAQ</h2> 196 - 197 - <h3>Why should XWiki be upgraded regularly?</h3> 253 + <article class="widget"> 254 + <div class="icon" aria-hidden="true"> 255 + <i class="fa fa-lock"></i> 256 + <h4>Testing only<br />public pages</h4> 257 + </div> 198 198 <p> 199 - XWiki should be upgraded regularly to reduce security exposure, keep extensions compatible, avoid large 200 - upgrade gaps and make long-term maintenance easier. Regular upgrades are easier to plan and validate than 201 - major jumps after several years. 259 + Login, permissions, restricted spaces and admin features should also be validated. 202 202 </p> 261 + </article> 203 203 204 - <h3>Is a working XWiki instance safe to leave unchanged?</h3> 263 + <article class="widget"> 264 + <div class="icon" aria-hidden="true"> 265 + <i class="fa fa-file-text-o"></i> 266 + <h4>No upgrade<br />notes</h4> 267 + </div> 205 205 <p> 206 - Not necessarily. An XWiki instance can continue to work from a user perspective while becoming outdated, 207 - harder to upgrade and exposed to avoidable risks. Visible functionality is not the same as long-term 208 - maintainability. 269 + Without notes, every future upgrade starts again from uncertainty. 209 209 </p> 210 - 211 - <h3>What should be checked before upgrading XWiki?</h3> 212 - <p> 213 - Before upgrading XWiki, review the current version, target version, intermediate upgrade steps, installed 214 - extensions, custom code, authentication setup, infrastructure, backups, rollback expectations and 215 - business-critical features. 216 - </p> 217 - 218 - <h3>Should an XWiki upgrade be tested outside production?</h3> 219 - <p> 220 - Yes. The safest approach is to rehearse the upgrade on a staging environment or temporary clone, fix 221 - compatibility issues there, then perform the production upgrade with a clear plan and rollback expectations. 222 - </p> 223 - 224 - <h3>What makes an XWiki upgrade difficult?</h3> 225 - <p> 226 - XWiki upgrades become more difficult when the version gap is large, extensions are outdated, custom code is 227 - undocumented, authentication is complex, infrastructure dependencies changed or critical workflows were not 228 - included in the validation plan. 229 - </p> 230 - 231 - <div class="resource-note"> 232 - <p> 233 - Related resources: 234 - <a href="$xwiki.getURL('resources.xwiki-security-review')">what an XWiki security review should actually include</a> 235 - and 236 - <a href="$xwiki.getURL('resources.xwiki-custom-development')">how to keep XWiki custom development maintainable across upgrades</a>. 237 - </p> 238 - </div> 239 239 </article> 240 240 </div> 241 241 </div> 242 242 </section> 243 243 244 - <section class="cta-section" aria-labelledby="why-upgrade-xwiki-cta-title"> 276 + ## CTA 277 + <section class="cta-section" aria-labelledby="cta-title"> 245 245 <div class="container"> 246 246 <div class="cta-panel"> 247 - <h2 id="why-upgrade-xwiki-cta-title">Need help planning an XWiki upgrade?</h2> 280 + <h2 id="cta-title">Need help planning an XWiki upgrade?</h2> 281 + 248 248 <p> 249 249 If your XWiki instance is outdated, customized or business-critical, the safest next step is to review 250 250 the current version, extensions, infrastructure and validation needs before planning the production upgrade. 251 251 </p> 252 - <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request an upgrade review</a> 286 + 287 + <a class="btn btn-primary" href="$xwiki.getURL('services.xwiki-upgrades')">View XWiki upgrade services</a> 253 253 </div> 254 254 </div> 255 255 </section> 256 256 257 - <script type="application/ld+json"> 258 - { 259 - "@context": "https://schema.org", 260 - "@type": "FAQPage", 261 - "mainEntity": [ 262 - { 263 - "@type": "Question", 264 - "name": "Why should XWiki be upgraded regularly?", 265 - "acceptedAnswer": { 266 - "@type": "Answer", 267 - "text": "XWiki should be upgraded regularly to reduce security exposure, keep extensions compatible, avoid large upgrade gaps and make long-term maintenance easier. Regular upgrades are easier to plan and validate than major jumps after several years." 268 - } 269 - }, 270 - { 271 - "@type": "Question", 272 - "name": "Is a working XWiki instance safe to leave unchanged?", 273 - "acceptedAnswer": { 274 - "@type": "Answer", 275 - "text": "Not necessarily. An XWiki instance can continue to work from a user perspective while becoming outdated, harder to upgrade and exposed to avoidable risks. Visible functionality is not the same as long-term maintainability." 276 - } 277 - }, 278 - { 279 - "@type": "Question", 280 - "name": "What should be checked before upgrading XWiki?", 281 - "acceptedAnswer": { 282 - "@type": "Answer", 283 - "text": "Before upgrading XWiki, review the current version, target version, intermediate upgrade steps, installed extensions, custom code, authentication setup, infrastructure, backups, rollback expectations and business-critical features." 284 - } 285 - }, 286 - { 287 - "@type": "Question", 288 - "name": "Should an XWiki upgrade be tested outside production?", 289 - "acceptedAnswer": { 290 - "@type": "Answer", 291 - "text": "Yes. The safest approach is to rehearse the upgrade on a staging environment or temporary clone, fix compatibility issues there, then perform the production upgrade with a clear plan and rollback expectations." 292 - } 293 - }, 294 - { 295 - "@type": "Question", 296 - "name": "What makes an XWiki upgrade difficult?", 297 - "acceptedAnswer": { 298 - "@type": "Answer", 299 - "text": "XWiki upgrades become more difficult when the version gap is large, extensions are outdated, custom code is undocumented, authentication is complex, infrastructure dependencies changed or critical workflows were not included in the validation plan." 300 - } 301 - } 302 - ] 303 - } 304 - </script> 305 305 {{/html}} 306 306 {{/velocity}}
- Agnease.Code.SEODetailsClass[0]
-
- metaDescription
-
... ... @@ -1,1 +1,0 @@ 1 -Learn why regular XWiki upgrades matter for security, stability, extension compatibility and long-term maintenance, especially for production XWiki instances. - metaTitle
-
... ... @@ -1,1 +1,0 @@ 1 -Why You Should Upgrade XWiki Regularly for Security and Stability | Agnease