objective categorical abstract machine language personal data server
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

misc fixes

futur.blue ad54c15e 3a3a5604

verified
+17 -11
+3 -3
pegasus/lib/data_store.ml
··· 129 129 let$! () = 130 130 [%rapper 131 131 execute 132 - {sql| CREATE INDEX oauth_requests_expires_idx ON oauth_requests(expires_at); 133 - CREATE INDEX oauth_codes_expires_idx ON oauth_codes(expires_at); 134 - CREATE INDEX oauth_tokens_refresh_idx ON oauth_tokens(refresh_token); 132 + {sql| CREATE INDEX IF NOT EXISTS oauth_requests_expires_idx ON oauth_requests(expires_at); 133 + CREATE INDEX IF NOT EXISTS oauth_codes_expires_idx ON oauth_codes(expires_at); 134 + CREATE INDEX IF NOT EXISTS oauth_tokens_refresh_idx ON oauth_tokens(refresh_token); 135 135 |sql}] 136 136 () conn 137 137 in
+14 -8
pegasus/lib/env.ml
··· 1 + let getenv name = 2 + try Sys.getenv name 3 + with Not_found -> failwith ("Missing environment variable " ^ name) 4 + 1 5 let data_dir = Option.value ~default:"./data" @@ Sys.getenv_opt "DATA_DIR" 2 6 3 - let hostname = Sys.getenv "PDS_HOSTNAME" 7 + let hostname = getenv "PDS_HOSTNAME" 4 8 5 9 let did = 6 10 Option.value ~default:("did:web:" ^ hostname) @@ Sys.getenv_opt "PDS_DID" 7 11 8 - let invite_required = Sys.getenv "INVITE_CODE_REQUIRED" = "true" 12 + let invite_required = getenv "INVITE_CODE_REQUIRED" = "true" 9 13 10 - let rotation_key = 11 - Sys.getenv "ROTATION_KEY_MULTIBASE" |> Kleidos.parse_multikey_str 14 + let rotation_key = getenv "ROTATION_KEY_MULTIBASE" |> Kleidos.parse_multikey_str 12 15 13 - let jwt_key = Sys.getenv "JWK_MULTIBASE" |> Kleidos.parse_multikey_str 16 + let jwt_key = getenv "JWK_MULTIBASE" |> Kleidos.parse_multikey_str 14 17 15 - let admin_password = Sys.getenv "ADMIN_PASSWORD" 18 + let admin_password = getenv "ADMIN_PASSWORD" 16 19 17 20 let dpop_nonce_secret = 18 21 match Sys.getenv_opt "DPOP_NONCE_SECRET" with 19 22 | Some sec -> 20 - let secret = Base64.decode_exn sec |> Bytes.of_string in 23 + let secret = 24 + Base64.(decode_exn ~alphabet:uri_safe_alphabet) sec |> Bytes.of_string 25 + in 21 26 if Bytes.length secret = 32 then secret 22 27 else failwith "DPOP_NONCE_SECRET must be 32 bytes in base64" 23 28 | None -> 24 29 let secret = Mirage_crypto_rng_unix.getrandom 32 in 25 30 Dream.warning (fun log -> 26 31 log "DPOP_NONCE_SECRET not set; using DPOP_NONCE_SECRET=%s" 27 - (Base64.encode secret |> Result.get_ok) ) ; 32 + ( Base64.(encode ~alphabet:uri_safe_alphabet ~pad:false) secret 33 + |> Result.get_ok ) ) ; 28 34 Bytes.of_string secret