1313var  postgres  =  builder . AddPostgres ( "postgres" ) 
1414    . WithDataVolume ( ) 
1515    . WithLifetime ( ContainerLifetime . Persistent ) 
16+     . WithContainerName ( "crucible-postgres" ) 
1617    . WithPgAdmin ( ) ; 
1718
19+ var  keycloakDb  =  postgres . AddDatabase ( "keycloakDb" ,  "keycloak" ) ; 
1820var  keycloak  =  builder . AddKeycloak ( "keycloak" ,  8080 ) 
19-     . WithLifetime ( ContainerLifetime . Persistent ) 
21+     . WithReference ( keycloakDb ) 
22+     // Configure environment variables for the PostgreSQL connection 
23+     . WithEnvironment ( "KC_DB" ,  "postgres" ) 
24+     . WithEnvironment ( "KC_DB_URL_HOST" ,  postgres . Resource . PrimaryEndpoint . Property ( EndpointProperty . Host ) ) 
25+     . WithEnvironment ( "KC_DB_USERNAME" ,  postgres . Resource . UserNameReference ) 
26+     . WithEnvironment ( "KC_DB_PASSWORD" ,  postgres . Resource . PasswordParameter ) 
2027    . WithRealmImport ( $ "{ builder . AppHostDirectory } /resources/crucible-realm.json") ; 
2128
2229var  mkdocs  =  builder . AddContainer ( "mkdocs" ,  "squidfunk/mkdocs-material" ) 
@@ -49,6 +56,7 @@ public static void AddPlayer(this IDistributedApplicationBuilder builder, IResou
4956            . WithHttpHealthCheck ( "api/health/ready" ) 
5057            . WithReference ( playerDb ,  "PostgreSQL" ) 
5158            . WithEnvironment ( "Database__Provider" ,  "PostgreSQL" ) 
59+             . WithEnvironment ( "Database__DevModeRecreate" ,  "false" ) 
5260            . WithEnvironment ( "Authorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
5361            . WithEnvironment ( "Authorization__AuthorizationUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/auth" ) 
5462            . WithEnvironment ( "Authorization__TokenUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/token" ) 
@@ -76,6 +84,7 @@ private static void AddPlayerVm(this IDistributedApplicationBuilder builder, IRe
7684            . WithHttpHealthCheck ( "api/health/ready" ) 
7785            . WithReference ( vmDb ,  "PostgreSQL" ) 
7886            . WithEnvironment ( "Database__Provider" ,  "PostgreSQL" ) 
87+             . WithEnvironment ( "Database__DevModeRecreate" ,  "false" ) 
7988            . WithEnvironment ( "VmUsageLogging__Enabled" ,  "true" ) 
8089            . WithEnvironment ( "VmUsageLogging__PostgreSQL" ,  vmLoggingDb . Resource . ConnectionStringExpression ) 
8190            . WithEnvironment ( "Authorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
@@ -112,6 +121,7 @@ public static void AddCaster(this IDistributedApplicationBuilder builder, IResou
112121            . WithHttpHealthCheck ( "api/health/ready" ) 
113122            . WithReference ( casterDb ,  "PostgreSQL" ) 
114123            . WithEnvironment ( "Database__Provider" ,  "PostgreSQL" ) 
124+             . WithEnvironment ( "Database__DevModeRecreate" ,  "false" ) 
115125            . WithEnvironment ( "Authorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
116126            . WithEnvironment ( "Authorization__AuthorizationUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/auth" ) 
117127            . WithEnvironment ( "Authorization__TokenUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/token" ) 
@@ -138,6 +148,7 @@ public static void AddAlloy(this IDistributedApplicationBuilder builder, IResour
138148            . WithHttpHealthCheck ( "api/health/ready" ) 
139149            . WithReference ( alloyDb ,  "PostgreSQL" ) 
140150            . WithEnvironment ( "Database__Provider" ,  "PostgreSQL" ) 
151+             . WithEnvironment ( "Database__DevModeRecreate" ,  "false" ) 
141152            . WithEnvironment ( "Authorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
142153            . WithEnvironment ( "Authorization__AuthorizationUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/auth" ) 
143154            . WithEnvironment ( "Authorization__TokenUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/token" ) 
@@ -172,6 +183,7 @@ public static void AddTopoMojo(this IDistributedApplicationBuilder builder, IRes
172183            . WithReference ( topoDb ,  "PostgreSQL" ) 
173184            . WithEnvironment ( "Database__ConnectionString" ,  topoDb . Resource . ConnectionStringExpression ) 
174185            . WithEnvironment ( "Database__Provider" ,  "PostgreSQL" ) 
186+             . WithEnvironment ( "Database__DevModeRecreate" ,  "false" ) 
175187            . WithEnvironment ( "Oidc__Authority" ,  "http://localhost:8080/realms/crucible" ) 
176188            . WithEnvironment ( "Oidc__Audience" ,  "topomojo" ) 
177189            . WithEnvironment ( "OpenApi__Client__AuthorizationUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/auth" ) 
@@ -209,15 +221,17 @@ public static void AddSteamfitter(this IDistributedApplicationBuilder builder, I
209221            . WithHttpHealthCheck ( "api/health/ready" ) 
210222            . WithReference ( steamfitterDb ,  "PostgreSQL" ) 
211223            . WithEnvironment ( "Database__Provider" ,  "PostgreSQL" ) 
224+             . WithEnvironment ( "Database__DevModeRecreate" ,  "false" ) 
212225            . WithEnvironment ( "Authorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
213226            . WithEnvironment ( "Authorization__AuthorizationUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/auth" ) 
214227            . WithEnvironment ( "Authorization__TokenUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/token" ) 
228+             . WithEnvironment ( "Authorization__AuthorizationScope" ,  "steamfitter player player-vm" ) 
215229            . WithEnvironment ( "Authorization__ClientId" ,  "steamfitter.api" ) 
216230            . WithEnvironment ( "ResourceOwnerAuthorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
217231            . WithEnvironment ( "ResourceOwnerAuthorization__ClientId" ,  "steamfitter.admin" ) 
218232            . WithEnvironment ( "ResourceOwnerAuthorization__UserName" ,  "admin" ) 
219233            . WithEnvironment ( "ResourceOwnerAuthorization__Password" ,  "admin" ) 
220-             . WithEnvironment ( "ResourceOwnerAuthorization__Scope" ,  "player player-vm alloy steamfitter caster " ) 
234+             . WithEnvironment ( "ResourceOwnerAuthorization__Scope" ,  "steamfitter  player player-vm cite gallery " ) 
221235            . WithEnvironment ( "ResourceOwnerAuthorization__ValidateDiscoveryDocument" ,  "false" ) ; 
222236
223237        var  steamfitterUiRoot  =  "/mnt/data/crucible/steamfitter/steamfitter.ui" ; 
@@ -241,15 +255,17 @@ public static void AddCite(this IDistributedApplicationBuilder builder, IResourc
241255            . WithHttpHealthCheck ( "api/health/ready" ) 
242256            . WithReference ( citeDb ,  "PostgreSQL" ) 
243257            . WithEnvironment ( "Database__Provider" ,  "PostgreSQL" ) 
258+             . WithEnvironment ( "Database__DevModeRecreate" ,  "false" ) 
244259            . WithEnvironment ( "Authorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
245260            . WithEnvironment ( "Authorization__AuthorizationUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/auth" ) 
246261            . WithEnvironment ( "Authorization__TokenUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/token" ) 
262+             . WithEnvironment ( "Authorization__AuthorizationScope" ,  "cite" ) 
247263            . WithEnvironment ( "Authorization__ClientId" ,  "cite.api" ) 
248264            . WithEnvironment ( "ResourceOwnerAuthorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
249265            . WithEnvironment ( "ResourceOwnerAuthorization__ClientId" ,  "cite.admin" ) 
250266            . WithEnvironment ( "ResourceOwnerAuthorization__UserName" ,  "admin" ) 
251267            . WithEnvironment ( "ResourceOwnerAuthorization__Password" ,  "admin" ) 
252-             . WithEnvironment ( "ResourceOwnerAuthorization__Scope" ,  "player player-vm  cite steamfitter caster " ) 
268+             . WithEnvironment ( "ResourceOwnerAuthorization__Scope" ,  "openid profile email  cite gallery " ) 
253269            . WithEnvironment ( "ResourceOwnerAuthorization__ValidateDiscoveryDocument" ,  "false" ) ; 
254270
255271        var  citeUiRoot  =  "/mnt/data/crucible/cite/cite.ui" ; 
@@ -273,15 +289,17 @@ public static void AddGallery(this IDistributedApplicationBuilder builder, IReso
273289            . WithHttpHealthCheck ( "api/health/ready" ) 
274290            . WithReference ( galleryDb ,  "PostgreSQL" ) 
275291            . WithEnvironment ( "Database__Provider" ,  "PostgreSQL" ) 
292+             . WithEnvironment ( "Database__DevModeRecreate" ,  "false" ) 
276293            . WithEnvironment ( "Authorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
277294            . WithEnvironment ( "Authorization__AuthorizationUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/auth" ) 
278295            . WithEnvironment ( "Authorization__TokenUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/token" ) 
296+             . WithEnvironment ( "Authorization__AuthorizationScope" ,  "gallery" ) 
279297            . WithEnvironment ( "Authorization__ClientId" ,  "gallery.api" ) 
280298            . WithEnvironment ( "ResourceOwnerAuthorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
281299            . WithEnvironment ( "ResourceOwnerAuthorization__ClientId" ,  "gallery.admin" ) 
282300            . WithEnvironment ( "ResourceOwnerAuthorization__UserName" ,  "admin" ) 
283301            . WithEnvironment ( "ResourceOwnerAuthorization__Password" ,  "admin" ) 
284-             . WithEnvironment ( "ResourceOwnerAuthorization__Scope" ,  "player player-vm gallery  steamfitter caster " ) 
302+             . WithEnvironment ( "ResourceOwnerAuthorization__Scope" ,  "player player-vm steamfitter" ) 
285303            . WithEnvironment ( "ResourceOwnerAuthorization__ValidateDiscoveryDocument" ,  "false" ) ; 
286304
287305        var  galleryUiRoot  =  "/mnt/data/crucible/gallery/gallery.ui" ; 
@@ -305,6 +323,7 @@ public static void AddBlueprint(this IDistributedApplicationBuilder builder, IRe
305323            . WithHttpHealthCheck ( "api/health/ready" ) 
306324            . WithReference ( blueprintDb ,  "PostgreSQL" ) 
307325            . WithEnvironment ( "Database__Provider" ,  "PostgreSQL" ) 
326+             . WithEnvironment ( "Database__DevModeRecreate" ,  "false" ) 
308327            . WithEnvironment ( "Authorization__Authority" ,  "http://localhost:8080/realms/crucible" ) 
309328            . WithEnvironment ( "Authorization__AuthorizationUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/auth" ) 
310329            . WithEnvironment ( "Authorization__TokenUrl" ,  "http://localhost:8080/realms/crucible/protocol/openid-connect/token" ) 
@@ -313,7 +332,7 @@ public static void AddBlueprint(this IDistributedApplicationBuilder builder, IRe
313332            . WithEnvironment ( "ResourceOwnerAuthorization__ClientId" ,  "blueprint.admin" ) 
314333            . WithEnvironment ( "ResourceOwnerAuthorization__UserName" ,  "admin" ) 
315334            . WithEnvironment ( "ResourceOwnerAuthorization__Password" ,  "admin" ) 
316-             . WithEnvironment ( "ResourceOwnerAuthorization__Scope" ,  "player player-vm blueprint  steamfitter caster " ) 
335+             . WithEnvironment ( "ResourceOwnerAuthorization__Scope" ,  "player player-vm gallery  steamfitter cite " ) 
317336            . WithEnvironment ( "ResourceOwnerAuthorization__ValidateDiscoveryDocument" ,  "false" ) ; 
318337
319338        var  blueprintUiRoot  =  "/mnt/data/crucible/blueprint/blueprint.ui" ; 
0 commit comments