{"componentChunkName":"component---src-templates-doc-page-tsx","path":"/en/docs/dogus/cas/development/Upgrading_CAS/","result":{"data":{"markdownRemark":{"html":"<h2 id=\"upgrading-cas\" style=\"position:relative;\"><a href=\"#upgrading-cas\" aria-label=\"upgrading cas permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Upgrading CAS</h2>\n<p>A runbook for moving this dogu to a new Apereo CAS release. It explains <strong>what to do\nand in what order</strong>, and — just as important — <strong>what to re-verify</strong>, because this overlay carries custom\nJava and custom templates that depend on CAS internals which can shift between versions.</p>\n<hr>\n<h3 id=\"0-keep-in-mind-when-upgrading-cas\" style=\"position:relative;\"><a href=\"#0-keep-in-mind-when-upgrading-cas\" aria-label=\"0 keep in mind when upgrading cas permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>0. Keep in Mind when Upgrading Cas</h3>\n<p>These facts drive the whole upgrade:</p>\n<ol>\n<li><strong>The CAS version dictates the Spring Boot and Tomcat versions.</strong> <code class=\"language-text\">app/build.gradle</code> pulls\n<code class=\"language-text\">enforcedPlatform(&quot;org.apereo.cas:cas-server-support-bom:&lt;cas.version&gt;&quot;)</code>. Do <strong>not</strong> bump Spring Boot or\nthe bundled Tomcat independently — align them to what the target CAS release expects.</li>\n<li><strong>Every customization is a coupling to CAS.</strong> Custom Java overrides CAS beans/webflow by name; custom\ntemplates render CAS model objects and post to CAS webflow events. A CAS upgrade can rename a bean, a\nwebflow state, a property, or a template model field and break a customization <strong>silently</strong> (no compile\nerror). Try to minimize the number of such changes.</li>\n<li>Our customization does not ship Material-styles, but our own. So expect the need to <strong>re-style</strong>\non new UI-Features. </li>\n</ol>\n<hr>\n<h3 id=\"1-bump-the-versions-as-one-coupled-set\" style=\"position:relative;\"><a href=\"#1-bump-the-versions-as-one-coupled-set\" aria-label=\"1 bump the versions as one coupled set permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Bump the versions (as one coupled set)</h3>\n<table>\n<thead>\n<tr>\n<th>What</th>\n<th>Where (in this repo)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>CAS</td>\n<td><code class=\"language-text\">app/gradle.properties</code> → <code class=\"language-text\">cas.version</code></td>\n</tr>\n<tr>\n<td>Spring Boot plugin</td>\n<td><code class=\"language-text\">app/gradle.properties</code> → <code class=\"language-text\">springBootVersion</code> (must match the CAS BOM)</td>\n</tr>\n<tr>\n<td>Tomcat (embedded ref)</td>\n<td><code class=\"language-text\">app/gradle.properties</code> → <code class=\"language-text\">tomcatVersion</code></td>\n</tr>\n<tr>\n<td>Tomcat (standalone, baked into the image — the one that actually serves)</td>\n<td><code class=\"language-text\">Dockerfile</code> → <code class=\"language-text\">TOMCAT_MAJOR_VERSION</code>, <code class=\"language-text\">TOMCAT_VERSION</code>, <strong>and</strong> <code class=\"language-text\">TOMCAT_TARGZ_SHA512</code></td>\n</tr>\n<tr>\n<td>Java</td>\n<td><code class=\"language-text\">gradle.properties</code>, <code class=\"language-text\">system.properties</code>, both Docker base images</td>\n</tr>\n</tbody>\n</table>\n<blockquote>\n<p>Note on Tomcat: <code class=\"language-text\">app/build.gradle</code> excludes <code class=\"language-text\">org.apache.tomcat.embed</code>, so the war is <strong>not</strong> run on the\nembedded Tomcat — it is deployed into the <strong>standalone</strong> Tomcat baked into the image by the <code class=\"language-text\">Dockerfile</code>.\nThe <code class=\"language-text\">Dockerfile</code> ARGs are therefore the authoritative Tomcat version. Keep <code class=\"language-text\">tomcatVersion</code> in\n<code class=\"language-text\">app/gradle.properties</code> aligned anyway (avoids confusion), and <strong>always update <code class=\"language-text\">TOMCAT_TARGZ_SHA512</code></strong> —\nit is the SHA-512 of the downloaded <code class=\"language-text\">apache-tomcat-&lt;version&gt;.tar.gz</code>; a stale checksum fails the image\nbuild. Get the new checksum from Apache's published <code class=\"language-text\">.sha512</code> file for that Tomcat release.</p>\n</blockquote>\n<h4 id=\"where-to-read-the-correct-spring-boot-and-tomcat-versions-for-a-cas-release\" style=\"position:relative;\"><a href=\"#where-to-read-the-correct-spring-boot-and-tomcat-versions-for-a-cas-release\" aria-label=\"where to read the correct spring boot and tomcat versions for a cas release permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Where to read the <em>correct</em> Spring Boot and Tomcat versions for a CAS release</h4>\n<p>Do not guess and do not bump these independently. The versions a given CAS release is built and tested\nagainst come from upstream, in this order of preference:</p>\n<ol>\n<li><strong>The Apereo <code class=\"language-text\">cas-overlay-template</code> repo — the canonical source.</strong> This project is structured after it.\nCheck out the branch matching the target CAS <strong>minor</strong> line (e.g. <code class=\"language-text\">7.3</code>) and read its <code class=\"language-text\">gradle.properties</code>:\nit pins <code class=\"language-text\">springBootVersion</code> and references <code class=\"language-text\">tomcatVersion</code> (the Tomcat line is present as a comment,\ne.g. <code class=\"language-text\"># tomcatVersion=11.0.22</code>) for exactly that CAS line.\n→ <code class=\"language-text\">https://github.com/apereo/cas-overlay-template/blob/&lt;minor&gt;/gradle.properties</code></li>\n<li><strong>Cross-check against the <code class=\"language-text\">cas-server-support-bom</code> POM</strong> for the exact patch version — it is what\n<code class=\"language-text\">enforcedPlatform(...)</code> resolves at build time, so it is the ground truth for the <em>library</em> versions that\nend up on the classpath (here the patch version is included e.g. <code class=\"language-text\">7.3.7</code>).\n→ <code class=\"language-text\">https://repo1.maven.org/maven2/org/apereo/cas/cas-server-support-bom/&lt;cas.version&gt;/cas-server-support-bom-&lt;cas.version&gt;.pom</code></li>\n<li><strong>The CAS release notes / <code class=\"language-text\">What&#39;s New</code> docs</strong> for the headline Spring Boot / Java requirements and any\nbreaking changes (see §8 for how to diff between versions).</li>\n</ol>\n<p>Set <code class=\"language-text\">cas.version</code> to the target patch, then set <code class=\"language-text\">springBootVersion</code> (and the Tomcat versions) to whatever\nthat CAS line pins per the source above. Java follows from the Spring Boot baseline (Spring Boot 3.x → JDK\n17+, this overlay uses 21).</p>\n<hr>\n<h3 id=\"2-build--unit-tests-fast-inner-loop--no-running-cas-needed\" style=\"position:relative;\"><a href=\"#2-build--unit-tests-fast-inner-loop--no-running-cas-needed\" aria-label=\"2 build  unit tests fast inner loop  no running cas needed permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Build + unit tests (fast inner loop — no running CAS needed)</h3>\n<p>The build needs <strong>JDK 21+</strong> (the Spring Boot plugin requires it). From the repo root:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token builtin class-name\">cd</span> app <span class=\"token operator\">&amp;&amp;</span> <span class=\"token assign-left variable\">JAVA_HOME</span><span class=\"token operator\">=</span><span class=\"token operator\">&lt;</span>path-to-jdk-2<span class=\"token operator\"><span class=\"token file-descriptor important\">1</span>></span> ./gradlew clean build   <span class=\"token comment\"># compile + full unit test suite</span>\n<span class=\"token builtin class-name\">cd</span> app <span class=\"token operator\">&amp;&amp;</span> <span class=\"token assign-left variable\">JAVA_HOME</span><span class=\"token operator\">=</span><span class=\"token operator\">&lt;</span>path-to-jdk-2<span class=\"token operator\"><span class=\"token file-descriptor important\">1</span>></span> ./gradlew <span class=\"token builtin class-name\">test</span>          <span class=\"token comment\"># just the tests</span></code></pre></div>\n<p>CI does the same in the Jenkins stage <strong>Gradle Build &#x26; Test</strong>: <code class=\"language-text\">clean build</code>\nthen <code class=\"language-text\">test</code>.</p>\n<hr>\n<h3 id=\"3-rebuild-the-theme-css-if-you-touched-any-template\" style=\"position:relative;\"><a href=\"#3-rebuild-the-theme-css-if-you-touched-any-template\" aria-label=\"3 rebuild the theme css if you touched any template permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. Rebuild the theme CSS <em>if you touched any template</em></h3>\n<p><code class=\"language-text\">app/src/main/resources/static/css/ces-theme-tailwind.css</code> is a <strong>generated artifact</strong>. Tailwind only emits\nrules for class strings it finds while scanning the templates, so any class you add (including arbitrary\nvalues like <code class=\"language-text\">w-[20px]</code>) is a silent no-op until the CSS is regenerated.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">yarn</span> <span class=\"token function\">install</span>     <span class=\"token comment\"># once, to populate node_modules</span>\n<span class=\"token function\">yarn</span> tw          <span class=\"token comment\"># regenerates static/css/ces-theme-tailwind.css</span></code></pre></div>\n<p>Commit the regenerated CSS together with the template change, then hard-refresh when testing in a browser.</p>\n<hr>\n<h3 id=\"4-integration-tests--single-node\" style=\"position:relative;\"><a href=\"#4-integration-tests--single-node\" aria-label=\"4 integration tests  single node permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. Integration tests — single node</h3>\n<p>The Cypress suite (<code class=\"language-text\">integrationTests/</code>) runs against an <strong>already-running</strong> CAS; it does not boot CAS\nitself. Bring CAS up first (manually for a local run, or the pipeline does it in CI), see <a href=\"/en/docs/dogus/cas/development/Setup_Integrationtests/\">IT-Docs</a></p>\n<hr>\n<h3 id=\"5-integration-tests--multinode-jenkins-parameter\" style=\"position:relative;\"><a href=\"#5-integration-tests--multinode-jenkins-parameter\" aria-label=\"5 integration tests  multinode jenkins parameter permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. Integration tests — multinode (Jenkins parameter)</h3>\n<p>The pipeline also runs the suite on a <strong>multinode (k8s) ecosystem</strong>. These are the <code class=\"language-text\">MN-*</code> stages\n(<code class=\"language-text\">MN-Run Integration Tests</code> etc.), attached to the multinode agent via <code class=\"language-text\">pipe.agentMultinode</code> in the\n<code class=\"language-text\">Jenkinsfile</code>.</p>\n<p>The multinode run is <strong>gated by the <code class=\"language-text\">PipelineMode</code> build parameter</strong> supplied by <code class=\"language-text\">DoguPipe</code>\n(pipe-build-lib), not hardcoded in the <code class=\"language-text\">Jenkinsfile</code>. To run it:</p>\n<ol>\n<li>In Jenkins, open the job and choose <strong>Build with Parameters</strong>.</li>\n<li>Set <strong><code class=\"language-text\">PipelineMode</code></strong> to <strong><code class=\"language-text\">INTEGRATIONMULTINODE</code></strong>.</li>\n<li>Start the build. The <code class=\"language-text\">MN-*</code> stage group provisions the multinode ecosystem, sets up Keycloak (OIDC\nprovider for the OIDC/OAuth specs) via the <code class=\"language-text\">integrationTests/k8s</code> manifests, deploys the CAS dogu, and\nruns the same Cypress specs.</li>\n</ol>\n<hr>\n<h3 id=\"6-smoke-test-manual--the-things-ci-cant-cover\" style=\"position:relative;\"><a href=\"#6-smoke-test-manual--the-things-ci-cant-cover\" aria-label=\"6 smoke test manual  the things ci cant cover permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6. Smoke test (manual — the things CI can't cover)</h3>\n<p>After the automated suites pass, do a quick manual pass against a running instance. Minimum:</p>\n<ul>\n<li><strong>Plain login / logout.</strong></li>\n<li><strong>CAS, OAuth and OIDC</strong>: Install at least one cas-type, one oauth-type and one oidc-type dogu and test single log-in / single log-out with them (e.g. Redmine, Bluespice/Teamscale, ??? (oauth currently not present)).</li>\n<li><strong>Password change</strong> during a forced \"must change\" login (create a new user with \"change password at next login\" enabled.</li>\n<li>\n<p><strong>gauth MFA</strong> (requires MFA enabled in CAS config + a CAS restart — <strong>very important</strong>, cause not covered by Cypress):</p>\n<ul>\n<li>enroll a device (wrong token → inline error, stays on page; correct token → registered);</li>\n<li><strong>delete a device</strong>: a <em>wrong</em> code must show the confirmation view again with a red error and keep the\ndevice — <strong>not</strong> an HTTP 500; a valid OTP/scratch code removes it. <em>(A 500 here is the signal\nthat the gauth bean override stopped working)</em></li>\n</ul>\n</li>\n<li>\n<p><strong>federated login</strong> (requires a federated provider configured in CAS config + a CAS restart):</p>\n<ul>\n<li><strong>login</strong> with a federated provider;</li>\n<li><strong>logout</strong> with a federated provider.</li>\n</ul>\n</li>\n</ul>\n<hr>\n<h3 id=\"7-customization-inventory--files-to-watch-out-for\" style=\"position:relative;\"><a href=\"#7-customization-inventory--files-to-watch-out-for\" aria-label=\"7 customization inventory  files to watch out for permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7. Customization inventory — files to watch out for</h3>\n<ul>\n<li>Custom Java (<code class=\"language-text\">app/src/main/java/de/triology/cas/</code>)</li>\n<li>Custom templates &#x26; properties (<code class=\"language-text\">app/src/main/resources/</code>)</li>\n<li>\n<p>Config templates (<code class=\"language-text\">resources/etc/cas/config/*.tpl</code>)</p>\n<ul>\n<li><code class=\"language-text\">cas.properties.tpl</code> carries deliberate overrides of CAS defaults. When CAS changes a default, re-evaluate whether the override is still\nneeded or now conflicts.</li>\n</ul>\n</li>\n</ul>\n<hr>\n<h3 id=\"8-tips--how-to-actually-find-what-changed\" style=\"position:relative;\"><a href=\"#8-tips--how-to-actually-find-what-changed\" aria-label=\"8 tips  how to actually find what changed permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8. Tips — how to actually find what changed</h3>\n<p>The hard part of a CAS upgrade is not bumping the version; it is finding the <strong>silent</strong> breakages where CAS\nrenamed a bean, moved a webflow state, changed a property default, or edited a stock template/action that we\ncopied and customized. None of these fail the compile. The tests above should uncover the problems. The following tips\nand techniques can help you analyze these problems.</p>\n<h4 id=\"81-diff-the-upstream-cas-overlay-template-between-the-two-lines-first\" style=\"position:relative;\"><a href=\"#81-diff-the-upstream-cas-overlay-template-between-the-two-lines-first\" aria-label=\"81 diff the upstream cas overlay template between the two lines first permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8.1 Diff the upstream <code class=\"language-text\">cas-overlay-template</code> between the two lines first</h4>\n<p>This is the cheapest, highest-signal step. The overlay template is small and shows exactly what the <em>project\nscaffold</em> changed (Gradle, plugins, Dockerfile, base config).</p>\n<p>⚠️ <strong>GitHub's <code class=\"language-text\">/compare/&lt;old&gt;...&lt;new&gt;</code> does NOT work here.</strong> The overlay template's per-line branches are each\n<em>auto-generated</em> from the CAS Initializr — they share <strong>no common commit history</strong>, so GitHub reports \"there\nisn't anything to compare / entirely different commit histories\" and shows an empty diff. Don't rely on it.</p>\n<p>Diff the <strong>file trees</strong> directly instead. Clone once and compare the two branches' working trees (history is\nirrelevant, so <code class=\"language-text\">--no-index</code> sidesteps the unrelated-histories problem):</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> clone https://github.com/apereo/cas-overlay-template.git\n<span class=\"token builtin class-name\">cd</span> cas-overlay-template\n<span class=\"token function\">git</span> worktree <span class=\"token function\">add</span> <span class=\"token punctuation\">..</span>/ovl-old origin/<span class=\"token operator\">&lt;</span>old-minor<span class=\"token operator\">></span>     <span class=\"token comment\"># e.g. 7.2</span>\n<span class=\"token function\">git</span> worktree <span class=\"token function\">add</span> <span class=\"token punctuation\">..</span>/ovl-new origin/<span class=\"token operator\">&lt;</span>new-minor<span class=\"token operator\">></span>     <span class=\"token comment\"># e.g. 7.3</span>\n<span class=\"token function\">git</span> --no-pager <span class=\"token function\">diff</span> --no-index <span class=\"token punctuation\">..</span>/ovl-old <span class=\"token punctuation\">..</span>/ovl-new\n<span class=\"token comment\"># or just eyeball the few files that matter:</span>\n<span class=\"token comment\">#   gradle.properties  build.gradle  settings.gradle  Dockerfile  gradle/  src/main/resources/</span></code></pre></div>\n<p>(For a quick look without cloning, open the key files on each branch and compare by eye — the set worth\nchecking is small.) Anything that moved (a new exclude, a changed plugin, a new property, a Tomcat bump) you\nalmost certainly need to mirror.</p>\n<h4 id=\"82-read-the-cas-release-notes--whats-new-pages-minor-by-minor\" style=\"position:relative;\"><a href=\"#82-read-the-cas-release-notes--whats-new-pages-minor-by-minor\" aria-label=\"82 read the cas release notes  whats new pages minor by minor permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8.2 Read the CAS \"Release Notes\" / \"What's New\" pages, minor by minor</h4>\n<p>CAS documents breaking changes per <strong>minor</strong> release. If you cross more than one minor, read <strong>each</strong> page in\nbetween, not just the target — breaking changes accumulate.</p>\n<ul>\n<li>Release notes index: <code class=\"language-text\">https://apereo.github.io/cas/&lt;minor&gt;.x/release_notes/</code> (e.g. <code class=\"language-text\">7.3.x</code>).</li>\n<li>These call out removed/renamed properties, dropped modules, and behavior changes (this is how the pac4j\nsession-replication default flip and the <code class=\"language-text\">PasswordChangeAction</code> current-password requirement were found).</li>\n</ul>\n<h4 id=\"83-re-verify-customization-against-the-cas-sources-it-couples-to\" style=\"position:relative;\"><a href=\"#83-re-verify-customization-against-the-cas-sources-it-couples-to\" aria-label=\"83 re verify customization against the cas sources it couples to permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8.3 Re-verify customization against the CAS sources it couples to</h4>\n<p>To read the stock CAS source a comment points at, pull it out of the dependency jars you already downloaded\n(prefer the <code class=\"language-text\">-sources</code> jar — it has the real Java/templates, no decompile needed):</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token comment\"># locate the sources jar for a module, then dump one file</span>\n<span class=\"token function\">find</span> ~/.gradle/caches/modules-2 -name <span class=\"token string\">'cas-server-support-gauth-core-*-sources.jar'</span>\n<span class=\"token function\">unzip</span> -p <span class=\"token operator\">&lt;</span>that-sources.jar<span class=\"token operator\">></span> org/apereo/cas/gauth/web/flow/GoogleAuthenticatorDeleteAccountAction.java\n<span class=\"token function\">unzip</span> -Z1 <span class=\"token operator\">&lt;</span>that-sources.jar<span class=\"token operator\">></span> <span class=\"token operator\">|</span> <span class=\"token function\">grep</span> -i deleteaccount   <span class=\"token comment\"># find the path first if unsure</span></code></pre></div>\n<p>You can also browse the same source on GitHub at the tag: <code class=\"language-text\">https://github.com/apereo/cas/tree/v&lt;version&gt;</code>\n(actions under <code class=\"language-text\">support/cas-server-support-&lt;module&gt;/src/main/java</code>, templates under <code class=\"language-text\">.../resources/templates</code>).</p>\n<h5 id=\"threeway-diff-for-customized-cas-files\" style=\"position:relative;\"><a href=\"#threeway-diff-for-customized-cas-files\" aria-label=\"threeway diff for customized cas files permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Threeway diff for customized cas-files</h5>\n<ol>\n<li>Extract the stock original at <strong>both</strong> the old and new versions from the respective <code class=\"language-text\">-sources</code> jars (command above).</li>\n<li>Diff <strong>old-stock vs new-stock</strong> → what CAS changed (and might break our copy).</li>\n<li>Diff <strong>old-stock vs ours</strong> → our customization.</li>\n<li>Re-apply our delta onto the new stock file.</li>\n</ol>\n<h4 id=\"84-let-the-running-app-tell-you-about-dead-properties\" style=\"position:relative;\"><a href=\"#84-let-the-running-app-tell-you-about-dead-properties\" aria-label=\"84 let the running app tell you about dead properties permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8.4 Let the running app tell you about dead properties</h4>\n<p>This overlay already depends on <code class=\"language-text\">spring-boot-properties-migrator</code> (<code class=\"language-text\">app/build.gradle</code>). On <strong>startup</strong> it\nlogs every property in your config that the new Spring Boot/CAS has <strong>renamed or removed</strong>, with the\nreplacement key. So:</p>\n<ul>\n<li>Boot the upgraded CAS once and <strong>read the startup log</strong> before anything else. Grep for <code class=\"language-text\">migrat</code>,\n<code class=\"language-text\">deprecat</code>, and <code class=\"language-text\">WARN</code>.</li>\n<li>CAS itself also logs unknown/loose config keys. Treat every such warning as a to-do against\n<code class=\"language-text\">resources/etc/cas/config/*.tpl</code>.</li>\n<li>Remove the migrator again only if you want — it is harmless but noisy; we keep it during upgrades.</li>\n</ul>\n<hr>","frontmatter":{"title":"","canonical":null},"fields":{"folders":["dogus","cas","development"],"delocalizedSlug":"/docs/dogus/cas/development/Upgrading_CAS/","title":"Upgrading CAS","pageType":"docs"},"tableOfContents":"<ul>\n<li>\n<p><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#upgrading-cas\">Upgrading CAS</a></p>\n<ul>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#0-keep-in-mind-when-upgrading-cas\">0. Keep in Mind when Upgrading Cas</a></li>\n<li>\n<p><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#1-bump-the-versions-as-one-coupled-set\">1. Bump the versions (as one coupled set)</a></p>\n<ul>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#where-to-read-the-correct-spring-boot-and-tomcat-versions-for-a-cas-release\">Where to read the <em>correct</em> Spring Boot and Tomcat versions for a CAS release</a></li>\n</ul>\n</li>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#2-build--unit-tests-fast-inner-loop--no-running-cas-needed\">2. Build + unit tests (fast inner loop — no running CAS needed)</a></li>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#3-rebuild-the-theme-css-if-you-touched-any-template\">3. Rebuild the theme CSS <em>if you touched any template</em></a></li>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#4-integration-tests--single-node\">4. Integration tests — single node</a></li>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#5-integration-tests--multinode-jenkins-parameter\">5. Integration tests — multinode (Jenkins parameter)</a></li>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#6-smoke-test-manual--the-things-ci-cant-cover\">6. Smoke test (manual — the things CI can't cover)</a></li>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#7-customization-inventory--files-to-watch-out-for\">7. Customization inventory — files to watch out for</a></li>\n<li>\n<p><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#8-tips--how-to-actually-find-what-changed\">8. Tips — how to actually find what changed</a></p>\n<ul>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#81-diff-the-upstream-cas-overlay-template-between-the-two-lines-first\">8.1 Diff the upstream <code class=\"language-text\">cas-overlay-template</code> between the two lines first</a></li>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#82-read-the-cas-release-notes--whats-new-pages-minor-by-minor\">8.2 Read the CAS \"Release Notes\" / \"What's New\" pages, minor by minor</a></li>\n<li>\n<p><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#83-re-verify-customization-against-the-cas-sources-it-couples-to\">8.3 Re-verify customization against the CAS sources it couples to</a></p>\n<ul>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#threeway-diff-for-customized-cas-files\">Threeway diff for customized cas-files</a></li>\n</ul>\n</li>\n<li><a href=\"/en/docs/dogus/cas/development/Upgrading_CAS/#84-let-the-running-app-tell-you-about-dead-properties\">8.4 Let the running app tell you about dead properties</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>"},"allMarkdownRemark":{"edges":[{"node":{"fields":{"slug":"/docs/introduction.en/","delocalizedSlug":"/docs/introduction/","title":"Introduction","folders":[],"pageType":"docs","delocalizedElement":"introduction"}}},{"node":{"fields":{"slug":"/docs/development/bash-guideline.en/","delocalizedSlug":"/docs/development/bash-guideline/","title":"Bash script guideline","folders":["development"],"pageType":"docs","delocalizedElement":"bash-guideline"}}},{"node":{"fields":{"slug":"/docs/development/dogu-creation.en/","delocalizedSlug":"/docs/development/dogu-creation/","title":"How to create a dogu#","folders":["development"],"pageType":"docs","delocalizedElement":"dogu-creation"}}},{"node":{"fields":{"slug":"/docs/development/goss.en/","delocalizedSlug":"/docs/development/goss/","title":"Goss Spec","folders":["development"],"pageType":"docs","delocalizedElement":"goss"}}},{"node":{"fields":{"slug":"/docs/development/image-build.en/","delocalizedSlug":"/docs/development/image-build/","title":"How to build a CES-image","folders":["development"],"pageType":"docs","delocalizedElement":"image-build"}}},{"node":{"fields":{"slug":"/docs/dogus/dogu-configuration.en/","delocalizedSlug":"/docs/dogus/dogu-configuration/","title":"Dogu Configuration","folders":["dogus"],"pageType":"docs","delocalizedElement":"dogu-configuration"}}},{"node":{"fields":{"slug":"/docs/system-components/ubuntu_upgrade.en/","delocalizedSlug":"/docs/system-components/ubuntu_upgrade/","title":"Upgrading from Ubuntu 20.04 to 24.04","folders":["system-components"],"pageType":"docs","delocalizedElement":"ubuntu_upgrade"}}},{"node":{"fields":{"slug":"/docs/dogus/backup/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/backup/CHANGELOG/","title":"Backup & Restore Changelog","folders":["dogus","backup"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/backup/README.en/","delocalizedSlug":"/docs/dogus/backup/README/","title":"Readme","folders":["dogus","backup"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/admin/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/admin/CHANGELOG/","title":"Changelog","folders":["dogus","admin"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/admin/README.en/","delocalizedSlug":"/docs/dogus/admin/README/","title":"Readme","folders":["dogus","admin"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/backup-watcher/development.en/","delocalizedSlug":"/docs/dogus/backup-watcher/development/","title":"Development","folders":["dogus","backup-watcher"],"pageType":"docs","delocalizedElement":"development"}}},{"node":{"fields":{"slug":"/docs/dogus/baseline/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/baseline/CHANGELOG/","title":"Baseline Changelog","folders":["dogus","baseline"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/baseline/README.en/","delocalizedSlug":"/docs/dogus/baseline/README/","title":"Readme","folders":["dogus","baseline"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/cas/CHANGELOG/","title":"CAS Changelog","folders":["dogus","cas"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/baseline/getting_started.en/","delocalizedSlug":"/docs/dogus/baseline/getting_started/","title":"Development","folders":["dogus","baseline"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/cas_developer_guide.en/","delocalizedSlug":"/docs/dogus/cas/cas_developer_guide/","title":"Developments on the CAS","folders":["dogus","cas"],"pageType":"docs","delocalizedElement":"cas_developer_guide"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/README.en/","delocalizedSlug":"/docs/dogus/cas/README/","title":"Readme","folders":["dogus","cas"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/easyredmine/README.en/","delocalizedSlug":"/docs/dogus/easyredmine/README/","title":"Readme","folders":["dogus","easyredmine"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/easyredmine/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/easyredmine/CHANGELOG/","title":"Easy Redmine Changelog","folders":["dogus","easyredmine"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/cockpit/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/cockpit/CHANGELOG/","title":"Cockpit Changelog","folders":["dogus","cockpit"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/cockpit/README.en/","delocalizedSlug":"/docs/dogus/cockpit/README/","title":"Readme","folders":["dogus","cockpit"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/cockpit/getting_started.en/","delocalizedSlug":"/docs/dogus/cockpit/getting_started/","title":"Getting Started","folders":["dogus","cockpit"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/dogus/grafana/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/grafana/CHANGELOG/","title":"Grafana Changelog","folders":["dogus","grafana"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/grafana/README.en/","delocalizedSlug":"/docs/dogus/grafana/README/","title":"Readme","folders":["dogus","grafana"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/jenkins/CHANGELOG/","title":"Jenkins Changelog","folders":["dogus","jenkins"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/README.en/","delocalizedSlug":"/docs/dogus/jenkins/README/","title":"Readme","folders":["dogus","jenkins"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/getting_started.en/","delocalizedSlug":"/docs/dogus/jenkins/getting_started/","title":"Getting Started","folders":["dogus","jenkins"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/ldap/CHANGELOG/","title":"LDAP Changelog","folders":["dogus","ldap"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/README.en/","delocalizedSlug":"/docs/dogus/ldap/README/","title":"Readme","folders":["dogus","ldap"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/nexus/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/nexus/CHANGELOG/","title":"Nexus Repository OSS Changelog","folders":["dogus","nexus"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/nexus/README.en/","delocalizedSlug":"/docs/dogus/nexus/README/","title":"Readme","folders":["dogus","nexus"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/nexus/getting_started.en/","delocalizedSlug":"/docs/dogus/nexus/getting_started/","title":"Getting Started","folders":["dogus","nexus"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/dogus/nginx/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/nginx/CHANGELOG/","title":"Nginx Changelog","folders":["dogus","nginx"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/nginx/README.en/","delocalizedSlug":"/docs/dogus/nginx/README/","title":"Readme","folders":["dogus","nginx"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/plantuml/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/plantuml/CHANGELOG/","title":"Plantuml Changelog","folders":["dogus","plantuml"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/plantuml/README.en/","delocalizedSlug":"/docs/dogus/plantuml/README/","title":"Readme","folders":["dogus","plantuml"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/portainer/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/portainer/CHANGELOG/","title":"Portainer Changelog","folders":["dogus","portainer"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/portainer/README.en/","delocalizedSlug":"/docs/dogus/portainer/README/","title":"Readme","folders":["dogus","portainer"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/portainer/getting_started.en/","delocalizedSlug":"/docs/dogus/portainer/getting_started/","title":"Getting Started","folders":["dogus","portainer"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/dogus/postfix/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/postfix/CHANGELOG/","title":"Postfix Changelog","folders":["dogus","postfix"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/postfix/README.en/","delocalizedSlug":"/docs/dogus/postfix/README/","title":"Readme","folders":["dogus","postfix"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/postfix/getting_started.en/","delocalizedSlug":"/docs/dogus/postfix/getting_started/","title":"Getting Started","folders":["dogus","postfix"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/dogus/postgresql/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/postgresql/CHANGELOG/","title":"PostgreSQL Changelog","folders":["dogus","postgresql"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/postgresql/README.en/","delocalizedSlug":"/docs/dogus/postgresql/README/","title":"Readme","folders":["dogus","postgresql"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/redmine/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/redmine/CHANGELOG/","title":"Redmine Changelog","folders":["dogus","redmine"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/redmine/README.en/","delocalizedSlug":"/docs/dogus/redmine/README/","title":"Readme","folders":["dogus","redmine"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/scm/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/scm/CHANGELOG/","title":"SCM-Manager Changelog","folders":["dogus","scm"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/smeagol/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/smeagol/CHANGELOG/","title":"Changelog","folders":["dogus","smeagol"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/scm/README.en/","delocalizedSlug":"/docs/dogus/scm/README/","title":"Readme","folders":["dogus","scm"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/smeagol/README.en/","delocalizedSlug":"/docs/dogus/smeagol/README/","title":"Readme","folders":["dogus","smeagol"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/smeagol/demo_content.en/","delocalizedSlug":"/docs/dogus/smeagol/demo_content/","title":"Demo-Inhalte","folders":["dogus","smeagol"],"pageType":"docs","delocalizedElement":"demo_content"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/README.en/","delocalizedSlug":"/docs/dogus/sonar/README/","title":"Readme","folders":["dogus","sonar"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/smeagol/architecture.en/","delocalizedSlug":"/docs/dogus/smeagol/architecture/","title":"Architecture","folders":["dogus","smeagol"],"pageType":"docs","delocalizedElement":"architecture"}}},{"node":{"fields":{"slug":"/docs/dogus/swaggerui/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/swaggerui/CHANGELOG/","title":"Swagger UI Changelog","folders":["dogus","swaggerui"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/swaggerui/README.en/","delocalizedSlug":"/docs/dogus/swaggerui/README/","title":"Readme","folders":["dogus","swaggerui"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/teamscale/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/teamscale/CHANGELOG/","title":"Teamscale Changelog","folders":["dogus","teamscale"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/teamscale/README.en/","delocalizedSlug":"/docs/dogus/teamscale/README/","title":"Readme","folders":["dogus","teamscale"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/teamscale/getting_started.en/","delocalizedSlug":"/docs/dogus/teamscale/getting_started/","title":"Getting Started","folders":["dogus","teamscale"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/dogus/usermgt/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/usermgt/CHANGELOG/","title":"User Management Changelog","folders":["dogus","usermgt"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/usermgt/README.en/","delocalizedSlug":"/docs/dogus/usermgt/README/","title":"Readme","folders":["dogus","usermgt"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/sonar/CHANGELOG/","title":"SonarQube Changelog","folders":["dogus","sonar"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/usermgt/getting_started.en/","delocalizedSlug":"/docs/dogus/usermgt/getting_started/","title":"Getting Started","folders":["dogus","usermgt"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/dogus/whitelabeling/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/whitelabeling/CHANGELOG/","title":"Whitelabeling Changelog","folders":["dogus","whitelabeling"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/system-components/backup-watcher/CHANGELOG.en/","delocalizedSlug":"/docs/system-components/backup-watcher/CHANGELOG/","title":"Changelog","folders":["system-components","backup-watcher"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/system-components/backup-watcher/README.en/","delocalizedSlug":"/docs/system-components/backup-watcher/README/","title":"Readme","folders":["system-components","backup-watcher"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/system-components/ces-setup/CHANGELOG.en/","delocalizedSlug":"/docs/system-components/ces-setup/CHANGELOG/","title":"Changelog","folders":["system-components","ces-setup"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/system-components/ces-setup/README.en/","delocalizedSlug":"/docs/system-components/ces-setup/README/","title":"Readme","folders":["system-components","ces-setup"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/system-components/ces-setup/ces-on-proxmox-hypervisor.en/","delocalizedSlug":"/docs/system-components/ces-setup/ces-on-proxmox-hypervisor/","title":"Running CES on a Proxmox Hypervisor","folders":["system-components","ces-setup"],"pageType":"docs","delocalizedElement":"ces-on-proxmox-hypervisor"}}},{"node":{"fields":{"slug":"/docs/system-components/ces-setup/getting_started.en/","delocalizedSlug":"/docs/system-components/ces-setup/getting_started/","title":"CES Setup Documentation","folders":["system-components","ces-setup"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/CHANGELOG.en/","delocalizedSlug":"/docs/system-components/cesapp/CHANGELOG/","title":"Changelog","folders":["system-components","cesapp"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/README.en/","delocalizedSlug":"/docs/system-components/cesapp/README/","title":"Readme","folders":["system-components","cesapp"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/getting_started.en/","delocalizedSlug":"/docs/system-components/cesapp/getting_started/","title":"Getting-Started","folders":["system-components","cesapp"],"pageType":"docs","delocalizedElement":"getting_started"}}},{"node":{"fields":{"slug":"/docs/system-components/cesappd/CHANGELOG.en/","delocalizedSlug":"/docs/system-components/cesappd/CHANGELOG/","title":"Changelog","folders":["system-components","cesappd"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/system-components/cesappd/README.en/","delocalizedSlug":"/docs/system-components/cesappd/README/","title":"Readme","folders":["system-components","cesappd"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/system-components/warp-menu/CHANGELOG.en/","delocalizedSlug":"/docs/system-components/warp-menu/CHANGELOG/","title":"Changelog","folders":["system-components","warp-menu"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/system-components/warp-menu/README.en/","delocalizedSlug":"/docs/system-components/warp-menu/README/","title":"Readme","folders":["system-components","warp-menu"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/backup/development/html_elements.en/","delocalizedSlug":"/docs/dogus/backup/development/html_elements/","title":"Html Elements","folders":["dogus","backup","development"],"pageType":"docs","delocalizedElement":"html_elements"}}},{"node":{"fields":{"slug":"/docs/dogus/backup/development/setup_integrationtests.en/","delocalizedSlug":"/docs/dogus/backup/development/setup_integrationtests/","title":"Setup for the integration tests","folders":["dogus","backup","development"],"pageType":"docs","delocalizedElement":"setup_integrationtests"}}},{"node":{"fields":{"slug":"/docs/dogus/admin/development/integration-tests.en/","delocalizedSlug":"/docs/dogus/admin/development/integration-tests/","title":"Integration tests","folders":["dogus","admin","development"],"pageType":"docs","delocalizedElement":"integration-tests"}}},{"node":{"fields":{"slug":"/docs/dogus/admin/development/setup_environment.en/","delocalizedSlug":"/docs/dogus/admin/development/setup_environment/","title":"Setup environment","folders":["dogus","admin","development"],"pageType":"docs","delocalizedElement":"setup_environment"}}},{"node":{"fields":{"slug":"/docs/dogus/admin/integrationTests/README.en/","delocalizedSlug":"/docs/dogus/admin/integrationTests/README/","title":"Readme","folders":["dogus","admin","integrationTests"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/baseline/development/error_guidelines.en/","delocalizedSlug":"/docs/dogus/baseline/development/error_guidelines/","title":"Guidelines for handling errors in the Baseline tool.","folders":["dogus","baseline","development"],"pageType":"docs","delocalizedElement":"error_guidelines"}}},{"node":{"fields":{"slug":"/docs/dogus/baseline/development/integration_test.en/","delocalizedSlug":"/docs/dogus/baseline/development/integration_test/","title":"Integration tests","folders":["dogus","baseline","development"],"pageType":"docs","delocalizedElement":"integration_test"}}},{"node":{"fields":{"slug":"/docs/dogus/baseline/development/start_with_example_data_in_ces.en/","delocalizedSlug":"/docs/dogus/baseline/development/start_with_example_data_in_ces/","title":"Start baseline with sample data in CES","folders":["dogus","baseline","development"],"pageType":"docs","delocalizedElement":"start_with_example_data_in_ces"}}},{"node":{"fields":{"slug":"/docs/dogus/baseline/operations/configure_credentials.en/","delocalizedSlug":"/docs/dogus/baseline/operations/configure_credentials/","title":"Configuration of the Credentials","folders":["dogus","baseline","operations"],"pageType":"docs","delocalizedElement":"configure_credentials"}}},{"node":{"fields":{"slug":"/docs/dogus/baseline/operations/configure_dogu.en/","delocalizedSlug":"/docs/dogus/baseline/operations/configure_dogu/","title":"Configuration of the Baseline-Dogu","folders":["dogus","baseline","operations"],"pageType":"docs","delocalizedElement":"configure_dogu"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/app/README.en/","delocalizedSlug":"/docs/dogus/cas/app/README/","title":"Readme","folders":["dogus","cas","app"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/Adjusting_CAS_code.en/","delocalizedSlug":"/docs/dogus/cas/development/Adjusting_CAS_code/","title":"Adaptation of the CAS code","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"Adjusting_CAS_code"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/Configuration_in_Standalone_App.en/","delocalizedSlug":"/docs/dogus/cas/development/Configuration_in_Standalone_App/","title":"Use of values from the etcd in standalone app","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"Configuration_in_Standalone_App"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/Create_Wiremock_Services_For_Tests.en/","delocalizedSlug":"/docs/dogus/cas/development/Create_Wiremock_Services_For_Tests/","title":"Create wiremock for etcd registry used by JUnit Tests","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"Create_Wiremock_Services_For_Tests"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/Service_Registry.en/","delocalizedSlug":"/docs/dogus/cas/development/Service_Registry/","title":"Service Registry","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"Service_Registry"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/Setup_Integrationtests.en/","delocalizedSlug":"/docs/dogus/cas/development/Setup_Integrationtests/","title":"Setup for the integration tests","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"Setup_Integrationtests"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/Upgrading_CAS.en/","delocalizedSlug":"/docs/dogus/cas/development/Upgrading_CAS/","title":"Upgrading CAS","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"Upgrading_CAS"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/develop_stage.en/","delocalizedSlug":"/docs/dogus/cas/development/develop_stage/","title":"Development mode","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"develop_stage"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/example_oidc_configuration.en/","delocalizedSlug":"/docs/dogus/cas/development/example_oidc_configuration/","title":"Example configuration for delegated authentication with OIDC","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"example_oidc_configuration"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/external_ldap_for_test_purpose.en/","delocalizedSlug":"/docs/dogus/cas/development/external_ldap_for_test_purpose/","title":"Connecting an external LDAP using the docker-sample-ldap as an example.","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"external_ldap_for_test_purpose"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/development/update_theme.en/","delocalizedSlug":"/docs/dogus/cas/development/update_theme/","title":"Update of the \"CES-Theme-Tailwind\" in the thymeleaf-templates","folders":["dogus","cas","development"],"pageType":"docs","delocalizedElement":"update_theme"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/operations/cas-login-limit.en/","delocalizedSlug":"/docs/dogus/cas/operations/cas-login-limit/","title":"Operations","folders":["dogus","cas","operations"],"pageType":"docs","delocalizedElement":"cas-login-limit"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/operations/Configure_OIDC_Provider.en/","delocalizedSlug":"/docs/dogus/cas/operations/Configure_OIDC_Provider/","title":"Configuration for using an OIDC provider as an authentication source.","folders":["dogus","cas","operations"],"pageType":"docs","delocalizedElement":"Configure_OIDC_Provider"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/operations/customization_of_configurable_texts.en/","delocalizedSlug":"/docs/dogus/cas/operations/customization_of_configurable_texts/","title":"Customization of configurable texts","folders":["dogus","cas","operations"],"pageType":"docs","delocalizedElement":"customization_of_configurable_texts"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/operations/endpoint_accessToken.en/","delocalizedSlug":"/docs/dogus/cas/operations/endpoint_accessToken/","title":"Access token","folders":["dogus","cas","operations"],"pageType":"docs","delocalizedElement":"endpoint_accessToken"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/operations/endpoint_authorize.en/","delocalizedSlug":"/docs/dogus/cas/operations/endpoint_authorize/","title":"Authorize","folders":["dogus","cas","operations"],"pageType":"docs","delocalizedElement":"endpoint_authorize"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/operations/password-management.en/","delocalizedSlug":"/docs/dogus/cas/operations/password-management/","title":"Password management in CAS","folders":["dogus","cas","operations"],"pageType":"docs","delocalizedElement":"password-management"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/operations/oauth_guide.en/","delocalizedSlug":"/docs/dogus/cas/operations/oauth_guide/","title":"Use CAS as OAuth/OIDC Provider","folders":["dogus","cas","operations"],"pageType":"docs","delocalizedElement":"oauth_guide"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/operations/endpoint_profile.en/","delocalizedSlug":"/docs/dogus/cas/operations/endpoint_profile/","title":"Profile","folders":["dogus","cas","operations"],"pageType":"docs","delocalizedElement":"endpoint_profile"}}},{"node":{"fields":{"slug":"/docs/dogus/cas/operations/two_factor_authentication.en/","delocalizedSlug":"/docs/dogus/cas/operations/two_factor_authentication/","title":"Two Factor Authentication","folders":["dogus","cas","operations"],"pageType":"docs","delocalizedElement":"two_factor_authentication"}}},{"node":{"fields":{"slug":"/docs/dogus/easyredmine/development/environment.en/","delocalizedSlug":"/docs/dogus/easyredmine/development/environment/","title":"Local development environment","folders":["dogus","easyredmine","development"],"pageType":"docs","delocalizedElement":"environment"}}},{"node":{"fields":{"slug":"/docs/dogus/easyredmine/development/gui_testing.en/","delocalizedSlug":"/docs/dogus/easyredmine/development/gui_testing/","title":"Gui-testing Easy Redmine","folders":["dogus","easyredmine","development"],"pageType":"docs","delocalizedElement":"gui_testing"}}},{"node":{"fields":{"slug":"/docs/dogus/easyredmine/development/shell_testing.en/","delocalizedSlug":"/docs/dogus/easyredmine/development/shell_testing/","title":"Shell testing","folders":["dogus","easyredmine","development"],"pageType":"docs","delocalizedElement":"shell_testing"}}},{"node":{"fields":{"slug":"/docs/dogus/easyredmine/operations/default_configuration.en/","delocalizedSlug":"/docs/dogus/easyredmine/operations/default_configuration/","title":"Deploy configuration on dogustart","folders":["dogus","easyredmine","operations"],"pageType":"docs","delocalizedElement":"default_configuration"}}},{"node":{"fields":{"slug":"/docs/dogus/easyredmine/operations/import_project_templates.en/","delocalizedSlug":"/docs/dogus/easyredmine/operations/import_project_templates/","title":"Project template import","folders":["dogus","easyredmine","operations"],"pageType":"docs","delocalizedElement":"import_project_templates"}}},{"node":{"fields":{"slug":"/docs/dogus/cockpit/development/Developers_Guide.en/","delocalizedSlug":"/docs/dogus/cockpit/development/Developers_Guide/","title":"Developer Guide","folders":["dogus","cockpit","development"],"pageType":"docs","delocalizedElement":"Developers_Guide"}}},{"node":{"fields":{"slug":"/docs/dogus/cockpit/development/Pinned_Dashboard.en/","delocalizedSlug":"/docs/dogus/cockpit/development/Pinned_Dashboard/","title":"Pinned Dashboard","folders":["dogus","cockpit","development"],"pageType":"docs","delocalizedElement":"Pinned_Dashboard"}}},{"node":{"fields":{"slug":"/docs/dogus/easyredmine/operations/logging.en/","delocalizedSlug":"/docs/dogus/easyredmine/operations/logging/","title":"Logging","folders":["dogus","easyredmine","operations"],"pageType":"docs","delocalizedElement":"logging"}}},{"node":{"fields":{"slug":"/docs/dogus/cockpit/development/Setup_Integrationtest.en/","delocalizedSlug":"/docs/dogus/cockpit/development/Setup_Integrationtest/","title":"Setup for the integration tests","folders":["dogus","cockpit","development"],"pageType":"docs","delocalizedElement":"Setup_Integrationtest"}}},{"node":{"fields":{"slug":"/docs/dogus/cockpit/operations/Configure_Dogu.en/","delocalizedSlug":"/docs/dogus/cockpit/operations/Configure_Dogu/","title":"Configuration of the Cockpit Dogu","folders":["dogus","cockpit","operations"],"pageType":"docs","delocalizedElement":"Configure_Dogu"}}},{"node":{"fields":{"slug":"/docs/dogus/cockpit/operations/Install_Dogu.en/","delocalizedSlug":"/docs/dogus/cockpit/operations/Install_Dogu/","title":"Installation of the Cockpit Dogu","folders":["dogus","cockpit","operations"],"pageType":"docs","delocalizedElement":"Install_Dogu"}}},{"node":{"fields":{"slug":"/docs/dogus/grafana/development/grafana_carp.en/","delocalizedSlug":"/docs/dogus/grafana/development/grafana_carp/","title":"The Grafana CARP","folders":["dogus","grafana","development"],"pageType":"docs","delocalizedElement":"grafana_carp"}}},{"node":{"fields":{"slug":"/docs/dogus/grafana/development/local_development.en/","delocalizedSlug":"/docs/dogus/grafana/development/local_development/","title":"Local development on Grafana-Dogu in the k8s-ecosystem","folders":["dogus","grafana","development"],"pageType":"docs","delocalizedElement":"local_development"}}},{"node":{"fields":{"slug":"/docs/dogus/grafana/operations/configuration.en/","delocalizedSlug":"/docs/dogus/grafana/operations/configuration/","title":"Configuration of the Grafana-Dogus","folders":["dogus","grafana","operations"],"pageType":"docs","delocalizedElement":"configuration"}}},{"node":{"fields":{"slug":"/docs/dogus/grafana/operations/dashboard_provision.en/","delocalizedSlug":"/docs/dogus/grafana/operations/dashboard_provision/","title":"Automatically provision dashboards","folders":["dogus","grafana","operations"],"pageType":"docs","delocalizedElement":"dashboard_provision"}}},{"node":{"fields":{"slug":"/docs/dogus/grafana/operations/important_remarks.en/","delocalizedSlug":"/docs/dogus/grafana/operations/important_remarks/","title":"Important remarks","folders":["dogus","grafana","operations"],"pageType":"docs","delocalizedElement":"important_remarks"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/development/plugin_blocklist.en/","delocalizedSlug":"/docs/dogus/jenkins/development/plugin_blocklist/","title":"Plugin-Blocklist","folders":["dogus","jenkins","development"],"pageType":"docs","delocalizedElement":"plugin_blocklist"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/development/plugin_compatibility.en/","delocalizedSlug":"/docs/dogus/jenkins/development/plugin_compatibility/","title":"Plugin compatibility list","folders":["dogus","jenkins","development"],"pageType":"docs","delocalizedElement":"plugin_compatibility"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/development/plugin_test.en/","delocalizedSlug":"/docs/dogus/jenkins/development/plugin_test/","title":"Test Plugin compatibility","folders":["dogus","jenkins","development"],"pageType":"docs","delocalizedElement":"plugin_test"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/development/upgrade_guide.en/","delocalizedSlug":"/docs/dogus/jenkins/development/upgrade_guide/","title":"Upgrade base image","folders":["dogus","jenkins","development"],"pageType":"docs","delocalizedElement":"upgrade_guide"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/operations/Additional_SSL_certificates.en/","delocalizedSlug":"/docs/dogus/jenkins/operations/Additional_SSL_certificates/","title":"Additional SSL certificates","folders":["dogus","jenkins","operations"],"pageType":"docs","delocalizedElement":"Additional_SSL_certificates"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/operations/Building_with_custom_Java.en/","delocalizedSlug":"/docs/dogus/jenkins/operations/Building_with_custom_Java/","title":"Building with custom OpenJDK versions","folders":["dogus","jenkins","operations"],"pageType":"docs","delocalizedElement":"Building_with_custom_Java"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/operations/Post_initialization_scripts.en/","delocalizedSlug":"/docs/dogus/jenkins/operations/Post_initialization_scripts/","title":"Post-initialization scripts","folders":["dogus","jenkins","operations"],"pageType":"docs","delocalizedElement":"Post_initialization_scripts"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/operations/TCP_agent_listener_port.en/","delocalizedSlug":"/docs/dogus/jenkins/operations/TCP_agent_listener_port/","title":"TCP Agent Listener Port","folders":["dogus","jenkins","operations"],"pageType":"docs","delocalizedElement":"TCP_agent_listener_port"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/operations/Install_Jenkins.en/","delocalizedSlug":"/docs/dogus/jenkins/operations/Install_Jenkins/","title":"Installation of the Jenkins Dogu","folders":["dogus","jenkins","operations"],"pageType":"docs","delocalizedElement":"Install_Jenkins"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/operations/azure_agents.en/","delocalizedSlug":"/docs/dogus/jenkins/operations/azure_agents/","title":"Set up Jenkins agents in the Azure Cloud","folders":["dogus","jenkins","operations"],"pageType":"docs","delocalizedElement":"azure_agents"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/operations/configure_log_level.en/","delocalizedSlug":"/docs/dogus/jenkins/operations/configure_log_level/","title":"Configure log level","folders":["dogus","jenkins","operations"],"pageType":"docs","delocalizedElement":"configure_log_level"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/operations/kubernetes_native_builds.en/","delocalizedSlug":"/docs/dogus/jenkins/operations/kubernetes_native_builds/","title":"Kubernetes-native builds","folders":["dogus","jenkins","operations"],"pageType":"docs","delocalizedElement":"kubernetes_native_builds"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/development/development_process.en/","delocalizedSlug":"/docs/dogus/ldap/development/development_process/","title":"Development Process (Dogu + Component)","folders":["dogus","ldap","development"],"pageType":"docs","delocalizedElement":"development_process"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/development/password_policy.en/","delocalizedSlug":"/docs/dogus/ldap/development/password_policy/","title":"Important notes on installing the password policy","folders":["dogus","ldap","development"],"pageType":"docs","delocalizedElement":"password_policy"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/development/review.en/","delocalizedSlug":"/docs/dogus/ldap/development/review/","title":"Important to note when reviewing the LDAP-Dogus.","folders":["dogus","ldap","development"],"pageType":"docs","delocalizedElement":"review"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/development/test_ldap_as_initial_install.en/","delocalizedSlug":"/docs/dogus/ldap/development/test_ldap_as_initial_install/","title":"Test local LDAP version as initial installation.","folders":["dogus","ldap","development"],"pageType":"docs","delocalizedElement":"test_ldap_as_initial_install"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/operations/ldap_component_installation.en/","delocalizedSlug":"/docs/dogus/ldap/operations/ldap_component_installation/","title":"Install and Configure the LDAP Component","folders":["dogus","ldap","operations"],"pageType":"docs","delocalizedElement":"ldap_component_installation"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/operations/mail_after_changed_password.en/","delocalizedSlug":"/docs/dogus/ldap/operations/mail_after_changed_password/","title":"# Sending an e-mail after changing a user's password","folders":["dogus","ldap","operations"],"pageType":"docs","delocalizedElement":"mail_after_changed_password"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/operations/ldap_migration_dogu_to_component.en/","delocalizedSlug":"/docs/dogus/ldap/operations/ldap_migration_dogu_to_component/","title":"LDAP Migration from Dogu to Component","folders":["dogus","ldap","operations"],"pageType":"docs","delocalizedElement":"ldap_migration_dogu_to_component"}}},{"node":{"fields":{"slug":"/docs/dogus/ldap/operations/password-policy.en/","delocalizedSlug":"/docs/dogus/ldap/operations/password-policy/","title":"Password policies","folders":["dogus","ldap","operations"],"pageType":"docs","delocalizedElement":"password-policy"}}},{"node":{"fields":{"slug":"/docs/dogus/jenkins/operations/additional_configuration.en/","delocalizedSlug":"/docs/dogus/jenkins/operations/additional_configuration/","title":"Additional configurations","folders":["dogus","jenkins","operations"],"pageType":"docs","delocalizedElement":"additional_configuration"}}},{"node":{"fields":{"slug":"/docs/dogus/nexus/development/dev.en/","delocalizedSlug":"/docs/dogus/nexus/development/dev/","title":"Dev","folders":["dogus","nexus","development"],"pageType":"docs","delocalizedElement":"dev"}}},{"node":{"fields":{"slug":"/docs/dogus/nexus/operations/Configure_Service_Accounts.en/","delocalizedSlug":"/docs/dogus/nexus/operations/Configure_Service_Accounts/","title":"Configuration of service accounts","folders":["dogus","nexus","operations"],"pageType":"docs","delocalizedElement":"Configure_Service_Accounts"}}},{"node":{"fields":{"slug":"/docs/dogus/nexus/operations/preconfigure_repositories.en/","delocalizedSlug":"/docs/dogus/nexus/operations/preconfigure_repositories/","title":"Preconfigure Repositories","folders":["dogus","nexus","operations"],"pageType":"docs","delocalizedElement":"preconfigure_repositories"}}},{"node":{"fields":{"slug":"/docs/dogus/nexus/operations/preconfigure_repository_data.en/","delocalizedSlug":"/docs/dogus/nexus/operations/preconfigure_repository_data/","title":"Preconfigure Repository Data","folders":["dogus","nexus","operations"],"pageType":"docs","delocalizedElement":"preconfigure_repository_data"}}},{"node":{"fields":{"slug":"/docs/dogus/nexus/operations/predefined_nexus_entities.en/","delocalizedSlug":"/docs/dogus/nexus/operations/predefined_nexus_entities/","title":"Preconfigured Nexus settings","folders":["dogus","nexus","operations"],"pageType":"docs","delocalizedElement":"predefined_nexus_entities"}}},{"node":{"fields":{"slug":"/docs/dogus/nginx/dev/ces-theme.en/","delocalizedSlug":"/docs/dogus/nginx/dev/ces-theme/","title":"CES-Theme-Integration","folders":["dogus","nginx","dev"],"pageType":"docs","delocalizedElement":"ces-theme"}}},{"node":{"fields":{"slug":"/docs/dogus/nginx/dev/client-certificates.en/","delocalizedSlug":"/docs/dogus/nginx/dev/client-certificates/","title":"Mutual TLS with client certificates","folders":["dogus","nginx","dev"],"pageType":"docs","delocalizedElement":"client-certificates"}}},{"node":{"fields":{"slug":"/docs/dogus/nginx/dev/integration_tests.en/","delocalizedSlug":"/docs/dogus/nginx/dev/integration_tests/","title":"Setting up the integration tests","folders":["dogus","nginx","dev"],"pageType":"docs","delocalizedElement":"integration_tests"}}},{"node":{"fields":{"slug":"/docs/dogus/nginx/dev/support_entries_in_warp_menu.en/","delocalizedSlug":"/docs/dogus/nginx/dev/support_entries_in_warp_menu/","title":"Configure support entries for the warp menu","folders":["dogus","nginx","dev"],"pageType":"docs","delocalizedElement":"support_entries_in_warp_menu"}}},{"node":{"fields":{"slug":"/docs/dogus/nginx/operations/proxy_buffering.en/","delocalizedSlug":"/docs/dogus/nginx/operations/proxy_buffering/","title":"Request Buffering","folders":["dogus","nginx","operations"],"pageType":"docs","delocalizedElement":"proxy_buffering"}}},{"node":{"fields":{"slug":"/docs/dogus/portainer/operations/Add_Portainer_Endpoint.en/","delocalizedSlug":"/docs/dogus/portainer/operations/Add_Portainer_Endpoint/","title":"Configuring a Portainer endpoint via Dogu-config","folders":["dogus","portainer","operations"],"pageType":"docs","delocalizedElement":"Add_Portainer_Endpoint"}}},{"node":{"fields":{"slug":"/docs/dogus/portainer/operations/Configure_Portainer.en/","delocalizedSlug":"/docs/dogus/portainer/operations/Configure_Portainer/","title":"Configuration of Portainer","folders":["dogus","portainer","operations"],"pageType":"docs","delocalizedElement":"Configure_Portainer"}}},{"node":{"fields":{"slug":"/docs/dogus/portainer/operations/Install_Portainer.en/","delocalizedSlug":"/docs/dogus/portainer/operations/Install_Portainer/","title":"Installing the Portainer dogu","folders":["dogus","portainer","operations"],"pageType":"docs","delocalizedElement":"Install_Portainer"}}},{"node":{"fields":{"slug":"/docs/dogus/postfix/development/Developers_Guide.en/","delocalizedSlug":"/docs/dogus/postfix/development/Developers_Guide/","title":"Developer Guide","folders":["dogus","postfix","development"],"pageType":"docs","delocalizedElement":"Developers_Guide"}}},{"node":{"fields":{"slug":"/docs/dogus/portainer/operations/User_Roles.en/","delocalizedSlug":"/docs/dogus/portainer/operations/User_Roles/","title":"Permissions & roles","folders":["dogus","portainer","operations"],"pageType":"docs","delocalizedElement":"User_Roles"}}},{"node":{"fields":{"slug":"/docs/dogus/postfix/development/Send_Mails_locally.en/","delocalizedSlug":"/docs/dogus/postfix/development/Send_Mails_locally/","title":"Local mail dispatch","folders":["dogus","postfix","development"],"pageType":"docs","delocalizedElement":"Send_Mails_locally"}}},{"node":{"fields":{"slug":"/docs/dogus/postfix/operations/Configure_Dogu.en/","delocalizedSlug":"/docs/dogus/postfix/operations/Configure_Dogu/","title":"Configuration of the Postfix dogu","folders":["dogus","postfix","operations"],"pageType":"docs","delocalizedElement":"Configure_Dogu"}}},{"node":{"fields":{"slug":"/docs/dogus/postfix/operations/Install_Postfix.en/","delocalizedSlug":"/docs/dogus/postfix/operations/Install_Postfix/","title":"Installation of the Postfix dogu","folders":["dogus","postfix","operations"],"pageType":"docs","delocalizedElement":"Install_Postfix"}}},{"node":{"fields":{"slug":"/docs/dogus/postgresql/development/upgrade_dogu.en/","delocalizedSlug":"/docs/dogus/postgresql/development/upgrade_dogu/","title":"Upgrade of the PostgreSQL Dogu","folders":["dogus","postgresql","development"],"pageType":"docs","delocalizedElement":"upgrade_dogu"}}},{"node":{"fields":{"slug":"/docs/dogus/redmine/development/Setup_Integrationtests.en/","delocalizedSlug":"/docs/dogus/redmine/development/Setup_Integrationtests/","title":"Setup for the integration tests","folders":["dogus","redmine","development"],"pageType":"docs","delocalizedElement":"Setup_Integrationtests"}}},{"node":{"fields":{"slug":"/docs/dogus/redmine/development/cas_plugin_and_session_store.en/","delocalizedSlug":"/docs/dogus/redmine/development/cas_plugin_and_session_store/","title":"Developer notes on the CAS plugin and the session store.","folders":["dogus","redmine","development"],"pageType":"docs","delocalizedElement":"cas_plugin_and_session_store"}}},{"node":{"fields":{"slug":"/docs/dogus/redmine/development/shell_testing.en/","delocalizedSlug":"/docs/dogus/redmine/development/shell_testing/","title":"Shell testing","folders":["dogus","redmine","development"],"pageType":"docs","delocalizedElement":"shell_testing"}}},{"node":{"fields":{"slug":"/docs/dogus/redmine/development/upgrade_dogu.en/","delocalizedSlug":"/docs/dogus/redmine/development/upgrade_dogu/","title":"Upgrade of the Redmine Dogu","folders":["dogus","redmine","development"],"pageType":"docs","delocalizedElement":"upgrade_dogu"}}},{"node":{"fields":{"slug":"/docs/dogus/redmine/operations/change_gravatar_settings.en/","delocalizedSlug":"/docs/dogus/redmine/operations/change_gravatar_settings/","title":"Changing Gravatar settings","folders":["dogus","redmine","operations"],"pageType":"docs","delocalizedElement":"change_gravatar_settings"}}},{"node":{"fields":{"slug":"/docs/dogus/redmine/operations/default_configuration.en/","delocalizedSlug":"/docs/dogus/redmine/operations/default_configuration/","title":"Deploy configuration on dogustart","folders":["dogus","redmine","operations"],"pageType":"docs","delocalizedElement":"default_configuration"}}},{"node":{"fields":{"slug":"/docs/dogus/redmine/operations/redmine_plugins.en/","delocalizedSlug":"/docs/dogus/redmine/operations/redmine_plugins/","title":"Redmine plugins file management","folders":["dogus","redmine","operations"],"pageType":"docs","delocalizedElement":"redmine_plugins"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/development/carp_develop_stage.en/","delocalizedSlug":"/docs/dogus/sonar/development/carp_develop_stage/","title":"CARP Development Mode","folders":["dogus","sonar","development"],"pageType":"docs","delocalizedElement":"carp_develop_stage"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/development/carp_remote_debugging.en/","delocalizedSlug":"/docs/dogus/sonar/development/carp_remote_debugging/","title":"CARP Remote Debugging","folders":["dogus","sonar","development"],"pageType":"docs","delocalizedElement":"carp_remote_debugging"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/development/community-branch-plugin.en/","delocalizedSlug":"/docs/dogus/sonar/development/community-branch-plugin/","title":"SonarQube Community Branch Plugin","folders":["dogus","sonar","development"],"pageType":"docs","delocalizedElement":"community-branch-plugin"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/development/developing.en/","delocalizedSlug":"/docs/dogus/sonar/development/developing/","title":"Developing the SonarQube dogu","folders":["dogus","sonar","development"],"pageType":"docs","delocalizedElement":"developing"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/development/scanning_code_the_easy_way.en/","delocalizedSlug":"/docs/dogus/sonar/development/scanning_code_the_easy_way/","title":"Easier scanning with Sonar-scanner-cli","folders":["dogus","sonar","development"],"pageType":"docs","delocalizedElement":"scanning_code_the_easy_way"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/development/understanding_sonarcarp.en/","delocalizedSlug":"/docs/dogus/sonar/development/understanding_sonarcarp/","title":"Understanding how Sonarcarp works","folders":["dogus","sonar","development"],"pageType":"docs","delocalizedElement":"understanding_sonarcarp"}}},{"node":{"fields":{"slug":"/docs/dogus/smeagol/development/Setup_Integrationtest.en/","delocalizedSlug":"/docs/dogus/smeagol/development/Setup_Integrationtest/","title":"Setup for the integration tests","folders":["dogus","smeagol","development"],"pageType":"docs","delocalizedElement":"Setup_Integrationtest"}}},{"node":{"fields":{"slug":"/docs/dogus/smeagol/development/start_and_debug_locally.en/","delocalizedSlug":"/docs/dogus/smeagol/development/start_and_debug_locally/","title":"Start Smeagol locally","folders":["dogus","smeagol","development"],"pageType":"docs","delocalizedElement":"start_and_debug_locally"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/operations/global_permission.en/","delocalizedSlug":"/docs/dogus/sonar/operations/global_permission/","title":"global permissions","folders":["dogus","sonar","operations"],"pageType":"docs","delocalizedElement":"global_permission"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/operations/import_quality_profile.en/","delocalizedSlug":"/docs/dogus/sonar/operations/import_quality_profile/","title":"Operations","folders":["dogus","sonar","operations"],"pageType":"docs","delocalizedElement":"import_quality_profile"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/operations/permission_template.en/","delocalizedSlug":"/docs/dogus/sonar/operations/permission_template/","title":"Permission template","folders":["dogus","sonar","operations"],"pageType":"docs","delocalizedElement":"permission_template"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/sonar-cas-plugin/CHANGELOG.en/","delocalizedSlug":"/docs/dogus/sonar/sonar-cas-plugin/CHANGELOG/","title":"Changelog","folders":["dogus","sonar","sonar-cas-plugin"],"pageType":"docs","delocalizedElement":"CHANGELOG"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/sonar-cas-plugin/README.en/","delocalizedSlug":"/docs/dogus/sonar/sonar-cas-plugin/README/","title":"Readme","folders":["dogus","sonar","sonar-cas-plugin"],"pageType":"docs","delocalizedElement":"README"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/sonar-cas-plugin/architecture.en/","delocalizedSlug":"/docs/dogus/sonar/sonar-cas-plugin/architecture/","title":"Architecture and internals","folders":["dogus","sonar","sonar-cas-plugin"],"pageType":"docs","delocalizedElement":"architecture"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/sonar-cas-plugin/development.en/","delocalizedSlug":"/docs/dogus/sonar/sonar-cas-plugin/development/","title":"Developing the SonarQube CAS plugin","folders":["dogus","sonar","sonar-cas-plugin"],"pageType":"docs","delocalizedElement":"development"}}},{"node":{"fields":{"slug":"/docs/dogus/sonar/sonar-cas-plugin/pluginConfiguration.en/","delocalizedSlug":"/docs/dogus/sonar/sonar-cas-plugin/pluginConfiguration/","title":"Plugin configuration","folders":["dogus","sonar","sonar-cas-plugin"],"pageType":"docs","delocalizedElement":"pluginConfiguration"}}},{"node":{"fields":{"slug":"/docs/dogus/swaggerui/development/local_setup.en/","delocalizedSlug":"/docs/dogus/swaggerui/development/local_setup/","title":"Setting up the Swagger UI Dogu","folders":["dogus","swaggerui","development"],"pageType":"docs","delocalizedElement":"local_setup"}}},{"node":{"fields":{"slug":"/docs/dogus/teamscale/operations/Install_Teamscale.en/","delocalizedSlug":"/docs/dogus/teamscale/operations/Install_Teamscale/","title":"Installation of the Teamscale Dogu","folders":["dogus","teamscale","operations"],"pageType":"docs","delocalizedElement":"Install_Teamscale"}}},{"node":{"fields":{"slug":"/docs/dogus/teamscale/operations/dogu_features.en/","delocalizedSlug":"/docs/dogus/teamscale/operations/dogu_features/","title":"Dogu Features","folders":["dogus","teamscale","operations"],"pageType":"docs","delocalizedElement":"dogu_features"}}},{"node":{"fields":{"slug":"/docs/dogus/teamscale/operations/upgrade_teamscale.en/","delocalizedSlug":"/docs/dogus/teamscale/operations/upgrade_teamscale/","title":"Upgrade Teamscale","folders":["dogus","teamscale","operations"],"pageType":"docs","delocalizedElement":"upgrade_teamscale"}}},{"node":{"fields":{"slug":"/docs/dogus/usermgt/development/Developers_Guide.en/","delocalizedSlug":"/docs/dogus/usermgt/development/Developers_Guide/","title":"Developing Usermgt","folders":["dogus","usermgt","development"],"pageType":"docs","delocalizedElement":"Developers_Guide"}}},{"node":{"fields":{"slug":"/docs/dogus/usermgt/development/api.en/","delocalizedSlug":"/docs/dogus/usermgt/development/api/","title":"Api description","folders":["dogus","usermgt","development"],"pageType":"docs","delocalizedElement":"api"}}},{"node":{"fields":{"slug":"/docs/dogus/usermgt/development/configure_integration_tests.en/","delocalizedSlug":"/docs/dogus/usermgt/development/configure_integration_tests/","title":"Configuration for integration tests","folders":["dogus","usermgt","development"],"pageType":"docs","delocalizedElement":"configure_integration_tests"}}},{"node":{"fields":{"slug":"/docs/dogus/usermgt/operations/create_users_synced.en/","delocalizedSlug":"/docs/dogus/usermgt/operations/create_users_synced/","title":"Create Users Synced","folders":["dogus","usermgt","operations"],"pageType":"docs","delocalizedElement":"create_users_synced"}}},{"node":{"fields":{"slug":"/docs/dogus/usermgt/operations/csv-import.en/","delocalizedSlug":"/docs/dogus/usermgt/operations/csv-import/","title":"CSV IMPORT","folders":["dogus","usermgt","operations"],"pageType":"docs","delocalizedElement":"csv-import"}}},{"node":{"fields":{"slug":"/docs/dogus/usermgt/operations/password-policy.en/","delocalizedSlug":"/docs/dogus/usermgt/operations/password-policy/","title":"Passwort Policy","folders":["dogus","usermgt","operations"],"pageType":"docs","delocalizedElement":"password-policy"}}},{"node":{"fields":{"slug":"/docs/dogus/whitelabeling/development/setup_environment.en/","delocalizedSlug":"/docs/dogus/whitelabeling/development/setup_environment/","title":"Setup environment","folders":["dogus","whitelabeling","development"],"pageType":"docs","delocalizedElement":"setup_environment"}}},{"node":{"fields":{"slug":"/docs/system-components/ces-setup/operations/Configure_Unattended_Upgrades.en/","delocalizedSlug":"/docs/system-components/ces-setup/operations/Configure_Unattended_Upgrades/","title":"Configuration of unattended upgrades","folders":["system-components","ces-setup","operations"],"pageType":"docs","delocalizedElement":"Configure_Unattended_Upgrades"}}},{"node":{"fields":{"slug":"/docs/system-components/ces-setup/operations/Import_Projects.en/","delocalizedSlug":"/docs/system-components/ces-setup/operations/Import_Projects/","title":"Importing projects in the CES setup","folders":["system-components","ces-setup","operations"],"pageType":"docs","delocalizedElement":"Import_Projects"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/development/access_structure.en/","delocalizedSlug":"/docs/system-components/cesapp/development/access_structure/","title":"Access structure","folders":["system-components","cesapp","development"],"pageType":"docs","delocalizedElement":"access_structure"}}},{"node":{"fields":{"slug":"/docs/system-components/ces-setup/operations/setup-json.en/","delocalizedSlug":"/docs/system-components/ces-setup/operations/setup-json/","title":"Usage of setup.json","folders":["system-components","ces-setup","operations"],"pageType":"docs","delocalizedElement":"setup-json"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/development/cesapp_cmd_helptext_styleguide.en/","delocalizedSlug":"/docs/system-components/cesapp/development/cesapp_cmd_helptext_styleguide/","title":"Styleguide for help text output","folders":["system-components","cesapp","development"],"pageType":"docs","delocalizedElement":"cesapp_cmd_helptext_styleguide"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/development/dogu_json_upgrade_v2.en/","delocalizedSlug":"/docs/system-components/cesapp/development/dogu_json_upgrade_v2/","title":"upgrade a dogu.json from v1 to v2","folders":["system-components","cesapp","development"],"pageType":"docs","delocalizedElement":"dogu_json_upgrade_v2"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/development/generating_mocks.en/","delocalizedSlug":"/docs/system-components/cesapp/development/generating_mocks/","title":"Generating mocks","folders":["system-components","cesapp","development"],"pageType":"docs","delocalizedElement":"generating_mocks"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/development/major_release.en/","delocalizedSlug":"/docs/system-components/cesapp/development/major_release/","title":"Release cesapp in a new major version.","folders":["system-components","cesapp","development"],"pageType":"docs","delocalizedElement":"major_release"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/development/running_tests.en/","delocalizedSlug":"/docs/system-components/cesapp/development/running_tests/","title":"Running tests","folders":["system-components","cesapp","development"],"pageType":"docs","delocalizedElement":"running_tests"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/alert_mail.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/alert_mail/","title":"Email notification for failed processes","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"alert_mail"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/backup.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/backup/","title":"Command: cesapp backup","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"backup"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/backup_and_restore.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/backup_and_restore/","title":"Backup and Restore (B&R)","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"backup_and_restore"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/blueprint_upgrade.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/blueprint_upgrade/","title":"Upgrade the CES with Blueprints","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"blueprint_upgrade"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/build.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/build/","title":"Command: cesapp build","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"build"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/command.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/command/","title":"Command: cesapp command","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"command"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/debug_mode.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/debug_mode/","title":"Command: `cesapp debug-mode`","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"debug_mode"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/detail.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/detail/","title":"Command cesapp detail","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"detail"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/detailremote.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/detailremote/","title":"Command: cesapp detailremote","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"detailremote"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/dogu-upgrade.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/dogu-upgrade/","title":"Dogu upgrades","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"dogu-upgrade"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/edit_config.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/edit_config/","title":"Command: cesapp edit-config","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"edit_config"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/healthy.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/healthy/","title":"Command: cesapp healthy","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"healthy"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/install.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/install/","title":"Command: cesapp install","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"install"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/instance.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/instance/","title":"Command: cesapp instance","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"instance"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/list-remote.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/list-remote/","title":"Command: cesapp list-remote","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"list-remote"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/list.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/list/","title":"Command: cesapp list","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"list"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/list_upgrades.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/list_upgrades/","title":"Command: cesapp list-upgrades","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"list_upgrades"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/login.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/login/","title":"Command: cesapp login","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"login"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/migrating.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/migrating/","title":"Migrating Cesapp versions","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"migrating"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/pull.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/pull/","title":"Command: cesapp pull","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"pull"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/purge.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/purge/","title":"Command: cesapp purge","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"purge"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/push.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/push/","title":"Command: cesapp push","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"push"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/reconfigure.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/reconfigure/","title":"Command: cesapp reconfigure","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"reconfigure"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/recreate.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/recreate/","title":"Command: cesapp recreate","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"recreate"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/remove-backups.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/remove-backups/","title":"Command cesapp remove-backups","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"remove-backups"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/remove-backups_list-policies.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/remove-backups_list-policies/","title":"Command: `cesapp remove-backups list-policies`","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"remove-backups_list-policies"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/restart.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/restart/","title":"Command: cesapp restart","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"restart"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/restore.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/restore/","title":"Command: cesapp restore","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"restore"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/start.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/start/","title":"Command: cesapp start","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"start"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/stop.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/stop/","title":"Command: cesapp stop","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"stop"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/switch-namespace.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/switch-namespace/","title":"Command: cesapp switch-namespace","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"switch-namespace"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/unregister.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/unregister/","title":"Command: cesapp unregister","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"unregister"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/upgrade.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/upgrade/","title":"Command: cesapp upgrade","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"upgrade"}}},{"node":{"fields":{"slug":"/docs/system-components/cesapp/operations/verify.en/","delocalizedSlug":"/docs/system-components/cesapp/operations/verify/","title":"Command: cesapp verify","folders":["system-components","cesapp","operations"],"pageType":"docs","delocalizedElement":"verify"}}},{"node":{"fields":{"slug":"/docs/system-components/cesappd/operations/architecture.en/","delocalizedSlug":"/docs/system-components/cesappd/operations/architecture/","title":"Architecture of the cesappd","folders":["system-components","cesappd","operations"],"pageType":"docs","delocalizedElement":"architecture"}}},{"node":{"fields":{"slug":"/docs/system-components/cesappd/operations/dogu_authentication.en/","delocalizedSlug":"/docs/system-components/cesappd/operations/dogu_authentication/","title":"Dogu authentication","folders":["system-components","cesappd","operations"],"pageType":"docs","delocalizedElement":"dogu_authentication"}}},{"node":{"fields":{"slug":"/docs/system-components/cesappd/operations/firewall.en/","delocalizedSlug":"/docs/system-components/cesappd/operations/firewall/","title":"Firewall setup for Cesappd","folders":["system-components","cesappd","operations"],"pageType":"docs","delocalizedElement":"firewall"}}},{"node":{"fields":{"slug":"/docs/system-components/cesappd/development/development.en/","delocalizedSlug":"/docs/system-components/cesappd/development/development/","title":"Development","folders":["system-components","cesappd","development"],"pageType":"docs","delocalizedElement":"development"}}},{"node":{"fields":{"slug":"/docs/system-components/etcd/development/etcd_registry_structure.en/","delocalizedSlug":"/docs/system-components/etcd/development/etcd_registry_structure/","title":"Etcd registry structure","folders":["system-components","etcd","development"],"pageType":"docs","delocalizedElement":"etcd_registry_structure"}}},{"node":{"fields":{"slug":"/docs/system-components/etcd/development/maintenance_mode.en/","delocalizedSlug":"/docs/system-components/etcd/development/maintenance_mode/","title":"Maintenance mode","folders":["system-components","etcd","development"],"pageType":"docs","delocalizedElement":"maintenance_mode"}}}]},"site":{"siteMetadata":{"feedbackForumUrl":"https://community.cloudogu.com/c/cloudogu-ecosystem/ecosystem-docs/43"}}},"pageContext":{"slug":"/docs/dogus/cas/development/Upgrading_CAS/","pageType":"docs","locale":"en","hrefLang":"en-US","originalPath":"/docs/dogus/cas/development/Upgrading_CAS/","dateFormat":"MM/DD/YYYY"}},"staticQueryHashes":["1239077767","1958541892","1958541892","3280999885","3280999885","3963778127","914906612"]}