Einstellungen der App
Theme, Übersetzungen, Authentifizierung und Registrierung, Konten der Benutzer, Berechtigungen und Rotation der Einträge — alles, was man in einer App feinjustiert, Abschnitt für Abschnitt.
Jede App hat ihre eigenen Einstellungen — das Theme gehört dieser App, die Konten gehören dieser App, die Berechtigungen gehören dieser App. Deshalb reisen die Einstellungen mit ihr, wenn Sie sie als Paket exportieren (mit den Ausnahmen, die die Seite „Apps importieren und exportieren“ im Detail beschreibt). Diese Seite geht alle Abschnitte durch, mit besonderer Aufmerksamkeit für die sechs, die am meisten genutzt werden: Theme, Übersetzungen, Authentifizierung, Konten, Berechtigungen und Rotation der Einträge.
Die Einstellungen öffnen
- Öffnen Sie die App in der Seitenleiste.
- Klicken Sie oben in der Leiste der App auf den Zahnrad-Button Einstellungen der App. Der Navigationsbaum weicht dem Baum der Einstellungen, nach Gruppen organisiert.
- Klicken Sie auf einen Abschnitt: Er öffnet sich als Tab des Arbeitsbereichs — wie ein Bildschirm oder ein Skript — mit dem Namen der App in der Kopfzeile, dem aktiven Abschnitt als Abzeichen daneben und den Buttons des Abschnitts (zum Beispiel Speichern) immer in der oberen rechten Ecke.

Die vollständige Karte:
| Gruppe | Abschnitt | Was man festlegt |
|---|---|---|
| Anwendung | Allgemein | Identifikation, Veröffentlichung, Exportieren und Löschen — siehe die ersten zwei Seiten dieses Kapitels. |
| Anwendung | Authentifizierung | Wie die Benutzer in die App kommen, öffentliche Registrierung und Wiederherstellung. |
| Anwendung | Benachrichtigungen | Die Benachrichtigungskanäle der App: in der App und E-Mail (eigenes SMTP). |
| Anwendung | Speicher | Wohin die Dateien gehen, die die Benutzer der App hochladen (Festplatte der App, S3, SFTP, Netzlaufwerk). |
| Benutzer | Benutzer der App | Die Konten derer, die die gebaute App nutzen. |
| Benutzer | Berechtigungen | Rollen und Regeln: Daten, Bildschirme, Menüs und Aktionen. |
| Aussehen | Theme | Farben, Form und Typografie der gebauten App, mit Vorschau. |
| Lokalisierung | Übersetzungen | Die Sprachen der App und die übersetzten Sätze, in einer Matrix. |
| Daten | Rotation der Einträge | Wie viele Tage jede Art von Eintrag aufbewahrt wird, bevor sie gelöscht wird. |
Nota
Das sind die Einstellungen der App — nicht zu verwechseln mit den Einstellungen der Plattform (in der Administrationszone der Seitenleiste), die die ganze Installation steuern: Hintergrundprozesse, Warnungen, Sitzungen und globale Grenzwerte.
Theme
Der Abschnitt Theme streicht die gebaute App — die, die Ihre Benutzer sehen — ohne einen einzigen Bildschirm anzufassen. Links stehen die Gruppen von Farben; rechts zeigt das Panel Vorschau „Beispiel mit den aktuellen Tokens — aktualisiert sich live.“: Jede Farbe, die Sie ändern, erscheint dort im selben Moment.

| Gruppe | Was sie streicht |
|---|---|
| Basis | „Hintergrund und Text der App, Rahmen und Fokus.“ |
| Oberflächen | „Karten und Popover (Menüs, Dropdowns, Tooltips).“ |
| Farben | „Semantische Farben der Komponenten und der Text auf jeder davon“ — primär, sekundär, destruktiv, Akzent, gedämpft. |
| Navigation | „Die Navigationsleisten der App (oben, seitlich, Menüs).“ Standardmäßig folgen sie den Oberflächen; ändern Sie sie, um Ihr Branding anzuwenden. |
Jede Farbe hat einen visuellen Selektor und ein Hexadezimalfeld (#rrggbb) —
schreiben oder auswählen, das ist dasselbe. Am Ende der Liste legt Form und
Typografie den Rest fest:
- Radius der Ecken — von Keine Rundung (0) bis Maximal (1rem), in fünf Stufen.
- Position der Hinweise — in welcher Ecke die Hinweise (Toasts) der App erscheinen.
- Schrift (Sans) — der Schrift-Stack der App.
Zum Speichern Speichern; um zu den Farben ab Werk zurückzukehren, Standards zurücksetzen (stellt sie im Editor wieder her — endgültig wird es erst, wenn Sie speichern). Das gespeicherte Theme gilt sofort für die gebaute App und reist mit ihr in jedem Paket.
Übersetzungen — die Sprachen der App
Der Abschnitt Übersetzungen ist eine Matrix: eine Zeile pro Satz, eine Spalte pro Sprache. Hier bekommt die App Sprachen, und hier werden die Sätze der Bildschirme übersetzt, ohne ein einziges Raster zu verlassen.

- Einen Satz anlegen: Schreiben Sie in die letzte Zeile, die immer leer wartet („tippen, um anzulegen…“). Der Schlüssel des Satzes „(kommt aus dem Satz)“ — es ist der Text in der Basissprache selbst, der ihn in den Bildschirmen identifiziert.
- Eine Sprache hinzufügen: Klicken Sie auf das + der Kopfzeile, wählen Sie unter „Sprache auswählen…“ und bestätigen Sie mit Sprache hinzufügen. Eine neue Sprache ist eine neue Spalte, die leer entsteht.
- Die Basissprache wechseln oder eine Sprache löschen: im Menü der Spalte — Zur Basissprache machen und Diese Sprache löschen („Die Übersetzungen dieser Sprache verschwinden mit ihr.“).
- Einen Satz löschen: im Menü der Zeile Satz löschen — er verschwindet beim Speichern aus allen Sprachen.
- Finden, was fehlt: die Suche „In jeder Sprache suchen…“ und der Filter Unvollständig zeigen nur die Sätze mit leeren Zellen.
In den Bildschirmen werden die Sätze über den Text verwendet:
t("Kundenliste") in einem TypeScript-Ereignis gibt die Übersetzung in der
Sprache derjenigen zurück, die die App gerade nutzen. Für Werte mitten im Satz
schreiben Sie sie in geschweifte Klammern — „{n} Datensätze“ ergibt „3
Datensätze“ — und die Plattform warnt (gelbe Zelle), wenn eine Übersetzung
eine geschweifte Klammer verliert, die das Original hat: In dieser Sprache
würde der Wert nicht erscheinen.
Dica
Den Text eines bereits gespeicherten Satzes zu ändern heißt, seinen Schlüssel zu ändern — und die Plattform tauscht ihn auch in den Bildschirmen aus, die ihn verwenden, und sagt, in wie vielen sie etwas geändert hat. Nichts bleibt auf einen Satz zeigen, den es nicht mehr gibt.
Am Ende Speichern: „Übersetzungen gespeichert und kompiliert.“
Authentifizierung und Registrierung
Der Abschnitt Authentifizierung legt fest, wie man in die gebaute App hereinkommt — nicht in die Plattform. Es sind drei Blöcke:

Modus der Authentifizierung — die grundlegende Entscheidung:
| Modus | Wie er funktioniert |
|---|---|
| Benutzername und Passwort | „Die Benutzer der App melden sich mit den im Tab Benutzer verwalteten Zugangsdaten an.“ Alles lebt in der App; das ist der Modus ab Werk. |
| OAuth / OpenID Connect | „Die App delegiert das Login an einen externen Identitätsanbieter (OIDC-Issuer).“ Das Login wird das Ihrer Organisation. |
OAuth / OpenID Connect — die Felder des Anbieters (nur in diesem Modus aktiv): Issuer URL und Client ID (Pflicht), Client Secret („Verschlüsselt gespeichert; es wird nie wieder angezeigt.“ — leer lassen behält das, was schon da ist) und Scopes („Durch Leerzeichen getrennt. Leer verwendet die Standard-Scopes des Anbieters.“).
Registrierung und Wiederherstellung — die öffentlichen Systembildschirme der App:
- Öffentliche Registrierung erlauben: eingeschaltet, „jeder Besucher kann auf dem Bildschirm /register ein Konto anlegen. Ausgeschaltet wird der Bildschirm nicht ausgeliefert.“
- Rolle für neue Registrierungen: „Rolle, die automatisch jedem zugewiesen wird, der sich registriert.“ Wählen Sie eine Rolle aus der Liste der Berechtigungen, oder Keine Rolle — aber ohne Rolle kommt das Konto herein und sieht weder Daten noch Bildschirme.
- Die Wiederherstellung des Passworts verschickt den Link über den E-Mail-Kanal, der unter Benachrichtigungen festgelegt ist — der Kanal muss aktiv sein und ein vollständiges SMTP haben, sonst gibt es keine E-Mails zur Wiederherstellung.
Speichern Sie mit Speichern („Authentifizierung gespeichert.“).
Benutzer der App — die Konten
Der Abschnitt Benutzer der App verwaltet die Konten derer, die die App nutzen. Der Hinweis oben ist die goldene Regel: „Diese Benutzer gehören zur gebauten App — sie melden sich zur Laufzeit in der App an und haben keinerlei Zugriff auf die Plattform KEPLIN.“

Die Liste zeigt jedes Konto mit dem Benutzer, den Rollen und der Letzten Anmeldung („nie angemeldet“, wenn es noch nie ein Login gab), und sie wurde gemacht, um Fragen zu beantworten:
- Die Suche „Nach Name, Benutzername oder E-Mail suchen…“ und die Filter nach Rolle und Status finden jedes Konto.
- Der bernsteinfarbene Hinweis „… Benutzer ganz ohne Rolle — sie sehen weder Daten noch Bildschirme“ ist anklickbar und filtert diese Konten sofort heraus — er ist die Ursache Nummer eins für „die App ist leer“.
- Wählen Sie mehrere Konten aus, um in einem Schwung zu handeln: Rolle vergeben, Rolle entziehen, Aktivieren, Deaktivieren — zwölf Personen dieselbe Rolle zu geben ist eine Operation, nicht zwölf Modale.
Ein Konto anlegen oder bearbeiten (Button Neuer Benutzer, oder Bearbeiten im Menü der Zeile — öffnet als Seite, niemals als Modal):
| Feld | Anmerkungen |
|---|---|
| Benutzername | Pflicht. „Buchstaben, Zahlen, Punkt, Bindestrich, _ und @.“ |
| Name / E-Mail | Optional; die E-Mail wird für die Wiederherstellung des Passworts gebraucht. |
| Passwort | Beim Anlegen ist es das Anfangspasswort — „der Benutzer kann es in der App ändern“. Beim Bearbeiten: „Nur ausfüllen, um ein neues Passwort zu setzen.“ |
| Aktiv | Ausgeschaltet existiert das Konto, aber „wer deaktiviert ist, kann sich nicht in der App anmelden“. |
| Rollen | Als Haken pro Rolle. Ein neues Konto bringt die in den Berechtigungen als „standardmäßig vergeben“ festgelegten Rollen bereits angehakt mit. |
Ein Konto zu löschen (Menü der Zeile → Löschen) ist unumkehrbar — der Benutzer kann sich nicht mehr in der App anmelden.
Nota
Die Berechtigungen werden nicht am Konto bearbeitet. Sie werden immer an den Rollen bearbeitet, im Abschnitt Berechtigungen — eine Ausnahme, die man einer Person einbaut, ist eine Ausnahme, die niemand wiederfindet.
Berechtigungen
Der Abschnitt Berechtigungen legt fest, was jede Rolle in der App tun darf, auf vier Achsen: Daten, Bildschirme, Menüs und Aktionen. „Die Berechtigungen addieren sich: Wer zwei Rollen hat, bekommt das Beste aus beiden.“

Die Liste der Rollen zeigt jede mit der Zahl der Benutzer und der Regeln sowie den Abzeichen „voller Zugriff“ und „Standard“. Neue Rolle erstellt eine und öffnet sofort ihre Seite, mit fünf Tabs:
Allgemein — der Name, die Beschreibung und zwei Schalter:
- Voller Zugriff: „Alles, ohne Ausnahmen — und es bleibt richtig, wenn die App wächst.“ Das ist die Administratorrolle der App; mit ihr eingeschaltet gelten die anderen Tabs gar nicht.
- Standardmäßig vergeben: „Wird jedem zugewiesen, der sich registriert oder neu angelegt wird.“
Daten — eine Zeile pro Tabellen-API, mit vier Haken — Anzeigen, Erstellen, Ändern, Löschen — und einem Umfang, der sagt, an welche Datensätze man kommt:
| Umfang | Bedeutung |
|---|---|
| Alle Datensätze | Ohne Einschränkung der Zeilen. |
| Nur meine | Nur die Datensätze, deren „Feld, das sagt, wem er gehört“ der Benutzer mit der Sitzung ist. |
| Mit Bedingung… | Nur die Datensätze, die einen Filter erfüllen, den Sie zusammenstellen — mit festen Werten oder mit Werten aus der Sitzung. |
„Der Umfang wird auf dem Server angewendet, bei allen Lese- und Schreibvorgängen — in den Bildschirmen, im Code, in den Berichten und in den Workflows. Ohne jede Regel sieht diese Rolle nichts aus dieser API.“
Bildschirme — für jeden Bildschirm und jedes Gerät (Web, Tablet, Handy) eine Stufe: Ausgeblendet („erscheint nicht in den Menüs, und eine von Hand eingetippte Route wird abgelehnt“), Ansehen (nur lesen) („öffnet nur lesend — Felder und Buttons, die schreiben, sind deaktiviert“) oder Bearbeiten. Die Abkürzungen „alle anzeigen“ / „alle ausblenden“ füllen eine ganze Spalte. Das „Ansehen“ ist eine visuelle Hilfe; was das Schreiben wirklich stoppt, sind die Berechtigungen unter Daten, auf dem Server.
Menüs — anders als Bildschirme ist ein Menü standardmäßig sichtbar: Die Tür ist der Bildschirm, und die ist bereits zu. Hier blendet man den Rest aus — eine ganze Gruppe, die Glocke der Benachrichtigungen — pro Gerät. Eine Gruppe abzuwählen nimmt ihre Kinder mit.
Aktionen — die Verben, die es nur in dieser App gibt: genehmigen,
schließen, exportieren. Sie werden im Panel Aktionen der Liste der Rollen
deklariert (ein Schlüssel wie spesen-genehmigen und ein Name, Button
Neue Aktion), und jede Rolle hakt die an, die sie vergibt. In den
Bildschirmen hat jedes Widget die Eigenschaft „Zugriff“, um eine Aktion zu
verlangen; im TypeScript-Code fragt man
keplin.session.can("spesen-genehmigen").
Alles wird auf einmal mit Speichern gespeichert („Berechtigungen gespeichert.“). Eine Rolle zu löschen warnt, wie viele Benutzer ohne sie bleiben — „wer ohne jede Rolle bleibt, sieht keine Daten mehr“.
Rotation der Einträge
Eine App mit Traffic schreibt ohne Unterbrechung Historie — Aufrufe, Ausführungen, Klicks. Der Abschnitt Rotation der Einträge entscheidet, „wie viele Tage jede Art von Eintrag aufbewahrt wird, bevor sie gelöscht wird. Null Tage bedeutet dauerhaft aufbewahren.“

Es ist ein Raster mit einer Zeile pro Art von Eintrag und der Frist unter Aufbewahren (das Feld zeigt „Wird dauerhaft aufbewahrt“, wenn es auf null steht):
| Eintrag | Was er ist | Ab Werk |
|---|---|---|
| Aufrufe der APIs | „Eine Zeile pro GraphQL-Anfrage. Das wächst in einer App mit Traffic am schnellsten.“ | Dauerhaft aufbewahren |
| Ausführungen von Skripten | „Die Historie hinter dem Button ‚Ausführungen‘ im Editor der Skripte.“ | Dauerhaft aufbewahren |
| Fehler der Apps | „Die Vorkommen hinter den Problemen, die der Radar zeigt. Sie zu löschen lässt ein Problem nicht verschwinden, nur seine Historie.“ | Dauerhaft aufbewahren |
| Navigation und Klicks | „Hohes Volumen, kurzer Nutzen: Es dient dazu, zu untersuchen, was gerade passiert ist, nicht als Historie.“ | 2 Tage |
| Zeitpläne | „Die geplanten Zeiten und das, was unerledigt blieb. Was fehlschlug, wird doppelt so lange aufbewahrt.“ | 30 Tage |
| Workflow-Instanzen | „Nur die bereits abgeschlossenen. Instanzen, die noch laufen oder auf jemanden warten, werden nie gelöscht. Fehlgeschlagene bleiben doppelt so lange.“ | Dauerhaft aufbewahren |
| Audit | „Wer was getan hat. Es wird von allen Apps geteilt, deshalb gilt immer die längste Frist unter ihnen.“ | Dauerhaft aufbewahren |
Speichern wendet die Richtlinie an („Rotation gespeichert.“), und die Aufräumarbeit läuft von da an im Hintergrund, jeden Tag.
Dica
Legen Sie in einer Produktions-App vom ersten Tag an echte Fristen fest — 30 bis 90 Tage für die Aufrufe der APIs sind ein gesunder Ausgangspunkt. „Dauerhaft aufbewahren“ ist in der Entwicklung ausgezeichnet und in der Produktion eine Rechnung für Festplattenplatz.
Grenzwerte, die zu beachten sind
Die Grenzwerte, denen Sie in den Einstellungen und bei den Handgriffen dieses Kapitels begegnen:
| Was | Grenze |
|---|---|
| Name der App | 2 bis 120 Zeichen |
| Beschreibung der App | Bis zu 500 Zeichen |
| Benutzername eines Benutzers der App | 2 bis 120 Zeichen (Buchstaben, Zahlen, Punkt, Bindestrich, _ und @) |
| Passphrase des Exports | Mindestens 8 Zeichen |
| Paket beim Import | Höchstens 200 MB |
| Rotation der Einträge | 0 bis 3650 Tage pro Art (0 = dauerhaft aufbewahren) |
Die globalen Grenzwerte — die Dauer der Sitzungen und die maximale Größe der hochgeladenen Dateien — gelten nicht pro App: Sie leben in den Einstellungen der Plattform, im Panel „Sitzungen und Grenzwerte“, und gelten für die ganze Installation.