Page 1 of 1

Kleines API Problem - Typ von "ports" "port"

Posted: Tue 1. Apr 2025, 21:22
by otto58
Ich bin sicher, dass die Ursache des Problems bei KeyHelp liegt
Ja

Server-Betriebssystem + Version
Debian 12.10


Eingesetzte Server-Virtualisierung-Technologie
KVM


KeyHelp-Version + Build-Nummer
"panel_version": "25.0",
"panel_build": "3398",
"api_version": "2.10",


Problembeschreibung / Fehlermeldungen
Bei "ports" handelt es sich um eine Auslistung der "Überwachte Dienste".
Im Auslieferungszustand ist die Unterangabe "port" ein string
{
"service": "POP3",
"port": "995",
"protocol": "tcp",
"status": "online"
},
Wenn ich einen weiteren Dienste unter "Überwachte Dienste" eintrage, wird "port" zum integer.
{
"service": "POP3",
"port": 995,
"protocol": "tcp",
"status": "online"
},
Wenn ich den weiteren Dienst wieder entferne, bleibt "port" integer.

Erwartetes Ergebnis
Der Typ von "port" sollte sich bei normaler Nutzung von Keyhelp nicht ändern.

Tatsächliches Ergebnis


Schritte zur Reproduktion


Zusätzliche Informationen
(z.B. kürzlich durchgeführte Änderungen am Server, Auszüge aus Protokolldateien (/var/log/*, /var/log/keyhelp/php-error.log, etc.))

Re: Kleines API Problem - Typ von "ports" "port"

Posted: Tue 1. Apr 2025, 21:33
by 24unix
Oh, unschön, ich kann es hier reproduziren:

Code: Select all

❌ Failed to fetch server data: typeMismatch(Swift.String, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "ports", intValue: nil), _CodingKey(stringValue: "Index 0", intValue: 0), CodingKeys(stringValue: "port", intValue: nil)], debugDescription: "Expected to decode String but found number instead.", underlyingError: nil))
Das sagt Proxyman:

Code: Select all

{
      "service": "test",
      "port": 123,
      "protocol": "tcp",
      "status": "offline"
    },
    
Aber ich denke, Alex wird das schnell fixen, wie wir ihn kennen :-)

Re: Kleines API Problem - Typ von "ports" "port"  [GELÖST]

Posted: Wed 2. Apr 2025, 14:06
by Alexander
Grüße,

Danke für die Info.
Int wäre richtig, das ist in der Dokumentation + bei einem "jungfräulichen" System leider falsch.

=> Ist beides korrigiert für KH 25.1.

Re: Kleines API Problem - Typ von "ports" "port"

Posted: Wed 2. Apr 2025, 14:13
by 24unix
Alexander wrote: Wed 2. Apr 2025, 14:06 Grüße,

Danke für die Info.
Int wäre richtig, das ist in der Dokumentation + bei einem "jungfräulichen" System leider falsch.

=> Ist beides korrigiert für KH 25.1.
Hmm, ich habe das Db backup zurück gespielt.

Code: Select all

ServicePort
        - service: "POP3"
        - port: "995"
        - proto: "tcp"
        - status: "online"
Also mit dem Update auf 25.1 wird das auf int geändert?

Ist das hardcodiert oder irgendwo in der DB?

Re: Kleines API Problem - Typ von "ports" "port"

Posted: Wed 2. Apr 2025, 15:16
by Alexander
Das dazugehörige Json liegt in der KeyHelp settings Tabelle (category/name: services - status_config).

Abspeichern von "Konfiguration -> Service/Port-Monitoring" bewirkt, das der port als int gespeichert wird.
Aktuell würde er bei der API den Datentyp nehmen, der im json steht.

Ab 25.1 ist es immer int.

Re: Kleines API Problem - Typ von "ports" "port"

Posted: Wed 2. Apr 2025, 15:33
by 24unix
Alexander wrote: Wed 2. Apr 2025, 15:16 Das dazugehörige Json liegt in der KeyHelp settings Tabelle (category/name: services - status_config).

Abspeichern von "Konfiguration -> Service/Port-Monitoring" bewirkt, das der port als int gespeichert wird.
Aktuell würde er bei der API den Datentyp nehmen, der im json steht.
Danke, schaue ich mir mal an, aus Neugierde.
Alexander wrote: Wed 2. Apr 2025, 15:16 Ab 25.1 ist es immer int.
Und darum bin ich da jetzt pragmatisch rangegangen, habe den Wechsel auf int nochmal forciert und den Code angepasst :-)

SCR-20250402-nscl.png