<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book id="kivitendo-documentation" lang="de">
- <title>kivitendo 3.5.1-beta: Installation, Konfiguration, Entwicklung</title>
+ <title>kivitendo 3.5.3: Installation, Konfiguration,
+ Entwicklung</title>
<chapter id="Aktuelle-Hinweise">
<title>Aktuelle Hinweise</title>
ohne große Probleme auf den derzeit aktuellen verbreiteten
Distributionen läuft.</para>
- <para>Anfang 2016 sind das folgende Systeme, von denen bekannt ist,
+ <para>Anfang 2019 sind das folgende Systeme, von denen bekannt ist,
dass kivitendo auf ihnen läuft:</para>
<itemizedlist>
<itemizedlist>
<listitem>
- <para>7.0 "Wheezy"</para>
+ <para>8.0 "Jessie"</para>
</listitem>
-
<listitem>
- <para>8.0 "Jessie"</para>
+ <para>9.0 "Stretch"</para>
</listitem>
+
</itemizedlist>
</listitem>
<listitem>
- <para>Ubuntu 12.04 LTS "Precise Pangolin", 14.04 "Trusty Tahr"
- LTS, 15.10 "Wily Werewolf" und 16.04 "Xenial Xerus" LTS
- Alpha</para>
+ <para>16.04 "Xenial Xerus" LTS und 18.04 "Bionic Beaver" LTS
+ </para>
</listitem>
<listitem>
- <para>openSUSE LEAP 42.1</para>
+ <para>openSUSE 15.0</para>
</listitem>
<listitem>
- <para>Fedora 22</para>
+ <para>Fedora 29</para>
</listitem>
</itemizedlist>
</sect2>
<itemizedlist>
<listitem>
- <para><literal>parent</literal> (nur bei Perl vor 5.10.1)</para>
+ <para><literal>Algorithm::CheckDigits</literal></para>
</listitem>
<listitem>
<para><literal>Archive::Zip</literal></para>
</listitem>
- <listitem>
- <para><literal>Algorithm::CheckDigits</literal></para>
- </listitem>
-
<listitem>
<para><literal>CGI</literal></para>
</listitem>
<para><literal>Config::Std</literal></para>
</listitem>
+ <listitem>
+ <para><literal>Daemon::Generic</literal></para>
+ </listitem>
+
<listitem>
<para><literal>DateTime</literal></para>
</listitem>
+ <listitem>
+ <para><literal>DateTime::Event::Cron</literal></para>
+ </listitem>
+
<listitem>
<para><literal>DateTime::Format::Strptime</literal></para>
</listitem>
+ <listitem>
+ <para><literal>DateTime::Set</literal></para>
+ </listitem>
+
<listitem>
<para><literal>DBI</literal></para>
</listitem>
<para><literal>File::Copy::Recursive</literal></para>
</listitem>
+ <listitem>
+ <para><literal>File::Flock</literal></para>
+ </listitem>
+
<listitem>
<para><literal>File::MimeInfo</literal></para>
</listitem>
+ <listitem>
+ <para><literal>File::Slurp</literal></para>
+ </listitem>
+
<listitem>
<para><literal>GD</literal></para>
</listitem>
<para><literal>PDF::API2</literal></para>
</listitem>
+ <listitem>
+ <para><literal>Regexp::IPv6</literal></para>
+ </listitem>
+
<listitem>
<para><literal>Rose::Object</literal></para>
</listitem>
neuer</para>
</listitem>
+ <listitem>
+ <para><literal>Set::Infinite</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Set::Crontab</literal></para>
+ </listitem>
+
<listitem>
<para><literal>String::ShellQuote</literal></para>
</listitem>
</listitem>
<listitem>
- <para><literal>YAML</literal></para>
+ <para><literal>YAML::XS</literal> oder <literal>YAML</literal></para>
</listitem>
</itemizedlist>
+ <para>Seit Version größer v3.5.1 sind die folgenden Pakete hinzugekommen: <literal>Set::Infinite</literal>,
+ <literal>List::UtilsBy</literal>, <literal>DateTime::Set</literal>, <literal>DateTime::Event::Cron</literal>
+ <literal>Daemon::Generic</literal> <literal>DateTime::Event::Cron</literal> <literal>File::Flock</literal>
+ <literal>File::Slurp</literal> <literal>Set::Crontab</literal> <literal>Exception::Lite</literal>. Für das letzte Modul
+ liefert kivitendo ein fallback-Modul aus, da es überhaupt nicht in debian oder in der benötigten Version zu Verfügung stehen (Stand
+ Anfang 2019).</para>
+
<para>Seit Version größer v3.5.0 sind die folgenden Pakete
- hinzugekommen: <literal>Text::Unidecode, LWP::Authen::Digest,
- LWP::UserAgent</literal></para>
+ hinzugekommen: <literal>Text::Unidecode</literal>,
+ <literal>LWP::Authen::Digest</literal>,
+ <literal>LWP::UserAgent</literal></para>
<para>Seit Version v3.4.0 sind die folgenden Pakete hinzugekommen:
- <literal>Algorithm::CheckDigits</literal><literal>PBKDF2::Tiny</literal></para>
+ <literal>Algorithm::CheckDigits</literal>,
+ <literal>PBKDF2::Tiny</literal></para>
<para>Seit Version v3.2.0 sind die folgenden Pakete hinzugekommen:
<literal>GD</literal>, <literal>HTML::Restrict</literal>,
<title>Debian und Ubuntu</title>
<para>Für Debian und Ubuntu stehen die meisten der benötigten
- Perl-Pakete als Debian-Pakete zur Verfügung. Sie können mit
+ Pakete als Debian-Pakete zur Verfügung. Sie können mit
folgendem Befehl installiert werden:</para>
<programlisting>apt install apache2 libarchive-zip-perl libclone-perl \
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
-</programlisting>
+ 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\
+ libfile-mimeinfo-perl libpbkdf2-tiny-perl libregexp-ipv6-perl \
+ libset-crontab-perl libdatetime-event-perl
- <para>Für das Paket HTML::Restrict gibt es kein Debian-Paket, dies
- muß per CPAN installiert werden. Unter Ubuntu funktioniert das
- mit:</para>
+</programlisting>
+ <para>Ab Ubuntu Version 18.04 LTS, bzw. Debian Buster sind alle benötigten Pakete in der Distribution verfügbar.</para>
+ <para>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:</para>
<programlisting>apt-get install build-essential
cpan HTML::Restrict</programlisting>
RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl
installiert werden:</para>
- <programlisting>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 \
+ <programlisting>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</programlisting>
-
- <para>Zusätzlich müssen einige Pakete aus dem CPAN installiert
- werden. Dazu können Sie die folgenden Befehle nutzen:</para>
-
- <programlisting>cpan Config::Std HTML::Restrict</programlisting>
+ perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer \
+ perl-YAML perl-libwww-perl</programlisting>
</sect3>
<sect3>
RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl
installiert werden:</para>
- <programlisting>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</programlisting>
+ <programlisting>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
+ </programlisting>
<para>Zusätzlich müssen einige Pakete aus dem CPAN installiert
werden. Dazu können Sie die folgenden Befehle nutzen:</para>
- <programlisting>cpan Rose::Db::Object</programlisting>
+ <programlisting>cpan DateTime::event::Cron DateTime::Set FCGI \
+ HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite</programlisting>
</sect3>
</sect2>
<para>Debian und Ubuntu: <programlisting>apt install aqbanking-tools
</programlisting></para>
- <para>OpenSuSE: <programlisting>zypper install aqbanking-tools</programlisting></para>
+ <para>Fedora: <programlisting>dnf install aqbanking</programlisting></para>
+
+ <para>openSUSE: <programlisting>zypper install aqbanking-tools</programlisting></para>
<para>Seit Version v3.4.1 wird generell zum Feststellen der
Seitenanzahl von PDF_Dokumenten 'pdfinfo' benötigt was im Paket
<para>Debian und Ubuntu: <programlisting>apt install poppler-utils
</programlisting></para>
- <para>OpenSuSE: <programlisting>zypper install poppler-tools</programlisting></para>
+ <para>Fedora: <programlisting>dnf install poppler-utils</programlisting></para>
+
+ <para>openSUSE: <programlisting>zypper install poppler-tools</programlisting></para>
</sect2>
</sect1>
url="https://github.com/kivitendo/kivitendo-erp/releases">hier</ulink>
heruntergeladen werden.</para>
- <para>Die kivitendo ERP Installationsdatei
- (<filename>kivitendo-erp-3.4.1.tgz</filename>) wird im
+ <para>Diese aktuelleste kivitendo ERP-Archiv
+ (<filename>kivitendo-erp-*.tgz</filename>) wird dann im
Dokumentenverzeichnis des Webservers (z.B.
<filename>/var/www/html/</filename>,
<filename>/srv/www/htdocs</filename> oder
<filename>/var/www/</filename>) entpackt:</para>
<programlisting>cd /var/www
-tar xvzf kivitendo-erp-3.4.1.tgz</programlisting>
+tar xvzf kivitendo-erp-*.tgz</programlisting>
<para>Wechseln Sie in das entpackte Verzeichnis:</para>
restlichen Dateien müssen für diesen Benutzer lesbar sein. Die Benutzer-
und Gruppennamen sind bei verschiedenen Distributionen unterschiedlich
(z.B. bei Debian/Ubuntu <constant>www-data</constant>, bei Fedora
- <constant>apache</constant> oder bei OpenSUSE
+ <constant>apache</constant> oder bei openSUSE
<constant>wwwrun</constant>).</para>
<para>Der folgende Befehl ändert den Besitzer für die oben genannten
cd kivitendo-erp/
git checkout `git tag -l | egrep -ve "(alpha|beta|rc)" | tail -1`</programlisting>
Erläuterung: Der Befehl wechselt zur letzten Stable-Version (git tag
- -l listet alle Tags auf, das egrep schmeisst alle Einträge mit alpha, beta
- oder rc raus und das tail gibt davon den obersten Treffer zurück).
- Sehr sinnvoll ist es, direkt im Anschluss einen eigenen Branch zu
- erzeugen, um bspw. seine eigenen Druckvorlagen-Anpassungen damit zu
- verwalten. Hierfür reicht ein simples <programlisting> git checkout -b meine_eigenen_änderungen</programlisting>
+ -l listet alle Tags auf, das egrep schmeisst alle Einträge mit alpha,
+ beta oder rc raus und das tail gibt davon den obersten Treffer
+ zurück). Sehr sinnvoll ist es, direkt im Anschluss einen eigenen
+ Branch zu erzeugen, um bspw. seine eigenen Druckvorlagen-Anpassungen
+ damit zu verwalten. Hierfür reicht ein simples <programlisting> git checkout -b meine_eigenen_änderungen</programlisting>
nach dem letzten Kommando (weiterführende Informationen <ulink
url="http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html">
Git Magic</ulink>).</para>
<title>Anpassung der PostgreSQL-Konfiguration</title>
<para>PostgreSQL muss auf verschiedene Weisen angepasst werden.</para>
-
+ <para>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):</para>
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="https://fedoraproject.org/wiki/PostgreSQL">Fedora (Postgres-Installation unter Fedora)</ulink></para>
+ </listitem>
+ <listitem>
+ <para><ulink url="https://help.ubuntu.com/lts/serverguide/postgresql.html">Ubuntu (Infos für Postgres für die aktuelle LTS Version)</ulink></para>
+ </listitem>
+ <listitem>
+ <para><ulink url="https://de.opensuse.org/PostgreSQL">OpenSuSE (aktuell nur bis Version OpenSuSE 13 verifiziert)</ulink></para>
+ </listitem>
+ </itemizedlist>
<sect2 id="Zeichensätze-die-Verwendung-von-UTF-8">
<title>Zeichensätze/die Verwendung von Unicode/UTF-8</title>
</note>
</sect2>
+ <sect2 id="Erweiterung-für-trigram">
+ <title>Erweiterung für Trigram Prozeduren</title>
+
+ <para>Ab Version 3.5.1 wird die Trigram-Index-Erweiterung benötigt.
+ Diese wird mit dem SQL-Updatescript
+ sql/Pg-upgrade2/trigram_extension.sql und Datenbank-Super-Benutzer
+ Rechten automatisch installiert. Dazu braucht der
+ DatenbankSuperbenutzer "postgres" ein Passwort.</para>
+
+ <programlisting>su - postgres
+psql
+\password postgres
+
+Eingabe Passwort
+\q</programlisting>
+
+ <para>Benutzername Postgres und Passwort können jetzt beim Anlegen
+ einer Datenbank bzw. bei Updatescripten, die SuperuserRechte
+ benötigen, eingegeben werden.</para>
+
+ <note>
+ <para><literal>pg_trgm</literal> ist je nach Distribution nicht im
+ Standard-Paket von Postgres enthalten. Ein <programlisting>select * from pg_available_extensions where name ='pg_trgm';</programlisting>
+ in template1 sollte entsprechend erfolgreich sein. Andernfalls muss
+ das Paket nachinstalliert werden, bspw. bei debian/ubuntu
+ <programlisting>apt install postgresql-contrib</programlisting></para>
+ </note>
+ </sect2>
+
<sect2 id="Datenbankbenutzer-anlegen">
<title>Datenbankbenutzer anlegen</title>
<itemizedlist>
<listitem>
- <para>Apache 2.2.11 (Ubuntu) und mod_fcgid.</para>
+ <para>Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.</para>
</listitem>
-
<listitem>
- <para>Apache 2.2.11 / 2.2.22 (Ubuntu) und mod_fastcgi.</para>
+ <para>Apache 2.4.18 (Ubuntu 16.04 LTS) und mod_fcgid</para>
</listitem>
-
<listitem>
- <para>Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.</para>
+ <para>Apache 2.4.29 (Ubuntu 18.04 LTS) und mod_fcgid</para>
</listitem>
</itemizedlist>
- <para>Dabei wird mod_fcgid empfohlen, weil mod_fastcgi seit geraumer
- Zeit nicht mehr weiter entwickelt wird. Im Folgenden wird auf
- mod_fastcgi nicht mehr explizit eingegangen.</para>
-
<para>Als Perl Backend wird das Modul <filename>FCGI.pm</filename>
verwendet.</para>
</sect3>
</sect2>
+ <sect2>
+ <title>Authentifizierung mittels HTTP Basic Authentication</title>
+
+ <para>
+ Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt
+ (siehe <ulink url="https://tools.ietf.org/html/rfc7617">RFC 7617</ulink>). Dazu ist es aber nötig, dass der dabei vom Client
+ mitgeschickte Header <constant>Authorization</constant> vom Webserver an Kivitendo über die Umgebungsvariable
+ <constant>HTTP_AUTHORIZATION</constant> weitergegeben wird, was standardmäßig nicht der Fall ist. Für Apache kann dies über die
+ folgende Konfigurationsoption aktiviert werden:
+ </para>
+
+ <programlisting>SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1</programlisting>
+ </sect2>
+
<sect2>
<title>Weitergehende Konfiguration</title>
<sect3>
<title>SystemV-basierende Systeme (z.B. ältere Debian, ältere
- OpenSUSE, ältere Fedora)</title>
+ openSUSE, ältere Fedora)</title>
<para>Kopieren Sie die Datei
<filename>scripts/boot/system-v/kivitendo-task-server</filename>
</listitem>
<listitem>
- <para>Ältere OpenSUSE und ältere Fedora:</para>
+ <para>Ältere openSUSE und ältere Fedora:</para>
<programlisting>chkconfig --add kivitendo-task-server</programlisting>
</listitem>
einfachsten ist dazu eine <literal>texlive</literal> Installation. Unter
debianoiden Betriebssystemen installiert man die Pakete mit:</para>
- <para><programlisting>apt-get install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \
- texlive-latex-extra texlive-lang-german texlive-generic-extra</programlisting></para>
+ <para><programlisting>apt install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \
+ texlive-latex-extra texlive-lang-german texlive-generic-extra texlive-xetex </programlisting></para>
<para>Für Fedora benötigen Sie die folgenden Pakete:</para>
</sect2>
</sect1>
+ <sect1 id="dev-programmatic-api-calls" xreflabel="Programmatische API-Aufrufe">
+ <title>Programmatische API-Aufrufe</title>
+
+ <sect2 id="dev-programmatic-api-calls.introduction" xreflabel="Einführung in programmatische API-Aufrufe">
+ <title>Einführung</title>
+
+ <para>
+ 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.
+ </para>
+ </sect2>
+
+ <sect2 id="dev-programmatic-api-calls.client_selection" xreflabel="Mandantenauswahl bei programmatischen API-Aufrufen">
+ <title>Wahl des Mandanten</title>
+
+ <para>
+ Der zu verwendende Mandant kann als Parameter <varname>{AUTH}client_id</varname> 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.
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </sect2>
+
+ <sect2 id="dev-programmatic-api-calls.http_basic_authentication" xreflabel="Programmatische API-Aufrufe mit HTTP-»Basic« authentifizieren">
+ <title>HTTP-»Basic«-Authentifizierung</title>
+
+ <para>
+ Für diese Methode muss jedem Request der bekannte HTTP-Header <constant>Authorization</constant> mitgeschickt werden (siehe <ulink
+ url="https://tools.ietf.org/html/rfc7617">RFC 7617</ulink>). 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.
+ </para>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt
+ erfolgen.
+ </para>
+ </sect2>
+
+ <sect2 id="dev-programmatic-api-calls.authentication_via_parameters" xreflabel="Programmatische API-Aufrufe mit Parametern authentifizieren">
+ <title>Authentifizierung mit Parametern</title>
+
+ <para>
+ Für diese Methode müssen jedem Request zwei Parameter mitgegeben werden: <varname>{AUTH}login</varname> und
+ <varname>{AUTH}password</varname>. 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.
+ </para>
+
+ <para>
+ Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt
+ erfolgen.
+ </para>
+
+ <note>
+ <para>
+ Die Verwendung dieser Methode ist veraltet. Statt dessen sollte die oben erwähnte HTTP-»Basic«-Authentifizierung verwendet werden.
+ </para>
+ </note>
+ </sect2>
+
+ <sect2 id="dev-programmatic-api-calls.examples">
+ <title>Beispiele</title>
+
+ <para>
+ 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.
+ </para>
+
+ <programlisting>$ curl --silent --user 'jdoe:SecretPassword!' \
+ 'https://…/controller.pl?action=PhoneNumber/look_up&number=053147110815'</programlisting>
+ </sect2>
+ </sect1>
+
<sect1 id="db-upgrade-files" xreflabel="Datenbank-Upgradedateien">
<title>SQL-Upgradedateien</title>
angegeben werden. Der hier angegebene Benutzer muss weiterhin das
Recht haben, Datenbanken anzulegen und zu löschen.</para>
- <para>Der so angegebene Benutzer muss nicht zwingend über Super-User-Rechte verfügen. Allerdings gibt es einige Datenbank-Upgrades,
- die genau diese Rechte benötigen. Für den Fall kann man in diesem Konfigurationsabschnitt einen weiteren Benutzeraccount angeben,
- der dann über Super-User-Rechte verfügt, und mit dem die betroffenen Upgrades durchgeführt werden. In der
- Beispiel-Konfigurationsdatei finden Sie die benötigten Parameter.</para>
-
+ <para>Der so angegebene Benutzer muss nicht zwingend über
+ Super-User-Rechte verfügen. Allerdings gibt es einige
+ Datenbank-Upgrades, die genau diese Rechte benötigen. Für den Fall
+ kann man in diesem Konfigurationsabschnitt einen weiteren
+ Benutzeraccount angeben, der dann über Super-User-Rechte verfügt, und
+ mit dem die betroffenen Upgrades durchgeführt werden. In der
+ Beispiel-Konfigurationsdatei finden Sie die benötigten
+ Parameter.</para>
</sect2>
<sect2 id="devel.testsuite.execution">