• Über Flows Kontaktzuweisungen archivieren

    1
    0 Votes
    1 Posts
    2 Views
    No one has replied
  • API cmdb.object.create categories

    1
    0 Votes
    1 Posts
    74 Views
    No one has replied
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    16 Views
    No one has replied
  • Installation auf AlmaLinux und anderen RHEL basierten Distros

    Unsolved
    3
    0 Votes
    3 Posts
    444 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
    405 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
    1
    0 Votes
    3 Posts
    429 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
    395 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
    489 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
    2 Votes
    1 Posts
    255 Views
    No one has replied
  • Fehler bei Objektanlage aus Template

    18
    0 Votes
    18 Posts
    6k 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
    487 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
    511 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
    470 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
    827 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
    244 Views
    No one has replied
  • 0 Votes
    6 Posts
    502 Views
    L
    @Michael-Huhn Danke für die Info
  • Datei via API hochladen und Workplace anhängen.

    2
    2
    0 Votes
    2 Posts
    495 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
    611 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
    464 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
    1
    0 Votes
    3 Posts
    477 Views
    L
    Alles klar. Danke für die Erklärung und den Workaround