krona-staff/docker/postgres/init-app-role.sh

21 lines
610 B
Bash

#!/bin/sh
set -eu
if [ -z "${POSTGRES_APP_PASSWORD:-}" ]; then
echo "POSTGRES_APP_PASSWORD is required" >&2
exit 1
fi
psql --set=ON_ERROR_STOP=1 \
--set=app_password="$POSTGRES_APP_PASSWORD" \
--username "$POSTGRES_USER" \
--dbname "$POSTGRES_DB" <<'SQL'
SELECT 'CREATE ROLE krona_staff_app LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOBYPASSRLS'
WHERE NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'krona_staff_app')
\gexec
SELECT format(
'ALTER ROLE krona_staff_app WITH LOGIN PASSWORD %L NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOBYPASSRLS',
:'app_password'
)
\gexec
SQL