{"id":26430774,"url":"https://github.com/bheisig/rt-extension-referenceidoitobjects","last_synced_at":"2025-03-18T05:34:25.201Z","repository":{"id":3181727,"uuid":"4213713","full_name":"bheisig/rt-extension-referenceidoitobjects","owner":"bheisig","description":"Create a ticket in relation to one or more i-doit objects","archived":false,"fork":false,"pushed_at":"2019-07-15T14:12:59.000Z","size":950,"stargazers_count":9,"open_issues_count":2,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2023-03-23T21:56:59.404Z","etag":null,"topics":["cmdb","i-doit","rt"],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bheisig.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-05-03T12:31:02.000Z","updated_at":"2022-04-06T11:59:46.000Z","dependencies_parsed_at":"2022-07-14T16:17:25.360Z","dependency_job_id":null,"html_url":"https://github.com/bheisig/rt-extension-referenceidoitobjects","commit_stats":null,"previous_names":[],"tags_count":13,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bheisig%2Frt-extension-referenceidoitobjects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bheisig%2Frt-extension-referenceidoitobjects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bheisig%2Frt-extension-referenceidoitobjects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bheisig%2Frt-extension-referenceidoitobjects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bheisig","download_url":"https://codeload.github.com/bheisig/rt-extension-referenceidoitobjects/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244166362,"owners_count":20409165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmdb","i-doit","rt"],"created_at":"2025-03-18T05:34:24.640Z","updated_at":"2025-03-18T05:34:25.193Z","avatar_url":"https://github.com/bheisig.png","language":"Perl","readme":"#   RT::Extension::ReferenceIDoitObjects\n\nCreate a ticket in Request Tracker (RT) in relation to one or more i-doit objects\n\n\n##  Description\n\nThis extension gives you the opportunity to combine an issue tracker like [Request Tracker (RT)](https://bestpractical.com/) with an IT documentation tool / CMDB like i-doit. It uses i-doit's API to relate a ticket with one or more objects managed by i-doit. On i-doit's side you are able to view all tickets related to an object. This extension also supports i-doit's multi-tenant functionality.\n\n[i-doit (\"I document IT\")](https://i-doit.com/) is a Web application to establish an IT documentation and CMDB. Its core is Free and Open Source Software. Visit \u003chttps://www.i-doit.com/\u003e for commercial support and additional services.\n\n\n##  Requirements\n\nThe latest release requires RT 4.4.x and i-doit 1.8.2 or higher. It is not compatible with RT != 4.4.x (for example 3.8.x, 4.0.x, 4.2.x) and not compatible with i-doit \u003c= 1.8.1.\n\nYou also need the i-doit API add-on installed, enabled and configured.\n\nHere is a matrix of all compatible versions:\n\n|               | RT 3.8.x  | RT 4.0.x  | RT 4.2.x  | RT 4.4.x  |\n| ------------- | --------- | --------- | --------- | --------- |\n| i-doit 1.0.x  |           | 0.92¹     |           |           |\n| i-doit 1.1.x  |           | 0.92      |           |           |\n| i-doit 1.2.x  |           | 0.92      |           |           |\n| i-doit 1.3.x  |           |           | 0.93      |           |\n| i-doit 1.4.x  |           |           | 0.93/0.94 |           |\n| i-doit 1.5.x  |           |           | 0.94      |           |\n| i-doit 1.6.x  |           |           | 0.94      |           |\n| i-doit 1.7.x  |           |           | 0.94      |           |\n| i-doit 1.8.x  |           |           | 0.94      | 1.00²     |\n| i-doit 1.9.x  |           |           |           | 1.00²     |\n| i-doit 1.10.x |           |           |           | 1.00²     |\n| i-doit 1.11.x |           |           |           | 1.00²     |\n\n¹ Requires i-doit 1.0.1 or higher\n\n² Requires i-doit 1.8.2 or higher\n\n\n##  Installation\n\n**The preferred way is via CPAN.** You may also fetch und install the latest version manually or even try the current development branch.\n\nBut before you do please make sure all dependencies are met:\n\n-   `RT 4.4.x`\n-   Perl module `YAML::Tiny`\n\n~~~ {.bash}\nexport RT_HOME=\"/opt/rt\"\nsudo cpan YAML::Tiny\n~~~\n\nSet `RT_HOME` to the path where your RT instance is located, for example `/opt/rt4`.\n\n\n### Manual\n\nDownload the latest version from [CPAN](https://metacpan.org/release/RT-Extension-ReferenceIDoitObjects) or [GitHub](https://github.com/bheisig/rt-extension-referenceidoitobjects/releases). To install this extension run the following commands:\n\n~~~ {.bash}\nwget https://cpan.metacpan.org/authors/id/B/BH/BHEISIG/RT-Extension-ReferenceIDoitObjects-1.00.tar.gz\ntar xzvf RT-Extension-ReferenceIDoitObjects-1.00.tar.gz\ncd RT-Extension-ReferenceIDoitObjects-1.00/\nperl Makefile.PL\nmake\nmake test\nsudo make install\nmake initdb\n~~~\n\nExecuting the last command creates 2 new custom fields, so please do it only once. These fields contain the i-doit tenant and the referenced objects.\n\n\n### CPAN\n\nThe prefered and easiest way to install the latest version is via CPAN:\n\n~~~ {.bash}\nsudo cpan RT::Extension::ReferenceIDoitObjects\n$RT_HOME/sbin/rt-setup-database --action insert --datafile $RT_HOME/local/plugins/RT-Extension-ReferenceIDoitObjects/etc/initialdata\n~~~\n\nThe second command is equivalent to `make initdb`, but is unfortunately not executed automatically.\n\n\n### Git\n\nFetch the current development branch:\n\n~~~ {.bash}\ngit clone https://github.com/bheisig/rt-extension-referenceidoitobjects.git\ncd rt-extension-referenceidoitobjects\nperl Makefile.PL\nmake\nmake test\nsudo make install\n~~~\n\n\n##  Update\n\nIf you already installed this extension you will be able to update to the latest version.\n\n\n### CPAN\n\n~~~ {.bash}\nsudo cpan RT::Extension::ReferenceIDoitObjects\n~~~\n\n\n### Manual\n\n~~~ {.bash}\nwget https://cpan.metacpan.org/authors/id/B/BH/BHEISIG/RT-Extension-ReferenceIDoitObjects-1.00.tar.gz\ntar xzvf RT-Extension-ReferenceIDoitObjects-1.00.tar.gz\ncd RT-Extension-ReferenceIDoitObjects-1.00/\nperl Makefile.PL\nmake\nmake test\nsudo make install\n~~~\n\n\n### Git\n\nFresh copy:\n\n~~~ {.bash}\ngit clone https://github.com/bheisig/rt-extension-referenceidoitobjects.git\ncd rt-extension-referenceidoitobjects\nperl Makefile.PL\nmake\nmake test\nsudo make install\n~~~\n\nExisting copy:\n\n~~~ {.bash}\ncd rt-extension-referenceidoitobjects\ngit pull\nperl Makefile.PL\nmake\nmake test\nsudo make install\n~~~\n\n\n##  Upgrade from Version 0.9x to 1.x\n\nVersion 1.x is shipped with several changes, so please follow these instructions carefully.\n\n1.  Just follow the normal update steps.\n2.  You have to re-name the custom field \"i-doit mandator\" to \"i-doit tenant\".\n3.  The custom filed \"i-doit tenant\" must contain tenant identifiers not their names.\n4.  Check RT's site configuration file for the string \"mandator\". Please replace it with \"tenant\" (beware of the case-sensitivity).\n5.  In RT's site configuration the settings `%IDoitTenantKeys` and `$IDoitDefaultTenant` must contain the tenant identifiers, not their names.\n6.  Restart RT environment: `sudo rm -rf $RT_HOME/var/mason_data/obj/* \u0026\u0026 sudo systemctl restart apache2.service`\n\n\n##  Issue in RT 4.4.x\n\n**Caution:** RT 4.4.x is currently shipped with an out-dated version of the JavaScript framework [jQuery](https://jquery.com/). This version breaks with the jQuery plug-in [DataTables](https://datatables.net/) which is needed by this RT extension. A workaround is to upgrade jQuery.\n\n1.  Download a newer version of jQuery from their website, for example the minified version [`1.12.4.min.js`](https://code.jquery.com/jquery-1.12.4.min.js).\n2.  Copy this file to `$RT_HOME/share/static/js/`.\n3.  Inside this directory you see the out-dated jQuery version `jquery-1.11.3.min.js`. Move it: `mv jquery-1.11.3.min.js jquery-1.11.3.min.js.bak`\n4.  Create a symbolic link: `ln -s jquery-1.12.4.min.js jquery-1.11.3.min.js`\n\nNote that this workaround could be overwritten whenever you perform an update of RT.\n\n\n##  Configuration\n\nTo enable this extension edit the RT site configuration based in `$RT_HOME/etc/RT_SiteConfig.pm`:\n\n~~~ {.perl}\nSet(@Plugins,qw(RT::Extension::ReferenceIDoitObjects));\n\nSet($IDoitURL, 'http://example.org/i-doit/');\n\nSet($IDoitAPI, $IDoitURL . '?api=jsonrpc');\n\nSet(%IDoitTenantKeys, (\n    1 =\u003e 'api key',\n    2 =\u003e 'api key'\n));\n\nSet($IDoitDefaultTenant, 1);\n\nSet($IDoitDefaultView, 'objects'); # 'objects', 'workplaces', 'devices', or 'item'\n\nSet($IDoitInstalledSoftware, 'relations'); # 'objects', or 'relations'\n\nSet($IDoitShowCustomFields, 1); # 1 ('yes') or 0 ('no')\n~~~\n\n\n### `$IDoitURL`\n\nIt is _highly recommended_ to establish an TLS encrypted connection between RT and i-doit over a network (HTTPS).\n\n\n### `$IDoitAPI`\n\ni-doit has a API based on JSON-RPC. If you haven't installed or configured it yet now it will be a good time to do it.\n\n**Notice:** If you use both Web GUIs of i-doit and RT under different domains (FQDN) or IP addresses, please be aware of browsers' \"Same Origin Policy\". This extension uses AJAX requests access i-doit's API. If RT and i-doit are not available under the same domain name (or IP address), AJAX calls will fail.\n\nTo avoid this \"problem\" (actually this policy is very useful) you can setup an AJAX proxy. This extension already provides such a proxy located under `etc/i-doit_api_proxy.php`. It is written in PHP, so you have to install PHP 5.6 or higher and the PHP extension `curl` on the same machine where RT is installed. For example, on a Debian GNU/Linux 9 system:\n\n~~~ {.bash}\nsudo apt install php php-curl libapache2-mod-php\n~~~\n\nMake this little script available through your web server and edit the script by setting `$l_url` to the URL of i-doit's API:\n\n~~~ {.php}\n$l_url = 'https://i-doit.example.org/i-doit/index.php?api=jsonrpc';\n~~~\n\nIn RT's site configuration the setting `$IDoitAPI` has to be set to the URL of this script:\n\n~~~ {.perl}\nSet($IDoitAPI, 'https://rt.example.org/path/to/i-doit_api_proxy.php');\n~~~\n\nIf you use a TLS encrypted HTTPS connection with a self-signed certificate `curl` should probably not check the certificate. Add this line to the proxy script:\n\n~~~ {.php}\ncurl_setopt($l_curl_handle, CURLOPT_SSL_VERIFYPEER, false);\n~~~\n\nFor testing purposes call the proxy \"by hand\". Point your browser to the URL of the proxy script. i-doit should answer with an error message that it is not a valid JSON-RPC request.\n\n\n### `$IDoitTenantKeys`\n\nThis is a list of tenants with their API keys. Just put the identifier and API key of every tenant in i-doit you like to relate to tickets.\n\n**Notice:** Within the Web GUI you must configure the custom field \"i-doit tenant\". Add a new value for each tenant. The important field is `name` where you should set the tenant identifier.\n\n\n### `$IDoitDefaultTenant`\n\nChoose a default tenant for every situation where it's needed. Use its identifier. This identifier has be to added to the list of the corresponding custom field as well.\n\n\n### `$IDoitDefaultView`\n\nWhen creating or editing a ticket, this extension adds a so-called `object browser` to the Web interface. The browser gives you several views on objects:\n\n\n####    `objects`\n\nSelect objects provided by the API and filter them by type.\n\n\n####    `workplaces`\n\nSelect users' workplaces and their related components. Each user will be taken by the email address provided by RT's field \"Requestors\" if these users are documented in i-doit.\n\ni-doit gives you the possibility to create relations between users, their workplaces and all components related to these workplaces.\n\nTip: You may synchronize user information between RT and i-doit via LDAP.\n\n\n####    `devices`\n\nSelect assigned devices for current requestor. Those devices are objects in i-doit which have this requestor as an assigned person.\n\n\n####    `selected`\n\nView and remove all selected items.\n\n\n### `$IDoitInstalledSoftware`\n\nDefines which type of objects will be shown for the installed software. There are two options: `objects` or `relations`.\n\n\n####    `objects`\n\nShows software objects which are assigned to the currently selected object.\n\n\n####    `relations`\n\nShows the software relation between the object and the assigned software.\n\n\n### `$IDoitShowCustomFields`\n\nSometimes it is better to \"clean up\" the Web GUI. Whenever you only have one tenant within i-doit and don't want to edit the object identifiers manually it is recommended to hide the used custom fields. Select `1` to show them or `0` to hide them.\n\n\n##  Activate Configuration\n\nAfter all your new configuration will take effect after restarting your RT environment:\n\n~~~ {.bash}\nsudo rm -rf $RT_HOME/var/mason_data/obj/*\nsudo systemctl restart apache2.service\n~~~\n\nThis is an example for deleting the mason cache and restarting the Apache HTTP Web server on a Debian GNU/Linux based operating system.\n\n\n##  Configure i-doit\n\nYou may see and create object-related tickets within i-doit. Please refer to the [i-doit Knowledge Base](https://kb.i-doit.com/display/en/) to enable this feature.\n\nIf you create a new ticket in i-doit a new browser tab will be opened with the RT user interface. Sometimes RT shows a warning that there is a CSR attack. If you observe this behavior edit RT's local configuration file `$RT_HOME/etc/RT_SiteConfig.pm` where `$RT_HOME` is the path to your RT installation, for example `/opt/rt4`:\n\n~~~ {.perl}\nSet($RestrictReferrer, 0); # avoids possible CSR attacks\n~~~\n\nDon't forget to clear the Mason cache and restart your Web server.\n\n**Notice:** This setting could breach your security!\n\n\n##  Usage\n\nWhenever you create a new ticket or edit an existing one you are able to reference this ticket with one or more objects in i-doit. An additional box with the so-called \"object browser\" will shown up. Just select the objects you need or deselect the objects you do not need.\n\n![Create a new ticket](docs/rt_new_ticket.png)\n\n![Display a ticket](docs/rt_display_ticket.png)\n\n![Modify a ticket](docs/rt_modify_ticket.png)\n\n![Modify everything at once](docs/rt_jumbo_ticket.png)\n\n\n##  Useful Resources\n\n-   [i-doit Knowledge Base](https://kb.i-doit.com/display/en/)\n-   [i-doit Website](https://i-doit.com/)\n-   [i-doit Help Center](https://help.i-doit.com/)\n-   [i-doit Community](https://community.i-doit.com/)\n-   [RT Website](https://bestpractical.com/)\n-   [Source code repository](https://github.com/bheisig/rt-extension-referenceidoitobjects)\n-   [MetaCPAN](https://metacpan.org/release/RT-Extension-ReferenceIDoitObjects)\n-   [AnnoCPAN (Annotated CPAN documentation)](http://annocpan.org/dist/RT-Extension-ReferenceIDoitObjects)\n-   [CPAN Ratings](https://cpanratings.perl.org/d/RT-Extension-ReferenceIDoitObjects)\n-   ~~[CPAN's request tracker](https://rt.cpan.org/Public/Dist/Display.html?Name=RT-Extension-ReferenceIDoitObjects)~~ _(unused)_\n-   [Install Request Tracker (RT) 4.4.1 on Debian GNU/Linux 8.6 (Or: How I survived Perl's CPAN dependency hell…)](https://gist.github.com/bheisig/a4a34ffa85ebf1c3c5dc8dd8b46a0040)\n\n\n##  Issues and Contributions\n\nPlease report any bugs or feature requests related to this extension to [the issue tracker](https://github.com/bheisig/rt-extension-referenceidoitobjects/issues). Pull requests are very welcomed!\n\nIf you have found issues concerning i-doit or RT please contact the respective customer support. The extension's authors won't give you professional support, neither for i-doit nor RT.\n\n\n##  Authors\n\n-   Benjamin Heisig\n-   Leonard Fischer\n-   Van Quyen Hoang\n\nJust to be clear: We won't give you support via e-mail. Instead, [create a new issue](https://github.com/bheisig/rt-extension-referenceidoitobjects/issues).\n\n\n##  Copyright and License\n\nCopyright (C) 2011-18 [synetics GmbH](https://i-doit.com/)\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License along with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\nRequest Tracker (RT) is Copyright Best Practical Solutions, LLC.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbheisig%2Frt-extension-referenceidoitobjects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbheisig%2Frt-extension-referenceidoitobjects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbheisig%2Frt-extension-referenceidoitobjects/lists"}