summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob L. Kreuze <zerodaysfordays@sdf.org>2023-08-05 14:24:22 -0400
committerJakob L. Kreuze <zerodaysfordays@sdf.org>2023-08-05 16:34:11 -0400
commit323c8449e2d8a7c1f5a51689fc1e5bc298eb5355 (patch)
treedd66ba47931e0d95acc3136bc09cc265eb39ee9a
parent3843093f47e8c8a177f9769d543c6fdc334b5259 (diff)
[dynamic] Implement debug mode for local development
-rw-r--r--haunt/api.scm3
-rw-r--r--haunt/jakob/dynamic/capabilities/comments.scm2
-rw-r--r--haunt/jakob/dynamic/capabilities/gallery.scm2
-rw-r--r--haunt/jakob/dynamic/capabilities/rsvp.scm2
-rw-r--r--haunt/jakob/dynamic/config.scm (renamed from haunt/jakob/dynamic/database.scm)12
-rw-r--r--haunt/jakob/dynamic/logging.scm4
6 files changed, 18 insertions, 7 deletions
diff --git a/haunt/api.scm b/haunt/api.scm
index 2b476d7..b6093f6 100644
--- a/haunt/api.scm
+++ b/haunt/api.scm
@@ -17,6 +17,7 @@
(use-modules (ice-9 match)
(jakob dynamic blacklist)
(jakob dynamic captcha)
+ (jakob dynamic config)
(jakob dynamic capabilities comment-form)
(jakob dynamic capabilities comments)
(jakob dynamic capabilities gallery)
@@ -66,7 +67,7 @@
(values->list (format-error-response ex))))
(fail-when-ip-blacklisted originating-ip)
(values->list
- ((rate-limit-wrap
+ (((if (%debug-enabled) identity rate-limit-wrap)
(match (cons (request-method request) endpoint)
(('GET "apps" "comment-form" _) get-comment-form)
('(GET "api" "challenge" "proof-of-work") make-pow-challenge!)
diff --git a/haunt/jakob/dynamic/capabilities/comments.scm b/haunt/jakob/dynamic/capabilities/comments.scm
index 996c549..33f2429 100644
--- a/haunt/jakob/dynamic/capabilities/comments.scm
+++ b/haunt/jakob/dynamic/capabilities/comments.scm
@@ -18,7 +18,7 @@
#:use-module (ice-9 match)
#:use-module (jakob dynamic capabilities common)
#:use-module (jakob dynamic captcha)
- #:use-module (jakob dynamic database)
+ #:use-module (jakob dynamic config)
#:use-module (jakob dynamic errors)
#:use-module (jakob dynamic util)
#:use-module (json)
diff --git a/haunt/jakob/dynamic/capabilities/gallery.scm b/haunt/jakob/dynamic/capabilities/gallery.scm
index 591335e..7087149 100644
--- a/haunt/jakob/dynamic/capabilities/gallery.scm
+++ b/haunt/jakob/dynamic/capabilities/gallery.scm
@@ -17,7 +17,7 @@
(define-module (jakob dynamic capabilities gallery)
#:use-module (haunt html)
#:use-module (ice-9 match)
- #:use-module (jakob dynamic database)
+ #:use-module (jakob dynamic config)
#:use-module (jakob dynamic errors)
#:use-module (jakob dynamic util)
#:use-module (jakob theme)
diff --git a/haunt/jakob/dynamic/capabilities/rsvp.scm b/haunt/jakob/dynamic/capabilities/rsvp.scm
index 2975e4d..856f1f1 100644
--- a/haunt/jakob/dynamic/capabilities/rsvp.scm
+++ b/haunt/jakob/dynamic/capabilities/rsvp.scm
@@ -18,7 +18,7 @@
#:use-module (gcrypt base64)
#:use-module (ice-9 binary-ports)
#:use-module (ice-9 match)
- #:use-module (jakob dynamic database)
+ #:use-module (jakob dynamic config)
#:use-module (jakob dynamic errors)
#:use-module (jakob dynamic util)
#:use-module (json)
diff --git a/haunt/jakob/dynamic/database.scm b/haunt/jakob/dynamic/config.scm
index f5b1353..5eb615b 100644
--- a/haunt/jakob/dynamic/database.scm
+++ b/haunt/jakob/dynamic/config.scm
@@ -14,9 +14,17 @@
;;; along with this program. If not, see
;;; <http://www.gnu.org/licenses/>.
-(define-module (jakob dynamic database)
- #:export (paramstring-for-dbname))
+(define-module (jakob dynamic config)
+ #:export (%debug-enabled
+ paramstring-for-dbname))
+;; Whether or not to enable "debug mode", in which:
+;;
+;; - Log messages are written to stdout.
+;; - Rate limiting is disabled.
+(define %debug-enabled (make-parameter (or (getenv "API_SERVER_DEBUG") #f)))
+
+;; Should be fairly self-explanatory.
(define %postgresql-user (make-parameter (or (getenv "API_SERVER_DB_USER") "jakob_dynamic")))
(define %postgresql-host (make-parameter (or (getenv "API_SERVER_DB_HOST") "localhost")))
(define %postgresql-port (make-parameter (or (getenv "API_SERVER_DB_PORT") "5432")))
diff --git a/haunt/jakob/dynamic/logging.scm b/haunt/jakob/dynamic/logging.scm
index 7b1bd0a..c937c66 100644
--- a/haunt/jakob/dynamic/logging.scm
+++ b/haunt/jakob/dynamic/logging.scm
@@ -16,11 +16,13 @@
(define-module (jakob dynamic logging)
#:use-module (ice-9 format)
+ #:use-module (jakob dynamic config)
#:use-module (srfi srfi-19)
#:export (log-append!))
-(define %log-file-name (make-parameter "/var/log/jakob-dynamic.log"))
(define %log-level (make-parameter 'info))
+(define %log-file-name
+ (make-parameter (if (%debug-enabled) "/dev/stdout" "/var/log/jakob-dynamic.log")))
(define (dominates message-level baseline-level)
"Determine if `a' should be shown for baseline log level `b'."