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