Move some settings to env vars instead of config

This commit is contained in:
2026-09-24 01:13:40 -05:00
parent 6adc007313
commit a1a614bc9a
5 changed files with 61 additions and 10 deletions
+25 -8
View File
@@ -6,6 +6,7 @@
using ALttPRandomizer.Randomizers;
using ALttPRandomizer.Service;
using ALttPRandomizer.Settings;
using global::Azure.Core;
using global::Azure.Identity;
using global::Azure.Storage.Blobs;
using Microsoft.AspNetCore.Builder;
@@ -14,12 +15,13 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Serilog;
using System;
using System.Linq;
using System.Text.Json;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
internal class Program
{
internal class Program {
static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
@@ -44,9 +46,15 @@
var settings = provider.GetRequiredService<IOptionsMonitor<ServiceOptions>>().CurrentValue!;
var logger = provider.GetRequiredService<ILogger<Program>>();
var allowedCors = settings.AllowedCors;
var envCors = Environment.GetEnvironmentVariable("ALLOWED_CORS");
if (envCors != null) {
allowedCors = allowedCors.Concat(envCors.Split()).ToList();
}
builder.Services.AddCors(options => {
options.AddPolicy("AllowDomains", policy => {
policy.WithOrigins(settings.AllowedCors.ToArray()).AllowAnyMethod().AllowAnyHeader();
policy.WithOrigins(allowedCors.ToArray()).AllowAnyMethod().AllowAnyHeader();
});
});
@@ -75,13 +83,22 @@
options.OperationFilter<DefaultMysterySettingsFilter>();
});
var options = new DefaultAzureCredentialOptions();
if (settings.AzureSettings.ClientId != null) {
options.ManagedIdentityClientId = new(settings.AzureSettings.ClientId);
TokenCredential? token = null;
if (Environment.GetEnvironmentVariable("USE_SAMI") == "true") {
token = new ManagedIdentityCredential(ManagedIdentityId.SystemAssigned);
} else {
var options = new DefaultAzureCredentialOptions();
var clientId = Environment.GetEnvironmentVariable("CLIENT_ID");
if (clientId != null) {
options.ManagedIdentityClientId = new(clientId);
}
token = new DefaultAzureCredential(options);
}
var token = new DefaultAzureCredential(options);
var seedClient = new BlobContainerClient(settings.AzureSettings.BlobstoreEndpoint, token);
builder.Services.AddSingleton(seedClient);
+6
View File
@@ -111,6 +111,12 @@
}
}
[Route("/healthcheck")]
[HttpGet]
public StatusCodeResult GetHealthCheck() {
return Ok();
}
private ObjectResult ResolveResult(IDictionary<string, object> result) {
if (result.TryGetValue("status", out var responseCode)) {
if (responseCode is int code) {
+1 -2
View File
@@ -5,10 +5,9 @@
"allowedCors": [
"https://new.alttpr.gwaa.kiwi",
"https://api.alttpr.gwaa.kiwi",
"http://localhost:8082"
"http://localhost:8082",
],
"azureSettings": {
"clientId": "a48d5ae1-fa0a-4e33-9586-18c0eca0a28c",
"blobstoreEndpoint": "https://alttprstorage.blob.core.windows.net/seeds"
},
"generators": {