-
released this
2026-09-13 00:27:10 +02:00 | 41 commits to main since this releasecreate-admin legt das Konto in Funktionen (Vollzugriff) -- und holt die Gruppe zurueck, wenn sie im Papierkorb liegt.
Downloads
-
released this
2026-09-13 00:20:17 +02:00 | 42 commits to main since this releaseStandardgruppen: nur noch Benutzer, Administration und Funktionen (Vollzugriff). Unberuehrte Vorlagengruppen wandern beim Update in den Papierkorb, selbst angelegte bleiben. create-admin legt das Konto zusaetzlich in Funktionen (Vollzugriff). Neu: Module unter Verwaltung -> System abschaltbar.
Downloads
-
released this
2026-09-12 23:47:16 +02:00 | 43 commits to main since this releaseDer LDAP-Login dauerte manchmal deutlich laenger -- besonders, wenn der Domain-Controller in einem anderen Netz steht. Das Problem war in der Fassung 1.2.8 schon einmal geloest; der Kommentar dort beschreibt es genauer als jede Vermutung: die allererste Verbindung in ein langsameres Netzsegment ist oft spuerbar langsamer als jede folgende, und der erste Login schlug mit "Benutzer/Passwort ungueltig" fehl, waehrend ein sofortiger zweiter Versuch klappte.
Der Wiederholversuch ist zurueck -- mit derselben Regel und denselben vier Ausnahmeklassen: wiederholt wird nur bei einem Netzfehler. Eine abgelehnte Anmeldung bleibt abgelehnt, sonst zaehlt ein Tippfehler im Passwort den Sperrzaehler des Kontos zweimal hoch.
Zwei gesparte Runden, die genau dann zaehlen, wenn der Controller weit weg steht:
- Kein Schema mehr.
get_infostand aufALL-- damit holt ldap3 beim Verbinden die Serverbeschreibung und das ganze Schema: bei einem Active Directory Tausende Definitionen, mehrere Megabyte, je Verbindung neu. Fuer eine Anmeldung braucht es davon nichts. - Keine Verweise verfolgen. Ein AD antwortet auf eine Suche ab der Domaenenwurzel mit Verweisen auf andere Controller; ldap3 folgt ihnen von sich aus, mit neuen Verbindungen in womoeglich andere Netze.
Und es ist jetzt messbar: eine Zeile je Anmeldung im Protokoll mit der Dauer jeder Stufe -- Dienstbindung, Basis-DN, Benutzersuche, Passwortpruefung, Gruppen, Gesamtzeit.
Downloads
- Kein Schema mehr.
-
released this
2026-09-12 23:26:10 +02:00 | 44 commits to main since this releaseDie Ursache fuer "Konsole leer" und "PoE-Neustart ohne Wirkung" -- und sie stand die ganze Zeit im Protokoll, nur unsichtbar.
Ein ArubaOS-Switch (2930M, WC.16.11) an einem Pseudoterminal zeichnet seine Zeile mit Cursorsteuerung neu. Was wirklich ankommt:
ous successful login (as manager) was on ... from 192.168.200.198 ESC[1;232r ESC[1000;1H ESC[232;1H ESC[2K ESC[1000;1H ESC[725H ESC[1000;1H ESC[232;1H st-2000-sued# ESC[1000;1H ESC[232;15H ESC[1000;1H ESC[725H ESC[1000;15HDer Prompt steht mitten in den Sequenzen, dahinter kommen fuenf weitere. Das Muster verlangte das Zeilenende direkt hinter dem
#und traf deshalb nie. Im Terminal sieht man von den Sequenzen nichts -- die Meldung "kein Prompt" stand also neben einem Prompt, den man lesen konnte.Behoben an der Wurzel: die Steuerzeichen werden entfernt, bevor etwas gesucht wird. Das macht zugleich die Ausgabe in der Konsole lesbar.
Die Folgen erklaeren alles: bis 2.8.2 lief jeder Schritt in sein Zeitlimit und der Zustand wurde trotzdem aus dem Text gelesen -- ein PoE-Neustart brauchte 5 Minuten 22 und galt als erfolgreich. Mit 2.8.3 wurde ein Kommando ohne Prompt zum Fehlschlag: richtig, aber damit war die Konsole leer und der Portzyklus fand nicht mehr statt.
Festgehalten ist genau diese Bytefolge als Test, samt Gegenprobe.
Downloads
-
released this
2026-09-12 21:10:40 +02:00 | 45 commits to main since this releaseEine leere Konsole ist keine Fehlermeldung, sondern eine offene Frage: fehlt die Berechtigung, das Passwort, die Verbindung oder die Antwort des Geraets? Die Oberflaeche zeigt Fehler rot an -- nur kam die erste Nachricht erst nach dem Verbindungsaufbau.
Jetzt meldet jede Stufe: Sitzung wird geoeffnet, Ziel mit Adresse und Port, Anmeldung als wer, Warten auf die Eingabeaufforderung.
Dazu ein Diagnosebefehl, der alle Schichten zwischen Switch und Auge wegnimmt:
sudo -u tesm tesm-admin switch-test <switch> --port 1/8Er zeigt Stufe fuer Stufe, was der Switch schickt -- ohne WebSocket, ohne Reverse Proxy, ohne JavaScript: Zugangsdaten, freigegebene Schluessel, die erste Antwort im Rohtext, die Zustandsabfrage und den erkannten Zustand. Liest nur; mit
--zykluswird wirklich geschaltet.Downloads
-
released this
2026-09-12 20:26:32 +02:00 | 46 commits to main since this releaseZwei Fehler, die zusammen den "stummen Switch" erklaeren.
Die Sitzung wurde nicht abgemeldet. Das bewaehrte expect-Skript der Fassung 1.2.8 endete mit
exit,exit,exitund einemyauf "Do you want to log out (y/n)?". Diese Fassung liess die Verbindung nur fallen. ArubaOS erlaubt aber nur eine Handvoll gleichzeitiger SSH-Sitzungen (show ip ssh, Vorgabe fuenf) und raeumt eine weggebrochene Verbindung nicht sofort ab. Ein Ueberwachungsdurchlauf mit mehreren Geraeten am selben Switch belegt damit alle Plaetze -- danach kommt eine neue Sitzung noch durch die Anmeldung, bekommt aber keine Shell: kein Prompt, keine Antwort. Die Konsole zeigt nichts, der Portzyklus passiert nicht.Eine stumme Sitzung galt als Erfolg. Die Leseschleife lief nach dem Zeitlimit aus und gab zurueck, was da war -- meist nichts. Danach lief alles ins Nichts, die Zustandsabfrage ergab "unknown", und "unknown" ging als "nicht widersprochen" durch: TESM meldete "PoE-Neustart durchgefuehrt", waehrend der Client durchgehend erreichbar blieb. Ein Kommando ohne Prompt ist jetzt ein Fehlschlag mit Meldung; der Zyklus gilt nur als belegt, wenn der Zustand lesbar bleibt. Eine fremde Firmware verhindert den Neustart nicht -- dort steht dann, dass der Zyklus nicht bestaetigt ist.
Zum Nachsehen am Switch:
show ip sshzeigt die Sitzungstabelle und die Obergrenze.Downloads
-
released this
2026-09-12 19:27:08 +02:00 | 47 commits to main since this releaseDie Anbindung an das Verzeichnis war das letzte Stueck Konfiguration, das man nach einem Upgrade von Hand nachbauen musste. Uebernommen werden jetzt Server, Port, Transport, Basis-DN, Anmeldeattribut und das Bind-Konto samt Passwort -- dazu die Zuordnung "Domänen-Admins -> Administrator (Kennzeichen)": der Sonderwert "admin" des Vorgaengers hat seit 2.8.0 ein echtes Ziel.
Zwei Stellen sind nicht 1:1 und werden benannt statt geraten:
- Der Vorgaenger kannte nur "SSL an/aus". Aus "aus" wird StartTLS auf demselben Port, nicht "unverschluesselt" -- dafuer verlangt diese Anwendung einen ausdruecklichen Schalter, und den setzt eine Uebernahme nicht fuer jemanden.
- Eine abgeschaltete Zertifikatspruefung bleibt abgeschaltet, damit die Anmeldung nicht scheitert -- mit Hinweis.
Neue Sicherungskategorie Verzeichnisdienst: damit ueberlebt die Anbindung auch eine gewoehnliche Wiederherstellung.
Wichtig, und kein neuer Fehler: beim Einlesen einer Sicherung wurde aus jedem abgeschalteten Schalter ein eingeschalteter (sechzehn Schluessel, darunter
ldap_allow_insecure,dashboard_public,monitor_auto_restart), und die Navigationsreihenfolge wurde doppelt kodiert. Behoben in tesm-core 2.8.1. Wer eine Sicherung eingespielt hat, sollte seine Schalter pruefen.Nachgewiesen an der echten Altdatenbank einer 1.2.8.
Downloads
-
released this
2026-09-12 19:07:11 +02:00 | 48 commits to main since this releaseNachgesehen mit der echten Altdatenbank einer 1.2.8: Clients, Switche und die Passwoerter der Zugangsdaten kommen vollstaendig durch -- die Passwoerter Zeichen fuer Zeichen identisch, vom alten Fernet-Schluessel in den neuen Schluesselspeicher. DHCP ebenso (Subnetze, Reservierungen, Optionswerte).
Neu: die Freigabe-Zuordnungen kommen mit. Sie standen auf der Liste "von Hand nachtragen", obwohl der Vorgaenger sie mit genau den vier Angaben fuehrt, die diese Anwendung braucht -- und die Importkategorie dafuer hier ohnehin existiert. Ein UNC-Pfad von Hand ist ein Tippfehler, der erst auffaellt, wenn jemand die Freigabe braucht.
Uebernommen wird auf beiden Wegen gleich: aus einer alten Exportdatei und beim unmittelbaren Lesen einer Installation (
upgrade.sh). Ohne Beschriftung wird der letzte Teil des Pfades genommen; eine Zeile ohne Verzeichnisgruppe oder UNC wird im Bericht benannt, nicht still verworfen.Handarbeit bleibt: das lokale Konto (bcrypt laesst sich nicht in Argon2id umrechnen), Gruppen und Rechte, die Verzeichniskonfiguration samt Bind-Konto, Domain und Zertifikat, das Auditlog.
Nur
tesmrueckt auf 2.8.1 --tesm-coreundtesm-licensebleiben auf 2.8.0.Downloads
-
released this
2026-09-12 13:28:15 +02:00 | 49 commits to main since this releaseDas Aktionsvokabular heisst wie das, was es tut: Read, Create, Write, Delete, Execute, Export, Secrets (R C W D X E S). Create und Write implizieren einander nicht -- wer anlegen darf, darf nicht automatisch aendern.
Eine Zeile je Funktion. Vorher deckte ein Recht mehrere Funktionen ab: elf an
dhcp.edit, vier anmaintenance.execute, fuenf anfileshare.edit, drei Neustartwege andevices.execute, und das Freigeben eines Host-Schluessels lief unter "Gerät ändern". Neu getrennt: Neustart ueber PoE / SSH / RPC, Client- und Switch-Konsole, Host-Schluessel, Paketaktualisierung / Neustartauftrag / Windows-Werkzeug, fuenf DHCP-Zeilen, Unterschriften, Freigabe-Zuordnungen, Navigation, Sicherung erstellen und einspielen. Auf dem Lizenzserver: ausstellen, erneuern, widerrufen und Aktivierung von Hand -- "aendern" hiess dort widerrufen oder erneuern.Das Administratorkennzeichen heisst Verwaltung, nicht alles. Ein echter Administrator hat den Verwaltungsbereich immer, auch ohne Gruppe. Funktionsrechte kommen ueber Gruppen, und er darf sich jede selbst zuweisen -- der Unterschied ist, dass es danach im Aenderungsprotokoll steht. Die Gruppe "Administration" kann das nicht.
Eine Verzeichnisgruppe kann Administrator setzen. Das Auswahlfeld der Gruppen-Zuordnung kennt jetzt "Administrator (Kennzeichen)"; bisher landete "Domänen-Admins" in der Gruppe Administration und wurde damit gerade kein echter Administrator. Wirkung ersetzend, mit Schutz fuer den letzten Administrator und ohne Wirkung auf lokale Konten.
Die Matrix bleibt bedienbar: 37 Zeilen statt 21, Unterzeilen eingerueckt, die Funktion in Kleinschrift in der Zeile, Sammelknoepfe fuer Zeile und Spalte, Filterfeld mit Zaehler.
Uebergang: Migrationen benennen bestehende Gruppenrechte um und teilen sie additiv auf -- niemand verliert etwas. Bestehende Administratoren bekommen die Gruppe "Funktionen (Vollzugriff)", damit nach dem Update nichts fehlt; entfernen geht mit einem Klick. Sicherungen aus 2.7.x werden beim Einlesen mitgezogen. Nachgewiesen an der echten Datenbank einer 2.7.8-Installation.
tesm-core, tesm und tesm-license auf 2.8.0; tesm-licensing und die Serverhaelfte bleiben auf 2.7.7.
Downloads
-
released this
2026-09-12 11:37:22 +02:00 | 50 commits to main since this releaseBeim Setzen einer Unterschrift sass der Block in der Vorschau um die Texthoehe hoeher als in der gespeicherten Datei: die Marke hing mit ihrer Unterkante am Ankerpunkt, pdf-lib setzt dort die Unterkante des Bildes und schreibt den Text darunter.
- Die Marke ist jetzt genau die Zeichnung; der Text haengt darunter und bestimmt ihre Hoehe nicht mehr.
- Vorschau und Stempel lesen ihre Masse aus einem gemeinsamen Satz Konstanten.
- Schriftgrundlinie und die auf ganze Pixel gerundete Strichstaerke werden im Browser gemessen statt gerechnet: Abweichung zur Datei unter 0,05 Punkt (nachgemessen bei fuenf Zoomstufen und drei Breiten).
Nur TESM und das gemeinsame Geruest ruecken auf 2.7.8. Lizenzserver, Lizenzprotokoll und Serverhaelfte bleiben auf 2.7.7 -- dort hat sich nichts geaendert.
Downloads