;; disfluid, implementation of the Solid specification ;; Copyright (C) 2021 Vivien Kraus ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU Affero General Public License as ;; published by the Free Software Foundation, either version 3 of the ;; License, or (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU Affero General Public License for more details. ;; You should have received a copy of the GNU Affero General Public License ;; along with this program. If not, see . (define-module (webid-oidc parameters) #:use-module (srfi srfi-19) #:use-module (web client) #:export ( data-home cache-home current-date authorization-code-default-validity oidc-token-default-validity dpop-proof-validity anonymous-http-request ) #:declarative? #t) (define data-home (make-parameter (format #f "~a/disfluid" (or (getenv "XDG_DATA_HOME") (format #f "~a/.local/share" (getenv "HOME")))))) (define cache-home (make-parameter (format #f "~a/disfluid" (or (getenv "XDG_CACHE_HOME") (format #f "~a/.cache" (getenv "HOME")))))) (define current-date ;; This parameter is a thunk! (make-parameter (lambda () (time-utc->date (current-time))) (lambda (thunk) (lambda () (let ((date (if (thunk? thunk) (thunk) thunk))) (when (integer? date) (set! date (make-time time-utc 0 date))) (when (time? date) (set! date (time-utc->date date))) date))))) (define anonymous-http-request (make-parameter http-request)) (define authorization-code-default-validity (make-parameter 120)) (define oidc-token-default-validity (make-parameter 3600)) (define dpop-proof-validity (make-parameter 30))