diff --git a/assets/dbp-official-signature-pdf-upload.metadata.json b/assets/dbp-official-signature-pdf-upload.metadata.json
index 87f5ae1b446c13944cd7c0b39f99263697db9cce..7a487d584eff50e3e4bd4aa0e557b222d2fe000c 100644
--- a/assets/dbp-official-signature-pdf-upload.metadata.json
+++ b/assets/dbp-official-signature-pdf-upload.metadata.json
@@ -14,5 +14,5 @@
     "de": "Erlaubt das Hochladen von PDF-Dokumenten, um sie mit einer Amtssignatur zu versehen",
     "en": "Allows upload of PDF-documents to officially sign them"
   },
-  "subscribe": "lang:lang,entry-point-url:entry-point-url,nextcloud-web-app-password-url:nextcloud-web-app-password-url,nextcloud-webdav-url:nextcloud-webdav-url,nextcloud-name:nextcloud-name,nextcloud-file-url:nextcloud-file-url"
+  "subscribe": "lang:lang,entry-point-url:entry-point-url,nextcloud-web-app-password-url:nextcloud-web-app-password-url,nextcloud-webdav-url:nextcloud-webdav-url,nextcloud-name:nextcloud-name,nextcloud-file-url:nextcloud-file-url,show-nextcloud-file-picker:show-nextcloud-file-picker"
 }
diff --git a/assets/dbp-qualified-signature-pdf-upload.metadata.json b/assets/dbp-qualified-signature-pdf-upload.metadata.json
index d07dedbe1c3e7743b735b7fcc76a267b61fb91e2..ba42a8c41c7826e2087ae249ee99110816a1b155 100644
--- a/assets/dbp-qualified-signature-pdf-upload.metadata.json
+++ b/assets/dbp-qualified-signature-pdf-upload.metadata.json
@@ -14,5 +14,5 @@
     "de": "Erlaubt das Hochladen von PDF-Dokumenten, um sie mit einer persönlichen elektronischen Signatur zu versehen",
     "en": "Allows upload of PDF-documents to personally sign them"
   },
-  "subscribe": "lang:lang,entry-point-url:entry-point-url,nextcloud-web-app-password-url:nextcloud-web-app-password-url,nextcloud-webdav-url:nextcloud-webdav-url,nextcloud-name:nextcloud-name,nextcloud-file-url:nextcloud-file-url"
+  "subscribe": "lang:lang,entry-point-url:entry-point-url,nextcloud-web-app-password-url:nextcloud-web-app-password-url,nextcloud-webdav-url:nextcloud-webdav-url,nextcloud-name:nextcloud-name,nextcloud-file-url:nextcloud-file-url,show-nextcloud-file-picker:show-nextcloud-file-picker"
 }
diff --git a/assets/dbp-signature-verification-full.metadata.json b/assets/dbp-signature-verification-full.metadata.json
index a0b3c7ff888e3390403f0f44f7b99f5e78ffd666..40059518cad2f8256b9d2d6b5401468472ebf61c 100644
--- a/assets/dbp-signature-verification-full.metadata.json
+++ b/assets/dbp-signature-verification-full.metadata.json
@@ -14,5 +14,5 @@
     "de": "Erlaubt das Verifizieren von signierten PDF-Dokumenten",
     "en": "Allows verification of signed PDF-documents"
   },
-  "subscribe": "lang:lang,entry-point-url:entry-point-url,nextcloud-web-app-password-url:nextcloud-web-app-password-url,nextcloud-webdav-url:nextcloud-webdav-url,nextcloud-name:nextcloud-name,nextcloud-file-url:nextcloud-file-url"
+  "subscribe": "lang:lang,entry-point-url:entry-point-url,nextcloud-web-app-password-url:nextcloud-web-app-password-url,nextcloud-webdav-url:nextcloud-webdav-url,nextcloud-name:nextcloud-name,nextcloud-file-url:nextcloud-file-url,show-nextcloud-file-picker:show-nextcloud-file-picker"
 }
diff --git a/assets/dbp-signature.html.ejs b/assets/dbp-signature.html.ejs
index 7e6f3a5d73ccaff2e7b8a9e01e9a6d958f096dc1..bf6864be2c5ad50835a47c0fd37134ea0adfd473 100644
--- a/assets/dbp-signature.html.ejs
+++ b/assets/dbp-signature.html.ejs
@@ -55,6 +55,7 @@
 <body>
 <dbp-provider id="root"
               lang="de" entry-point-url="<%= entryPointURL %>"
+              <%= buildInfo.env !== 'production' ? 'show-nextcloud-file-picker' : '' %>
               nextcloud-web-app-password-url="<%= nextcloudWebAppPasswordURL %>"
               nextcloud-webdav-url="<%= nextcloudWebDavURL %>"
               nextcloud-name="<%= nextcloudName %>"
@@ -66,6 +67,10 @@
         keycloak-config='{"url": "<%= keyCloakBaseURL %>", "realm": "tugraz", "clientId": "<%= keyCloakClientId %>", "silentCheckSsoRedirectUri": "<%= getUrl('silent-check-sso.html') %>"}'
         matomo-url='<%= matomoUrl %>'
         matomo-site-id='<%= matomoSiteId %>'
+        git-info='<%= buildInfo.info %>'
+        build-url='<%= buildInfo.url %>'
+        build-time='<%= buildInfo.time %>'
+        env='<%= buildInfo.env %>'
     ><dbp-loading-spinner></dbp-loading-spinner></<%= name %>>
 </dbp-provider>
 
diff --git a/rollup.config.js b/rollup.config.js
index 068ad4a5ed27d839fca12533361798eb88ee4f27..6891005d34cebe072fe3bc472ed3e40dcb663e3f 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -8,6 +8,7 @@ import {terser} from "rollup-plugin-terser";
 import json from '@rollup/plugin-json';
 import serve from 'rollup-plugin-serve';
 import urlPlugin from "@rollup/plugin-url";
+// TODO: remove consts if "environment" isn't needed any more for "getAPiUrl"
 import consts from 'rollup-plugin-consts';
 import license from 'rollup-plugin-license';
 import del from 'rollup-plugin-delete';
@@ -113,10 +114,9 @@ export default (async () => {
         del({
           targets: 'dist/*'
         }),
+        // TODO: remove consts if "environment" isn't needed any more for "getAPiUrl"
         consts({
           environment: appEnv,
-          buildinfo: getBuildInfo(appEnv),
-          nextcloudBaseURL: config.nextcloudBaseURL,
         }),
         emitEJS({
           src: 'assets',
diff --git a/src/dbp-official-signature-pdf-upload.js b/src/dbp-official-signature-pdf-upload.js
index 9bbd1d39e4ea72434f690e3df9152834e6cb640a..5c7b1cf030cc29a277be918cbcd9430d2c344018 100644
--- a/src/dbp-official-signature-pdf-upload.js
+++ b/src/dbp-official-signature-pdf-upload.js
@@ -776,7 +776,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
                             id="file-source"
                             context="${i18n.t('qualified-pdf-upload.upload-field-label')}"
                             allowed-mime-types="application/pdf"
-                            enabled-sources="local${this.showTestNextcloudFilePicker ? ",nextcloud" : ""}"
+                            enabled-sources="local${this.showNextcloudFilePicker ? ",nextcloud" : ""}"
                             nextcloud-auth-url="${this.nextcloudWebAppPasswordURL}"
                             nextcloud-web-dav-url="${this.nextcloudWebDavURL}"
                             nextcloud-name="${this.nextcloudName}"
@@ -917,7 +917,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
             <dbp-file-sink id="file-sink"
                 context="${i18n.t('qualified-pdf-upload.save-field-label', {count: this.signedFilesToDownload})}"
                 filename="signed-documents.zip"
-                enabled-destinations="local${this.showTestNextcloudFilePicker ? ",nextcloud" : ""}"
+                enabled-destinations="local${this.showNextcloudFilePicker ? ",nextcloud" : ""}"
                 nextcloud-auth-url="${this.nextcloudWebAppPasswordURL}"
                 nextcloud-web-dav-url="${this.nextcloudWebDavURL}"
                 nextcloud-name="${this.nextcloudName}"
diff --git a/src/dbp-pdf-preview.js b/src/dbp-pdf-preview.js
index 54b269a4687beb33d45b3c2b1ece57d1f893c388..63a8dc7570f806c38dbf5b095d687b94bb20b2a1 100644
--- a/src/dbp-pdf-preview.js
+++ b/src/dbp-pdf-preview.js
@@ -8,7 +8,6 @@ import {MiniSpinner, Icon} from '@dbp-toolkit/common';
 import * as commonUtils from "@dbp-toolkit/common/utils";
 import * as commonStyles from '@dbp-toolkit/common/styles';
 import pdfjs from 'pdfjs-dist/es5/build/pdf.js';
-import buildinfo from 'consts:buildinfo';
 import {name as pkgName} from './../package.json';
 import {readBinaryFileContent} from './utils.js';
 
@@ -36,6 +35,7 @@ export class PdfPreview extends ScopedElementsMixin(DBPLitElement) {
         this.signature_width = 42;
         this.signature_height = 42;
         this.border_width = 2;
+        this.allowSignatureRotation = false;
 
         this._onWindowResize = this._onWindowResize.bind(this);
     }
@@ -62,6 +62,7 @@ export class PdfPreview extends ScopedElementsMixin(DBPLitElement) {
             placeholder: { type: String, attribute: 'signature-placeholder-image-src' },
             signature_width: { type: Number, attribute: 'signature-width' },
             signature_height: { type: Number, attribute: 'signature-height' },
+            allowSignatureRotation: { type: Boolean, attribute: 'allow-signature-rotation' },
         });
     }
 
@@ -487,7 +488,7 @@ export class PdfPreview extends ScopedElementsMixin(DBPLitElement) {
     }
 
     render() {
-        const isRotationHidden = (buildinfo.env === 'production');
+        const isRotationHidden = !this.allowSignatureRotation;
 
         return html`
 
diff --git a/src/dbp-qualified-signature-pdf-upload.js b/src/dbp-qualified-signature-pdf-upload.js
index b283788bd658b6e719f2aaec118b1020871509e3..c55bf7809f5c8bdf0cc992c3e7d145c12d0ebaa4 100644
--- a/src/dbp-qualified-signature-pdf-upload.js
+++ b/src/dbp-qualified-signature-pdf-upload.js
@@ -941,7 +941,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
                             id="file-source"
                             context="${i18n.t('qualified-pdf-upload.upload-field-label')}"
                             allowed-mime-types="application/pdf"
-                            enabled-sources="local${this.showTestNextcloudFilePicker ? ",nextcloud" : ""}"
+                            enabled-sources="local${this.showNextcloudFilePicker ? ",nextcloud" : ""}"
                             nextcloud-auth-url="${this.nextcloudWebAppPasswordURL}"
                             nextcloud-web-dav-url="${this.nextcloudWebDavURL}"
                             nextcloud-name="${this.nextcloudName}"
@@ -1094,7 +1094,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
             <dbp-file-sink id="file-sink"
                 context="${i18n.t('qualified-pdf-upload.save-field-label', {count: this.signedFilesToDownload})}"
                 filename="signed-documents.zip"
-                enabled-destinations="local${this.showTestNextcloudFilePicker ? ",nextcloud" : ""}"
+                enabled-destinations="local${this.showNextcloudFilePicker ? ",nextcloud" : ""}"
                 nextcloud-auth-url="${this.nextcloudWebAppPasswordURL}"
                 nextcloud-web-dav-url="${this.nextcloudWebDavURL}"
                 nextcloud-name="${this.nextcloudName}"
diff --git a/src/dbp-signature-lit-element.js b/src/dbp-signature-lit-element.js
index ca4957494ab6936378903ef41d299db369f1c60f..76d158e87ac5d0875820d9f2e9933a735bb292ae 100644
--- a/src/dbp-signature-lit-element.js
+++ b/src/dbp-signature-lit-element.js
@@ -1,5 +1,4 @@
 import {EventBus} from '@dbp-toolkit/common';
-import buildinfo from 'consts:buildinfo';
 import * as utils from "./utils";
 import {AdapterLitElement} from "@dbp-toolkit/provider/src/adapter-lit-element";
 
@@ -54,7 +53,6 @@ export class DBPSignatureBaseLitElement extends AdapterLitElement {
 }
 
 export default class DBPSignatureLitElement extends DBPSignatureBaseLitElement {
-
     constructor() {
         super();
         this.queuedFiles = [];
@@ -62,11 +60,16 @@ export default class DBPSignatureLitElement extends DBPSignatureBaseLitElement {
         this.uploadInProgress = false;
         this.queueBlockEnabled = false;
         this._queueKey = 0;
+        this.showNextcloudFilePicker = false;
 
         // will be set in function update
         this.fileSourceUrl = "";
+    }
 
-        this.showTestNextcloudFilePicker = buildinfo.env !== 'production';
+    static get properties() {
+        return this.getProperties({
+            showNextcloudFilePicker: { type: Boolean, attribute: 'show-nextcloud-file-picker' },
+        });
     }
 
     /**
diff --git a/src/dbp-signature-verification-full.js b/src/dbp-signature-verification-full.js
index 40453ac8ffb26182173b402bf6171ea745032a66..936397338a25fed190df49ce6a975fd7c9f8a56f 100644
--- a/src/dbp-signature-verification-full.js
+++ b/src/dbp-signature-verification-full.js
@@ -699,7 +699,7 @@ class SignatureVerificationFull extends ScopedElementsMixin(DBPSignatureLitEleme
                         <dbp-file-source
                             id="file-source"
                             allowed-mime-types="application/pdf"
-                            enabled-sources="local${this.showTestNextcloudFilePicker ? ",nextcloud" : ""}"
+                            enabled-sources="local${this.showNextcloudFilePicker ? ",nextcloud" : ""}"
                             nextcloud-auth-url="${this.nextcloudWebAppPasswordURL}"
                             nextcloud-web-dav-url="${this.nextcloudWebDavURL}"
                             nextcloud-name="${this.nextcloudName}"
diff --git a/vendor/toolkit b/vendor/toolkit
index 43c558436c6a0f66e6bd162cd6f6ce8af1f2fa7c..f69a28898187580c2cfe281271384a56d3832930 160000
--- a/vendor/toolkit
+++ b/vendor/toolkit
@@ -1 +1 @@
-Subproject commit 43c558436c6a0f66e6bd162cd6f6ce8af1f2fa7c
+Subproject commit f69a28898187580c2cfe281271384a56d3832930