Autor Thema: Konfigurationen alle in der Datenbank?  (Gelesen 751 mal)

m.greune

  • Newbie
  • Beiträge: 228
Konfigurationen alle in der Datenbank?
« am: 18.10.2021 12:41:51 »
Hallo,


ich wollte mich mal erkundigen, ob in KIX18 jetzt alle Konfigurationen in der Datenbank sind? In KIX 17 war es so, dass z.B. die AD-Anbindung direkt über eine Daten mitgegeben werden konnte. Und Einstellungen wurden in der ZZZAuto gespeichert, sodass man theoretisch diese Datei in ein anderes System spielen konnte und dann alle Einstellungen hatte.


Hintergrund der Frage ist, dass wir zwecks Automatisierung das System direkt mit Grundkonfigurationen bereitstellen wollen würden, wie z.B. die AD-Anbindung. Geht das? Könnte ich z.B. auch gezielt Einstellungen aus der Sysconfig sichern, die ich bei der Bereitstellung einfach wieder einspielen kann?


Viele Grüße
Marvin

Torsten Thau

  • Global Moderator
  • Beiträge: 265
Re: Konfigurationen alle in der Datenbank?
« Antwort #1 am: 18.10.2021 13:21:24 »
Hi Marvin,

die Konfiguration liegt direkt in der DB. Export und Import von Einstellungen kann über die REST-API erfolgen.

Im Falle der Authentifizierung GET {{ host  }}/{{ webapi  }}Authentication%23%23%23000-Default (URL-encoded SysConfig-Schlüssel "Authentication###000-Default") - oder eben ein PATCH auf obige URL mit der jeweiligen Konfiguration mit passendem JSON-Body (hier nur DB-Auth):

{
  "SysConfigOption": {
    "Value": [
        {
          "Config": {
            "CryptType": "sha2"
          },
          "Enabled": 1,
          "Module": "Kernel::System::Auth::DB",
          "Name": "Local Database"
        }
      ]
    }
}

VG, Torsten

m.greune

  • Newbie
  • Beiträge: 228
Re: Konfigurationen alle in der Datenbank?
« Antwort #2 am: 28.10.2021 10:29:09 »
Hallo Thorsten,


danke für die Antwort.


Ich versuche das gerade einmal zu testen mit Hilfe von "Insomnia". Einen Token kann ich mir per POST schon mal holen. Leider bekomme ich mit diesem TOKEN aber kein PATCH hin. Die Doku hierzu habe ich mir angeschaut, leider sind dort keine wirklichen Beispiele drin, weshalb mir das nicht wirklich weiter hilft.


Wenn ich den Header "Authorization" mit dem vorher ausgelesenen Token mitgebe, bekomme ich die Antwort:


{
  "Code": "Authorization.NoToken",
  "Message": "No token in \"Authorization\" header found. "
}


Gibt es noch etwas, was ich hier mitgeben muss? Habe auch schon "Token: ..." versucht oder einen Zusätzlichen Header "Token".


Viele Grüße
Marvin

Torsten Thau

  • Global Moderator
  • Beiträge: 265
Re: Konfigurationen alle in der Datenbank?
« Antwort #3 am: 29.10.2021 11:17:14 »
Hi Marvin,


Du bist schon nahe dran. Es scheint nur ein Doppelpunkt (hinter Token) zuviel zu sein- so sollte es mit dem Header klappen:

Authorization: Token eyJhb...thatshouldbeyourtokenvalue...uv9sFAmU

CU, Torsten

m.greune

  • Newbie
  • Beiträge: 228
Re: Konfigurationen alle in der Datenbank?
« Antwort #4 am: 29.10.2021 14:24:29 »
Hallo Torsten,


ah, so knapp :)


Hat funktioniert, vielen dank.


Viele Grüße
Marvin

m.greune

  • Newbie
  • Beiträge: 228
Re: Konfigurationen alle in der Datenbank?
« Antwort #5 am: 29.10.2021 15:20:54 »
Hallo Torsten,


jetzt kommt gleich die nächste Frage:
Ich will nun ein json übermitteln. Dort drin ist folgender Part:
"ContactUserSync": {
    "Email": "mail",
    "Firstname": "givenname",
    "Lastname": "sn",
    "Phone": "telephoneNumber",
    "PrimaryOrganisationID": "department",
    "UserLogin": "sAMAccountName",
    "IsAgent": "SET:1"
},


Die Antwort ist
{
  "Message": "Validation of attribute Email failed (mail)!",
  "Code": "Validator.Failed"
}


Das gleiche habe ich auch, wenn ich
"Config": {
    "Charset": "utf-8",
},


drin habe. Dort meckert er halt das "utf-8" an. Wenn ich die beiden Einträge raus lösche, ist alles in Ordnung. Ich kann auch im Falle der Mail folgendes machen:
"Email": "(mail)",
Dann funktioniert das Setzen des Schlüssels zwar, aber mit den Klammern funktioniert der sync ausm AD dann aber nicht.


Wenn ich die Config im Webinterface einsetze, funktioniert das so wie ich das brauche (also mit "Email": "mail").


Wenn ich mir über http://{fqdn}:{port}/api/v1/system/config/Authentication%23%23%23000-Default den Default-Wert auslese (also vor manueller Anpassung) und dann versuche diesen als als json-File über die webapi zu setzen, kommt das gleiche. Er mag also scheinbar Charset und Email nicht.


Mache ich wieder was falsch oder gibt es hier vielleicht ein Problem?


Viele Grüße
Marvin


Edit:
Ich hab gerade zufällig gefunden, was mich hindert: API::Validator::Module###EmailAddressValidatorMache ich das aus, kann ich auch "mail" eintragen. Hätte das denn noch andere Auswirkungen auf das System?

Torsten Thau

  • Global Moderator
  • Beiträge: 265
Re: Konfigurationen alle in der Datenbank?
« Antwort #6 am: 16.11.2021 09:21:06 »
Hallo,


Danke für die Rückmeldung. In der Tat habe ich das Szenario so noch nicht probiert. Ich vermute dass es ein Fehler ist, mindestens aber bedarf es einer Doku-Ergänzung. Ich nehme das daher erstmal als Bug auf.


Danke für's Finden und Nennen des Workarounds. 👍


Die Deaktivierung des Validators hat zur Folge, dass die Email-Eingaben in der Kontakt-/Nutzerdatenpflege nicht mehr geprüft werden. Wenn aber vorwiegend das AD/LDAP für Kontaktdatenquelle benutzt wird, ist das sicherlich hinnehmbar.


CU, Torsten

Tags: