|
44 | 44 | var builder = WebApplication.CreateBuilder(args); |
45 | 45 |
|
46 | 46 | // Add environment variables to configuration |
| 47 | + // This automatically converts double-underscore (__) to colon (:) for hierarchical keys |
47 | 48 | builder.Configuration.AddEnvironmentVariables(); |
48 | 49 |
|
49 | | - // Debug: Log all environment variables that start with our prefixes |
50 | | - Log.Information("Checking environment variables..."); |
51 | | - var envVars = Environment.GetEnvironmentVariables(); |
52 | | - foreach (DictionaryEntry envVar in envVars) |
53 | | - { |
54 | | - var key = envVar.Key.ToString(); |
55 | | - if (!string.IsNullOrWhiteSpace(key) && (key.StartsWith("MONGODB_") || key.StartsWith("JWT_") || key.StartsWith("EMAIL_") || |
56 | | - key.StartsWith("CLOUDINARY_") || key.StartsWith("ConnectionStrings__") || |
57 | | - key.StartsWith("Jwt__") || key.StartsWith("EmailSettings__") || key.StartsWith("CloudinarySettings__"))) |
58 | | - { |
59 | | - Log.Information("Found environment variable: {Key}", key); |
60 | | - } |
61 | | - } |
| 50 | + // Debug: Log configuration values after environment variables are loaded |
| 51 | + Log.Information("Checking configuration after environment variable loading..."); |
62 | 52 |
|
63 | | - // Map environment variables to configuration keys (handle both formats) |
64 | | - var mongoConnectionString = Environment.GetEnvironmentVariable("MONGODB_CONNECTION_STRING") |
65 | | - ?? Environment.GetEnvironmentVariable("ConnectionStrings__MongoDB"); |
66 | | - if (!string.IsNullOrWhiteSpace(mongoConnectionString)) |
67 | | - { |
68 | | - builder.Configuration["ConnectionStrings:MongoDB"] = mongoConnectionString; |
69 | | - Log.Information("MongoDB connection string loaded from environment variable"); |
70 | | - } |
| 53 | + var mongoCheck = builder.Configuration.GetConnectionString("MongoDB"); |
| 54 | + Log.Information("MongoDB connection string: {Status}", string.IsNullOrWhiteSpace(mongoCheck) ? "MISSING" : "FOUND"); |
71 | 55 |
|
72 | | - var jwtKey = Environment.GetEnvironmentVariable("JWT_KEY") |
73 | | - ?? Environment.GetEnvironmentVariable("Jwt__Key"); |
74 | | - if (!string.IsNullOrWhiteSpace(jwtKey)) |
75 | | - { |
76 | | - builder.Configuration["Jwt:Key"] = jwtKey; |
77 | | - Log.Information("JWT Key loaded from environment variable"); |
78 | | - } |
| 56 | + var jwtKeyCheck = builder.Configuration["Jwt:Key"]; |
| 57 | + Log.Information("JWT Key: {Status}", string.IsNullOrWhiteSpace(jwtKeyCheck) ? "MISSING" : $"FOUND ({jwtKeyCheck.Length} chars)"); |
79 | 58 |
|
80 | | - var jwtIssuer = Environment.GetEnvironmentVariable("JWT_ISSUER") |
81 | | - ?? Environment.GetEnvironmentVariable("Jwt__Issuer"); |
82 | | - if (!string.IsNullOrWhiteSpace(jwtIssuer)) |
83 | | - { |
84 | | - builder.Configuration["Jwt:Issuer"] = jwtIssuer; |
85 | | - Log.Information("JWT Issuer loaded from environment variable"); |
86 | | - } |
87 | | - |
88 | | - var jwtAudience = Environment.GetEnvironmentVariable("JWT_AUDIENCE") |
89 | | - ?? Environment.GetEnvironmentVariable("Jwt__Audience"); |
90 | | - if (!string.IsNullOrWhiteSpace(jwtAudience)) |
91 | | - { |
92 | | - builder.Configuration["Jwt:Audience"] = jwtAudience; |
93 | | - Log.Information("JWT Audience loaded from environment variable"); |
94 | | - } |
| 59 | + var jwtIssuerCheck = builder.Configuration["Jwt:Issuer"]; |
| 60 | + Log.Information("JWT Issuer: {Status}", string.IsNullOrWhiteSpace(jwtIssuerCheck) ? "MISSING" : "FOUND"); |
95 | 61 |
|
96 | | - // Map other environment variables (handle both formats) |
97 | | - var emailHost = Environment.GetEnvironmentVariable("EMAIL_SMTP_HOST") |
98 | | - ?? Environment.GetEnvironmentVariable("EmailSettings__SmtpHost"); |
99 | | - if (!string.IsNullOrWhiteSpace(emailHost)) |
100 | | - { |
101 | | - builder.Configuration["EmailSettings:SmtpHost"] = emailHost; |
102 | | - } |
103 | | - |
104 | | - var emailPort = Environment.GetEnvironmentVariable("EMAIL_SMTP_PORT") |
105 | | - ?? Environment.GetEnvironmentVariable("EmailSettings__SmtpPort"); |
106 | | - if (!string.IsNullOrWhiteSpace(emailPort)) |
107 | | - { |
108 | | - builder.Configuration["EmailSettings:SmtpPort"] = emailPort; |
109 | | - } |
110 | | - |
111 | | - var emailUsername = Environment.GetEnvironmentVariable("EMAIL_SMTP_USERNAME") |
112 | | - ?? Environment.GetEnvironmentVariable("EmailSettings__SmtpUsername"); |
113 | | - if (!string.IsNullOrWhiteSpace(emailUsername)) |
114 | | - { |
115 | | - builder.Configuration["EmailSettings:SmtpUsername"] = emailUsername; |
116 | | - } |
117 | | - |
118 | | - var emailPassword = Environment.GetEnvironmentVariable("EMAIL_SMTP_PASSWORD") |
119 | | - ?? Environment.GetEnvironmentVariable("EmailSettings__SmtpPassword"); |
120 | | - if (!string.IsNullOrWhiteSpace(emailPassword)) |
121 | | - { |
122 | | - builder.Configuration["EmailSettings:SmtpPassword"] = emailPassword; |
123 | | - } |
124 | | - |
125 | | - var cloudinaryCloudName = Environment.GetEnvironmentVariable("CLOUDINARY_CLOUD_NAME") |
126 | | - ?? Environment.GetEnvironmentVariable("CloudinarySettings__CloudName"); |
127 | | - if (!string.IsNullOrWhiteSpace(cloudinaryCloudName)) |
128 | | - { |
129 | | - builder.Configuration["CloudinarySettings:CloudName"] = cloudinaryCloudName; |
130 | | - } |
131 | | - |
132 | | - var cloudinaryApiKey = Environment.GetEnvironmentVariable("CLOUDINARY_API_KEY") |
133 | | - ?? Environment.GetEnvironmentVariable("CloudinarySettings__ApiKey"); |
134 | | - if (!string.IsNullOrWhiteSpace(cloudinaryApiKey)) |
135 | | - { |
136 | | - builder.Configuration["CloudinarySettings:ApiKey"] = cloudinaryApiKey; |
137 | | - } |
138 | | - |
139 | | - var cloudinaryApiSecret = Environment.GetEnvironmentVariable("CLOUDINARY_API_SECRET") |
140 | | - ?? Environment.GetEnvironmentVariable("CloudinarySettings__ApiSecret"); |
141 | | - if (!string.IsNullOrWhiteSpace(cloudinaryApiSecret)) |
142 | | - { |
143 | | - builder.Configuration["CloudinarySettings:ApiSecret"] = cloudinaryApiSecret; |
144 | | - } |
| 62 | + var jwtAudienceCheck = builder.Configuration["Jwt:Audience"]; |
| 63 | + Log.Information("JWT Audience: {Status}", string.IsNullOrWhiteSpace(jwtAudienceCheck) ? "MISSING" : "FOUND"); |
145 | 64 |
|
146 | 65 | // Configure environment-specific settings |
147 | 66 | if (Environment.GetEnvironmentVariable("DOTNET_RUNNING_IN_CONTAINER") == "true") |
|
0 commit comments