Skip to content

Commit f55b5ad

Browse files
authored
FUND-2022 - Specified Admin connection string for Postgres (#100)
1 parent 9dedb9f commit f55b5ad

File tree

14 files changed

+87
-67
lines changed

14 files changed

+87
-67
lines changed

getting-started/docker-compose/.env

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ DOTNET_ENVIRONMENT=Local
55
# Postgres
66
POSTGRES_PORT=5432
77
POSTGRES_HOST=postgres_docker_db
8+
POSTGRES_SUPER_USER=postgres
9+
POSTGRES_SUPER_USER_PASSWORD=postgres
810

9-
POSTGRES_ADMIN=postgres
10-
POSTGRES_ADMIN_PASSWORD=postgres
11+
POSTGRES_ADMIN=oneground_admin
12+
POSTGRES_ADMIN_PASSWORD=oneground_admin
1113
POSTGRES_USER=oneground_user
1214
POSTGRES_USER_PASSWORD=oneground_user
1315

getting-started/docker-compose/docker-compose.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ services:
6060
ports:
6161
- ${POSTGRES_PORT}:5432
6262
environment:
63-
POSTGRES_USER: "${POSTGRES_ADMIN}"
64-
POSTGRES_PASSWORD: "${POSTGRES_ADMIN_PASSWORD}"
63+
POSTGRES_USER: ${POSTGRES_SUPER_USER}
64+
POSTGRES_PASSWORD: ${POSTGRES_SUPER_USER_PASSWORD}
6565
TZ: "Europe/Amsterdam"
6666
healthcheck:
67-
test: ["CMD", "pg_isready", "-U", "${POSTGRES_ADMIN}"]
67+
test: ["CMD", "pg_isready", "-U", "${POSTGRES_SUPER_USER}"]
6868
interval: 5s
6969
timeout: 5s
7070
retries: 5
@@ -103,8 +103,8 @@ services:
103103
- KEYCLOAK_LOGLEVEL=debug
104104
- KC_DB=postgres
105105
- KC_DB_DATABASE=keycloak
106-
- KC_DB_USERNAME=${POSTGRES_ADMIN}
107-
- KC_DB_PASSWORD=${POSTGRES_ADMIN_PASSWORD}
106+
- KC_DB_USERNAME=${POSTGRES_SUPER_USER}
107+
- KC_DB_PASSWORD=${POSTGRES_SUPER_USER_PASSWORD}
108108
- KC_DB_URL=jdbc:postgresql://postgres_docker_db:5432/keycloak?currentSchema=keycloak
109109
- KC_HEALTH_ENABLED=true
110110
ports:

getting-started/standalone/README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ Copy the snippet below, paste it into your new `.env` file, and adjust the value
9696
# .env
9797

9898
# --- Database Connection Strings ---
99-
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=ac_db;Username=postgres;Password=postgres"
100-
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=ac_db;Username=postgres;Password=postgres"
99+
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=ac_db;Username=oneground_user;Password=oneground_user"
100+
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=ac_db;Username=oneground_admin;Password=oneground_admin"
101101

102102
# --- Redis Cache Connection ---
103103
Redis__ConnectionString="redis:6379"
@@ -129,8 +129,8 @@ Copy the snippet below, paste it into your new `.env` file, and adjust the value
129129
# .env
130130

131131
# --- Database Connection Strings ---
132-
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=brc_db;Username=postgres;Password=postgres"
133-
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=brc_db;Username=postgres;Password=postgres"
132+
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=brc_db;Username=oneground_user;Password=oneground_user"
133+
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=brc_db;Username=oneground_admin;Password=oneground_admin"
134134

135135
# --- Redis Cache Connection ---
136136
Redis__ConnectionString="redis:6379"
@@ -171,8 +171,8 @@ Copy the snippet below, paste it into your new `.env` file, and adjust the value
171171
# .env
172172

173173
# --- Database Connection Strings ---
174-
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=ztc_db;Username=postgres;Password=postgres"
175-
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=ztc_db;Username=postgres;Password=postgres"
174+
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=ztc_db;Username=oneground_user;Password=oneground_user"
175+
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=ztc_db;Username=oneground_admin;Password=oneground_admin"
176176

177177
# --- Redis Cache Connection ---
178178
Redis__ConnectionString="redis:6379"
@@ -216,8 +216,8 @@ Copy the snippet below, paste it into your new `.env` file, and adjust the value
216216
# .env
217217

218218
# --- Database Connection Strings ---
219-
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=drc_db;Username=postgres;Password=postgres"
220-
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=drc_db;Username=postgres;Password=postgres"
219+
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=drc_db;Username=oneground_user;Password=oneground_user"
220+
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=drc_db;Username=oneground_admin;Password=oneground_admin"
221221

222222
# --- Redis Cache Connection ---
223223
Redis__ConnectionString="redis:6379"
@@ -261,8 +261,8 @@ Copy the snippet below, paste it into your new `.env` file, and adjust the value
261261
# .env
262262

263263
# --- Database Connection Strings ---
264-
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=nrc_db;Username=postgres;Password=postgres"
265-
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=nrc_db;Username=postgres;Password=postgres"
264+
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=nrc_db;Username=oneground_user;Password=oneground_user"
265+
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=nrc_db;Username=oneground_admin;Password=oneground_admin"
266266

267267
# --- RabbitMQ Event Bus Connection ---
268268
Eventbus__HostName="rabbit_mq"
@@ -318,8 +318,8 @@ Copy the snippet below, paste it into your new `.env` file, and adjust the value
318318
# .env
319319

320320
# --- Database Connection Strings ---
321-
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=zrc_db;Username=postgres;Password=postgres"
322-
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=zrc_db;Username=postgres;Password=postgres"
321+
ConnectionStrings__UserConnectionString="Host=postgres_docker_db;Port=5432;Database=zrc_db;Username=oneground_user;Password=oneground_user"
322+
ConnectionStrings__AdminConnectionString="Host=postgres_docker_db;Port=5432;Database=zrc_db;Username=oneground_admin;Password=oneground_admin"
323323

324324
# --- Redis Cache Connection ---
325325
Redis__ConnectionString="redis:6379"

localdev/.env

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ DOTNET_ENVIRONMENT=Local
55
# Postgres
66
POSTGRES_PORT=5432
77
POSTGRES_HOST=postgres_docker_db
8+
POSTGRES_SUPER_USER=postgres
9+
POSTGRES_SUPER_USER_PASSWORD=postgres
810

9-
POSTGRES_ADMIN=postgres
10-
POSTGRES_ADMIN_PASSWORD=postgres
11+
POSTGRES_ADMIN=oneground_admin
12+
POSTGRES_ADMIN_PASSWORD=oneground_admin
1113
POSTGRES_USER=oneground_user
1214
POSTGRES_USER_PASSWORD=oneground_user
1315

localdev/docker-compose.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ services:
6060
ports:
6161
- ${POSTGRES_PORT}:5432
6262
environment:
63-
POSTGRES_USER: "${POSTGRES_ADMIN}"
64-
POSTGRES_PASSWORD: "${POSTGRES_ADMIN_PASSWORD}"
63+
POSTGRES_USER: ${POSTGRES_SUPER_USER}
64+
POSTGRES_PASSWORD: ${POSTGRES_SUPER_USER_PASSWORD}
6565
TZ: "Europe/Amsterdam"
6666
healthcheck:
67-
test: ["CMD", "pg_isready", "-U", "${POSTGRES_ADMIN}"]
67+
test: ["CMD", "pg_isready", "-U", "${POSTGRES_SUPER_USER}"]
6868
interval: 5s
6969
timeout: 5s
7070
retries: 5
@@ -126,8 +126,8 @@ services:
126126
- KEYCLOAK_LOGLEVEL=debug
127127
- KC_DB=postgres
128128
- KC_DB_DATABASE=keycloak
129-
- KC_DB_USERNAME=${POSTGRES_ADMIN}
130-
- KC_DB_PASSWORD=${POSTGRES_ADMIN_PASSWORD}
129+
- KC_DB_USERNAME=${POSTGRES_SUPER_USER}
130+
- KC_DB_PASSWORD=${POSTGRES_SUPER_USER_PASSWORD}
131131
- KC_DB_URL=jdbc:postgresql://postgres_docker_db:5432/keycloak?currentSchema=keycloak
132132
- KC_HEALTH_ENABLED=true
133133
ports:
Lines changed: 47 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,65 @@
11
#!/bin/sh
22
set -e
33

4-
# OneGround
4+
# Keycloak
55
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
6-
CREATE USER oneground_user WITH PASSWORD 'oneground_user';
7-
CREATE DATABASE ac_db;
8-
CREATE DATABASE brc_db;
9-
CREATE DATABASE drc_db;
10-
CREATE DATABASE nrc_db;
11-
CREATE DATABASE zrc_db;
12-
CREATE DATABASE ztc_db;
13-
CREATE DATABASE keycloak;
6+
CREATE DATABASE keycloak
147
EOSQL
158

16-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "ac_db" <<-EOSQL
17-
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO oneground_user;
9+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "keycloak" <<-EOSQL
10+
CREATE SCHEMA IF NOT EXISTS keycloak AUTHORIZATION postgres;
1811
EOSQL
1912

20-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "brc_db" <<-EOSQL
21-
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO oneground_user;
22-
EOSQL
13+
# OneGround
14+
grant_permissions() {
15+
local db_name=$1
16+
local admin_role="oneground_admin"
17+
local user_role="oneground_user"
2318

24-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "drc_db" <<-EOSQL
25-
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO oneground_user;
26-
EOSQL
19+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$db_name" <<-EOSQL
20+
GRANT CREATE, USAGE ON SCHEMA public TO ${admin_role};
21+
GRANT USAGE ON SCHEMA public TO ${user_role};
22+
23+
ALTER DEFAULT PRIVILEGES FOR ROLE ${admin_role} IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE, TRUNCATE, TRIGGER ON TABLES TO ${admin_role};
24+
ALTER DEFAULT PRIVILEGES FOR ROLE ${admin_role} IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO ${user_role};
2725
28-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "nrc_db" <<-EOSQL
29-
CREATE SCHEMA hangfire AUTHORIZATION oneground_user;
30-
ALTER DEFAULT PRIVILEGES IN SCHEMA hangfire GRANT USAGE ON SEQUENCES TO oneground_user;
31-
ALTER DEFAULT PRIVILEGES IN SCHEMA hangfire GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO oneground_user;
32-
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO oneground_user;
26+
ALTER DEFAULT PRIVILEGES FOR ROLE ${admin_role} IN SCHEMA public GRANT SELECT, USAGE, UPDATE ON SEQUENCES TO ${admin_role};
27+
ALTER DEFAULT PRIVILEGES FOR ROLE ${admin_role} IN SCHEMA public GRANT SELECT, USAGE ON SEQUENCES TO ${user_role};
28+
29+
ALTER DEFAULT PRIVILEGES FOR ROLE ${admin_role} IN SCHEMA public GRANT EXECUTE ON FUNCTIONS TO ${admin_role};
30+
ALTER DEFAULT PRIVILEGES FOR ROLE ${admin_role} IN SCHEMA public GRANT EXECUTE ON FUNCTIONS TO ${user_role};
31+
32+
ALTER DEFAULT PRIVILEGES FOR ROLE ${admin_role} IN SCHEMA public GRANT USAGE ON TYPES TO ${admin_role};
33+
ALTER DEFAULT PRIVILEGES FOR ROLE ${admin_role} IN SCHEMA public GRANT USAGE ON TYPES TO ${user_role};
3334
EOSQL
35+
}
3436

35-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "zrc_db" <<-EOSQL
36-
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO oneground_user;
37+
grant_hangfire_permissions() {
38+
local db_name=$1
39+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$db_name" <<-EOSQL
40+
CREATE SCHEMA IF NOT EXISTS hangfire AUTHORIZATION oneground_user;
41+
GRANT ALL ON SCHEMA hangfire TO oneground_admin;
42+
GRANT ALL ON ALL TABLES IN SCHEMA hangfire TO oneground_admin;
43+
GRANT ALL ON ALL SEQUENCES IN SCHEMA hangfire TO oneground_admin;
44+
ALTER DEFAULT PRIVILEGES FOR ROLE oneground_admin IN SCHEMA hangfire GRANT ALL ON TABLES TO oneground_admin;
45+
ALTER DEFAULT PRIVILEGES FOR ROLE oneground_admin IN SCHEMA hangfire GRANT ALL ON SEQUENCES TO oneground_admin;
3746
EOSQL
47+
}
3848

39-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "ztc_db" <<-EOSQL
40-
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO oneground_user;
49+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
50+
CREATE ROLE oneground_admin WITH LOGIN PASSWORD 'oneground_admin' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
51+
CREATE ROLE oneground_user WITH LOGIN PASSWORD 'oneground_user' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
4152
EOSQL
4253

43-
# Keycloak
44-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "keycloak" <<-EOSQL
45-
CREATE SCHEMA keycloak AUTHORIZATION postgres;
46-
ALTER DEFAULT PRIVILEGES IN SCHEMA keycloak GRANT USAGE ON SEQUENCES TO postgres;
47-
ALTER DEFAULT PRIVILEGES IN SCHEMA keycloak GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO postgres;
54+
DATABASES="ac_db brc_db drc_db nrc_db zrc_db ztc_db"
55+
56+
for db in $DATABASES; do
57+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -c "CREATE DATABASE $db;"
58+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$db" <<-EOSQL
59+
CREATE EXTENSION IF NOT EXISTS postgis;
60+
CREATE EXTENSION IF NOT EXISTS pgcrypto;
4861
EOSQL
62+
grant_permissions "$db"
63+
done
4964

65+
grant_hangfire_permissions "nrc_db"

src/OneGround.ZGW.Autorisaties.WebApi/appsettings.Local.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
},
1616
"ConnectionStrings": {
1717
"UserConnectionString": "Host=localhost;Port=5432;Database=ac_db;Username=oneground_user;Password=oneground_user",
18-
"AdminConnectionString": "Host=localhost;Port=5432;Database=ac_db;Username=postgres;Password=postgres"
18+
"AdminConnectionString": "Host=localhost;Port=5432;Database=ac_db;Username=oneground_admin;Password=oneground_admin"
1919
},
2020
"Eventbus": {
2121
"HostName": "localhost",

src/OneGround.ZGW.Besluiten.WebApi/appsettings.Local.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
},
2727
"ConnectionStrings": {
2828
"UserConnectionString": "Host=localhost;Port=5432;Database=brc_db;Username=oneground_user;Password=oneground_user",
29-
"AdminConnectionString": "Host=localhost;Port=5432;Database=brc_db;Username=postgres;Password=postgres",
29+
"AdminConnectionString": "Host=localhost;Port=5432;Database=brc_db;Username=oneground_admin;Password=oneground_admin",
3030
"UserNgenConnectionString": "Host=localhost;Port=5432;Database=ngen_db;Username=oneground_user;Password=oneground_user",
31-
"AdminNgenConnectionString": "Host=localhost;Port=5432;Database=ngen_db;Username=postgres;Password=postgres"
31+
"AdminNgenConnectionString": "Host=localhost;Port=5432;Database=ngen_db;Username=oneground_admin;Password=oneground_admin"
3232
},
3333
"Eventbus": {
3434
"HostName": "localhost",

src/OneGround.ZGW.Catalogi.WebApi/appsettings.Local.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
},
1313
"ConnectionStrings": {
1414
"UserConnectionString": "Host=localhost;Port=5432;Database=ztc_db;Username=oneground_user;Password=oneground_user",
15-
"AdminConnectionString": "Host=localhost;Port=5432;Database=ztc_db;Username=postgres;Password=postgres"
15+
"AdminConnectionString": "Host=localhost;Port=5432;Database=ztc_db;Username=oneground_admin;Password=oneground_admin"
1616
},
1717
"NotificatieService": {
1818
"Type": "MessageQueue"

src/OneGround.ZGW.Documenten.Messaging.Listener/appsettings.Local.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
},
1515
"ConnectionStrings": {
1616
"UserConnectionString": "Host=localhost;Port=5432;Database=drc_db;Username=oneground_user;Password=oneground_user",
17-
"AdminConnectionString": "Host=localhost;Port=5432;Database=drc_db;Username=postgres;Password=postgres"
17+
"AdminConnectionString": "Host=localhost;Port=5432;Database=drc_db;Username=oneground_admin;Password=oneground_admin"
1818
},
1919
"Eventbus": {
2020
"HostName": "localhost",

0 commit comments

Comments
 (0)