Skripte / Befehle

Für den Konsolenbereich der testWare existieren einige Befehle, welche die Wartung der testWare auch ohne Browser ermöglichen.

Vorbereitungen

Mit der testWare Instanz verbinden

In den folgenden Abschnitten werden die vorhandenen Befehle aufgeführt. Dabei wird vorausgesetzt, dass man sich in der entsprechenden Instanz der testWare befindet.

Verbinden Sie sich zum Beispiel per ssh mit dem Server.

computer:~$ ssh system@domain.tld

Verwenden Sie einen traditionellen Webserver, wechseln Sie in das Stammverzeichnis z.B. /var/www/testware

cd /var/www/testware

Für Systeme mit einer Containerlaufzeit öffnen Sie einen Terminal in den testWare Container. Als Beispiel für einen Docker Container names testware-app

docker compose exec -ti testware-app /bash

Befehle ausführen

Die folgenden Befehle sind im Framework laravel eingebettet. Damit diese erfolgreich ausgeführt werden können, muss vor dem Befehl php artisan stehen. Daher wäre als Beispiel der Befehl testware:install die komplette Zeile:

php artisan testware:install

Für Instanzen mit Container-Laufzeitumgebung kann man auch direkt aus dem Terminal heraus den Befeh ausführen. Dem obigen Beispiel folgend würde die Zeile entsprechend lauten:

docker compose exec testware app php artisan testware:install

testWare Befehle

testware:install
Erforderliche Parameter: keine Optionale Schalter: keine Beispiel: keine

Warnung

Dieser Befehl sollte nur für ein neue Instanz verwendet werden.

Eine produktiv laufende Instanz sollte vorher gesichert werden, da alle Daten gelöscht werden.

Im Stammverzeichnis wird der Installer mit folgendem Befehl gestartet:

php artisan testware:install

Nach der Eingabe des Befehels wir die obige Warnung im Terminal ausgegeben

computer:/var/www/testware$ php artisan testware:install W A R N I N G This installer will reset your database! All data will be lost and cannot be restored! Type [yes] to proceed or [no] to exit without changes [no]:

Der komplette Ablauf des Installers wird in dem entsprechenden Dokument beschrieben.


testware:resetuserpw
Erforderliche Parameter: Benutzer E-Mail Optionale Schalter: keine Beispiel: testware:resetuserpw 'benutzer.email@adresse.de'

Das Feature Passwort vergessen ist in der testWare verfügbar jedoch deaktiviert, weil nicht immer ein E-Mail Server zur Verfügung steht. Damit ein vegessenes Passwort neu vergeben werden kann, ist dieser Befehl zu benutzen.

computer:/var/www/testware$ php artisan testware:resetuserpw 'benutzer.email@adresse.de' Reseting password for user [benutzer.email@adresse.de]

Wurde das Konto mit der E-Mail Adresse nicht gefunden, wird eine entsprechende Fehlermeldung gegeben und der Befehl abgebrochen. Ist das Konto vorhanden, erscheint eine Abfrage, in der das neue Passwort eingetragen wird.

Provide new password (min. 8 charakters): Confirm new password :
Bitte beachten, dass in den meisten Terminals keine Eingabe zu sehen ist. Viele Terminals zeigen ein Schlüsselsymbol, um zu zeigen, dass ein Passwort eingegeben wird.

Stimmen beide Passwörter überein, wird das Passwort gesetzt und eine Meldung generiert.

A new password has been set
Sobald das Passwort gesetzt ist werden alle aktiven Sitzungen (Sessions) des Nutzers abgemeldet. Nicht gespeicherte Datensätze gehen damit verloren!

testware:promotesysadmin
Erforderliche Parameter: Benutzer E-Mail Optionale Schalter: keine Beispiel: testware:promotesysadmin 'benutzer.email@adresse.de'

Benutzerkonten mit SysAdmin-Status haben vollen Zugriff auf die testWare. Sie können u.a. Benutzer zu SysAdmin befördern oder diesen aberkennen. Dies kann über die Kontoverwaltung erfolgen, oder auch mit dem Befehl.

computer:/var/www/testware$ php artisan testware:promotesysadmin 'benutzer@adresse.de' Promoting user : benutzer@adresse.de User is promoted to SysAdmin

testware:demotesysadmin
Erforderliche Parameter: Benutzer E-Mail Optionale Schalter: keine Beispiel: testware:demotesysadmin 'benutzer.email@adresse.de'

Mit diesem Befehl wird der Status des SysAdmin einem Nutzer entzogen.

computer:/var/www/testware$ php artisan testware:demotesysadmin 'benutzer@adresse.de' Demoting user: benutzer@adresse.de User was demoted successfully

testware:demoseeder
Erforderliche Parameter: APP_ENV=demo oder APP_ENV=local Optionale Schalter: --force Beispiel: testware:demoseeder --force

Warnung

Dieser Befehl sollte nur für ein neue Instanz verwendet werden.

Eine produktiv laufende Instanz sollte vorher gesichert werden, da alle Daten gelöscht und durch die Demodaten ersetzt werden.

Möchte man die testWare ausprobieren, kann man mit diesem Befehl die Datenbank mit Demodaten füllen. Mit ihnen erhält man einen kleinen Standort mit 3 Büroarbeitsplätzen und einer Prüfhistorie. Diese Daten kann man erweitern oder als Vorlage verwenden.

Es werden zwei Benutzer angelegt. Der erste ist ein Standardbenutzer mit folgenden Kontodaten:

Benutzername Demo user E-Mail demo.user@testware.io Passwort kunl$§I(zo78O)
Signatur

Das zweite Benutzerkonto hat den SysAdmin-Status und hat folgende Kontodaten:

Benutzername Demo SuperUser E-Mail demo.superuser@testware.io Passwort kunl$§I(zo78O)
Signatur

Der Befehl prüft anhand des APP_ENV Wertes in der .env bzw. app.env, ob die testWare Instanz sich im Demo-Modus oder im lokalen Entwicklungsmodus befindet. Dafür muss der Wert demo oder local sein.

Ist dies nicht der Fall, wird eine entsprechende Warnung gegeben. Es bedarf einer Anmeldung eines Benutzerkontos mit SysAdmin-Status, damit der Seeder im produktiven Modus ausgeführt wird.

computer:/var/www/testware$ php artisan testware:demoseeder W A R N I N G Your testware instance is not running in demo mode. Please use a SysAdmin account to continue. E-Mail:

Unabhängig von dem Modus der testWare-Instanz wird nach der Prüfung eine Warnung ausgegeben.

computer:/var/www/testware$ php artisan testware:demoseeder W A R N I N G This seeder will reset your database! All data will be lost and cannot be restored! Type [yes] to proceed or [no] to exit without changes [no]:

Möchte man die Warnung überspringen, kann der Schalter --force benutzt werden.

php artisan testware:demoseeder --force

Sind die Prüfungen abgeschlossen wird die Instanz in den Wartungsmodus gesetzt. Danach werden die Tabellen geleert und mit den Demodaten gefüllt. Abschließend wird der Wartungsmodus abgeschaltet und die testWare ist mit den Demodaten nutzbar.

✓ Turning on maintenance mode ✓ Reset database and fill with Demo data ✓ Task completed. Switching off maintenance mode

testware:hskey
Erforderliche Parameter: keine Optionale Schalter: keine Beispiel: testware:hskey

Dieser Befehl erneuert den Schlüssel für den Konfigurationsparameter APP_HSKEY

Achtung!
Wenn ein Schlüssel existiert, wird dieser überschrieben. Dies kann zu unerwarteten Effekten bei der Verwendung von generierten QR-Codes führen.

laravel Befehle

Die testWare baut auf dem php Framework laravel auf. Diese hat ebenfalls eine große Anzahl von Konsolenbefehle. Hier seien einige aufgeführt.

cache:clear
Erforderliche Parameter: keine Optionale Schalter: keine Beispiel: cache:clear

Dieser Befehl löscht den Cache der testWare. Dies kann nützlich sein, wenn die testWare träge werden sollte.

computer:/var/www/testware$ php artisan cache:clear Application cache cleared!

migrate
Erforderliche Parameter: keine Optionale Schalter: keine Beispiel: migrate

Dieser Befehl legt Tabellen mit entsprechenden Feldern (Attributen) an. Wenn die testWare erweitert wird, kann es möglich sein, dass weitere Datenbankfelder ersteltt werden müssen. In diesem Fall sollte der Befehl ausgeführt werden.

computer:/var/www/testware$ php artisan migrate

Je nach Stand werden die Änderungen ausgeführt, oder eine Meldung gegeben, dass keine ausgeführt werden müssen.


migrate:rollback
Erforderliche Parameter: keine Optionale Schalter: keine Beispiel: migrate:rollback

Sollte die testWare nach dem Ausführen des Befehls php artisan migrate nicht funktionieren, kann dies auf eine fehlerhafte Verknüpfung deuten. In diesem Fall kann die Migration rückgängig gemacht werden. Dadurch wird der alte Stand wiederhergestellt.

computer:/var/www/testware$ php artisan migrate:rollback

Die Änderungen an der Datenbank werden entsprechend ausgegeben.