3.15. Ticketsystem-Schnittstelle

kivitendo kann in den Kunden- und Lieferanten-Stammdaten zugehörige Tickets aus einem Ticketsystem (Issue Tracker) abrufen und diese in einem Tab anzeigen. Dazu ist in der Mandantenkonfiguration -> Features -> Experimentelle Features -> Ticket System Anbieter zunächst ein Anbieter auszuwählen. Ferner ist anbieterabhängig weitere Konfiguration erforderlich.

3.15.1. Atlassian Jira

Diese Implementierung funktioniert mit Atlassian Jira Cloud. (Die on-premises Variante von Jira hat eine andere API.)

Zu den Tickets werden folgende sortierbare Spalten angezeigt: Schlüssel, Zusammenfassung, Priorität, Status, Ersteller, Zugewiesen, Erstellt am, Erneuert am. Über den Link in der Spalte Schlüssel kann zu Jira gesprungen werden.

Implementiert ist Authentifizierung via OAuth2 Tokens. In Jira muss kivitendo zunächst als App angelegt werden. Dabei werden client_id, client_secret und redirect_uri vergeben. Zu beachten ist, dass redirect_uri diejenige URL sein muss, unter welcher kivitendo zum Anlegen der OAuth-Tokens vom Benutzer aufgerufen wird, gefolgt vom Endpunkt /oauth.pl. Alle drei Parameter sind in der kivitendo.conf im Abschnitt [oauth2_atlassian_jira] einzustellen, wie unten exemplarisch gezeigt ist.

Die App muss in Jira mit einem Benutzer oder mit mehreren Benutzern verknüpft werden:

  • ein einziger Jira-Benutzer, dessen Token mandantenweit alle kivitendo Benutzer zum Abruf von Tickets nutzen; oder
  • jeder kivitendo Benutzer bezieht sein eigenes Token für Jira, welches nur er selbst nutzen darf, um Tickets abzurufen

Die OAuth Tokens werden in kivitendo unter Programm -> OAuth Tokens angelegt. Ist in kivitendo ein mandantenweites Token und ein nutzerbezogenes Token für einen bestimmten Nutzer vorhanden, so wird das nutzerbezogene Token bevorzugt.

Nicht notwendig, aber für die Geschwindigkeit der Abfragen vorteilhaft, ist es, die cloud_id und cloud_url der gewünschten Jira Instanz ebenfalls in der kivitendo.conf einzustellen. (Zum Finden dieser Parameter nutzen Entwickler die Konsole und rufen accessible_resources aus SL/TicketSystem/Jira.pm auf.) Fehlt diese Angabe, so wird die von Jira als erstes zurückgegebene Cloud verwendet, wozu für jede Abfrage ein zweiter HTTP-Request nötig ist.

Exemplarischer Konfigurationsabschnitt in kivitendo.conf:

[oauth2_atlassian_jira]

client_id     = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
client_secret = xxxxxxx-xxxxx-xxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxx
redirect_uri  = http://kiviserver.lan/oauth.pl

# optional:
[atlassian_jira]

cloud_id  = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
cloud_url = https://firma.atlassian.net
          

Beim Kopieren einer Produktivdatenbank für Testzwecke sollten die OAuth Tokens ausgelassen werden, da beim Refresh im Testsystem die Tokens im Produktivsystem ungültig würden. Siehe hierzu die Option --exclude-table-data=oauth_token in man pg_dump(1).