Zum Inhalt

System-Administration im Überblick

Die System-Administration erreichst du über das Zahnrad oben rechts → System-Administration. Mitglieder der Gruppe ADMIN sehen alles. Wer nur einzelne Verwaltungsrechte hat — etwa USER_MANAGE oder PROPERTIES —, sieht genau die Bereiche, die dazu gehören (siehe Benutzer & Gruppen).

Links steht die Navigation, nach Themen gruppiert; das Feld Bereich suchen … darüber filtert die Einträge. Zurück zur Anwendung führt zur Formularliste, Formular-Editor ganz unten öffnet den Editor.

Formular-Konfiguration

Eintrag Wofür Mehr dazu
Properties Konfigurationswerte für Formulare (Adressen, Grenzwerte, Textbausteine), auch von KeyUsern pflegbar Properties
Standardwerte für Felder wie viele Zeichen ein neues Textfeld je nach Breite fasst Standardwerte für Felder

Benutzer & Zugang

Eintrag Wofür Mehr dazu
Benutzerverwaltung Benutzer anlegen, bearbeiten, sperren, löschen; Gruppen zuordnen Benutzer & Gruppen
Gruppenverwaltung Gruppen, Mitglieder und die Berechtigungen einer Gruppe Benutzer & Gruppen
Berechtigungen Berechtigungs-Codes anlegen und beschreiben Benutzer & Gruppen
Anmeldung Anmelde-Strategie, Anmelde-Skripte, Test-Login, Login-Hinweis Anmeldung
Sitzungs-Zeitablauf Wann eine Anmeldung von selbst endet: Leerlauf, längste Dauer, Vorwarnung Sitzungs-Zeitablauf
OIDC (Entra ID, AD FS, BankID-Broker) Anmeldung über einen OpenID-Connect-Anbieter, auch Windows-Anmeldung Anmeldung

Erscheinungsbild

Eintrag Wofür Mehr dazu
Theme Farben, Schriften, eigenes CSS, Bilder und SVGs Theme
Sprachen Oberflächen-Sprachen anlegen und übersetzen Sprachen
Startseite Titel und Text der Willkommensbox auf der Startseite, je Sprache; Makros wie ${user:firstName} werden ersetzt unten

Formular-Bausteine

Eintrag Wofür Mehr dazu
Baukasten Ordner und Vorlagen des Baukastens im Formular-Editor pflegen; mitgelieferte Einträge lassen sich nur deaktivieren Baukasten
Druckvorlagen Kopf- und Fußzeilen für den PDF-Druck, je Vorlage mit eigener Schrift Druck
Section-Repository zentrale Feldgruppen, die mehrere Formulare live einbinden Section-Repository
Skript-Bibliotheken gemeinsamer Skript-Code in der Datenbank Skript-Bibliotheken
Datei-Bibliotheken gemeinsamer Skript-Code als .js-Dateien Datei-Bibliotheken
Skript-Module Java-Routinen aus eigenen JAR-Dateien freigeben, die Skripte über modules.use(...) benutzen Skript-Module
Beispiele mitgelieferte Beispielformulare einzeln einspielen und wieder entfernen unten

Schnittstellen & Verteilung

Eintrag Wofür Mehr dazu
LDAP-Konnektoren Verbindungen zu LDAP/Active Directory; je Konnektor der Benutzer-Export LDAP-Konnektoren, LDAP-Benutzer-Export
LDAP-Browser Verzeichnisbaum ab der Basis-DN durchsuchen; ein Klick zeigt die Attribute eines Eintrags unten
LDAP-Test-Client direkte Abfragen gegen einen Konnektor, um Basis-DN, Filter und Suchtiefe auszuprobieren unten
HTTP-/WebService-Konnektoren benannte Endpunkte mit Zugangsdaten für ws/http und die Allowlist für interne Ziele HTTP-/WebService-Konnektoren
Datenquellen externe Datenbanken für Lookups, Picker und Skripte Datenquellen
E-Mail-Konfiguration Mailserver, Absender, Testmail, Empfänger-Whitelist E-Mail-Konfiguration
E-Mail-Ausgang Warteschlange der ausgehenden Mails E-Mail-Ausgang
REST-Services eigene, per JavaScript programmierte Schnittstellen REST-Services
Web-Links Links, die ein Formular direkt öffnen Web-Links
Transport Formulare zwischen Systemen übertragen Transport

Betrieb & Überwachung

Eintrag Wofür Mehr dazu
System-Informationen Version, Java, Datenbank, Betriebssystem, Speicher, aktive Sitzungen unten
System-Einstellungen Standard-Absender, öffentliche Basis-URL, System-Id, Zeitzone, Ad-hoc-Anmeldung, Anzeigeoptionen System-Einstellungen
Wartungsfenster geplante Wartung ankündigen, Anwendung sperren Wartungsfenster
Zeitplaner zeitgesteuerte Skripte Zeitplaner
Log-Konfiguration Protokoll-Stufen einzelner Bereiche und die Logback-Konfiguration unten
System-Logs Protokolldateien ansehen unten
Signatur-Sicherung Schlüssel, mit dem Unterschriften versiegelt werden unten

Werkzeuge & Diagnose

Eintrag Wofür Mehr dazu
Skript-Konsole JavaScript ohne Formular ausführen, Skripte speichern, mit Test-Daten und Anlagen Skript-Konsole
DB-Client SQL direkt gegen die KCForms-Datenbank oder eine Datenquelle DB-Client

Bereiche ohne eigene Seite

Startseite

Hier pflegen Sie Titel und Text der Willkommensbox, die Anwender auf der Startseite über dem Formular-Katalog sehen. Oben wählen Sie die Sprache; ein Punkt ● in der Auswahl zeigt, für welche Sprachen schon ein Text gepflegt ist. Bleibt eine Sprache leer, erscheint dort der Standardtext von KCForms.

Der Text ist Markdown, also **fett**, Listen mit - und Links mit [Text](https://…). Makros setzt KCForms beim Anzeigen ein. Die Seite listet die gebräuchlichsten zum Anklicken auf, etwa:

  • ${user:firstName}: Vorname des angemeldeten Anwenders
  • ${user:name}: Vor- und Nachname
  • ${date(dd.MM.yyyy)|now}: heutiges Datum, z. B. 15.08.2026
  • ${system:release}: Version von KCForms

Ein Titel wie Willkommen, ${user:firstName}! begrüßt also jeden mit Namen. Alle Makros stehen unter Makros.

Beispiele

KCForms bringt eine Reihe von Beispielformularen mit, von der Urlaubsantrag-Demo mit Workflow bis zu Formularen, die einzelne Skript-Funktionen vorführen. Eine ausgelieferte Installation startet ohne sie. Hier spielen Sie einzelne ein, wieder ein oder entfernen sie.

Die Liste zeigt je Beispiel einen Punkt (grün = installiert), den Titel und die Formular-IDs, die es anlegt. Die Knöpfe:

Knopf Wirkung
Einspielen legt das Beispiel samt Tabellen, Skripten und Demo-Daten an
Neu einspielen setzt ein installiertes Beispiel auf den Auslieferungsstand zurück; eigene Änderungen und Demo-Daten darin gehen verloren
Entfernen löscht die Formulare des Beispiels mit Tabellen, Datensätzen und Skripten
Alle einspielen / Alle entfernen dasselbe für alle Beispiele auf einmal

Neu einspielen fragt nicht nach

Entfernen und Alle entfernen fragen vorher nach und löschen dann endgültig. Neu einspielen und Alle einspielen fragen nicht: Wer ein Beispiel angepasst hat, verliert diese Änderungen mit einem Klick. Auf einem Produktivsystem spielen Sie höchstens die Beispiele ein, die Sie wirklich brauchen.

LDAP-Konnektoren

Ein Konnektor beschreibt die Verbindung zu einem Verzeichnis (LDAP oder Active Directory). Skripte sprechen ihn über seine ID an (ldap.connect("firmen-ldap")), Lookups und Picker wählen ihn als Datenquelle aus, und die Anmeldung kann gegen ihn prüfen.

Feld Eintrag
ID Name, unter dem Skripte und Lookups den Konnektor finden, z. B. firmen-ldap
Verbindungs-URL ldap://host:389 oder verschlüsselt ldaps://host:636
Basis-DN Standard-Startpunkt für Suchen, z. B. dc=firma,dc=de
Authentifizierung Einfach (Bind-DN und Passwort) oder Keine (anonym)
Benutzername (Bind-DN) / Passwort das Konto, mit dem KCForms sich anmeldet
Umgang mit SSL-Zertifikaten Standard: nur Zertifikate, denen Java vertraut. Allen vertrauen: auch selbstsignierte, nur für Tests
Seitengröße holt große Ergebnisse in Seiten dieser Größe. Active Directory liefert ohne das höchstens 1000 Einträge je Suche. Leer = aus

Verbindung prüfen meldet sich mit den eingetragenen Werten an und sagt, ob es geklappt hat.

Unter dem Konnektor richten Sie den Benutzer-Export ein, der Benutzer und Gruppen regelmäßig in Tabellen spiegelt, siehe LDAP-Benutzer-Export.

Nur lesender Service-Account

Für Suche, Lookups und Export genügt ein Konto mit Leserechten. Einen schreibberechtigten Bind-Benutzer nur hinterlegen, wenn Skripte wirklich Einträge anlegen oder ändern sollen.

LDAP-Browser und LDAP-Test-Client

Zwei Werkzeuge, um ein Verzeichnis kennenzulernen, bevor Sie Filter in Skripte oder Lookups schreiben. Beide arbeiten über einen eingerichteten Konnektor und nur lesend.

LDAP-Browser zeigt das Verzeichnis als Baum ab der Basis-DN. Ein Klick auf ▸ klappt einen Zweig auf, ein Klick auf den Namen zeigt rechts alle Attribute des Eintrags. Bei sehr großen Zweigen kürzt der Browser die Liste und sagt es dazu; dann das Limit erhöhen.

LDAP-Test-Client führt eine Suche aus, wie ein Skript sie stellen würde:

Feld Eintrag
Konnektor welcher Konnektor
Basis-DN Startpunkt; leer = die des Konnektors
Filter LDAP-Filter, z. B. (&(objectClass=inetOrgPerson)(sn=Müller)). Drei Knöpfe setzen gängige Filter ein (alle Benutzer, alle Gruppen, alle Objekte)
Scope subtree (ganzer Teilbaum), onelevel (nur direkte Kinder), object (nur der Startpunkt selbst)
Limit höchstens so viele Treffer (1 bis 1000)

Das Ergebnis zeigt je Treffer die DN und alle Attribute. Was hier passt, passt auch in ein Skript, siehe LDAP-Zugriff.

HTTP-/WebService-Konnektoren

Ein Konnektor bündelt Adresse und Zugangsdaten eines fremden Dienstes unter einem Namen. Skripte nutzen ihn mit ws.connect("name") oder http.connect("name"); Passwörter und Tokens stehen so nicht im Skript.

Feld Eintrag
Name Name für die Skripte, z. B. rest-crm
Basis-URL Adresse des Dienstes; der Pfad im Skript wird angehängt
Authentifizierung Keine, Basic (Benutzer und Passwort), Bearer-Token oder WS-Security UsernameToken (für SOAP)
SOAP-Version 1.1 oder 1.2, nur für SOAP-Dienste von Bedeutung
Standard-Header Kopfzeilen, die jeder Aufruf mitschickt
Timeout (ms) wie lange auf eine Antwort gewartet wird; leer = 60 Sekunden

Verbindung prüfen ruft die Basis-URL auf, auf Wunsch mit einem Test-Pfad dahinter (etwa /health), und zeigt das Ergebnis. Gespeicherte Passwörter und Tokens zeigt die Maske nie im Klartext.

Oben auf der Seite stehen die Erlaubten Ziel-Hosts (Allowlist). Aufrufe an interne Adressen (etwa localhost oder 10.…) sind grundsätzlich gesperrt, damit ein Skript nicht unbemerkt in das eigene Netz greift. Was hier steht, ist davon ausgenommen. Siehe HTTP-Client → Sicherheit.

System-Informationen

Zeigt auf einen Blick: Anwendung (Name, Version), Laufzeit (Java-Version, Prozessoren, Laufzeit seit Start, Speicher), Datenbank (Produkt, Version, Treiber, Adresse, Verbindungspool), Betriebssystem (inkl. Zeitzone) und die Zahl der aktiven Sitzungen. Hilfreich bei Support-Anfragen.

Log-Konfiguration und System-Logs

Log-Konfiguration stellt die Protokoll-Stufe einzelner Bereiche um (z. B. DEBUG für die Fehlersuche). Diese Änderungen wirken sofort, gelten aber nur bis zum nächsten Neustart. Darunter lässt sich die Logback-Konfiguration (logback-spring.xml) bearbeiten — etwa um zusätzliche Logdateien anzulegen; auch das wirkt ohne Neustart.

System-Logs zeigt die Protokolldateien: die allgemeinen Logs und die Skript-Protokolle je Benutzer (by-user/). Skript-Ausgaben von log.info(…) landen in script.log bzw. der Datei des Benutzers, nicht in der Docker-Konsole.

Signatur-Sicherung

KCForms versiegelt jede Unterschrift mit einem Schlüssel (HMAC-SHA256) über die geschützten Feldwerte. Der Schlüssel liegt in der Datenbank.

  • Schlüssel anzeigen (für DB-Umzug) — zum Sichern bzw. Übertragen.
  • Schlüssel importieren (nach Umzug) — auf dem neuen System einspielen.
  • Neuen Schlüssel erzeugen — nur im Notfall (etwa wenn der Schlüssel bekannt geworden ist).

Schlüssel beim Umzug mitnehmen

Ohne den bisherigen Schlüssel meldet KCForms alle bestehenden Unterschriften als manipuliert. Das gilt ebenso nach Neuen Schlüssel erzeugen. Vor einem Datenbank-Umzug den Schlüssel sichern und auf dem neuen System importieren.

DB-Client

Führt SQL direkt aus: gegen die KCForms-Datenbank oder, über die Auswahl Datenquelle, gegen eine eingerichtete externe Datenquelle. Eine Anweisung je Lauf (SELECT, INSERT, UPDATE, DELETE oder DDL), ausgeführt mit Ausführen oder Ctrl+Enter.

Ein SELECT zeigt das Ergebnis als Tabelle, höchstens 500 Zeilen; mehr schneidet der Client ab und sagt es dazu. Leere Werte stehen als NULL.

Drei Knöpfe setzen Beispielabfragen ein (Tabellen, Benutzer, Formulare). Sie sind in MySQL-Schreibweise geschrieben. Auf PostgreSQL, Oracle oder SQL Server passen Sie sie an; SHOW TABLES etwa gibt es dort nicht.

Änderungen sind sofort wirksam

Es gibt keine Rückfrage und kein Rückgängig. Für Änderungen an Formular-Tabellen besser den Formular-Editor bzw. Skripte mit Transaktion nutzen. Für Abfragen mit Logik drumherum eignet sich die Skript-Konsole.