From 5dd824b49615fd0d8ccfba627b71545c882583cc Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Mon, 3 Aug 2026 01:01:11 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Standardize=20environment=20variable=20n?= =?UTF-8?q?ames=20(KRX=5FAPI=5FKEY=20=E2=86=92=20KRX=5FOPENAPI,=20OPENDART?= =?UTF-8?q?=5FAPI=5FKEY=20=E2=86=92=20OPENDART=5FAPI)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Updated KrxDataService.cs: Environment.GetEnvironmentVariable("KRX_API_KEY") → KRX_OPENAPI - Updated OpenDartService.cs: OPENDART_API_KEY → OPENDART_API - Updated Program.cs: ResolveSecret() calls with new env var names - Updated tests/OpenDartServiceTests.cs: Test fixture environment variable - Updated CLAUDE.md: Documentation with corrected env var names - Verified: 95/95 integration tests PASS (stub data mode, no API keys required) - AGENTS.md v16.0 compliance: Explicit environment variable resolution Co-Authored-By: Claude Haiku 4.5 --- CLAUDE.md | 4 ++-- src/KArtSell.Host/Observability/OpenDartService.cs | 2 +- src/KArtSell.Host/Program.cs | 4 ++-- .../ShadowRun/Services/KrxDataService.cs | 4 ++-- tests/KArtSell.Integration.Tests/OpenDartServiceTests.cs | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 809d4f16..79d29a2e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -57,8 +57,8 @@ ssh -L 5432:127.0.0.1:5432 kjh2064@178.104.200.7 cd D:\JobRoomz\KArtSell.Aegis # Set actual API keys from Gitea Secrets (not test keys!) -$env:KRX_API_KEY = "" -$env:OPENDART_API_KEY = "" +$env:KRX_OPENAPI = "" +$env:OPENDART_API = "" $env:KIS_API_KEY = "" # CRITICAL: Run with --configuration Debug (DEVELOPMENT mode) diff --git a/src/KArtSell.Host/Observability/OpenDartService.cs b/src/KArtSell.Host/Observability/OpenDartService.cs index c90fcfe0..7328c45c 100644 --- a/src/KArtSell.Host/Observability/OpenDartService.cs +++ b/src/KArtSell.Host/Observability/OpenDartService.cs @@ -43,7 +43,7 @@ public class OpenDartService _dataSource = dataSource; _httpClient = httpClient; _clock = clock; - _apiKey = Environment.GetEnvironmentVariable("OPENDART_API_KEY") ?? throw new InvalidOperationException("OPENDART_API_KEY required"); + _apiKey = Environment.GetEnvironmentVariable("OPENDART_API") ?? throw new InvalidOperationException("OPENDART_API required"); _logger = logger; } diff --git a/src/KArtSell.Host/Program.cs b/src/KArtSell.Host/Program.cs index 18a12d9e..6ce13f1a 100644 --- a/src/KArtSell.Host/Program.cs +++ b/src/KArtSell.Host/Program.cs @@ -52,8 +52,8 @@ var connectionString = ResolveSecret( var krxApiKey = ResolveSecret( builder.Configuration["ExternalApis:KrxOpenApi:ApiKey"], - "KRX_API_KEY") - ?? throw new InvalidOperationException("KRX_API_KEY is required. Set via Gitea Actions Secrets or environment."); + "KRX_OPENAPI") + ?? throw new InvalidOperationException("KRX_OPENAPI is required. Set via Gitea Actions Secrets or environment."); var modelOperationsDispatcherEnabled = builder.Configuration.GetValue("ModelOperations:DispatcherEnabled"); var modelOperationsDispatcherCron = builder.Configuration["ModelOperations:DispatcherCron"] ?? "*/15 * * * *"; diff --git a/src/KArtSell.Modules.ModelOperations/ShadowRun/Services/KrxDataService.cs b/src/KArtSell.Modules.ModelOperations/ShadowRun/Services/KrxDataService.cs index d0a0fce9..63d17d99 100644 --- a/src/KArtSell.Modules.ModelOperations/ShadowRun/Services/KrxDataService.cs +++ b/src/KArtSell.Modules.ModelOperations/ShadowRun/Services/KrxDataService.cs @@ -159,11 +159,11 @@ public sealed class KrxDataService : IKrxDataService CancellationToken cancellationToken) { // Real KRX OpenAPI: Stock Price endpoint - var apiKey = Environment.GetEnvironmentVariable("KRX_API_KEY") ?? ""; + var apiKey = Environment.GetEnvironmentVariable("KRX_OPENAPI") ?? ""; if (string.IsNullOrEmpty(apiKey)) { - _logger.LogWarning("KRX_API_KEY not set, using stub data"); + _logger.LogWarning("KRX_OPENAPI not set, using stub data"); // Fallback to stub for local development (KRX format) await Task.Delay(100, cancellationToken); return $$""" diff --git a/tests/KArtSell.Integration.Tests/OpenDartServiceTests.cs b/tests/KArtSell.Integration.Tests/OpenDartServiceTests.cs index a1f3bf04..5e472b06 100644 --- a/tests/KArtSell.Integration.Tests/OpenDartServiceTests.cs +++ b/tests/KArtSell.Integration.Tests/OpenDartServiceTests.cs @@ -15,8 +15,8 @@ public class OpenDartServiceTests : IAsyncLifetime { _dataSource = fixture.DataSource; // Set test API key to avoid initialization error - if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("OPENDART_API_KEY"))) - Environment.SetEnvironmentVariable("OPENDART_API_KEY", "test-key-12345"); + if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("OPENDART_API"))) + Environment.SetEnvironmentVariable("OPENDART_API", "test-key-12345"); _service = new OpenDartService(_dataSource, new HttpClient(), fixture.Clock(), fixture.Logger()); }