From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37863) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dfM1D-0000R4-RZ for guix-patches@gnu.org; Wed, 09 Aug 2017 04:07:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dfM1A-0003B2-44 for guix-patches@gnu.org; Wed, 09 Aug 2017 04:07:07 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:43930) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dfM1A-0003Ax-0I for guix-patches@gnu.org; Wed, 09 Aug 2017 04:07:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dfM19-000685-QG for guix-patches@gnu.org; Wed, 09 Aug 2017 04:07:03 -0400 Subject: [bug#28024] [PATCH 4/5] services: Update the Tailon service for Tailon 1.3.0. Resent-Message-ID: From: Christopher Baines Date: Wed, 9 Aug 2017 09:06:03 +0100 Message-Id: <20170809080604.6236-4-mail@cbaines.net> In-Reply-To: <20170809080604.6236-1-mail@cbaines.net> References: <20170809080604.6236-1-mail@cbaines.net> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 28024@debbugs.gnu.org Tailon 1.3.0 (upgraded from 1.1.1) adds support for HTTP authentication. * gnu/services/admin.scm (): Add http-auth and users configuration values. (tailon-configuration-file-http-auth, tailon-configuration-file-users): New procedures. (tailon-configuration-file-compiler): Add support for the http-auth and users configuration options. * doc/guix.texi (Monitoring Services): Document authentication for Tailon. --- doc/guix.texi | 18 ++++++++++++++++++ gnu/services/admin.scm | 24 +++++++++++++++++++----- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index e4903be83..c7787e4a8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13774,6 +13774,24 @@ Initial line wrapping state in the web interface. Set to @code{#t} to initially wrap lines (the default), or to @code{#f} to initially not wrap lines. +@item @code{http-auth} (default: @code{#f}) +HTTP authentication type to use. Set to @code{#f} to disable +authentication (the default). Supported values are @code{"digest"} or +@code{"basic"}. + +@item @code{users} (default: @code{#f}) +If HTTP authentication is enabled (see @code{http-auth}), access will be +restricted to the credentials provided here. To configure users, use a +list of pairs, where the first element of the pair is the username, and +the 2nd element of the pair is the password. + +@example +(tailon-configuration-file + (http-auth "basic") + (users '(("user1" . "password1") + ("user2" . "password2")))) +@end example + @end table @end deftp diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 19169427c..e24aebae2 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -59,8 +59,8 @@ tailon-configuration-file-tail-lines tailon-configuration-file-allowed-commands tailon-configuration-file-debug? - tailon-configuration-file-wrap-lines - + tailon-configuration-file-http-auth + tailon-configuration-file-users tailon-configuration @@ -224,7 +224,11 @@ for ROTATION." (debug? tailon-configuration-file-debug? (default #f)) (wrap-lines tailon-configuration-file-wrap-lines - (default #t))) + (default #t)) + (http-auth tailon-configuration-file-http-auth + (default #f)) + (users tailon-configuration-file-users + (default #f))) (define (tailon-configuration-files-string files) (string-append @@ -254,7 +258,7 @@ for ROTATION." (($ files bind relative-root allow-transfers? follow-names? tail-lines allowed-commands debug? - wrap-lines) + wrap-lines http-auth users) (text-file "tailon-config.yaml" (string-concatenate @@ -273,7 +277,17 @@ for ROTATION." (string-join allowed-commands ", ") "]")) ,@(if debug? '(("debug" . "true")) '()) - ("wrap-lines" . ,(if wrap-lines "true" "false"))))))))) + ("wrap-lines" . ,(if wrap-lines "true" "false")) + ("http-auth" . ,http-auth) + ("users" . ,(if users + (string-concatenate + (cons "\n" + (map (match-lambda + ((user . pass) + (string-append + " " user ":" pass))) + users))) + #f))))))))) (define-record-type* tailon-configuration make-tailon-configuration -- 2.14.0