fix: require production database connection environment
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 16s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 54s

This commit is contained in:
2026-07-12 12:16:22 +09:00
parent 34991eca2d
commit a7f9b27a55
4 changed files with 15 additions and 6 deletions
+7 -4
View File
@@ -204,12 +204,15 @@ jobs:
echo "ERROR: QuantEngine.Web.dll not found"
exit 1
fi
if [ ! -f "$DEPLOY_DIR/appsettings.Production.json" ]; then
echo "ERROR: appsettings.Production.json not found"
echo "✓ DLL verified"
# Production connection settings must come from the service
# EnvironmentFile, never from a versioned appsettings file.
SERVICE_ENV=$(sudo systemctl show "$SERVICE_NAME" -p EnvironmentFiles --value 2>/dev/null || true)
if [ -z "$SERVICE_ENV" ]; then
echo "ERROR: $SERVICE_NAME has no EnvironmentFile; database credentials are not configured"
exit 1
fi
echo "✓ DLL verified"
echo "✓ Config verified"
echo "✓ External service environment configured"
# 3. Update Symlink
echo ""
+6
View File
@@ -81,6 +81,12 @@ try
// PostgreSQL Dapper Setup
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection")
?? throw new InvalidOperationException("Connection string 'DefaultConnection' is required.");
if (builder.Environment.IsProduction()
&& string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("ConnectionStrings__DefaultConnection")))
{
throw new InvalidOperationException(
"Production requires ConnectionStrings__DefaultConnection from the service environment.");
}
var configuredDatabase = new NpgsqlConnectionStringBuilder(connectionString).Database;
if (!string.Equals(configuredDatabase, "quantenginedb", StringComparison.OrdinalIgnoreCase))
@@ -6,7 +6,7 @@
}
},
"ConnectionStrings": {
"DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Password=quantengine_app;Search Path=quantengine;"
"DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Search Path=quantengine;"
},
"AllowedHosts": "*",
"AdminSettings": {
+1 -1
View File
@@ -7,7 +7,7 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Password=quantengine_app;Search Path=quantengine;"
"DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Search Path=quantengine;"
},
"AdminSettings": {
"Username": "admin",