database config

This commit is contained in:
David Mosbach 2024-01-16 17:49:43 +01:00
parent 4ccd17d357
commit d7cca298bd
6 changed files with 36 additions and 1 deletions

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
.stack-work/ .stack-work/
*~ *~
database/*

View File

@ -13,6 +13,7 @@ main :: IO ()
main = do main = do
port <- determinePort port <- determinePort
putStrLn $ "Try: http://localhost:" ++ show port ++ "/auth?scope=ID%20Profile&client_id=42&response_type=code&redirect_uri=http:%2F%2Flocalhost:0000%2F" putStrLn $ "Try: http://localhost:" ++ show port ++ "/auth?scope=ID%20Profile&client_id=42&response_type=code&redirect_uri=http:%2F%2Flocalhost:0000%2F"
initDB
runMockServer @User @(M.Map T.Text T.Text) port runMockServer @User @(M.Map T.Text T.Text) port
where where
determinePort :: IO Int determinePort :: IO Int

View File

@ -32,6 +32,7 @@
devShells.${system}.default = pkgs.mkShell { devShells.${system}.default = pkgs.mkShell {
buildInputs = buildInputs; buildInputs = buildInputs;
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
shellHook = "./mkDB.sh";
}; };
}; };
} }

1
hba_file Normal file
View File

@ -0,0 +1 @@
local all all trust

28
mkDB.sh Normal file
View File

@ -0,0 +1,28 @@
#!/bin/sh -e
export OAUTH2_SERVER_PORT=9443
export OAUTH2_DB_PORT=9444
tmpdir=./database
if [ ! -d "${tmpdir}" ]; then
mkdir ${tmpdir}
fi
pgDir=$(mktemp -d --tmpdir="${tmpdir}" postgresql.XXXXXX)
pgSockDir=$(mktemp -d --tmpdir="${tmpdir}" postgresql.sock.XXXXXX)
pgLogFile=$(mktemp --tmpdir="${tmpdir}" postgresql.XXXXXX.log)
initdb --no-locale -D "${pgDir}"
pg_ctl start -D "${pgDir}" -l "${pgLogFile}" -w -o "-k ${pgSockDir} -c listen_addresses=''' -c hba_file='hba_file' -p ${OAUTH2_DB_PORT} -h localhost -c unix_socket_permissions=0700 -c max_connections=10 -c session_preload_libraries=auto_explain -c auto_explain.log_min_duration=100ms"
psql -h "${pgSockDir}" -f ./schema.sql postgres
printf "Postgres logfile is %s\nPostgres socket directory is %s\n" "${pgLogFile}" "${pgSockDir}"
export PGHOST="${pgSockDir}"
export PGLOG="${pgLogFile}"
zsh
pg_ctl stop -D "${pgDir}"
rm -rvf "${pgDir}" "${pgSockDir}" "${pgLogFile}"

3
schema.sql Normal file
View File

@ -0,0 +1,3 @@
CREATE USER oauth2mock WITH SUPERUSER;
CREATE DATABASE test_users;
GRANT ALL ON DATABASE test_users TO oauth2mock;