X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=doc%2Fdokumentation.xml;h=d3560dc1fec57a71d54897df1350b15f4594fefc;hb=ea4256d880b35648ed0cf5725e43cddf2b8b7b4f;hp=cf15b4e5bad4ac76b7a91b22f1b7bdcc926bf9ff;hpb=ab18d1c0c613c094e576be22c0f788dfa19165bc;p=kivitendo-erp.git diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index cf15b4e5b..d3560dc1f 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -2,7 +2,7 @@ - kivitendo 3.5.1: Installation, Konfiguration, + <title>kivitendo 3.5.3: Installation, Konfiguration, Entwicklung @@ -114,10 +114,6 @@ Debian - - 7.0 "Wheezy" - - 8.0 "Jessie" @@ -129,17 +125,16 @@ - Ubuntu 14.04 "Trusty Tahr" LTS, 15.10 "Wily Werewolf", 16.04 "Xenial Xerus" LTS - und 18.04 "Bionic Beaver" LTS + 16.04 "Xenial Xerus" LTS und 18.04 "Bionic Beaver" LTS - openSUSE LEAP 42.1 + openSUSE 15.0 - Fedora 22 + Fedora 29 @@ -163,17 +158,13 @@ - parent (nur bei Perl vor 5.10.1) + Algorithm::CheckDigits Archive::Zip - - Algorithm::CheckDigits - - CGI @@ -186,14 +177,26 @@ Config::Std + + Daemon::Generic + + DateTime + + DateTime::Event::Cron + + DateTime::Format::Strptime + + DateTime::Set + + DBI @@ -210,6 +213,10 @@ Email::MIME + + Exception::Class + + FCGI (nicht Versionen 0.68 bis 0.71 inklusive; siehe File::Copy::Recursive + + File::Flock + + File::MimeInfo + + File::Slurp + + GD @@ -284,6 +299,10 @@ PDF::API2 + + Regexp::IPv6 + + Rose::Object @@ -297,6 +316,14 @@ neuer + + Set::Infinite + + + + Set::Crontab + + String::ShellQuote @@ -330,23 +357,16 @@ - YAML + YAML::XS oder YAML - Seit Version größer v3.5.1 sind die folgenden Pakete - hinzugekommen: - Set::Infinite, - List::UtilsBy, - DateTime::Set, - DateTime::Event::Cron - Daemon::Generic - DateTime::Event::Cron - File::Flock - File::Slurp - Set::Crontab - Exception::Lite -Für die letzten beiden Module liefert kivitendo fallback-Module aus, da -diese überhaupt nicht in debian oder in der benötigten Version zu Verfügung stehen (Stand Anfang 2019). + + Seit Version größer v3.5.3 sind die folgenden Pakete hinzugekommen: Exception::Class + + Seit Version größer v3.5.1 sind die folgenden Pakete hinzugekommen: Set::Infinite, + List::UtilsBy, DateTime::Set, DateTime::Event::Cron + Daemon::Generic, DateTime::Event::Cron, File::Flock, + File::Slurp, Set::Crontab Seit Version größer v3.5.0 sind die folgenden Pakete hinzugekommen: Text::Unidecode, @@ -403,16 +423,17 @@ diese überhaupt nicht in debian oder in der benötigten Version zu Verfügung s libparams-validate-perl libpdf-api2-perl librose-db-object-perl \ librose-db-perl librose-object-perl libsort-naturally-perl \ libstring-shellquote-perl libtemplate-perl libtext-csv-xs-perl \ - libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \ + libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-libyaml-perl \ libimage-info-perl libgd-gd2-perl libapache2-mod-fcgid \ libfile-copy-recursive-perl postgresql libalgorithm-checkdigits-perl \ libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl\ postgresql-contrib aqbanking-tools poppler-utils libhtml-restrict-perl\ libdatetime-set-perl libset-infinite-perl liblist-utilsby-perl\ - libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl - + libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl\ + libfile-mimeinfo-perl libpbkdf2-tiny-perl libregexp-ipv6-perl \ + libset-crontab-perl libdatetime-event-perl libexception-class-perl - Ab Ubuntu Version 18.04 LTS sind alle benötigten Pakete in der Distributions verfügbar. + Ab Ubuntu Version 18.04 LTS, bzw. Debian Buster sind alle benötigten Pakete in der Distribution verfügbar. Für ältere Ubuntu/Debians müßen einige Pakete per CPAN installiert werden. Das geht bspw. für das benötige Paket HTML::Restrict mit: @@ -427,19 +448,17 @@ cpan HTML::Restrict RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden: - dnf install httpd mod_fcgid perl-Archive-Zip perl-Clone perl-DBD-Pg \ - perl-DBI perl-DateTime perl-Email-Address perl-Email-MIME perl-FCGI \ - perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils perl-Net-SMTP-SSL perl-Net-SSLGlue \ - perl-PDF-API2 perl-Params-Validate perl-Rose-DB perl-Rose-DB-Object \ + dnf install httpd mod_fcgid postgresql-server postgresql-contrib\ + perl-Algorithm-CheckDigits perl-Archive-Zip perl-CPAN perl-Class-XSAccessor \ + perl-Clone perl-Config-Std perl-DBD-Pg perl-DBI perl-Daemon-Generic \ + perl-DateTime perl-DateTime-Set perl-Email-Address perl-Email-MIME perl-FCGI \ + perl-File-Copy-Recursive perl-File-Flock perl-File-MimeInfo perl-File-Slurp \ + perl-GD perl-HTML-Restrict perl-JSON perl-List-MoreUtils perl-List-UtilsBy \ + perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PBKDF2-Tiny perl-PDF-API2 \ + perl-Params-Validate perl-Regexp-IPv6 perl-Rose-DB perl-Rose-DB-Object \ perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \ - perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \ - perl-XML-Writer perl-YAML perl-parent postgresql-server perl-CPAN \ - perl-Algorithm-CheckDigits perl-GD perl-Class-XSAccessor perl-Text-Balanced perl-libwww-perl - - Zusätzlich müssen einige Pakete aus dem CPAN installiert - werden. Dazu können Sie die folgenden Befehle nutzen: - - cpan Config::Std HTML::Restrict + perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer \ + perl-YAML perl-libwww-perl @@ -449,18 +468,24 @@ cpan HTML::Restrict RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden: - zypper install apache2 apache2-mod_fcgid perl-Archive-Zip perl-Clone \ - perl-Config-Std perl-DBD-Pg perl-DBI perl-DateTime perl-Email-Address \ - perl-Email-MIME perl-FastCGI perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils \ - perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PDF-API2 perl-Params-Validate \ - perl-Sort-Naturally perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \ - perl-URI perl-XML-Writer perl-YAML perl-CPAN \ - perl-Algorithm-CheckDigits perl-GD perl-Class-XSAccessor postgresql-server perl-libwwww-perl + zypper install apache2 apache2-mod_fcgid postgresql-server postgresql-contrib\ + perl-Algorithm-CheckDigits perl-Archive-Zip perl-CGI perl-Class-XSAccessor \ + perl-Clone perl-Config-Std perl-DBD-Pg perl-DBI perl-Daemon-Generic \ + perl-DateTime perl-DateTime-Format-Strptime perl-Email-Address \ + perl-Email-MIME perl-FastCGI perl-File-Copy-Recursive perl-File-Flock \ + perl-File-MimeInfo perl-File-Slurp perl-GD perl-Image-Info perl-JSON \ + perl-List-MoreUtils perl-List-UtilsBy perl-Net-SMTP-SSL perl-Net-SSLGlue \ + perl-PDF-API2 perl-Params-Validate perl-Regexp-IPv6 perl-Set-Crontab \ + perl-Sort-Naturally perl-String-ShellQuote perl-Template-Toolkit \ + perl-Text-CSV_XS perl-Text-Iconv perl-Text-Unidecode perl-URI \ + perl-XML-Writer perl-YAML perl-libwww-perl + Zusätzlich müssen einige Pakete aus dem CPAN installiert werden. Dazu können Sie die folgenden Befehle nutzen: - cpan Rose::Db::Object + cpan DateTime::event::Cron DateTime::Set FCGI \ + HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite @@ -499,15 +524,15 @@ cpan HTML::Restrict url="https://github.com/kivitendo/kivitendo-erp/releases">hier heruntergeladen werden. - Die kivitendo ERP Installationsdatei - (kivitendo-erp-3.4.1.tgz) wird im + Diese aktuelleste kivitendo ERP-Archiv + (kivitendo-erp-*.tgz) wird dann im Dokumentenverzeichnis des Webservers (z.B. /var/www/html/, /srv/www/htdocs oder /var/www/) entpackt: cd /var/www -tar xvzf kivitendo-erp-3.4.1.tgz +tar xvzf kivitendo-erp-*.tgz Wechseln Sie in das entpackte Verzeichnis: @@ -796,7 +821,19 @@ default_manager = german Anpassung der PostgreSQL-Konfiguration PostgreSQL muss auf verschiedene Weisen angepasst werden. - + Dies variert je nach eingesetzter Distribution, da distributionsabhängig unterschiedliche Strategien beim Upgrade der Postgres Version eingesetzt werden. + Als Hinweis einige Links zu den drei Distribution (Stand Dezember 2018): + + + Fedora (Postgres-Installation unter Fedora) + + + Ubuntu (Infos für Postgres für die aktuelle LTS Version) + + + OpenSuSE (aktuell nur bis Version OpenSuSE 13 verifiziert) + + Zeichensätze/die Verwendung von Unicode/UTF-8 @@ -1159,6 +1196,20 @@ Alias /url/for/kivitendo-erp-fcgid/ /path/to/kivitendo-erp/ + + Authentifizierung mittels HTTP Basic Authentication + + + Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt + (siehe RFC 7617). Dazu ist es aber nötig, dass der dabei vom Client + mitgeschickte Header Authorization vom Webserver an Kivitendo über die Umgebungsvariable + HTTP_AUTHORIZATION weitergegeben wird, was standardmäßig nicht der Fall ist. Für Apache kann dies über die + folgende Konfigurationsoption aktiviert werden: + + + SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 + + Weitergehende Konfiguration @@ -7778,6 +7829,89 @@ file_name = /tmp/kivitendo-debug.log + + Programmatische API-Aufrufe + + + Einführung + + + Es ist möglich, Funktionen in kivitendo programmatisch aus anderen Programmen aufzurufen. Dazu ist nötig, dass + Authentifizierungsinformationen in jedem Aufruf mitgegeben werden. Dafür gibt es zwei Methoden: die HTTP-»Basic«-Authentifizierung + oder die Übergabe als spziell benannte GET-Parameter. Neben den Authentifizierungsinformationen muss auch der zu verwendende Mandant + übergeben werden. + + + + + Wahl des Mandanten + + + Der zu verwendende Mandant kann als Parameter {AUTH}client_id mit jedem Request mitgeschickt werden. Der Wert + muss dabei die Datenbank-ID des Mandanten sein. kivitendo prüft, ob der Account, der über die Authentifizierungsinformationen + übergeben wurde, Zugriff auf den angegebenen Mandanten hat. + + + + Wird in einem Request kein Mandant mitgegeben, so wird derjenige Mandant genommen, wer als Standardmandant markiert wurde. Gibt es + keinen solchen, kommt es zu einer Fehlermeldung. + + + + + HTTP-»Basic«-Authentifizierung + + + Für diese Methode muss jedem Request der bekannte HTTP-Header Authorization mitgeschickt werden (siehe RFC 7617). Unterstützt wird ausschließlich die »Basic«-Methode. Loginname und + Passwort werden bei dieser Methode durch einen Doppelpunkt getrennt und Base64-encodiert im genannten HTTP-Header übertragen. + + + + Diese Informationen müssen einen vorhandenen Account benennen. kivitendo prüft genau wie bei Benutzung über den Webbrowser, ob + dieser Account Zugriff auf den Mandanten sowie auf die angeforderte Funktion hat. + + + + Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt + erfolgen. + + + + + Authentifizierung mit Parametern + + + Für diese Methode müssen jedem Request zwei Parameter mitgegeben werden: {AUTH}login und + {AUTH}password. Diese Informationen müssen einen vorhandenen Account benennen. kivitendo prüft genau wie bei + Benutzung über den Webbrowser, ob dieser Account Zugriff auf den Mandanten sowie auf die angeforderte Funktion hat. + + + + Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt + erfolgen. + + + + + Die Verwendung dieser Methode ist veraltet. Statt dessen sollte die oben erwähnte HTTP-»Basic«-Authentifizierung verwendet werden. + + + + + + Beispiele + + + Das folgende Beispiel nutzt das Kommandozeilenprogramm »curl« und ruft die Funktion auf, die eine vorhandene Telefonnummer in den + Ansprechpersonen sucht und dazu Informationen zurückliefert. Dabei wird die HTTP-»Basic«-Authentifizierung genutzt. + + + $ curl --silent --user 'jdoe:SecretPassword!' \ + 'https://…/controller.pl?action=PhoneNumber/look_up&number=053147110815' + + + SQL-Upgradedateien