| ... |
... |
@@ -1,8 +1,6 @@ |
| 1 |
1 |
{{velocity}} |
| 2 |
2 |
#set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) |
| 3 |
|
- |
| 4 |
4 |
#set ($contactURL = $xwiki.getURL('contact.WebHome')) |
| 5 |
|
- |
| 6 |
6 |
#set ($startingPoints = [{ |
| 7 |
7 |
'icon': 'search', |
| 8 |
8 |
'title': 'Review & diagnose', |
| ... |
... |
@@ -40,7 +40,6 @@ |
| 40 |
40 |
], |
| 41 |
41 |
'cta': 'Discuss support plan' |
| 42 |
42 |
}]) |
| 43 |
|
- |
| 44 |
44 |
#set ($commonPackages = [{ |
| 45 |
45 |
'service': 'XWiki Health Check', |
| 46 |
46 |
'price': '€390', |
| ... |
... |
@@ -82,29 +82,6 @@ |
| 82 |
82 |
'price': 'Quoted after review', |
| 83 |
83 |
'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.' |
| 84 |
84 |
}]) |
| 85 |
|
- |
| 86 |
|
-#set ($authRows = [{ |
| 87 |
|
- 'service': 'XWiki Authentication Review', |
| 88 |
|
- 'price': '€290', |
| 89 |
|
- 'bestFor': 'Understanding the current login flow, users, groups and access model.' |
| 90 |
|
-},{ |
| 91 |
|
- 'service': 'OIDC / Microsoft Entra ID Setup', |
| 92 |
|
- 'price': 'From €590', |
| 93 |
|
- 'bestFor': 'SSO setup with Microsoft Entra ID, Keycloak or another compatible OIDC provider.' |
| 94 |
|
-},{ |
| 95 |
|
- 'service': 'XWiki MFA Installation', |
| 96 |
|
- 'price': 'From €490', |
| 97 |
|
- 'bestFor': 'Adding MFA to the standard XWiki login flow.' |
| 98 |
|
-},{ |
| 99 |
|
- 'service': 'LDAP / Active Directory Review', |
| 100 |
|
- 'price': 'From €390', |
| 101 |
|
- 'bestFor': 'LDAP or AD login, profile mapping, group mapping and synchronization questions.' |
| 102 |
|
-},{ |
| 103 |
|
- 'service': 'Advanced Authentication Work', |
| 104 |
|
- 'price': 'Quoted after review', |
| 105 |
|
- 'bestFor': 'Custom authenticators, container authentication, special redirects or complex wiki farm scenarios.' |
| 106 |
|
-}]) |
| 107 |
|
- |
| 108 |
108 |
#set ($supportPlans = [{ |
| 109 |
109 |
'icon': 'leaf', |
| 110 |
110 |
'title': 'Essential Support', |
| ... |
... |
@@ -144,7 +144,6 @@ |
| 144 |
144 |
], |
| 145 |
145 |
'cta': 'Discuss extended support' |
| 146 |
146 |
}]) |
| 147 |
|
- |
| 148 |
148 |
#set ($complexProjects = [ |
| 149 |
149 |
'Wiki farm restructuring', |
| 150 |
150 |
'Major XWiki LTS upgrades', |
| ... |
... |
@@ -154,7 +154,6 @@ |
| 154 |
154 |
'Performance and stability improvements', |
| 155 |
155 |
'Content and platform migrations' |
| 156 |
156 |
]) |
| 157 |
|
- |
| 158 |
158 |
#set ($faqItems = [{ |
| 159 |
159 |
'question': 'Are these fixed prices?', |
| 160 |
160 |
'answer': 'Some services have fixed starting prices. Larger or more complex projects are reviewed first and quoted separately, so the scope, risks and required testing are clear before implementation starts.' |
| ... |
... |
@@ -174,7 +174,6 @@ |
| 174 |
174 |
'question': 'Do prices include external costs?', |
| 175 |
175 |
'answer': 'The prices on this page cover Agnease services. External hosting, infrastructure or third-party costs are discussed separately when relevant.' |
| 176 |
176 |
}]) |
| 177 |
|
- |
| 178 |
178 |
{{html clean="false"}} |
| 179 |
179 |
|
| 180 |
180 |
<section class="resource-header" aria-labelledby="hero-title"> |
| ... |
... |
@@ -188,8 +188,8 @@ |
| 188 |
188 |
|
| 189 |
189 |
<h1 id="hero-title">XWiki Service Packages</h1> |
| 190 |
190 |
|
| 191 |
|
- <p class="resource-summary"> |
| 192 |
|
- Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support. |
|
162 |
+ <p class="lead"> |
|
163 |
+ Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support.<br/> |
| 193 |
193 |
Start with a review, request an implementation quote, or choose a support plan for ongoing XWiki help. |
| 194 |
194 |
</p> |
| 195 |
195 |
|
| ... |
... |
@@ -220,23 +220,29 @@ |
| 220 |
220 |
or set up ongoing support. This keeps the first step clear without pretending that every XWiki environment |
| 221 |
221 |
has the same complexity. |
| 222 |
222 |
</p> |
| 223 |
|
- |
| 224 |
|
- <div class="services-grid"> |
|
194 |
+ |
|
195 |
+ <div class="pathways"> |
| 225 |
225 |
#foreach ($entry in $startingPoints) |
| 226 |
|
- <article class="service"> |
| 227 |
|
- <div class="service-icon" aria-hidden="true"> |
| 228 |
|
- <i class="fa fa-$entry.icon"></i> |
|
197 |
+ <article class="pathway-card"> |
|
198 |
+ <div class="card-heading"> |
|
199 |
+ <div class="pathway-icon" aria-hidden="true"> |
|
200 |
+ <i class="fa fa-$entry.icon"></i> |
|
201 |
+ </div> |
|
202 |
+ <h3>$entry.title</h3> |
| 229 |
229 |
</div> |
| 230 |
|
- <div class="service-body"> |
| 231 |
|
- <h4>$entry.title</h4> |
| 232 |
|
- <p><strong>$entry.price</strong></p> |
| 233 |
|
- <p>$entry.description</p> |
| 234 |
|
- <ul> |
| 235 |
|
- #foreach ($item in $entry.items) |
| 236 |
|
- <li>$item</li> |
| 237 |
|
- #end |
| 238 |
|
- </ul> |
| 239 |
|
- <p><a class="btn btn-primary" href="$contactURL">$entry.cta</a></p> |
|
204 |
+ |
|
205 |
+ <p><strong>$entry.price</strong></p> |
|
206 |
+ |
|
207 |
+ <p>$entry.description</p> |
|
208 |
+ |
|
209 |
+ <ul> |
|
210 |
+ #foreach ($item in $entry.items) |
|
211 |
+ <li>$item</li> |
|
212 |
+ #end |
|
213 |
+ </ul> |
|
214 |
+ |
|
215 |
+ <div class="card-link"> |
|
216 |
+ <a href="$contactURL">$entry.cta</a> |
| 240 |
240 |
</div> |
| 241 |
241 |
</article> |
| 242 |
242 |
#end |
| ... |
... |
@@ -275,51 +275,6 @@ |
| 275 |
275 |
</p> |
| 276 |
276 |
</div> |
| 277 |
277 |
|
| 278 |
|
- <h2 id="authentication">Authentication & access control</h2> |
| 279 |
|
- |
| 280 |
|
- <p> |
| 281 |
|
- XWiki authentication depends on the current login method, identity provider, user source, |
| 282 |
|
- group mapping and access-control model. Agnease can help review, configure or improve standard |
| 283 |
|
- XWiki login, LDAP, Active Directory, OpenID Connect, Microsoft Entra ID, MFA and more advanced |
| 284 |
|
- authentication scenarios. |
| 285 |
|
- </p> |
| 286 |
|
- |
| 287 |
|
- <div class="resource-note"> |
| 288 |
|
- <p> |
| 289 |
|
- <strong>MFA is treated separately:</strong> SSO, LDAP and OIDC define how users log in. |
| 290 |
|
- MFA adds an additional verification layer. In some environments MFA belongs in XWiki, while in |
| 291 |
|
- others it is better enforced by the external identity provider. |
| 292 |
|
- </p> |
| 293 |
|
- </div> |
| 294 |
|
- |
| 295 |
|
- <table class="table table-bordered table-striped"> |
| 296 |
|
- <thead> |
| 297 |
|
- <tr> |
| 298 |
|
- <th>Authentication service</th> |
| 299 |
|
- <th>Starting price</th> |
| 300 |
|
- <th>Best for</th> |
| 301 |
|
- </tr> |
| 302 |
|
- </thead> |
| 303 |
|
- <tbody> |
| 304 |
|
- #foreach ($entry in $authRows) |
| 305 |
|
- <tr> |
| 306 |
|
- <td><strong>$entry.service</strong></td> |
| 307 |
|
- <td>$entry.price</td> |
| 308 |
|
- <td>$entry.bestFor</td> |
| 309 |
|
- </tr> |
| 310 |
|
- #end |
| 311 |
|
- </tbody> |
| 312 |
|
- </table> |
| 313 |
|
- |
| 314 |
|
- <div class="resource-cta"> |
| 315 |
|
- <h3>Need authentication changes?</h3> |
| 316 |
|
- <p> |
| 317 |
|
- Send a short description of your current login method, user source, identity provider and the |
| 318 |
|
- authentication result you want to achieve. |
| 319 |
|
- </p> |
| 320 |
|
- <a class="btn btn-primary" href="$contactURL">Request authentication review</a> |
| 321 |
|
- </div> |
| 322 |
|
- |
| 323 |
323 |
<h2 id="support">Monthly support plans</h2> |
| 324 |
324 |
|
| 325 |
325 |
<p> |