• Installation auf AlmaLinux und anderen RHEL basierten Distros

    Unsolved
    3
    0 Votes
    3 Posts
    106 Views
    G
    @Michael-Huhn Danke für die Rückmeldung. Ich habe zwei Drafts eingestellt. Ich muss nochmal in Ruhe schauen, ob ich was übersehen habe. https://github.com/i-doit/knowledge-base/pull/1093 https://github.com/i-doit/scripts/pull/50 Was mir generell am meisten aufstößt, ist dass die DocumentRoot komplett mit Schreibrechten für den Apache ausgestattet wird. Auf der Seite vom Hardening wird dann mit Permissions und immutable Attribute das wieder gesichert. Das macht IMHO wenig Sinn, dass man sichere Voreinstellungen des Systems (z.B. Owner root:root mit Context httpd_sys_content_t) aufweicht, um sie dann später umständlich wieder zu härten. Ich bin ja ein Fan davon, gleich alles richtig und sicher zu installieren (dann kann man es auch gut als RPM verpacken) und nur auf die Verzeichnisse dem Webserver Schreibrechte zu geben, wo diese tatsächlich notwendig sind. Aber dann kann man natürlich erstmal nicht den Web-Updater benutzen. Aber die sind aus Sicherheitsgesichtspunkten sowieso immer kritisch, wenn der Web-Update seinen eigenen Code aktualisieren will, sofern man keinen Umweg über ein Script geht, welches als root läuft (der Web-Update startet z.B. per sudo ein Script als root, welches den Code aktualisiert...) Soll man das hier diskutieren oder ist es besser, ich mache ein Issue im GitHub zu diesem Thema?
  • Kabel mittels API erstellen

    2
    0 Votes
    2 Posts
    70 Views
    LFischerL
    Hallo @jakob dein Ansatz ist soweit eigentlich ganz gut, es fehlt nur der richtige Wert für assigned_connector. In solchen Fällen kann es schon weiterhelfen die Daten auszulesen und mit der GUI zu vergleichen { "version": "2.0", "method": "cmdb.category.save", "params": { "object": 1234, <-- Objekt ID (Server) "category": "C__CATG__CONNECTOR", "data": { "title": "Connector", "assigned_connector": 123, <-- Anschluss Datensatz ID "cable_connection": 234 <-- Kabel Objekt ID }, "apikey": "<hello-api>" }, "id": 1 } Der Wert für assigned_connector muss die Datensatz ID des zu verbindenden Anschlusses sein, das kannst du in der GUI z.B. hier sehen: [image: 1755614326990-4e304c88-3318-4f3c-84da-0fc801b49966-image.png] Alternativ kannst du dir den value der Checkbox anschauen (falls das data-connector-id Attribut nicht existiert). Bezüglich entry ist wichtig zu wissen das die save Methode zum erstellen und aktualisieren genutzt werden kann. Lässt man entry leer wird ein Datensatz erstellt (= create), gibt man eine Datensatz ID an, wird diese aktualisiert (= Update). Viele Grüße Leo
  • JSON RPC API Quickpurge

    3
    0 Votes
    3 Posts
    93 Views
    W
    @sv Wo hättest du das herausgelesen, dass das nicht erlaubt wäre? Unter quickpurge finde ich da keine Einschränkung (außer, dass es enabled sein muss). Ich wollte das auch nutzen ...
  • Json RCP API cmdb_status setzen

    3
    0 Votes
    3 Posts
    272 Views
    S
    Hallo Niklas, ich verstehe es so, dass laut Doku über cmdb.object.update nur der Objekttitel aktualisiert werden kann. Um den Status eines Objekts zu aktualisieren muss man die ID des Objekts kennen und kann dann über cmdb.category.save den Status ändern. Das hier ist aus einem Powershell Script: $id = [ID des zu bearbeitenden Objekts] #CMDB Status 15 = Gelagert $parameter = @{ "object" = $id "category" = "C__CATG__GLOBAL" "apikey" = $ApiKey "data" = @{ "cmdb_status" = 15 } } $Commands = @{ "version" = "2.0" "method" = "cmdb.category.save" "params" = $parameter "id" = 1 } So hat es bei mir funktioniert.
  • API Konstrukt via PHP benutzerdefiniertes Objekt

    3
    0 Votes
    3 Posts
    170 Views
    StefanP74S
    Guten Morgen @LFischer, danke für den Input, bei Multi-Value hat es dann geklingelt. $jsonData = [ 'version' => '2.0', 'method' => 'cmdb.object.create', 'params' => [ 'apikey' => $apiKey, 'type' => 'C__OBJTYPE__SD_LSCHPROTOKOLL', 'title' => $vartitle, 'categories' => [ 'C__CATG__CUSTOM_FIELDS_PI_LSCHPROTOKOLL' => [ [ 'f_popup_c_1675341962187' => $currentDateTime, 'f_popup_c_1675342078466' => [ $datenbereich ], 'f_popup_c_1675342171620' => $loeschverfahren, 'f_popup_c_1675342277156' => [ $varwho ], 'description' => $vardescript ] ] ], ], 'id' => 3 // ID für die Anfrage ]; Ich musste zusätzlich zu deiner Lösung die beiden Multi-Value Felder nochmal in eckige Klammern packen. Perfekt, danke. Lustig wie oft man im api log über diese Zeile an einem Freitag drüberlesen kann: "There was an validation error: f_popup_c_1675342277156: (object_browser) Property has to be an array." So kann der Montag beginnen LG Stefan
  • eMail-Benachrichtigung: Von ASCII Tabelle zu HTML-Tabelle

    1
    2 Votes
    1 Posts
    96 Views
    No one has replied
  • Fehler bei Objektanlage aus Template

    18
    0 Votes
    18 Posts
    5k Views
    A
    @Instructor Das Problem scheint weiterhin zu bestehen. Ich habe ein Template angelegt für eine Steckdosenleiste, 1 Eingang -> 7 Ausgänge, alle dem gleichen Eingang zugeordnet. Erstelle ich daraus Objekte, ist nur noch 1 Eingang einem Ausgang zugeordnet.
  • JSON-RPC API Log-Level

    3
    0 Votes
    3 Posts
    180 Views
    StefanP74S
    Servus @LFischer Version 2.2 Danke für die Aufklärung, das war mir neu. Anhand des Umstandes, dass ich keinen Login durchführe sondern nur via API-Key den Connect herstelle, ziehen hierfür die Expertensettings vom Admin-Center. Ich habe nun api.log-level in den Expertensettings im Admin-Center auf 400 gesetzt (war auf 100 Debug) ... und tataaaa, tut. Danke. LG Stefan
  • Reihenfolge der Attribute in Kategorien ändern

    2
    0 Votes
    2 Posts
    188 Views
    L
    Ich habe es mit Hilfe von https://kb.i-doit.com/de/software-entwicklung/add-ons-entwickeln/kategorien-programmieren.html und etwas Wissen über den Aufbau von i-doit selber rausgefunden. Der obigen Artikel fehlen aus meiner Sicht insbesondere die Pfade bzw. Datei-Namen, um das im System besser nachvollziehen zu können. Daher hier kurz mein Vorgehen: Passende Data-Access-Objekt (DA) Klasse finden. Diese Dateien liegen aktuell hier (ich hatte einfach nach dao gesucht, da dass ja recht eindeutig ist) /var/www/html/i-doit/src/classes/modules/cmdb/dao/category/ Hier am besten nach der Sprachkonstante der Kategorie oder eines (eindeutigen) Attributs suchen. In meinem Fall grep -r 'LC__CMDB__CATG__GLOBAL_TAG' *" Das liefert isys_cmdb_dao_category_g_global.class.php Wenn man sich ein wenig mit der Datenbank bzw. den Konstanten auskennt, hätte man die passende Datei aber auch so gefunden. Zur Dao gibt es (eigentlich) immer eine passende UI Interface Klasse. Diese liegen aktuell hier: /var/www/html/i-doit/src/classes/modules/cmdb/ui/ In meinem Fall ist das dann die /var/www/html/i-doit/src/classes/modules/cmdb/ui/global/isys_cmdb_ui_category_g_global.class.php (Also anderer Pfad und ui statt dao) Hier werden die "Rules" (gesammelte Daten aus DAO + ggf. verarbeitete Daten aus dem UI) an das Smarty-Template übergeben: smarty_tom_add_rules('tom.content.bottom.content', $l_rules); Die Templates sind dann aktuell hier zu finden (das ist das, was ich eigentlich wollte): Statt Punkt ein Verzeichnis-Trenner und tom wird zu templates: /var/www/html/i-doit/src/themes/default/smarty/templates/content/bottom/content/ In meinem Fall benötige ich die catg__global.tpl (angelehnt an die Konstante für die Kategorie) welche HTML Code beinhaltet/erzeugt und dass man relativ leicht anpassen kann, da der content/bottom/content hauptsächlich aus einer html Tabelle besteht. Grüße
  • Object lists - editing wirft fehler

    3
    0 Votes
    3 Posts
    168 Views
    B
    Hi, cool, stimmt. Funktioniert wieder! Vielen Dank für den Hinweis. LG, Sebastian
  • (simple) REST API für Objekte und Kategorien

    3
    0 Votes
    3 Posts
    435 Views
    Michael HuhnM
    vielleicht hilft euch nun dieses Add-on weiter: https://www.i-doit.com/events/vergangenes-event-das-neue-i-doit-add-on-jira-asset-import
  • Flows + API Attribut vererbung

    1
    0 Votes
    1 Posts
    85 Views
    No one has replied
  • 0 Votes
    6 Posts
    352 Views
    L
    @Michael-Huhn Danke für die Info
  • Datei via API hochladen und Workplace anhängen.

    2
    0 Votes
    2 Posts
    189 Views
    Michael HuhnM
    @leno2206 das Problem bei Dateien ist, die müssen als Base64 kodiert sein . Datei Objekt erstellen und eine Datei hochladen: { "id": 1, "version": "2.0", "method": "cmdb.object.create", "params": { "type": "C__OBJTYPE__FILE", "title": "UserImage", "categories": { "C__CATS__FILE_VERSIONS": [ { "file_physical": "UserImage.png", "file_content": "BASE64=", "file_title": "UserImage.png" } ] }, "apikey": "key", "language": "en" } } Dann hab ich hier noch ein Beispiel für das Zuweisen einer Datei zu einem Objekt: { "id": 1, "version": "2.0", "method": "cmdb.category.save", "params": { "object": 1123375323, "category": "C__CATG__FILE", "data": { "file": 1123375614, "link": null, "description": null }, "apikey": "key", "language": "en" } } Ps. wenn ich versuche die Datei hochzuladen und direkt zuzuweisen, bekomme ich einen 500er. AH01071: Got error 'PHP message: PHP Fatal error: Uncaught TypeError: isys_application::getUploadFilePath(): Argument #1 ($fileName) must be of type string, null given, Dazu erstelle ich einen Bug Report { "id": 1, "version": "2.0", "method": "cmdb.object.create", "params": { "type": "C__OBJTYPE__FILE", "title": "UserImage", "categories": { "C__CATS__FILE_VERSIONS": [ { "file_physical": "UserImage.png", "file_content": "BASE64=", "file_title": "UserImage.png" } ], "C__CATS__FILE_OBJECTS": [ { "assigned_objects": 9 } ] }, "apikey": "key", "language": "en" } }
  • Client und Contact über eine API Abfrage erstellen

    3
    0 Votes
    3 Posts
    286 Views
    K
    @Michael-Huhn Danke erstmal für die zwei Beispiele. Beide setzen aber voraus, dass der "contact" schon existiert - das ist bei mir nicht der Fall. Da wäre halt die Idee beides in einer Abfrage zu vereinen, ich kann mir aber gut vorstellen, dass das so nicht vorgesehen ist.
  • Lizenztyp Sockel-basiert

    2
    0 Votes
    2 Posts
    157 Views
    Michael HuhnM
    @plox also in der Demo seh ich dazu nichts, daher wohl nein. [image: 1723718747078-a68625b5-6574-4b21-be32-aafa3337f42b-image.png]
  • Ja-Nein-Feld über API auf "Nichts" setzten

    3
    0 Votes
    3 Posts
    193 Views
    L
    Alles klar. Danke für die Erklärung und den Workaround
  • PHP API : api-client-php

    8
    0 Votes
    8 Posts
    3k Views
    LFischerL
    Hallo @uhaase der API Client unterstützt noch keine der v2 Endpunkte - wobei das bisher auch gar nicht nötig ist. Die v2 Endpunkte wurden in erster Linie ins leben gerufen um die Parameter zu vereinheitlichen (z.B. werden objID, catgID oder catsID mit object und category usw. getauscht) - der API Client übernimmt dies aber schon im Vergleich zur "rohen" Kommunikation mit der API. Ich muss auch gestehen das die v2 Endpunkte nur sehr langsam Fortschritte machen und viele der object und category Endpunkte im v2 Kontext noch nicht existieren, da wir damit auf eine i-doit interne API aufbauen wollen, die noch nicht fertig ist. Ich denke lediglich die cmdb.external.pull.v2 und cmdb.external.push.v2 müssten wir hier nachziehen, da es sich dabei um neue Endpunkte handelt die vorher nicht existiert haben. Oder wolltest du auf etwas anderes hinaus ? Viele Grüße Leo
  • API Abfrage - Primary contact - no title

    2
    0 Votes
    2 Posts
    186 Views
    P.BluhmP
    Moin Erstelle dir doch einfach einen Bericht in i-doit über den Report Manager und lese den aus. { "version": "2.0", "method": "cmdb.reports.read", "params": { "language": "en", "apikey": "meinkey", "id": "112" <---- report id }, "id": 1 } Report konfigurieren [image: 1720173725514-fc6b4012-577c-4251-ad23-9f5abb7fb138-grafik.png] Ergebnis: { "id": 1, "jsonrpc": "2.0", "result": [ { "Title": "srv-erp", "Contact": "Pattrick Bluhm", "Primary": "Yes" }, { "Title": "srv-dc1", "Contact": "Heike Müller", "Primary": "Yes" } ] }
  • Probleme mit der JSON RPC API - Immer code -32600

    11
    0 Votes
    11 Posts
    1k Views
    P
    @LFischer Super Sache, genauere Fehlermeldungen sind natürlich immer gerne gesehen! Danke nochmals fürs Helfen. Grüsse, Pippo