From 6582ffc02a1ae5120bbf8924393412ec94ee0eb1 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Sun, 12 Jul 2026 13:06:57 +0900 Subject: [PATCH] chore: deprecate and remove blazor client code and project configurations --- .../Client/Components/ConfirmDialog.razor | 61 -- .../Client/Components/FormField.razor | 125 ---- .../CustomAuthenticationStateProvider.cs | 249 ------- .../Client/Layout/AuthLayout.razor | 20 - .../Client/Layout/AuthLayout.razor.css | 260 -------- .../Client/Layout/EmptyLayout.razor | 16 - .../Client/Layout/MainLayout.razor | 154 ----- .../Client/Layout/MainLayout.razor.css | 105 --- .../Client/Layout/NavMenu.razor | 18 - .../Client/Layout/NavMenu.razor.css | 105 --- .../Client/Pages/Collection.razor | 155 ----- .../Client/Pages/Dashboard.razor | 342 ---------- .../Pages/DataCollectionMonitoring.razor | 229 ------- .../Client/Pages/NotFound.razor | 8 - .../Client/Pages/Operations.razor | 121 ---- .../Client/Pages/Portfolio.razor | 238 ------- .../QuantEngine.Web/Client/Pages/Users.razor | 268 -------- src/dotnet/QuantEngine.Web/Client/Program.cs | 27 - .../Client/QuantEngine.Web.Client.csproj | 22 - .../Client/RedirectToLogin.razor | 8 - .../Client/Services/ApiClient.cs | 221 ------- .../Client/Services/AppStateService.cs | 142 ---- .../Client/Services/LocalStorageService.cs | 43 -- .../QuantEngine.Web/Client/Theme/AppTheme.cs | 158 ----- .../QuantEngine.Web/Client/_Imports.razor | 16 - src/dotnet/QuantEngine.Web/Client/app.css | 297 --------- .../QuantEngine.Web/QuantEngine.Web.csproj | 15 - .../logs/quantengine-20260711.log | 18 - .../logs/quantengine-20260711_001.log | 381 +++++++++++ .../logs/quantengine-20260712.log | 610 ++++++++++++++++++ src/quant_engine/snapshot_admin.db | Bin 57344 -> 151552 bytes test-results/.last-run.json | 6 +- .../error-context.md | 259 ++++++++ .../test-failed-1.png | Bin 0 -> 101840 bytes .../trace.zip | Bin 0 -> 399500 bytes test-results/real-login-result.png | Bin 2666577 -> 0 bytes 36 files changed, 1254 insertions(+), 3443 deletions(-) delete mode 100644 src/dotnet/QuantEngine.Web/Client/Components/ConfirmDialog.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Components/FormField.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Infrastructure/CustomAuthenticationStateProvider.cs delete mode 100644 src/dotnet/QuantEngine.Web/Client/Layout/AuthLayout.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Layout/AuthLayout.razor.css delete mode 100644 src/dotnet/QuantEngine.Web/Client/Layout/EmptyLayout.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Layout/MainLayout.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Layout/MainLayout.razor.css delete mode 100644 src/dotnet/QuantEngine.Web/Client/Layout/NavMenu.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Layout/NavMenu.razor.css delete mode 100644 src/dotnet/QuantEngine.Web/Client/Pages/Collection.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Pages/Dashboard.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Pages/DataCollectionMonitoring.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Pages/NotFound.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Pages/Operations.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Pages/Portfolio.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Pages/Users.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Program.cs delete mode 100644 src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj delete mode 100644 src/dotnet/QuantEngine.Web/Client/RedirectToLogin.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/Services/ApiClient.cs delete mode 100644 src/dotnet/QuantEngine.Web/Client/Services/AppStateService.cs delete mode 100644 src/dotnet/QuantEngine.Web/Client/Services/LocalStorageService.cs delete mode 100644 src/dotnet/QuantEngine.Web/Client/Theme/AppTheme.cs delete mode 100644 src/dotnet/QuantEngine.Web/Client/_Imports.razor delete mode 100644 src/dotnet/QuantEngine.Web/Client/app.css delete mode 100644 src/dotnet/QuantEngine.Web/logs/quantengine-20260711.log create mode 100644 src/dotnet/QuantEngine.Web/logs/quantengine-20260711_001.log create mode 100644 src/dotnet/QuantEngine.Web/logs/quantengine-20260712.log create mode 100644 test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/error-context.md create mode 100644 test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/test-failed-1.png create mode 100644 test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/trace.zip delete mode 100644 test-results/real-login-result.png diff --git a/src/dotnet/QuantEngine.Web/Client/Components/ConfirmDialog.razor b/src/dotnet/QuantEngine.Web/Client/Components/ConfirmDialog.razor deleted file mode 100644 index 02094a1e..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Components/ConfirmDialog.razor +++ /dev/null @@ -1,61 +0,0 @@ -@namespace QuantEngine.Web.Client.Components -@inject IDialogService DialogService - -@code { - public static async Task Show(IDialogService dialogService, string title, string message, string confirmText = "확인", string cancelText = "취소") - { - var options = new DialogOptions - { - CloseButton = false, - MaxWidth = MaxWidth.Small, - FullWidth = true, - BackdropClick = false - }; - - var parameters = new DialogParameters - { - { x => x.Title, title }, - { x => x.Message, message }, - { x => x.ConfirmText, confirmText }, - { x => x.CancelText, cancelText } - }; - - var dialog = await dialogService.ShowAsync(title, parameters, options); - var result = await dialog.Result; - - return !result.Canceled && (bool?)result.Data == true; - } -} - - - - - @Title - @Message - - - - @CancelText - @ConfirmText - - - -@code { - [CascadingParameter] - private IMudDialogInstance MudDialog { get; set; } - - [Parameter] - public string Title { get; set; } = "확인"; - - [Parameter] - public string Message { get; set; } = ""; - - [Parameter] - public string ConfirmText { get; set; } = "확인"; - - [Parameter] - public string CancelText { get; set; } = "취소"; - - private void Confirm() => MudDialog.Close(DialogResult.Ok(true)); - private void Cancel() => MudDialog.Cancel(); -} diff --git a/src/dotnet/QuantEngine.Web/Client/Components/FormField.razor b/src/dotnet/QuantEngine.Web/Client/Components/FormField.razor deleted file mode 100644 index b5e00d97..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Components/FormField.razor +++ /dev/null @@ -1,125 +0,0 @@ -@namespace QuantEngine.Web.Client.Components - - - - - @switch (Type) - { - case "text": - case "email": - case "password": - case "number": - - break; - - case "textarea": - - break; - - case "select": - - @foreach (var option in Options) - { - @option - } - - break; - - case "checkbox": - - @Label - - break; - - case "date": - - break; - } - - @if (!string.IsNullOrEmpty(HelpText)) - { - @HelpText - } - - -@code { - [Parameter] - public string Label { get; set; } = ""; - - [Parameter] - public string Type { get; set; } = "text"; - - [Parameter] - public string Value { get; set; } = ""; - - [Parameter] - public EventCallback ValueChanged { get; set; } - - [Parameter] - public string Placeholder { get; set; } = ""; - - [Parameter] - public bool Required { get; set; } = false; - - [Parameter] - public string ErrorMessage { get; set; } = ""; - - [Parameter] - public string HelpText { get; set; } = ""; - - [Parameter] - public List Options { get; set; } = new(); -} - - diff --git a/src/dotnet/QuantEngine.Web/Client/Infrastructure/CustomAuthenticationStateProvider.cs b/src/dotnet/QuantEngine.Web/Client/Infrastructure/CustomAuthenticationStateProvider.cs deleted file mode 100644 index 1c5bdcd3..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Infrastructure/CustomAuthenticationStateProvider.cs +++ /dev/null @@ -1,249 +0,0 @@ -using System.Security.Claims; -using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.JSInterop; -using QuantEngine.Web.Client.Services; - -namespace QuantEngine.Web.Client.Infrastructure -{ - public class CustomAuthenticationStateProvider : AuthenticationStateProvider - { - private readonly LocalStorageService _localStorage; - private readonly HttpClient _http; - private readonly IJSRuntime _jsRuntime; - private readonly ClaimsPrincipal _anonymous = new ClaimsPrincipal(new ClaimsIdentity()); - private const string TokenKey = "quant_admin_access_token"; - private const string UsernameKey = "quant_admin_username"; - private const string RoleKey = "quant_admin_role"; - private const string RememberUsernameKey = "quant_admin_remember_username"; - - private AuthenticationState? _cachedState; - - public CustomAuthenticationStateProvider(LocalStorageService localStorage, HttpClient http, IJSRuntime jsRuntime) - { - _localStorage = localStorage; - _http = http; - _jsRuntime = jsRuntime; - } - - public override async Task GetAuthenticationStateAsync() - { - if (_cachedState != null && _cachedState.User.Identity?.IsAuthenticated == true) - { - Console.WriteLine("[Auth] Returning cached authentication state"); - return _cachedState; - } - - try - { - Console.WriteLine("[Auth] GetAuthenticationStateAsync called"); - - // Primary: Try to validate via /api/auth/me - // This works with both cookies (automatic) and Bearer tokens - try - { - Console.WriteLine("[Auth] Attempting validation via /api/auth/me (cookie or Bearer)..."); - // BaseAddress is always set to HostEnvironment.BaseAddress by DI. - // Never fall back to a hardcoded port — it breaks in production. - var meUrl = "api/auth/me"; - var requestUri = _http.BaseAddress == null ? new Uri($"http://localhost:5265/{meUrl}") : new Uri(_http.BaseAddress, meUrl); - Console.WriteLine($"[Auth] /api/auth/me URL: {requestUri}"); - - var meResponse = await _http.GetAsync(requestUri); - Console.WriteLine($"[Auth] /api/auth/me status: {meResponse.StatusCode}"); - - if (meResponse.IsSuccessStatusCode) - { - var json = await meResponse.Content.ReadAsStringAsync(); - Console.WriteLine($"[Auth] Response JSON: {json}"); - - var meData = System.Text.Json.JsonDocument.Parse(json).RootElement; - var authenticated = meData.TryGetProperty("authenticated", out var authProp) && authProp.GetBoolean(); - var username = meData.TryGetProperty("username", out var userProp) ? userProp.GetString() : null; - var role = meData.TryGetProperty("role", out var roleProp) ? roleProp.GetString() : "Admin"; - - Console.WriteLine($"[Auth] Parsed: authenticated={authenticated}, username={username}, role={role}"); - - if (authenticated && !string.IsNullOrWhiteSpace(username)) - { - Console.WriteLine($"[Auth] ✅ SUCCESS: Authenticated as {username}"); - var identity = new ClaimsIdentity(new[] - { - new Claim(ClaimTypes.Name, username), - new Claim(ClaimTypes.Role, role ?? "Admin") - }, "QuantAdminAuth"); - - var state = new AuthenticationState(new ClaimsPrincipal(identity)); - _cachedState = state; - return state; - } - else - { - Console.WriteLine($"[Auth] Parsing failed: authenticated={authenticated}, username={username}"); - } - } - else - { - Console.WriteLine($"[Auth] /api/auth/me returned {meResponse.StatusCode}"); - - if (IsLocalhost()) - { - Console.WriteLine("[Auth] Dev SSR fallback: allowing admin authentication on 401"); - return GetDevAdminState(); - } - } - } - catch (Exception meEx) - { - Console.WriteLine($"[Auth] /api/auth/me failed: {meEx.Message}"); - Console.WriteLine($"[Auth] Exception: {meEx}"); - - if (IsLocalhost()) - { - Console.WriteLine("[Auth] Dev SSR fallback: allowing admin authentication on exception"); - return GetDevAdminState(); - } - } - - // Fallback: Try to read from localStorage - Console.WriteLine("[Auth] Fallback: checking localStorage..."); - try - { - string token = await _jsRuntime.InvokeAsync("localStorage.getItem", TokenKey); - string username = await _jsRuntime.InvokeAsync("localStorage.getItem", UsernameKey); - string role = await _jsRuntime.InvokeAsync("localStorage.getItem", RoleKey); - - Console.WriteLine($"[Auth] localStorage: token={!string.IsNullOrWhiteSpace(token)}, username={username}"); - - if (!string.IsNullOrWhiteSpace(token) && !string.IsNullOrWhiteSpace(username)) - { - var meUrl = "api/auth/me"; - var requestUri = _http.BaseAddress == null ? new Uri($"http://localhost:5265/{meUrl}") : new Uri(_http.BaseAddress, meUrl); - var request = new HttpRequestMessage(HttpMethod.Get, requestUri); - request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); - var response = await _http.SendAsync(request); - - if (response.IsSuccessStatusCode) - { - Console.WriteLine($"[Auth] ✅ localStorage token validated: {username}"); - var identity = new ClaimsIdentity(new[] - { - new Claim(ClaimTypes.Name, username), - new Claim(ClaimTypes.Role, role ?? "Admin") - }, "QuantAdminAuth"); - - var state = new AuthenticationState(new ClaimsPrincipal(identity)); - _cachedState = state; - return state; - } - } - } - catch (Exception jsEx) - { - Console.WriteLine($"[Auth] localStorage fallback failed: {jsEx.Message}"); - } - - Console.WriteLine("[Auth] ❌ Not authenticated"); - } - catch (Exception ex) - { - Console.WriteLine($"[Auth] Unexpected error: {ex.Message}"); - } - - _cachedState = new AuthenticationState(_anonymous); - return _cachedState; - } - - public async Task MarkUserAsAuthenticatedAsync(string username, string accessToken, string role) - { - await MarkUserAsAuthenticatedAsync(username, accessToken, role, rememberUsername: true); - } - - public async Task MarkUserAsAuthenticatedAsync(string username, string accessToken, string role, bool rememberUsername) - { - await _localStorage.SetAsync(TokenKey, accessToken); - if (rememberUsername) - { - await _localStorage.SetAsync(UsernameKey, username); - await _localStorage.SetAsync(RememberUsernameKey, true); - } - else - { - await _localStorage.DeleteAsync(UsernameKey); - await _localStorage.SetAsync(RememberUsernameKey, false); - } - await _localStorage.SetAsync(RoleKey, role); - - var identity = new ClaimsIdentity(new[] - { - new Claim(ClaimTypes.Name, username), - new Claim(ClaimTypes.Role, role) - }, "QuantAdminAuth"); - - var user = new ClaimsPrincipal(identity); - var state = new AuthenticationState(user); - _cachedState = state; - NotifyAuthenticationStateChanged(Task.FromResult(state)); - } - - public async Task MarkUserAsLoggedOutAsync() - { - await _localStorage.DeleteAsync(TokenKey); - await _localStorage.DeleteAsync(RoleKey); - var rememberUsername = await _localStorage.GetAsync(RememberUsernameKey); - if (!rememberUsername) - { - await _localStorage.DeleteAsync(UsernameKey); - } - _cachedState = new AuthenticationState(_anonymous); - NotifyAuthenticationStateChanged(Task.FromResult(_cachedState)); - } - - public async Task LogoutFromServerAsync() - { - var token = await _localStorage.GetAsync(TokenKey); - if (!string.IsNullOrWhiteSpace(token)) - { - try - { - var request = new HttpRequestMessage(HttpMethod.Post, "api/auth/logout"); - request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); - await _http.SendAsync(request); - } - catch - { - // Best-effort server revocation; always clear local state. - } - } - - await MarkUserAsLoggedOutAsync(); - } - - public async Task GetRememberedUsernameAsync() - { - var rememberUsername = await _localStorage.GetAsync(RememberUsernameKey); - if (!rememberUsername) - { - return null; - } - - return await _localStorage.GetAsync(UsernameKey); - } - - private bool IsLocalhost() - { - return _http.BaseAddress == null || _http.BaseAddress.Host == "localhost" || _http.BaseAddress.Host == "127.0.0.1"; - } - - private AuthenticationState GetDevAdminState() - { - var identity = new ClaimsIdentity(new[] - { - new Claim(ClaimTypes.Name, "admin"), - new Claim(ClaimTypes.Role, "Admin") - }, "QuantAdminAuth"); - var state = new AuthenticationState(new ClaimsPrincipal(identity)); - _cachedState = state; - return state; - } - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Layout/AuthLayout.razor b/src/dotnet/QuantEngine.Web/Client/Layout/AuthLayout.razor deleted file mode 100644 index 5a11cf84..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Layout/AuthLayout.razor +++ /dev/null @@ -1,20 +0,0 @@ -@inherits LayoutComponentBase -@rendermode InteractiveWebAssembly - - - -@Body - -@code { -} diff --git a/src/dotnet/QuantEngine.Web/Client/Layout/AuthLayout.razor.css b/src/dotnet/QuantEngine.Web/Client/Layout/AuthLayout.razor.css deleted file mode 100644 index 5659d06e..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Layout/AuthLayout.razor.css +++ /dev/null @@ -1,260 +0,0 @@ -/* QuantEngine AuthLayout Styles */ - -.auth-container { - display: flex; - min-height: 100vh; - background: linear-gradient(135deg, var(--mud-palette-primary) 0%, var(--mud-palette-primary-dark) 100%); - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; -} - -/* Left Panel - Branding */ -.auth-left-panel { - flex: 1; - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - padding: 3rem; - color: white; - position: relative; -} - -.auth-branding { - display: flex; - flex-direction: column; - align-items: center; - text-align: center; - flex: 1; - justify-content: center; -} - -.auth-logo { - margin-bottom: 2rem; - animation: float 3s ease-in-out infinite; -} - -.auth-logo ::deep svg { - filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.1)); - font-size: 80px; - color: white; -} - -.auth-title { - font-weight: 700; - margin-bottom: 0.5rem; - letter-spacing: 1px; -} - -.auth-subtitle { - opacity: 0.9; - font-size: 1.1rem; - max-width: 300px; -} - -.auth-features { - margin-top: 3rem; - display: flex; - flex-direction: column; - gap: 1.5rem; - align-items: flex-start; - width: 100%; - max-width: 300px; -} - -.auth-feature { - display: flex; - align-items: center; - gap: 1rem; - opacity: 0.95; -} - -.auth-feature ::deep svg { - font-size: 24px; - color: #4caf50; - flex-shrink: 0; -} - -.auth-theme-toggle { - position: absolute; - top: 2rem; - right: 2rem; -} - -.auth-theme-toggle ::deep button { - color: white; - transition: transform 0.2s ease; -} - -.auth-theme-toggle ::deep button:hover { - transform: scale(1.1); -} - -/* Right Panel - Auth Content */ -.auth-right-panel { - flex: 1; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - padding: 2rem; - background: var(--mud-palette-background); - position: relative; -} - -.auth-mobile-header { - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; - margin-bottom: 2rem; - padding-bottom: 1rem; - border-bottom: 1px solid var(--mud-palette-divider); -} - -.auth-mobile-header ::deep .mud-icon { - color: var(--mud-palette-primary); -} - -.auth-content { - width: 100%; - max-width: 450px; -} - -.auth-content ::deep .mud-card { - background: var(--mud-palette-surface); - border: 1px solid var(--mud-palette-divider); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); -} - -.auth-content ::deep .mud-form-control { - margin-bottom: 1.5rem; -} - -.auth-content ::deep .mud-button { - text-transform: none; - font-weight: 600; - padding: 0.75rem 1.5rem; -} - -.auth-content ::deep .mud-button-root { - border-radius: 0.4rem; -} - -/* Footer */ -.auth-footer { - position: absolute; - bottom: 2rem; - text-align: center; - width: 100%; - padding: 1rem 2rem; - border-top: 1px solid var(--mud-palette-divider); -} - -.auth-footer-text { - display: block; - color: var(--mud-palette-text-secondary); - margin-bottom: 0.5rem; -} - -.auth-footer-links { - display: flex; - justify-content: center; - align-items: center; - gap: 0.75rem; -} - -.auth-footer-links ::deep a { - color: var(--mud-palette-primary); - text-decoration: none; - transition: color 0.2s ease; -} - -.auth-footer-links ::deep a:hover { - color: var(--mud-palette-primary-dark); - text-decoration: underline; -} - -/* Responsive */ -@media (max-width: 960px) { - .auth-container { - flex-direction: column; - } - - .auth-left-panel { - padding: 2rem; - min-height: 40vh; - } - - .auth-right-panel { - padding: 3rem 2rem 5rem; - min-height: 60vh; - } - - .auth-mobile-header { - display: flex; - } - - .auth-footer { - bottom: 1rem; - padding: 1rem; - } -} - -@media (max-width: 600px) { - .auth-right-panel { - padding: 2rem 1rem 5rem; - } - - .auth-content { - max-width: 100%; - } - - .auth-features { - max-width: 100%; - } - - .auth-footer { - position: static; - padding: 1rem; - border-top: 1px solid var(--mud-palette-divider); - margin-top: 3rem; - } -} - -/* Animation */ -@keyframes float { - 0%, 100% { - transform: translateY(0); - } - 50% { - transform: translateY(-10px); - } -} - -/* Dark Mode */ -[data-theme="dark"] .auth-container { - background: linear-gradient(135deg, #1e1e2e 0%, #2d2d44 100%); -} - -[data-theme="dark"] .auth-left-panel { - color: #f0f0f0; -} - -[data-theme="dark"] .auth-right-panel { - background: #121212; -} - -/* Accessibility */ -@media (prefers-reduced-motion: reduce) { - .auth-logo { - animation: none; - } - - .auth-theme-toggle ::deep button { - transition: none; - } - - .auth-footer-links ::deep a { - transition: none; - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Layout/EmptyLayout.razor b/src/dotnet/QuantEngine.Web/Client/Layout/EmptyLayout.razor deleted file mode 100644 index 479db95f..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Layout/EmptyLayout.razor +++ /dev/null @@ -1,16 +0,0 @@ -@inherits LayoutComponentBase - -@Body - - diff --git a/src/dotnet/QuantEngine.Web/Client/Layout/MainLayout.razor b/src/dotnet/QuantEngine.Web/Client/Layout/MainLayout.razor deleted file mode 100644 index cf6e2a46..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Layout/MainLayout.razor +++ /dev/null @@ -1,154 +0,0 @@ -@inherits LayoutComponentBase -@using QuantEngine.Web.Client.Theme -@inject HttpClient Http -@inject AuthenticationStateProvider AuthStateProvider -@inject NavigationManager NavigationManager - - - - - - - - - - - - - - - - - QuantEngine - - - - - - - - - - - @GetFirstLetter(authContext.User.Identity?.Name) - - - - - - @authContext.User.Identity?.Name - - - - - - 프로필 - - - - 설정 - - - - - 로그아웃 - - - - - - - - - - - 메뉴 - - - - - - - - - - - - - - - - - @Body - - - - -@code { - private MudTheme _theme = AppTheme.LightTheme; - private bool navOpen = true; - private bool fixedOpen = true; - private string appVersion = "Local Debug"; - private string buildTime = "N/A"; - - protected override async Task OnInitializedAsync() - { - try - { - var versionInfo = await Http.GetFromJsonAsync("version.json"); - if (versionInfo != null) - { - appVersion = versionInfo.Version ?? "Local Debug"; - buildTime = versionInfo.Built ?? "N/A"; - } - } - catch - { - } - - await base.OnInitializedAsync(); - } - - private void ToggleDrawer() - { - navOpen = !navOpen; - } - - private async Task HandleLogoutAsync() - { - var customProvider = (CustomAuthenticationStateProvider)AuthStateProvider; - await customProvider.LogoutFromServerAsync(); - NavigationManager.NavigateTo("/Account/Login", forceLoad: true); - } - - private string GetFirstLetter(string? name) - { - return string.IsNullOrEmpty(name) ? "?" : name[0].ToString().ToUpper(); - } - - private string GetUserInitials() - { - return string.Empty; - } - - private class VersionInfo - { - public string? Version { get; set; } - public string? Built { get; set; } - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Layout/MainLayout.razor.css b/src/dotnet/QuantEngine.Web/Client/Layout/MainLayout.razor.css deleted file mode 100644 index 480a48ca..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Layout/MainLayout.razor.css +++ /dev/null @@ -1,105 +0,0 @@ -/* QuantEngine MainLayout Styles */ - -/* AppBar Enhancements */ -.mud-appbar-dense { - padding: 0 1rem; -} - -.mud-appbar-dense ::deep .mud-appbar-section-center { - flex: 1; -} - -/* Avatar Styling */ -::deep .mud-avatar { - cursor: pointer; - transition: transform 0.2s ease; -} - -::deep .mud-avatar:hover { - transform: scale(1.05); -} - -/* Drawer Footer */ -.mud-drawer-footer { - position: absolute; - bottom: 0; - width: 100%; - background: var(--mud-palette-surface); -} - -/* Main Content Area */ -.mud-main-content-enhanced { - min-height: 100vh; - background: var(--mud-palette-background); - transition: background-color 0.3s ease; -} - -/* Navigation Menu Styles */ -.mud-navmenu { - padding: 1rem 0; -} - -.mud-navmenu ::deep .mud-nav-item { - padding: 0.5rem 0; - margin: 0.25rem 0; -} - -.mud-navmenu ::deep .mud-nav-link { - border-radius: 0.4rem; - margin: 0 0.5rem; - transition: all 0.2s ease; -} - -.mud-navmenu ::deep .mud-nav-link:hover { - background-color: var(--mud-palette-action-default-hover); -} - -.mud-navmenu ::deep .mud-nav-link.mud-ripple-nav-link-active { - background-color: var(--mud-palette-primary-lighten); - color: var(--mud-palette-primary); - font-weight: 600; -} - -/* Responsive Drawer */ -@media (max-width: 599px) { - .mud-drawer-content { - width: 100% !important; - } - - .mud-drawer-footer { - position: relative; - } -} - -@media (min-width: 600px) { - .mud-drawer-footer { - position: absolute; - } -} - -/* Error UI */ -#blazor-error-ui { - color-scheme: light only; - background: lightyellow; - bottom: 0; - box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); - box-sizing: border-box; - display: none; - left: 0; - padding: 0.6rem 1.25rem 0.7rem 1.25rem; - position: fixed; - width: 100%; - z-index: 1000; -} - -#blazor-error-ui .dismiss { - cursor: pointer; - position: absolute; - right: 0.75rem; - top: 0.5rem; -} - -/* Dark Mode Transitions */ -* { - transition: background-color 0.3s ease, color 0.3s ease; -} diff --git a/src/dotnet/QuantEngine.Web/Client/Layout/NavMenu.razor b/src/dotnet/QuantEngine.Web/Client/Layout/NavMenu.razor deleted file mode 100644 index 4f3a0ddd..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Layout/NavMenu.razor +++ /dev/null @@ -1,18 +0,0 @@ - - - - 대시보드 - - - - - 사용자 관리 - 데이터 수집 - 수집 모니터링 - - - - - 운영 리포트 - - diff --git a/src/dotnet/QuantEngine.Web/Client/Layout/NavMenu.razor.css b/src/dotnet/QuantEngine.Web/Client/Layout/NavMenu.razor.css deleted file mode 100644 index a2aeace9..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Layout/NavMenu.razor.css +++ /dev/null @@ -1,105 +0,0 @@ -.navbar-toggler { - appearance: none; - cursor: pointer; - width: 3.5rem; - height: 2.5rem; - color: white; - position: absolute; - top: 0.5rem; - right: 1rem; - border: 1px solid rgba(255, 255, 255, 0.1); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1); -} - -.navbar-toggler:checked { - background-color: rgba(255, 255, 255, 0.5); -} - -.top-row { - min-height: 3.5rem; - background-color: rgba(0,0,0,0.4); -} - -.navbar-brand { - font-size: 1.1rem; -} - -.bi { - display: inline-block; - position: relative; - width: 1.25rem; - height: 1.25rem; - margin-right: 0.75rem; - top: -1px; - background-size: cover; -} - -.bi-house-door-fill-nav-menu { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E"); -} - -.bi-plus-square-fill-nav-menu { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E"); -} - -.bi-list-nested-nav-menu { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E"); -} - -.nav-item { - font-size: 0.9rem; - padding-bottom: 0.5rem; -} - - .nav-item:first-of-type { - padding-top: 1rem; - } - - .nav-item:last-of-type { - padding-bottom: 1rem; - } - - .nav-item ::deep .nav-link { - color: #d7d7d7; - background: none; - border: none; - border-radius: 4px; - height: 3rem; - display: flex; - align-items: center; - line-height: 3rem; - width: 100%; - } - -.nav-item ::deep a.active { - background-color: rgba(255,255,255,0.37); - color: white; -} - -.nav-item ::deep .nav-link:hover { - background-color: rgba(255,255,255,0.1); - color: white; -} - -.nav-scrollable { - display: none; -} - -.navbar-toggler:checked ~ .nav-scrollable { - display: block; -} - -@media (min-width: 641px) { - .navbar-toggler { - display: none; - } - - .nav-scrollable { - /* Never collapse the sidebar for wide screens */ - display: block; - - /* Allow sidebar to scroll for tall menus */ - height: calc(100vh - 3.5rem); - overflow-y: auto; - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Pages/Collection.razor b/src/dotnet/QuantEngine.Web/Client/Pages/Collection.razor deleted file mode 100644 index 42d9050e..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Pages/Collection.razor +++ /dev/null @@ -1,155 +0,0 @@ -@page "/collection" -@attribute [Authorize] -@using QuantEngine.Web.Client.Services -@inject ApiClient ApiClient -@inject ILogger Logger - -QuantEngine - Collection - -Data Collection -KIS API data collection dashboard. API-first로만 동작합니다. - - - - @(IsProcessing ? "Running..." : "Start Collection") - - Refresh - - -@if (IsLoading) -{ - -} -else if (DashboardState != null) -{ - - - - Last Run - @(DashboardState.LastRunStatus ?? "N/A") - @(DashboardState.LastFinishedAt ?? "Not finished") - - - - - Total Snapshots - @DashboardState.TotalSnapshots - - - - - Total Errors - @DashboardState.TotalErrors - - - - - @if (DashboardState.RecentErrors.Count > 0) - { - - Recent Errors - - - Source - Kind - Ticker - Message - - - @context.SourceName - @context.ErrorKind - @context.Ticker - @context.ErrorMessage - - - - } - - @if (RecentRuns != null && RecentRuns.Count > 0) - { - - Recent Runs - - - Run ID - Status - Started - Finished - Snapshots - Errors - - - @context.RunId - @context.Status - @context.StartedAt - @context.FinishedAt - @context.TotalSnapshots - @context.TotalErrors - - - - } -} - -@code { - private CollectionDashboardStateDto? DashboardState; - private List? RecentRuns; - private bool IsLoading = true; - private bool IsProcessing = false; - - protected override async Task OnInitializedAsync() - { - await LoadDashboardStateAsync(); - } - - private async Task LoadDashboardStateAsync() - { - IsLoading = true; - try - { - // Parallelize API calls to avoid sequential RTT bottlenecks - var stateTask = ApiClient.GetCollectionStateAsync(); - var runsTask = ApiClient.GetCollectionRunsAsync(10); - - await Task.WhenAll(stateTask, runsTask); - - DashboardState = await stateTask; - var runsResponse = await runsTask; - RecentRuns = runsResponse?.Runs ?? new(); - } - catch (Exception ex) - { - Logger.LogError(ex, "Error loading dashboard"); - } - finally - { - IsLoading = false; - } - } - - private async Task StartCollectionAsync() - { - IsProcessing = true; - try - { - var result = await ApiClient.StartCollectionRunAsync(); - if (result != null) - { - await LoadDashboardStateAsync(); - } - } - catch (Exception ex) - { - Logger.LogError(ex, "Error starting collection"); - } - finally - { - IsProcessing = false; - } - } - - private async Task RefreshAsync() - { - await LoadDashboardStateAsync(); - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Pages/Dashboard.razor b/src/dotnet/QuantEngine.Web/Client/Pages/Dashboard.razor deleted file mode 100644 index efd05541..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Pages/Dashboard.razor +++ /dev/null @@ -1,342 +0,0 @@ -@page "/dashboard" -@rendermode InteractiveWebAssembly - -@using QuantEngine.Core.Infrastructure -@using Microsoft.AspNetCore.Components.Authorization -@inject HttpClient Http -@inject AuthenticationStateProvider AuthStateProvider -@inject NavigationManager NavManager - -QuantEngine - Admin Dashboard - - - - -
- 관리자 대시보드 - 시스템 현황 및 데이터 수집 모니터링 -
- - - - - - -
-
- 총 수집 실행 - @TotalRuns - - - 이번 주 +@WeeklyRuns - -
- -
-
-
- - - - -
-
- 성공률 - @SuccessRate% - - - 최근 30일 - -
- -
-
-
- - - - -
-
- 최근 에러 - @RecentErrors - - - 지난 7일 - -
- -
-
-
- - - - -
-
- 마지막 동기화 - @LastSyncTime - - - @(IsLastSyncSuccess ? "성공" : "경고") - - -
- -
-
-
-
- - - - - - - 최근 활동 - - @if (RecentActivities.Count == 0) - { - 활동 기록이 없습니다. - } - else - { - - @foreach (var activity in RecentActivities) - { -
- -
- @activity.Title - @activity.Timestamp.ToString("yyyy-MM-dd HH:mm:ss") - @activity.Description -
-
- } -
- } -
-
- - - - - 시스템 상태 - - -
- API 서버 - 온라인 -
-
- 데이터베이스 - 연결됨 -
-
- KIS API - - @(KisApiStatus ? "활성" : "비활성") - -
- - 마지막 점검: @SystemCheckTime -
-
-
-
- - - -
- 최근 데이터 수집 실행 - - - 새로고침 - -
- - @if (Sections.Count == 0) - { - 데이터 수집 기록이 없습니다. - } - else - { - - - 이름 - 상태 - 시작 시간 - 작업 - - - - @context.Name - - - - @context.Title - - - - @context.Preview - - - 상세 - - - - } -
- - - -@code { - private readonly List Sections = new(); - private readonly List RecentActivities = new(); - - // KPI values - private int TotalRuns = 47; - private int WeeklyRuns = 12; - private int SuccessRate = 94; - private int RecentErrors = 3; - private string LastSyncTime = "2분 전"; - private bool IsLastSyncSuccess = true; - private bool KisApiStatus = true; - private string SystemCheckTime = DateTime.Now.ToString("HH:mm:ss"); - - protected override async Task OnInitializedAsync() - { - var authState = await AuthStateProvider.GetAuthenticationStateAsync(); - if (!(authState.User.Identity?.IsAuthenticated ?? false)) - { - NavManager.NavigateTo("/Account/Login", forceLoad: true); - return; - } - - try - { - var report = await Http.GetFromJsonAsync("api/operational-report"); - if (report != null) - { - Sections.Clear(); - Sections.AddRange(report.Sections); - } - } - catch - { - // Handle error silently - } - - LoadRecentActivities(); - } - - private void LoadRecentActivities() - { - RecentActivities.Clear(); - RecentActivities.AddRange(new[] - { - new ActivityLog - { - Type = "success", - Title = "데이터 수집 완료", - Description = "삼성전자(005930) 주가 데이터 수집 성공", - Timestamp = DateTime.Now.AddMinutes(-5) - }, - new ActivityLog - { - Type = "warning", - Title = "API 레이트 제한", - Description = "KIS API 레이트 제한에 도달했으나 재시도 예정", - Timestamp = DateTime.Now.AddMinutes(-12) - }, - new ActivityLog - { - Type = "success", - Title = "대시보드 업데이트", - Description = "포트폴리오 구성 분석 완료", - Timestamp = DateTime.Now.AddMinutes(-35) - }, - new ActivityLog - { - Type = "info", - Title = "스케줄 실행", - Description = "일일 정기 수집 작업 시작", - Timestamp = DateTime.Now.AddHours(-1) - } - }); - } - - private async Task RefreshData() - { - await OnInitializedAsync(); - } - - private string GetActivityIcon(string type) => type switch - { - "success" => Icons.Material.Filled.CheckCircle, - "warning" => Icons.Material.Filled.WarningAmber, - "error" => Icons.Material.Filled.Error, - _ => Icons.Material.Filled.Info - }; - - private string GetActivityColor(string type) => type switch - { - "success" => "#4caf50", - "warning" => "#ff9800", - "error" => "#f44336", - _ => "#2196f3" - }; - - private Color GetActivityColorEnum(string type) => type switch - { - "success" => Color.Success, - "warning" => Color.Warning, - "error" => Color.Error, - _ => Color.Info - }; - - private class ActivityLog - { - public string Type { get; set; } - public string Title { get; set; } - public string Description { get; set; } - public DateTime Timestamp { get; set; } - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Pages/DataCollectionMonitoring.razor b/src/dotnet/QuantEngine.Web/Client/Pages/DataCollectionMonitoring.razor deleted file mode 100644 index 0ede6ec3..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Pages/DataCollectionMonitoring.razor +++ /dev/null @@ -1,229 +0,0 @@ -@page "/monitoring" -@attribute [Authorize] -@inject HttpClient Http -@inject ISnackbar Snackbar - -QuantEngine - 데이터 수집 모니터링 - - -
-
-
- 데이터 수집 모니터링 - 실시간 수집 작업 상태 및 에러 추적 -
- - - 새로고침 - -
-
- -@if (_loading) -{ - -} - - - - - - 진행 중인 작업 - @_runningCount - - - - - 완료 - @_completedCount - - - - - 실패 - @_failedCount - - - - - 총 스냅샷 - @_totalSnapshots - - - - - - - - -
- - @if (_recentRuns.Count == 0 && !_loading) - { - 최근 실행 기록이 없습니다. - } - else - { - - - 실행 ID - 시작 시간 - 종료 시간 - 상태 - 스냅샷 - 에러 - - - - @context.RunId - - - @FormatTime(context.StartedAt) - - - @(string.IsNullOrEmpty(context.FinishedAt) ? "-" : FormatTime(context.FinishedAt)) - - - - @context.Status - - - - @(context.TotalSnapshots?.ToString() ?? "-") - - - @if (context.TotalErrors > 0) - { - - @context.TotalErrors - - } - else - { - - - } - - - - } - -
-
- - - -
- - @if (_errors.Count == 0 && !_loading) - { - 에러가 없습니다. - } - else - { - - @foreach (var error in _errors) - { -
-
- [@error.ErrorKind] @error.ErrorMessage - @FormatTime(error.CreatedAt) -
- Run: @error.RunId - @if (!string.IsNullOrEmpty(error.Ticker)) - { - Ticker: @error.Ticker - } -
- } -
- } -
-
-
-
- -@code { - private bool _loading = false; - private int _runningCount; - private int _completedCount; - private int _failedCount; - private int _totalSnapshots; - - private List _recentRuns = new(); - private List _errors = new(); - - protected override async Task OnInitializedAsync() - { - await RefreshAsync(); - } - - private async Task RefreshAsync() - { - _loading = true; - StateHasChanged(); - - try - { - // 최근 실행 목록 로드 - var runsResponse = await Http.GetFromJsonAsync("api/collection/runs?limit=20"); - if (runsResponse?.Runs is not null) - { - _recentRuns = runsResponse.Runs; - _runningCount = _recentRuns.Count(r => string.Equals(r.Status, "running", StringComparison.OrdinalIgnoreCase)); - _completedCount = _recentRuns.Count(r => string.Equals(r.Status, "completed", StringComparison.OrdinalIgnoreCase) - || string.Equals(r.Status, "PASS", StringComparison.OrdinalIgnoreCase)); - _failedCount = _recentRuns.Count(r => string.Equals(r.Status, "failed", StringComparison.OrdinalIgnoreCase) - || string.Equals(r.Status, "error", StringComparison.OrdinalIgnoreCase)); - _totalSnapshots = _recentRuns.Sum(r => r.TotalSnapshots ?? 0); - } - - // 대시보드 상태 로드 (전체 오류 목록) - var state = await Http.GetFromJsonAsync("api/collection/state"); - if (state?.RecentErrors is not null) - { - _errors = state.RecentErrors; - } - } - catch (Exception ex) - { - Snackbar.Add($"데이터 로드 실패: {ex.Message}", Severity.Error); - } - finally - { - _loading = false; - } - } - - private Color GetStatusColor(string status) => status?.ToLowerInvariant() switch - { - "running" => Color.Info, - "completed" => Color.Success, - "pass" => Color.Success, - "failed" => Color.Error, - "error" => Color.Error, - _ => Color.Warning - }; - - private string FormatTime(string? isoTime) - { - if (string.IsNullOrEmpty(isoTime)) return "-"; - return DateTimeOffset.TryParse(isoTime, out var dt) - ? dt.LocalDateTime.ToString("yyyy-MM-dd HH:mm:ss") - : isoTime; - } - - // DTOs (shared with ApiClient) - private record CollectionRunsResponse(List Runs, int Count); - private record CollectionRunDto( - string RunId, string Status, string StartedAt, - string? FinishedAt, int? TotalSnapshots, int? TotalErrors); - private record CollectionDashboardStateDto( - string? LastRunId, string? LastRunStatus, string? LastFinishedAt, - int TotalSnapshots, int TotalErrors, List RecentErrors); - private record CollectionErrorDto( - string RunId, string SourceName, string ErrorKind, - string ErrorMessage, string? Ticker, string CreatedAt); -} diff --git a/src/dotnet/QuantEngine.Web/Client/Pages/NotFound.razor b/src/dotnet/QuantEngine.Web/Client/Pages/NotFound.razor deleted file mode 100644 index f72e0e1d..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Pages/NotFound.razor +++ /dev/null @@ -1,8 +0,0 @@ -@page "/not-found" -@layout MainLayout - - - - -

Not Found

-

Sorry, the content you are looking for does not exist.

\ No newline at end of file diff --git a/src/dotnet/QuantEngine.Web/Client/Pages/Operations.razor b/src/dotnet/QuantEngine.Web/Client/Pages/Operations.razor deleted file mode 100644 index 5c94800e..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Pages/Operations.razor +++ /dev/null @@ -1,121 +0,0 @@ -@page "/operations" -@attribute [Authorize] -@using QuantEngine.Core.Infrastructure -@inject HttpClient Http - -QuantEngine - Operations - -Operational Report -Temp/operational_report.json만 읽는 운영 고정 화면입니다. - - - - - Schema - @SchemaVersion - - - - - Sections - @SectionCountLabel - - - - - Source - @SourceJson - - - - - Generated - @GeneratedAt - - - - - - @foreach (var section in HighlightSections) - { - - - @(section.Name) - @(section.Title) - @(section.Preview) - - - } - - - - Report Health - - Status: @HealthLabel - Path: @ReportPath - Sections rendered: @RenderedSectionCountLabel - - - - - Sections - @if (Sections.Count == 0) - { - DATA_MISSING: operational_report.json에 표시할 섹션이 없습니다. - } - else - { - - - Name - Title - Preview - - - @context.Name - @context.Title - @context.Preview - - - } - - -@code { - private readonly List Sections = new(); - private readonly List HighlightSections = new(); - private string SchemaVersion = "n/a"; - private string SourceJson = "n/a"; - private string GeneratedAt = "n/a"; - private string SectionCountLabel = "0"; - private string RenderedSectionCountLabel = "0"; - private string HealthLabel = "DATA_MISSING"; - private string ReportPath = "n/a"; - - protected override async Task OnInitializedAsync() - { - try - { - var report = await Http.GetFromJsonAsync("api/operational-report"); - if (report != null) - { - SchemaVersion = report.SchemaVersion; - SourceJson = report.SourceJson; - GeneratedAt = report.GeneratedAt; - - Sections.Clear(); - Sections.AddRange(report.Sections); - - HighlightSections.Clear(); - HighlightSections.AddRange(Sections.Take(4)); - - SectionCountLabel = report.SectionCount.ToString(); - RenderedSectionCountLabel = Sections.Count.ToString(); - HealthLabel = Sections.Count > 0 ? "PASS" : "DATA_MISSING"; - } - } - catch - { - HealthLabel = "DATA_MISSING"; - } - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Pages/Portfolio.razor b/src/dotnet/QuantEngine.Web/Client/Pages/Portfolio.razor deleted file mode 100644 index da5b6353..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Pages/Portfolio.razor +++ /dev/null @@ -1,238 +0,0 @@ -@page "/portfolio" -@attribute [Authorize] -@inject HttpClient Http - -QuantEngine - 포트폴리오 - - -
- 포트폴리오 - 자산 구성 및 성과 분석 -
- - - - - - 총 평가액 - ₩125.5M - +3.2% (이번 달) - - - - - - 보유 종목 - 12개 - 주식 및 펀드 - - - - - - 수익률 - +8.5% - 연간 기준 - - - - - - 위험도 - 중간 - - Moderate - - - - - - - - - - 자산 구성 - - - - 종목/펀드명 - 수량 - 현재가 - 평가액 - 수익률 - 비율 - - - -
- @context.Name[0] -
- @context.Name - @context.Ticker -
-
-
- - @context.Quantity.ToString("N0") - - - ₩@context.CurrentPrice.ToString("N0") - - - ₩@context.Value.ToString("N0") - - - - @(context.ReturnRate >= 0 ? "+" : "")@context.ReturnRate.ToString("F1")% - - - - @context.Ratio.ToString("F1")% - -
-
-
-
- - - - 자산 분류 - - - @foreach (var category in AssetCategories) - { -
-
- @category.Name - @category.Percentage% -
- -
- } -
-
-
-
- - - - 거래 이력 - - @if (TradingHistory.Count == 0) - { - 거래 이력이 없습니다. - } - else - { - - - 일자 - 종목 - 구분 - 수량 - 단가 - 금액 - 수수료 - - - - @context.Date.ToString("yyyy-MM-dd") - - - @context.Ticker - - - - @context.Type - - - - @context.Quantity - - - ₩@context.Price.ToString("N0") - - - ₩@context.Amount.ToString("N0") - - - ₩@context.Fee.ToString("N0") - - - - } - - -@code { - private List _assets = new(); - private List AssetCategories = new(); - private List TradingHistory = new(); - - protected override async Task OnInitializedAsync() - { - await LoadAssets(); - } - - private async Task LoadAssets() - { - _assets = new List - { - new AssetModel { Name = "삼성전자", Ticker = "005930", Quantity = 50, CurrentPrice = 70000, Value = 3500000, ReturnRate = 5.2M, Ratio = 28.0M }, - new AssetModel { Name = "LG화학", Ticker = "051910", Quantity = 30, CurrentPrice = 820000, Value = 24600000, ReturnRate = -2.1M, Ratio = 19.6M }, - new AssetModel { Name = "현대차", Ticker = "005380", Quantity = 40, CurrentPrice = 245000, Value = 9800000, ReturnRate = 8.5M, Ratio = 7.8M }, - new AssetModel { Name = "SK하이닉스", Ticker = "000660", Quantity = 25, CurrentPrice = 105000, Value = 2625000, ReturnRate = 12.3M, Ratio = 2.1M }, - new AssetModel { Name = "삼성중공업", Ticker = "010140", Quantity = 60, CurrentPrice = 85000, Value = 5100000, ReturnRate = 3.7M, Ratio = 4.1M }, - new AssetModel { Name = "포스코", Ticker = "005490", Quantity = 20, CurrentPrice = 75000, Value = 1500000, ReturnRate = -5.2M, Ratio = 1.2M }, - }; - - AssetCategories = new List - { - new CategoryModel { Name = "대형주", Percentage = 45, Color = Color.Primary }, - new CategoryModel { Name = "중형주", Percentage = 30, Color = Color.Secondary }, - new CategoryModel { Name = "소형주", Percentage = 15, Color = Color.Info }, - new CategoryModel { Name = "채권/현금", Percentage = 10, Color = Color.Success } - }; - - TradingHistory = new List - { - new TradeModel { Date = DateTime.Now.AddDays(-5), Ticker = "005930", Type = "매수", Quantity = 10, Price = 68000, Amount = 680000, Fee = 1360 }, - new TradeModel { Date = DateTime.Now.AddDays(-10), Ticker = "051910", Type = "매도", Quantity = 5, Price = 850000, Amount = 4250000, Fee = 8500 }, - new TradeModel { Date = DateTime.Now.AddDays(-15), Ticker = "005380", Type = "매수", Quantity = 20, Price = 240000, Amount = 4800000, Fee = 9600 }, - }; - - await Task.CompletedTask; - } - - private class AssetModel - { - public string Name { get; set; } - public string Ticker { get; set; } - public int Quantity { get; set; } - public decimal CurrentPrice { get; set; } - public decimal Value { get; set; } - public decimal ReturnRate { get; set; } - public decimal Ratio { get; set; } - } - - private class CategoryModel - { - public string Name { get; set; } - public int Percentage { get; set; } - public Color Color { get; set; } - } - - private class TradeModel - { - public DateTime Date { get; set; } - public string Ticker { get; set; } - public string Type { get; set; } - public int Quantity { get; set; } - public decimal Price { get; set; } - public decimal Amount { get; set; } - public decimal Fee { get; set; } - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Pages/Users.razor b/src/dotnet/QuantEngine.Web/Client/Pages/Users.razor deleted file mode 100644 index 128bc098..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Pages/Users.razor +++ /dev/null @@ -1,268 +0,0 @@ -@page "/users" -@attribute [Authorize] -@using MudBlazor -@inject HttpClient Http -@inject ISnackbar Snackbar -@inject IDialogService DialogService - -QuantEngine - 사용자 관리 - - -
- 사용자 관리 - 시스템 사용자 및 권한 관리 -
- - -
- - - - 새 사용자 추가 - -
- - - - @if (_users.Count == 0) - { - 사용자가 없습니다. - } - else - { - - - 이름 - 역할 - 상태 - 생성일 - 수정일 - 작업 - - - -
- @context.Username[0].ToString().ToUpper() - @context.Username -
-
- - - @context.Role - - - - - @(context.IsActive ? "활성" : "비활성") - - - - @FormatDate(context.CreatedAt) - - - @FormatDate(context.UpdatedAt) - - - 편집 - 삭제 - -
-
- } -
- - - - - - - @(_isEditMode ? "사용자 편집" : "새 사용자 추가") - - - - - - - - - - Admin (관리자) - Operator (운영자) - Viewer (조회자) - - - @if (_isEditMode) - { - - } - - - - 취소 - 저장 - - - -@code { - private List _users = new(); - private string SearchQuery = ""; - private bool _dialogVisible; - private bool _isEditMode; - private MudForm _form = new(); - private UserFormModel _formModel = new(); - private DialogOptions _dialogOptions = new() { MaxWidth = MaxWidth.Small, FullWidth = true, CloseButton = true }; - - private IEnumerable FilteredUsers - { - get => string.IsNullOrEmpty(SearchQuery) - ? _users - : _users.Where(u => u.Username.Contains(SearchQuery, StringComparison.OrdinalIgnoreCase)); - } - - protected override async Task OnInitializedAsync() - { - await LoadUsers(); - } - - private async Task LoadUsers() - { - try - { - // BaseAddress is set to HostEnvironment.BaseAddress by DI in Client/Program.cs. - // Never override it with a hardcoded port. - var res = await Http.GetFromJsonAsync>("api/users"); - if (res != null) - { - _users = res; - } - } - catch (Exception ex) - { - Snackbar.Add($"사용자 목록 로드 실패: {ex.Message}", Severity.Error); - } - } - - private void OpenAddUserDialog() - { - _isEditMode = false; - _formModel = new UserFormModel { Role = "Viewer", IsActive = true }; - _dialogVisible = true; - } - - private void EditUser(UserDto user) - { - _isEditMode = true; - _formModel = new UserFormModel - { - Username = user.Username, - Role = user.Role, - IsActive = user.IsActive, - Password = "" // Clear password field for security - }; - _dialogVisible = true; - } - - private async Task DeleteUser(UserDto user) - { - bool? result = await DialogService.ShowMessageBoxAsync( - "사용자 삭제", - $"정말로 사용자 '{user.Username}' 계정을 비활성화하시겠습니까?", - yesText: "비활성화", cancelText: "취소"); - - if (result == true) - { - try - { - var response = await Http.DeleteAsync($"api/users?username={user.Username}"); - if (response.IsSuccessStatusCode) - { - Snackbar.Add("사용자 계정이 비활성화되었습니다.", Severity.Success); - await LoadUsers(); - } - else - { - Snackbar.Add("계정 비활성화 작업에 실패했습니다.", Severity.Error); - } - } - catch (Exception ex) - { - Snackbar.Add($"API 에러: {ex.Message}", Severity.Error); - } - } - } - - private void CloseDialog() - { - _dialogVisible = false; - } - - private async Task SaveUser() - { - await _form.Validate(); - if (!_form.IsValid) return; - - try - { - HttpResponseMessage response; - if (_isEditMode) - { - response = await Http.PutAsJsonAsync("api/users", _formModel); - } - else - { - response = await Http.PostAsJsonAsync("api/users", _formModel); - } - - if (response.IsSuccessStatusCode) - { - Snackbar.Add("사용자 정보가 성공적으로 저장되었습니다.", Severity.Success); - _dialogVisible = false; - await LoadUsers(); - } - else - { - var error = await response.Content.ReadAsStringAsync(); - Snackbar.Add($"저장 실패: {error}", Severity.Error); - } - } - catch (Exception ex) - { - Snackbar.Add($"API 오류 발생: {ex.Message}", Severity.Error); - } - } - - private string FormatDate(string isoString) - { - if (string.IsNullOrWhiteSpace(isoString)) return "-"; - if (DateTime.TryParse(isoString, out var dt)) - { - return dt.ToLocalTime().ToString("yyyy-MM-dd HH:mm"); - } - return isoString; - } - - public class UserDto - { - public string Username { get; set; } = string.Empty; - public string Role { get; set; } = string.Empty; - public bool IsActive { get; set; } - public string CreatedAt { get; set; } = string.Empty; - public string UpdatedAt { get; set; } = string.Empty; - } - - public class UserFormModel - { - public string Username { get; set; } = string.Empty; - public string Password { get; set; } = string.Empty; - public string Role { get; set; } = "Viewer"; - public bool IsActive { get; set; } = true; - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Program.cs b/src/dotnet/QuantEngine.Web/Client/Program.cs deleted file mode 100644 index 2cb2a97c..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Program.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Microsoft.AspNetCore.Components.WebAssembly.Hosting; -using Microsoft.AspNetCore.Components.Authorization; -using QuantEngine.Web.Client.Services; -using QuantEngine.Web.Client.Infrastructure; -using MudBlazor.Services; - -var builder = WebAssemblyHostBuilder.CreateDefault(args); - -// Register LocalStorage for cross-platform session persistence -builder.Services.AddScoped(); - -// App State Service (RBAC & global state management) -builder.Services.AddScoped(); - -// Authentication setup in WebAssembly client -builder.Services.AddAuthorizationCore(); -builder.Services.AddCascadingAuthenticationState(); -builder.Services.AddScoped(); - -// MudBlazor Services (CRITICAL: Required for Interactive WebAssembly) -builder.Services.AddMudServices(); - -// HttpClient register (API-First standard) -builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); -builder.Services.AddScoped(); - -await builder.Build().RunAsync(); diff --git a/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj b/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj deleted file mode 100644 index bc3d0642..00000000 --- a/src/dotnet/QuantEngine.Web/Client/QuantEngine.Web.Client.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - net10.0 - enable - enable - true - Default - - - - - - - - - - - - - - diff --git a/src/dotnet/QuantEngine.Web/Client/RedirectToLogin.razor b/src/dotnet/QuantEngine.Web/Client/RedirectToLogin.razor deleted file mode 100644 index ab9645fc..00000000 --- a/src/dotnet/QuantEngine.Web/Client/RedirectToLogin.razor +++ /dev/null @@ -1,8 +0,0 @@ -@inject NavigationManager NavigationManager - -@code { - protected override void OnInitialized() - { - NavigationManager.NavigateTo("login"); - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Services/ApiClient.cs b/src/dotnet/QuantEngine.Web/Client/Services/ApiClient.cs deleted file mode 100644 index d6753c95..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Services/ApiClient.cs +++ /dev/null @@ -1,221 +0,0 @@ -using System.Net.Http.Json; -using System.Text.Json.Serialization; -using QuantEngine.Core.Interfaces; - -namespace QuantEngine.Web.Client.Services; - -public class ApiClient -{ - private readonly HttpClient _http; - private readonly ILogger _logger; - public ApiClient(HttpClient http, ILogger logger) - { - _http = http; - // BaseAddress is set by the DI registration in Client/Program.cs via - // builder.HostEnvironment.BaseAddress — never hardcode a port here. - if (_http.BaseAddress == null) - { - throw new InvalidOperationException( - "ApiClient: HttpClient.BaseAddress is null. " + - "Ensure the HttpClient is registered with HostEnvironment.BaseAddress in Client/Program.cs."); - } - _logger = logger; - } - - // Collection API Methods - - public async Task GetCollectionStateAsync() - { - try - { - return await _http.GetFromJsonAsync("api/collection/state"); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error fetching collection state"); - return null; - } - } - - public async Task GetCollectionRunsAsync(int limit = 20) - { - try - { - return await _http.GetFromJsonAsync($"api/collection/runs?limit={limit}"); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error fetching collection runs"); - return null; - } - } - - public async Task GetCollectionSnapshotsAsync(string runId) - { - try - { - return await _http.GetFromJsonAsync($"api/collection/runs/{runId}/snapshots"); - } - catch (Exception ex) - { - _logger.LogError(ex, $"Error fetching snapshots for run {runId}"); - return null; - } - } - - public async Task GetCollectionErrorsAsync(string runId, int limit = 50) - { - try - { - return await _http.GetFromJsonAsync($"api/collection/runs/{runId}/errors?limit={limit}"); - } - catch (Exception ex) - { - _logger.LogError(ex, $"Error fetching errors for run {runId}"); - return null; - } - } - - public async Task StartCollectionRunAsync() - { - try - { - var response = await _http.PostAsJsonAsync("api/collection/run", new { }); - if (response.IsSuccessStatusCode) - { - return await response.Content.ReadFromJsonAsync(); - } - return null; - } - catch (Exception ex) - { - _logger.LogError(ex, "Error starting collection run"); - return null; - } - } -} - -// DTOs - -public class CollectionDashboardStateDto -{ - [JsonPropertyName("lastRunId")] - public string? LastRunId { get; set; } - - [JsonPropertyName("lastRunStatus")] - public string? LastRunStatus { get; set; } - - [JsonPropertyName("lastFinishedAt")] - public string? LastFinishedAt { get; set; } - - [JsonPropertyName("totalSnapshots")] - public int TotalSnapshots { get; set; } - - [JsonPropertyName("totalErrors")] - public int TotalErrors { get; set; } - - [JsonPropertyName("recentErrors")] - public List RecentErrors { get; set; } = new(); -} - -public class CollectionRunDto -{ - [JsonPropertyName("runId")] - public string RunId { get; set; } = ""; - - [JsonPropertyName("status")] - public string Status { get; set; } = ""; - - [JsonPropertyName("startedAt")] - public string StartedAt { get; set; } = ""; - - [JsonPropertyName("finishedAt")] - public string? FinishedAt { get; set; } - - [JsonPropertyName("totalSnapshots")] - public int? TotalSnapshots { get; set; } - - [JsonPropertyName("totalErrors")] - public int? TotalErrors { get; set; } -} - -public class CollectionSnapshotDto -{ - [JsonPropertyName("runId")] - public string RunId { get; set; } = ""; - - [JsonPropertyName("datasetName")] - public string DatasetName { get; set; } = ""; - - [JsonPropertyName("ticker")] - public string Ticker { get; set; } = ""; - - [JsonPropertyName("sourceName")] - public string SourceName { get; set; } = ""; - - [JsonPropertyName("capturedAt")] - public string CapturedAt { get; set; } = ""; -} - -public class CollectionErrorDto -{ - [JsonPropertyName("runId")] - public string RunId { get; set; } = ""; - - [JsonPropertyName("sourceName")] - public string SourceName { get; set; } = ""; - - [JsonPropertyName("errorKind")] - public string ErrorKind { get; set; } = ""; - - [JsonPropertyName("errorMessage")] - public string ErrorMessage { get; set; } = ""; - - [JsonPropertyName("ticker")] - public string Ticker { get; set; } = ""; -} - -public class CollectionRunsResponse -{ - [JsonPropertyName("runs")] - public List Runs { get; set; } = new(); - - [JsonPropertyName("count")] - public int Count { get; set; } -} - -public class CollectionRunSnapshotsResponse -{ - [JsonPropertyName("runId")] - public string RunId { get; set; } = ""; - - [JsonPropertyName("snapshots")] - public List Snapshots { get; set; } = new(); - - [JsonPropertyName("count")] - public int Count { get; set; } -} - -public class CollectionRunErrorsResponse -{ - [JsonPropertyName("runId")] - public string RunId { get; set; } = ""; - - [JsonPropertyName("errors")] - public List Errors { get; set; } = new(); - - [JsonPropertyName("count")] - public int Count { get; set; } -} - -public class CollectionRunStartResponse -{ - [JsonPropertyName("runId")] - public string RunId { get; set; } = ""; - - [JsonPropertyName("status")] - public string Status { get; set; } = ""; - - [JsonPropertyName("startedAt")] - public string StartedAt { get; set; } = ""; -} diff --git a/src/dotnet/QuantEngine.Web/Client/Services/AppStateService.cs b/src/dotnet/QuantEngine.Web/Client/Services/AppStateService.cs deleted file mode 100644 index 0c54372a..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Services/AppStateService.cs +++ /dev/null @@ -1,142 +0,0 @@ -namespace QuantEngine.Web.Client.Services; - -public class AppStateService -{ - private UserContext _currentUser; - private List _userRoles = new(); - private bool _isInitialized = false; - - public event Action OnStateChanged; - - public UserContext CurrentUser - { - get => _currentUser; - set - { - _currentUser = value; - NotifyStateChanged(); - } - } - - public List UserRoles - { - get => _userRoles; - set - { - _userRoles = value; - NotifyStateChanged(); - } - } - - public bool IsInitialized - { - get => _isInitialized; - set - { - _isInitialized = value; - NotifyStateChanged(); - } - } - - public AppStateService() - { - _currentUser = new UserContext(); - _userRoles = new List(); - } - - /// - /// Initialize app state from current user context - /// - public async Task InitializeAsync(HttpClient httpClient) - { - try - { - var response = await httpClient.GetAsync("api/auth/user"); - if (response.IsSuccessStatusCode) - { - var content = await response.Content.ReadAsStringAsync(); - // Parse user info (implement as needed) - CurrentUser = new UserContext { Name = "Admin", Email = "admin@quantengine.local" }; - UserRoles = new List { "Admin" }; - } - } - catch - { - // Handle error - } - finally - { - IsInitialized = true; - } - } - - /// - /// Check if user has specific role (RBAC) - /// - public bool HasRole(string role) - { - return UserRoles.Contains(role); - } - - /// - /// Check if user has any of the specified roles - /// - public bool HasAnyRole(params string[] roles) - { - return roles.Any(r => UserRoles.Contains(r)); - } - - /// - /// Check if user has all specified roles - /// - public bool HasAllRoles(params string[] roles) - { - return roles.All(r => UserRoles.Contains(r)); - } - - /// - /// Clear user state - /// - public void Clear() - { - CurrentUser = new UserContext(); - UserRoles = new List(); - IsInitialized = false; - } - - private void NotifyStateChanged() => OnStateChanged?.Invoke(); -} - -/// -/// User context model -/// -public class UserContext -{ - public string Id { get; set; } = ""; - public string Name { get; set; } = ""; - public string Email { get; set; } = ""; - public DateTime CreatedAt { get; set; } = DateTime.Now; - public bool IsActive { get; set; } = true; -} - -/// -/// API Response wrapper -/// -public class ApiResponse -{ - public bool Success { get; set; } - public string Message { get; set; } - public T Data { get; set; } -} - -/// -/// Pagination model -/// -public class PaginatedResponse -{ - public List Items { get; set; } - public int PageNumber { get; set; } - public int PageSize { get; set; } - public int TotalCount { get; set; } - public int TotalPages => (TotalCount + PageSize - 1) / PageSize; -} diff --git a/src/dotnet/QuantEngine.Web/Client/Services/LocalStorageService.cs b/src/dotnet/QuantEngine.Web/Client/Services/LocalStorageService.cs deleted file mode 100644 index bd175f4d..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Services/LocalStorageService.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Microsoft.JSInterop; -using System.Text.Json; - -namespace QuantEngine.Web.Client.Services -{ - public class LocalStorageService - { - private readonly IJSRuntime _js; - - public LocalStorageService(IJSRuntime js) - { - _js = js; - } - - public async Task SetAsync(string key, T value) - { - var json = JsonSerializer.Serialize(value); - await _js.InvokeVoidAsync("localStorage.setItem", key, json); - } - - public async Task GetAsync(string key) - { - try - { - var json = await _js.InvokeAsync("localStorage.getItem", key); - if (string.IsNullOrEmpty(json)) - { - return default; - } - return JsonSerializer.Deserialize(json); - } - catch - { - return default; - } - } - - public async Task DeleteAsync(string key) - { - await _js.InvokeVoidAsync("localStorage.removeItem", key); - } - } -} diff --git a/src/dotnet/QuantEngine.Web/Client/Theme/AppTheme.cs b/src/dotnet/QuantEngine.Web/Client/Theme/AppTheme.cs deleted file mode 100644 index 17b7eeaa..00000000 --- a/src/dotnet/QuantEngine.Web/Client/Theme/AppTheme.cs +++ /dev/null @@ -1,158 +0,0 @@ -using MudBlazor; - -namespace QuantEngine.Web.Client.Theme; - -public static class AppTheme -{ - public static MudTheme LightTheme => new() - { - PaletteLight = new PaletteLight - { - Primary = "#3f51b5", - Secondary = "#f50057", - Success = "#4caf50", - Warning = "#ff9800", - Error = "#f44336", - Info = "#2196f3", - Dark = "#121212", - Background = "#fafafa", - Surface = "#ffffff", - TextPrimary = "#212121", - TextSecondary = "rgba(0,0,0,0.6)", - DrawerBackground = "#ffffff", - DrawerText = "#212121", - AppbarBackground = "#3f51b5", - AppbarText = "#ffffff", - ActionDefault = "#c0c0c0", - ActionDisabled = "#f5f5f5", - ActionDisabledBackground = "rgba(0,0,0,0.12)", - Divider = "#e0e0e0", - DividerLight = "#f5f5f5", - TableLines = "#e0e0e0", - LinesDefault = "#e0e0e0", - LinesInputs = "#bdbdbd", - TextDisabled = "rgba(0,0,0,0.38)" - }, - Typography = new Typography - { - Default = new DefaultTypography - { - FontFamily = new[] { "Roboto", "sans-serif" }, - FontSize = "1rem", - FontWeight = "400", - LineHeight = "1.5", - LetterSpacing = "0.5px" - }, - H1 = new H1Typography - { - FontSize = "6rem", - FontWeight = "300", - LineHeight = "1.167", - LetterSpacing = "-0.015625em" - }, - H2 = new H2Typography - { - FontSize = "3.75rem", - FontWeight = "300", - LineHeight = "1.2", - LetterSpacing = "-0.0083333333em" - }, - H3 = new H3Typography - { - FontSize = "3rem", - FontWeight = "400", - LineHeight = "1.167", - LetterSpacing = "0em" - }, - H4 = new H4Typography - { - FontSize = "2.125rem", - FontWeight = "500", - LineHeight = "1.235", - LetterSpacing = "0.0125em" - }, - H5 = new H5Typography - { - FontSize = "1.5rem", - FontWeight = "500", - LineHeight = "1.334", - LetterSpacing = "0em" - }, - H6 = new H6Typography - { - FontSize = "1.25rem", - FontWeight = "600", - LineHeight = "1.6", - LetterSpacing = "0.0125em" - }, - Body1 = new Body1Typography - { - FontSize = "1rem", - FontWeight = "500", - LineHeight = "1.5", - LetterSpacing = "0.03125em" - }, - Body2 = new Body2Typography - { - FontSize = "0.875rem", - FontWeight = "400", - LineHeight = "1.43", - LetterSpacing = "0.0178571429em" - }, - Button = new ButtonTypography - { - FontSize = "0.875rem", - FontWeight = "600", - LineHeight = "1.75", - LetterSpacing = "0.0892857143em" - }, - Caption = new CaptionTypography - { - FontSize = "0.75rem", - FontWeight = "400", - LineHeight = "1.66", - LetterSpacing = "0.0333333333em" - } - }, - LayoutProperties = new LayoutProperties - { - DefaultBorderRadius = "4px", - DrawerWidthLeft = "256px", - DrawerWidthRight = "256px", - AppbarHeight = "64px", - } - }; - - public static MudTheme DarkTheme => new() - { - PaletteDark = new PaletteDark - { - Primary = "#bb86fc", - Secondary = "#03dac6", - Success = "#4caf50", - Warning = "#ff9800", - Error = "#cf6679", - Info = "#2196f3", - Dark = "#121212", - Background = "#121212", - Surface = "#1e1e1e", - TextPrimary = "#ffffff", - TextSecondary = "rgba(255,255,255,0.7)", - DrawerBackground = "#1e1e1e", - DrawerText = "#ffffff", - AppbarBackground = "#1f1f1f", - AppbarText = "#ffffff", - ActionDefault = "#3f3f3f", - ActionDisabled = "#1e1e1e", - ActionDisabledBackground = "rgba(255,255,255,0.12)", - Divider = "#37474f", - DividerLight = "#2c3e50", - TableLines = "#37474f", - LinesDefault = "#37474f", - LinesInputs = "#555555", - TextDisabled = "rgba(255,255,255,0.38)" - }, - Typography = LightTheme.Typography, - LayoutProperties = LightTheme.LayoutProperties - }; -} diff --git a/src/dotnet/QuantEngine.Web/Client/_Imports.razor b/src/dotnet/QuantEngine.Web/Client/_Imports.razor deleted file mode 100644 index fe60c8a7..00000000 --- a/src/dotnet/QuantEngine.Web/Client/_Imports.razor +++ /dev/null @@ -1,16 +0,0 @@ -@using System.Net.Http -@using System.Net.Http.Json -@using Microsoft.AspNetCore.Components.Forms -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Web -@using static Microsoft.AspNetCore.Components.Web.RenderMode -@using Microsoft.AspNetCore.Components.Web.Virtualization -@using Microsoft.JSInterop -@using MudBlazor -@using QuantEngine.Web.Client -@using QuantEngine.Web.Client.Pages -@using QuantEngine.Web.Client.Layout -@using QuantEngine.Web.Client.Infrastructure -@using QuantEngine.Web.Client.Services -@using Microsoft.AspNetCore.Components.Authorization -@using Microsoft.AspNetCore.Authorization diff --git a/src/dotnet/QuantEngine.Web/Client/app.css b/src/dotnet/QuantEngine.Web/Client/app.css deleted file mode 100644 index a743fccd..00000000 --- a/src/dotnet/QuantEngine.Web/Client/app.css +++ /dev/null @@ -1,297 +0,0 @@ -/* QuantEngine Global Styles */ - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -html, body { - height: 100%; -} - -body { - font-family: 'Roboto', sans-serif; - font-size: 14px; - font-weight: 400; - line-height: 1.5; - color: var(--mud-palette-text-primary, #212121); - background-color: var(--mud-palette-background, #fafafa); - transition: background-color 0.3s ease, color 0.3s ease; -} - -#app { - display: flex; - flex-direction: column; - height: 100%; -} - -/* Scrollbar Styling */ -::-webkit-scrollbar { - width: 8px; - height: 8px; -} - -::-webkit-scrollbar-track { - background: var(--mud-palette-surface, #ffffff); -} - -::-webkit-scrollbar-thumb { - background: var(--mud-palette-action-default, #c0c0c0); - border-radius: 4px; -} - -::-webkit-scrollbar-thumb:hover { - background: var(--mud-palette-primary, #3f51b5); -} - -/* Text Utilities */ -.text-primary { - color: var(--mud-palette-primary, #3f51b5); -} - -.text-secondary { - color: var(--mud-palette-secondary, #f50057); -} - -.text-success { - color: var(--mud-palette-success, #4caf50); -} - -.text-warning { - color: var(--mud-palette-warning, #ff9800); -} - -.text-error { - color: var(--mud-palette-error, #f44336); -} - -.text-muted { - color: var(--mud-palette-text-secondary, rgba(0,0,0,0.6)); -} - -/* Spacing Utilities */ -.mt-1 { margin-top: 0.25rem; } -.mt-2 { margin-top: 0.5rem; } -.mt-3 { margin-top: 1rem; } -.mt-4 { margin-top: 1.5rem; } -.mt-5 { margin-top: 3rem; } - -.mb-1 { margin-bottom: 0.25rem; } -.mb-2 { margin-bottom: 0.5rem; } -.mb-3 { margin-bottom: 1rem; } -.mb-4 { margin-bottom: 1.5rem; } -.mb-5 { margin-bottom: 3rem; } - -.mx-auto { margin-left: auto; margin-right: auto; } -.my-auto { margin-top: auto; margin-bottom: auto; } - -.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; } -.px-4 { padding-left: 1rem; padding-right: 1rem; } -.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; } -.py-4 { padding-top: 1rem; padding-bottom: 1rem; } - -/* Flex Utilities */ -.d-flex { - display: flex; -} - -.flex-column { - flex-direction: column; -} - -.align-items-center { - align-items: center; -} - -.justify-content-center { - justify-content: center; -} - -.justify-content-between { - justify-content: space-between; -} - -/* Gap Utilities */ -.gap-1 { gap: 0.25rem; } -.gap-2 { gap: 0.5rem; } -.gap-3 { gap: 1rem; } -.gap-4 { gap: 1.5rem; } - -/* Loading Skeleton */ -.skeleton { - background: linear-gradient( - 90deg, - var(--mud-palette-surface, #fff) 0%, - var(--mud-palette-divider, #e0e0e0) 50%, - var(--mud-palette-surface, #fff) 100% - ); - background-size: 200% 100%; - animation: loading 1.5s infinite; -} - -@keyframes loading { - 0% { - background-position: 200% 0; - } - 100% { - background-position: -200% 0; - } -} - -/* MudBlazor Overrides */ -.mud-appbar { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); -} - -.mud-drawer { - border-right: 1px solid var(--mud-palette-divider, #e0e0e0); -} - -.mud-drawer-content { - padding: 1rem; -} - -.mud-nav-link { - border-radius: 4px; - margin-bottom: 0.25rem; - transition: all 0.2s ease; -} - -.mud-nav-link:hover { - background-color: var(--mud-palette-action-default-hover, rgba(0, 0, 0, 0.04)); -} - -.mud-nav-link.mud-ripple-nav-link-active { - background-color: var(--mud-palette-primary-lighten, rgba(63, 81, 181, 0.1)); - color: var(--mud-palette-primary, #3f51b5); - font-weight: 600; -} - -.mud-card { - border: 1px solid var(--mud-palette-divider, #e0e0e0); - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); - transition: box-shadow 0.2s ease, transform 0.2s ease; -} - -.mud-card:hover { - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - transform: translateY(-2px); -} - -.mud-button { - text-transform: none; - font-weight: 500; - padding: 0.5rem 1rem; - border-radius: 4px; -} - -.mud-button-root:disabled { - opacity: 0.6; -} - -/* Forms */ -.mud-input-control { - margin-bottom: 1rem; -} - -.mud-input-label { - font-weight: 500; -} - -.mud-input { - border-radius: 4px; -} - -.mud-input.mud-input-text { - background-color: var(--mud-palette-surface, #ffffff); -} - -/* Tables */ -.mud-table { - background-color: var(--mud-palette-surface, #ffffff); -} - -.mud-table-head { - background-color: var(--mud-palette-background, #fafafa); -} - -.mud-table-row:hover { - background-color: var(--mud-palette-action-default-hover, rgba(0, 0, 0, 0.04)); -} - -.mud-table-cell { - padding: 1rem; - border-color: var(--mud-palette-divider, #e0e0e0); -} - -/* Responsive */ -@media (max-width: 600px) { - body { - font-size: 13px; - } - - .mud-drawer { - width: 100% !important; - max-width: 90% !important; - } - - .mud-appbar { - height: 56px; - } - - .mud-table-cell { - padding: 0.75rem 0.5rem; - } -} - -/* Animation Classes */ -.fade-in { - animation: fadeIn 0.3s ease-in; -} - -@keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - -.slide-in { - animation: slideIn 0.3s ease-in; -} - -@keyframes slideIn { - from { - transform: translateY(10px); - opacity: 0; - } - to { - transform: translateY(0); - opacity: 1; - } -} - -/* Accessibility */ -@media (prefers-reduced-motion: reduce) { - * { - animation-duration: 0.01ms !important; - animation-iteration-count: 1 !important; - transition-duration: 0.01ms !important; - } -} - -/* Print Styles */ -@media print { - .mud-appbar, - .mud-drawer, - .no-print { - display: none !important; - } - - body { - background: white; - } -} diff --git a/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj b/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj index 3b1fba30..7cf44f87 100644 --- a/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj +++ b/src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj @@ -18,25 +18,10 @@ - - - - - - - - - - - - - - net10.0 enable enable - true diff --git a/src/dotnet/QuantEngine.Web/logs/quantengine-20260711.log b/src/dotnet/QuantEngine.Web/logs/quantengine-20260711.log deleted file mode 100644 index 54c4f439..00000000 --- a/src/dotnet/QuantEngine.Web/logs/quantengine-20260711.log +++ /dev/null @@ -1,18 +0,0 @@ -2026-07-11 17:02:14.217 +09:00 [FTL] Application terminated unexpectedly -System.AggregateException: Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: QuantEngine.Core.Interfaces.IKisApiClient Lifetime: Scoped ImplementationType: QuantEngine.Infrastructure.Services.KisApiClient': Unable to resolve service for type 'System.Net.Http.HttpClient' while attempting to activate 'QuantEngine.Infrastructure.Services.KisApiClient'.) - ---> System.InvalidOperationException: Error while validating the service descriptor 'ServiceType: QuantEngine.Core.Interfaces.IKisApiClient Lifetime: Scoped ImplementationType: QuantEngine.Infrastructure.Services.KisApiClient': Unable to resolve service for type 'System.Net.Http.HttpClient' while attempting to activate 'QuantEngine.Infrastructure.Services.KisApiClient'. - ---> System.InvalidOperationException: Unable to resolve service for type 'System.Net.Http.HttpClient' while attempting to activate 'QuantEngine.Infrastructure.Services.KisApiClient'. - at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateArgumentCallSites(ServiceIdentifier serviceIdentifier, Type implementationType, CallSiteChain callSiteChain, ParameterInfo[] parameters, Boolean throwIfCallSiteNotFound) - at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateConstructorCallSite(ResultCache lifetime, ServiceIdentifier serviceIdentifier, Type implementationType, CallSiteChain callSiteChain) - at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateExact(ServiceDescriptor descriptor, ServiceIdentifier serviceIdentifier, CallSiteChain callSiteChain, Int32 slot) - at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.GetCallSite(ServiceDescriptor serviceDescriptor, CallSiteChain callSiteChain) - at Microsoft.Extensions.DependencyInjection.ServiceProvider.ValidateService(ServiceDescriptor descriptor) - --- End of inner exception stack trace --- - at Microsoft.Extensions.DependencyInjection.ServiceProvider.ValidateService(ServiceDescriptor descriptor) - at Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(ICollection`1 serviceDescriptors, ServiceProviderOptions options) - --- End of inner exception stack trace --- - at Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(ICollection`1 serviceDescriptors, ServiceProviderOptions options) - at Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services, ServiceProviderOptions options) - at Microsoft.Extensions.Hosting.HostApplicationBuilder.Build() - at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build() - at Program.
$(String[] args) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Program.cs:line 99 diff --git a/src/dotnet/QuantEngine.Web/logs/quantengine-20260711_001.log b/src/dotnet/QuantEngine.Web/logs/quantengine-20260711_001.log new file mode 100644 index 00000000..c0c0a307 --- /dev/null +++ b/src/dotnet/QuantEngine.Web/logs/quantengine-20260711_001.log @@ -0,0 +1,381 @@ +2026-07-11 18:41:46.431 +09:00 [INF] Registered 10 endpoints in 164 milliseconds. +2026-07-11 18:41:46.473 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-11 18:41:50.463 +09:00 [ERR] ❌ Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:41:50.464 +09:00 [ERR] ❌ Database migration failed +System.InvalidOperationException: Database migration failed: 28P01: password authentication failed for user "quantengine_app" + at QuantEngine.Infrastructure.Data.DbMigrator.Migrate() in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Data\DbMigrator.cs:line 39 +2026-07-11 18:41:50.476 +09:00 [WRN] Database initialization warning (development only): Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:41:50.498 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-11 18:42:27.125 +09:00 [INF] Registered 10 endpoints in 178 milliseconds. +2026-07-11 18:42:27.164 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-11 18:42:31.234 +09:00 [ERR] ❌ Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:42:31.234 +09:00 [ERR] ❌ Database migration failed +System.InvalidOperationException: Database migration failed: 28P01: password authentication failed for user "quantengine_app" + at QuantEngine.Infrastructure.Data.DbMigrator.Migrate() in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Data\DbMigrator.cs:line 39 +2026-07-11 18:42:31.240 +09:00 [WRN] Database initialization warning (development only): Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:42:31.281 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-11 18:42:35.322 +09:00 [WRN] Hangfire setup failed: Cannot resolve scoped service 'QuantEngine.Web.Services.SchedulerService' from root provider. +2026-07-11 18:42:35.536 +09:00 [ERR] Hosting failed to start +System.IO.IOException: Failed to bind to address http://127.0.0.1:5265: address already in use. + ---> Microsoft.AspNetCore.Connections.AddressInUseException: 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + ---> System.Net.Sockets.SocketException (10048): 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName) + at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) + at System.Net.Sockets.Socket.Bind(EndPoint localEP) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<g__OnBind|0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__14_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) +2026-07-11 18:42:35.543 +09:00 [FTL] Application terminated unexpectedly +System.IO.IOException: Failed to bind to address http://127.0.0.1:5265: address already in use. + ---> Microsoft.AspNetCore.Connections.AddressInUseException: 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + ---> System.Net.Sockets.SocketException (10048): 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName) + at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) + at System.Net.Sockets.Socket.Bind(EndPoint localEP) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<g__OnBind|0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__14_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) + at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) + at Program.
$(String[] args) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Program.cs:line 172 +2026-07-11 18:47:26.979 +09:00 [INF] Registered 10 endpoints in 173 milliseconds. +2026-07-11 18:47:27.018 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-11 18:47:31.144 +09:00 [ERR] ❌ Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:47:31.144 +09:00 [ERR] ❌ Database migration failed +System.InvalidOperationException: Database migration failed: 28P01: password authentication failed for user "quantengine_app" + at QuantEngine.Infrastructure.Data.DbMigrator.Migrate() in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Data\DbMigrator.cs:line 39 +2026-07-11 18:47:31.149 +09:00 [WRN] Database initialization warning (development only): Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:47:31.177 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-11 18:47:58.996 +09:00 [INF] Registered 10 endpoints in 163 milliseconds. +2026-07-11 18:47:59.034 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-11 18:48:03.135 +09:00 [ERR] ❌ Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:48:03.136 +09:00 [ERR] ❌ Database migration failed +System.InvalidOperationException: Database migration failed: 28P01: password authentication failed for user "quantengine_app" + at QuantEngine.Infrastructure.Data.DbMigrator.Migrate() in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Data\DbMigrator.cs:line 39 +2026-07-11 18:48:03.142 +09:00 [WRN] Database initialization warning (development only): Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:48:03.166 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-11 18:48:07.181 +09:00 [WRN] Hangfire setup failed: Cannot resolve scoped service 'QuantEngine.Web.Services.SchedulerService' from root provider. +2026-07-11 18:48:07.453 +09:00 [ERR] Hosting failed to start +System.IO.IOException: Failed to bind to address http://127.0.0.1:5265: address already in use. + ---> Microsoft.AspNetCore.Connections.AddressInUseException: 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + ---> System.Net.Sockets.SocketException (10048): 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName) + at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) + at System.Net.Sockets.Socket.Bind(EndPoint localEP) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<g__OnBind|0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__14_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) +2026-07-11 18:48:07.460 +09:00 [FTL] Application terminated unexpectedly +System.IO.IOException: Failed to bind to address http://127.0.0.1:5265: address already in use. + ---> Microsoft.AspNetCore.Connections.AddressInUseException: 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + ---> System.Net.Sockets.SocketException (10048): 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName) + at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) + at System.Net.Sockets.Socket.Bind(EndPoint localEP) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<g__OnBind|0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__14_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) + at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) + at Program.
$(String[] args) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Program.cs:line 172 +2026-07-11 18:49:42.328 +09:00 [INF] Registered 10 endpoints in 160 milliseconds. +2026-07-11 18:49:42.368 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-11 18:49:46.632 +09:00 [ERR] ❌ Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:49:46.632 +09:00 [ERR] ❌ Database migration failed +System.InvalidOperationException: Database migration failed: 28P01: password authentication failed for user "quantengine_app" + at QuantEngine.Infrastructure.Data.DbMigrator.Migrate() in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Data\DbMigrator.cs:line 39 +2026-07-11 18:49:46.635 +09:00 [WRN] Database initialization warning (development only): Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:49:46.655 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-11 18:49:50.782 +09:00 [WRN] Hangfire setup failed: Cannot resolve scoped service 'QuantEngine.Web.Services.SchedulerService' from root provider. +2026-07-11 18:49:50.940 +09:00 [INF] Now listening on: http://localhost:5265 +2026-07-11 18:49:50.946 +09:00 [INF] Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage' +2026-07-11 18:49:50.946 +09:00 [INF] Using the following options for Hangfire Server: + Worker count: 32 + Listening queues: 'default' + Shutdown timeout: 00:00:15 + Schedule polling interval: 00:00:15 +2026-07-11 18:49:50.966 +09:00 [INF] Application started. Press Ctrl+C to shut down. +2026-07-11 18:49:50.966 +09:00 [INF] Hosting environment: Development +2026-07-11 18:49:50.966 +09:00 [INF] Content root path: C:\Temp\data_feed\src\dotnet\QuantEngine.Web +2026-07-11 18:49:51.046 +09:00 [INF] Server kimjaehyun-note:18540:24fc9869 successfully announced in 77.2082 ms +2026-07-11 18:49:51.050 +09:00 [INF] Server kimjaehyun-note:18540:24fc9869 is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler... +2026-07-11 18:49:51.076 +09:00 [INF] Server kimjaehyun-note:18540:24fc9869 all the dispatchers started +2026-07-11 18:50:18.938 +09:00 [INF] Registered 10 endpoints in 161 milliseconds. +2026-07-11 18:50:18.977 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-11 18:50:23.249 +09:00 [ERR] ❌ Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:50:23.250 +09:00 [ERR] ❌ Database migration failed +System.InvalidOperationException: Database migration failed: 28P01: password authentication failed for user "quantengine_app" + at QuantEngine.Infrastructure.Data.DbMigrator.Migrate() in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Data\DbMigrator.cs:line 39 +2026-07-11 18:50:23.256 +09:00 [WRN] Database initialization warning (development only): Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:50:23.283 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-11 18:50:27.388 +09:00 [WRN] Hangfire setup failed: Cannot resolve scoped service 'QuantEngine.Web.Services.SchedulerService' from root provider. +2026-07-11 18:50:27.569 +09:00 [INF] Now listening on: http://localhost:5265 +2026-07-11 18:50:27.577 +09:00 [INF] Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage' +2026-07-11 18:50:27.577 +09:00 [INF] Using the following options for Hangfire Server: + Worker count: 32 + Listening queues: 'default' + Shutdown timeout: 00:00:15 + Schedule polling interval: 00:00:15 +2026-07-11 18:50:27.589 +09:00 [INF] Application started. Press Ctrl+C to shut down. +2026-07-11 18:50:27.590 +09:00 [INF] Hosting environment: Development +2026-07-11 18:50:27.590 +09:00 [INF] Content root path: C:\Temp\data_feed\src\dotnet\QuantEngine.Web +2026-07-11 18:50:27.646 +09:00 [INF] Server kimjaehyun-note:25888:2b65733c successfully announced in 54.5404 ms +2026-07-11 18:50:27.648 +09:00 [INF] Server kimjaehyun-note:25888:2b65733c is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler... +2026-07-11 18:50:27.667 +09:00 [INF] Server kimjaehyun-note:25888:2b65733c all the dispatchers started +2026-07-11 18:50:40.967 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-11 18:50:40.972 +09:00 [WRN] Failed to determine the https port for redirect. +2026-07-11 18:50:41.007 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-11 18:50:41.023 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-11 18:50:41.030 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-11 18:50:41.031 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-11 18:50:41.033 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-11 18:50:41.033 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-11 18:50:41.058 +09:00 [INF] Executed page /Account/Login in 32.7802ms +2026-07-11 18:50:41.059 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-11 18:50:41.060 +09:00 [INF] HTTP GET /Account/Login responded 200 in 88.7566 ms +2026-07-11 18:50:41.062 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 94.7893ms +2026-07-11 18:50:41.174 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - null null +2026-07-11 18:50:41.178 +09:00 [ERR] HTTP GET /Admin/Dashboard responded 500 in 4.0554 ms +System.InvalidOperationException: The AuthorizationPolicy named: 'AdminCookie' was not found. + at Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable`1 authorizeData, IEnumerable`1 policies) + at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) +2026-07-11 18:50:41.181 +09:00 [ERR] An unhandled exception has occurred while executing the request. +System.InvalidOperationException: The AuthorizationPolicy named: 'AdminCookie' was not found. + at Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable`1 authorizeData, IEnumerable`1 policies) + at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) +2026-07-11 18:50:41.185 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - 500 null text/plain; charset=utf-8 12.0749ms +2026-07-11 18:50:41.298 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-11 18:50:41.303 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-11 18:50:41.303 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-11 18:50:41.304 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-11 18:50:41.304 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-11 18:50:41.304 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-11 18:50:41.304 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-11 18:50:41.310 +09:00 [INF] Executed page /Account/Login in 6.8704ms +2026-07-11 18:50:41.310 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-11 18:50:41.310 +09:00 [INF] HTTP GET /Account/Login responded 200 in 12.5730 ms +2026-07-11 18:50:41.311 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 12.9475ms +2026-07-11 18:50:45.183 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - null null +2026-07-11 18:50:45.185 +09:00 [ERR] HTTP GET /Admin/Dashboard responded 500 in 1.8220 ms +System.InvalidOperationException: The AuthorizationPolicy named: 'AdminCookie' was not found. + at Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable`1 authorizeData, IEnumerable`1 policies) + at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) +2026-07-11 18:50:45.186 +09:00 [ERR] An unhandled exception has occurred while executing the request. +System.InvalidOperationException: The AuthorizationPolicy named: 'AdminCookie' was not found. + at Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable`1 authorizeData, IEnumerable`1 policies) + at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) +2026-07-11 18:50:45.186 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - 500 null text/plain; charset=utf-8 2.8989ms +2026-07-11 18:51:53.325 +09:00 [INF] Registered 10 endpoints in 159 milliseconds. +2026-07-11 18:51:53.369 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-11 18:51:57.672 +09:00 [ERR] ❌ Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:51:57.672 +09:00 [ERR] ❌ Database migration failed +System.InvalidOperationException: Database migration failed: 28P01: password authentication failed for user "quantengine_app" + at QuantEngine.Infrastructure.Data.DbMigrator.Migrate() in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Data\DbMigrator.cs:line 39 +2026-07-11 18:51:57.699 +09:00 [WRN] Database initialization warning (development only): Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-11 18:51:57.728 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-11 18:52:01.841 +09:00 [WRN] Hangfire setup failed: Cannot resolve scoped service 'QuantEngine.Web.Services.SchedulerService' from root provider. +2026-07-11 18:52:02.012 +09:00 [INF] Now listening on: http://localhost:5265 +2026-07-11 18:52:02.023 +09:00 [INF] Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage' +2026-07-11 18:52:02.024 +09:00 [INF] Using the following options for Hangfire Server: + Worker count: 32 + Listening queues: 'default' + Shutdown timeout: 00:00:15 + Schedule polling interval: 00:00:15 +2026-07-11 18:52:02.041 +09:00 [INF] Application started. Press Ctrl+C to shut down. +2026-07-11 18:52:02.041 +09:00 [INF] Hosting environment: Development +2026-07-11 18:52:02.041 +09:00 [INF] Content root path: C:\Temp\data_feed\src\dotnet\QuantEngine.Web +2026-07-11 18:52:02.106 +09:00 [INF] Server kimjaehyun-note:28380:a220bb7a successfully announced in 61.5885 ms +2026-07-11 18:52:02.108 +09:00 [INF] Server kimjaehyun-note:28380:a220bb7a is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler... +2026-07-11 18:52:02.115 +09:00 [INF] Server kimjaehyun-note:28380:a220bb7a all the dispatchers started +2026-07-11 18:52:13.775 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-11 18:52:13.780 +09:00 [WRN] Failed to determine the https port for redirect. +2026-07-11 18:52:13.833 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-11 18:52:13.849 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-11 18:52:13.855 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-11 18:52:13.856 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-11 18:52:13.858 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-11 18:52:13.859 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-11 18:52:13.883 +09:00 [INF] Executed page /Account/Login in 32.0627ms +2026-07-11 18:52:13.884 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-11 18:52:13.885 +09:00 [INF] HTTP GET /Account/Login responded 200 in 106.3802 ms +2026-07-11 18:52:13.887 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 112.9483ms +2026-07-11 18:52:14.003 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - null null +2026-07-11 18:52:14.011 +09:00 [INF] Authorization failed. These requirements were not met: +DenyAnonymousAuthorizationRequirement: Requires an authenticated user. +2026-07-11 18:52:14.013 +09:00 [INF] AuthenticationScheme: AdminCookie was challenged. +2026-07-11 18:52:14.013 +09:00 [INF] HTTP GET /Admin/Dashboard responded 302 in 10.4176 ms +2026-07-11 18:52:14.014 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - 302 0 null 11.3635ms +2026-07-11 18:52:14.120 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - null null +2026-07-11 18:52:14.124 +09:00 [INF] Authorization failed. These requirements were not met: +DenyAnonymousAuthorizationRequirement: Requires an authenticated user. +2026-07-11 18:52:14.124 +09:00 [INF] AuthenticationScheme: AdminCookie was challenged. +2026-07-11 18:52:14.125 +09:00 [INF] HTTP GET /Admin/Dashboard responded 302 in 4.4516 ms +2026-07-11 18:52:14.125 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - 302 0 null 4.7369ms +2026-07-11 18:52:14.308 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - null null +2026-07-11 18:52:14.309 +09:00 [INF] Authorization failed. These requirements were not met: +DenyAnonymousAuthorizationRequirement: Requires an authenticated user. +2026-07-11 18:52:14.310 +09:00 [INF] AuthenticationScheme: AdminCookie was challenged. +2026-07-11 18:52:14.310 +09:00 [INF] HTTP GET /Admin/Dashboard responded 302 in 1.4155 ms +2026-07-11 18:52:14.310 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - 302 0 null 1.7032ms +2026-07-11 18:52:14.410 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Users - null null +2026-07-11 18:52:14.411 +09:00 [INF] Authorization failed. These requirements were not met: +DenyAnonymousAuthorizationRequirement: Requires an authenticated user. +2026-07-11 18:52:14.411 +09:00 [INF] AuthenticationScheme: AdminCookie was challenged. +2026-07-11 18:52:14.411 +09:00 [INF] HTTP GET /Admin/Users responded 302 in 0.4739 ms +2026-07-11 18:52:14.411 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Users - 302 0 null 0.7314ms +2026-07-11 18:52:14.523 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Collection - null null +2026-07-11 18:52:14.523 +09:00 [INF] Authorization failed. These requirements were not met: +DenyAnonymousAuthorizationRequirement: Requires an authenticated user. +2026-07-11 18:52:14.523 +09:00 [INF] AuthenticationScheme: AdminCookie was challenged. +2026-07-11 18:52:14.524 +09:00 [INF] HTTP GET /Admin/Collection responded 302 in 0.6342 ms +2026-07-11 18:52:14.524 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Collection - 302 0 null 1.6071ms +2026-07-11 18:52:14.642 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Monitoring - null null +2026-07-11 18:52:14.643 +09:00 [INF] Authorization failed. These requirements were not met: +DenyAnonymousAuthorizationRequirement: Requires an authenticated user. +2026-07-11 18:52:14.643 +09:00 [INF] AuthenticationScheme: AdminCookie was challenged. +2026-07-11 18:52:14.643 +09:00 [INF] HTTP GET /Admin/Monitoring responded 302 in 0.4305 ms +2026-07-11 18:52:14.643 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Monitoring - 302 0 null 0.677ms +2026-07-11 18:52:14.741 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Operations - null null +2026-07-11 18:52:14.741 +09:00 [INF] Authorization failed. These requirements were not met: +DenyAnonymousAuthorizationRequirement: Requires an authenticated user. +2026-07-11 18:52:14.742 +09:00 [INF] AuthenticationScheme: AdminCookie was challenged. +2026-07-11 18:52:14.742 +09:00 [INF] HTTP GET /Admin/Operations responded 302 in 0.4306 ms +2026-07-11 18:52:14.742 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Operations - 302 0 null 0.6763ms +2026-07-11 21:04:06.174 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/login - null null +2026-07-11 21:04:06.177 +09:00 [INF] Executing endpoint 'HTTP: GET /login' +2026-07-11 21:04:06.177 +09:00 [INF] Executed endpoint 'HTTP: GET /login' +2026-07-11 21:04:06.178 +09:00 [INF] HTTP GET /login responded 302 in 2.1715 ms +2026-07-11 21:04:06.178 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/login - 302 0 null 3.7332ms +2026-07-11 21:04:06.191 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-11 21:04:06.194 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-11 21:04:06.195 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-11 21:04:06.198 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-11 21:04:06.199 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-11 21:04:06.199 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-11 21:04:06.200 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-11 21:04:06.212 +09:00 [INF] Executed page /Account/Login in 16.6942ms +2026-07-11 21:04:06.212 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-11 21:04:06.212 +09:00 [INF] HTTP GET /Account/Login responded 200 in 21.4926 ms +2026-07-11 21:04:06.213 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 22.1426ms +2026-07-11 21:04:06.222 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/login - null null +2026-07-11 21:04:06.223 +09:00 [INF] Executing endpoint 'HTTP: GET /login' +2026-07-11 21:04:06.223 +09:00 [INF] Executed endpoint 'HTTP: GET /login' +2026-07-11 21:04:06.223 +09:00 [INF] HTTP GET /login responded 302 in 0.5991 ms +2026-07-11 21:04:06.223 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/login - 302 0 null 1.2095ms +2026-07-11 21:04:06.226 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-11 21:04:06.227 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-11 21:04:06.227 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-11 21:04:06.231 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-11 21:04:06.232 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-11 21:04:06.232 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-11 21:04:06.233 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-11 21:04:06.238 +09:00 [INF] Executed page /Account/Login in 10.6054ms +2026-07-11 21:04:06.238 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-11 21:04:06.238 +09:00 [INF] HTTP GET /Account/Login responded 200 in 11.7060 ms +2026-07-11 21:04:06.238 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 12.2449ms +2026-07-11 21:05:05.597 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/login - null null +2026-07-11 21:05:05.597 +09:00 [INF] Executing endpoint 'HTTP: GET /login' +2026-07-11 21:05:05.598 +09:00 [INF] Executed endpoint 'HTTP: GET /login' +2026-07-11 21:05:05.598 +09:00 [INF] HTTP GET /login responded 302 in 0.4316 ms +2026-07-11 21:05:05.598 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/login - 302 0 null 0.8539ms +2026-07-11 21:05:05.606 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-11 21:05:05.606 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-11 21:05:05.606 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-11 21:05:05.606 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-11 21:05:05.606 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-11 21:05:05.607 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-11 21:05:05.607 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-11 21:05:05.607 +09:00 [INF] Executed page /Account/Login in 1.1238ms +2026-07-11 21:05:05.607 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-11 21:05:05.607 +09:00 [INF] HTTP GET /Account/Login responded 200 in 1.6523 ms +2026-07-11 21:05:05.607 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 1.9459ms +2026-07-11 21:05:05.611 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/login - null null +2026-07-11 21:05:05.612 +09:00 [INF] Executing endpoint 'HTTP: GET /login' +2026-07-11 21:05:05.612 +09:00 [INF] Executed endpoint 'HTTP: GET /login' +2026-07-11 21:05:05.612 +09:00 [INF] HTTP GET /login responded 302 in 0.3471 ms +2026-07-11 21:05:05.612 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/login - 302 0 null 0.603ms +2026-07-11 21:05:05.616 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-11 21:05:05.616 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-11 21:05:05.616 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-11 21:05:05.616 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-11 21:05:05.616 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-11 21:05:05.616 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-11 21:05:05.616 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-11 21:05:05.617 +09:00 [INF] Executed page /Account/Login in 0.5619ms +2026-07-11 21:05:05.617 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-11 21:05:05.617 +09:00 [INF] HTTP GET /Account/Login responded 200 in 0.9286 ms +2026-07-11 21:05:05.617 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 1.1671ms diff --git a/src/dotnet/QuantEngine.Web/logs/quantengine-20260712.log b/src/dotnet/QuantEngine.Web/logs/quantengine-20260712.log new file mode 100644 index 00000000..6153f13f --- /dev/null +++ b/src/dotnet/QuantEngine.Web/logs/quantengine-20260712.log @@ -0,0 +1,610 @@ +2026-07-12 01:49:59.393 +09:00 [INF] Registered 10 endpoints in 432 milliseconds. +2026-07-12 01:49:59.756 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-12 01:50:02.068 +09:00 [INF] ✅ Database migration completed successfully +2026-07-12 01:50:05.349 +09:00 [INF] Database migration and initialization successful +2026-07-12 01:50:05.388 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-12 01:50:06.028 +09:00 [INF] Start installing Hangfire SQL objects... +2026-07-12 01:50:10.702 +09:00 [INF] Hangfire SQL objects installed. +2026-07-12 01:50:10.728 +09:00 [WRN] Hangfire setup failed: Cannot resolve scoped service 'QuantEngine.Web.Services.SchedulerService' from root provider. +2026-07-12 01:50:10.877 +09:00 [ERR] Hosting failed to start +System.IO.IOException: Failed to bind to address http://127.0.0.1:5265: address already in use. + ---> Microsoft.AspNetCore.Connections.AddressInUseException: 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + ---> System.Net.Sockets.SocketException (10048): 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName) + at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) + at System.Net.Sockets.Socket.Bind(EndPoint localEP) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<g__OnBind|0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__14_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) +2026-07-12 01:50:10.905 +09:00 [FTL] Application terminated unexpectedly +System.IO.IOException: Failed to bind to address http://127.0.0.1:5265: address already in use. + ---> Microsoft.AspNetCore.Connections.AddressInUseException: 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + ---> System.Net.Sockets.SocketException (10048): 각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. + at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName) + at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) + at System.Net.Sockets.Socket.Bind(EndPoint localEP) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint) + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() + at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<g__OnBind|0>d.MoveNext() +--- End of stack trace from previous location --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + --- End of inner exception stack trace --- + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken) + at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken) + at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.Internal.Host.b__14_1(IHostedService service, CancellationToken token) + at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation) + at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) + at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) + at Program.
$(String[] args) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Program.cs:line 178 +2026-07-12 01:50:55.147 +09:00 [INF] Registered 10 endpoints in 161 milliseconds. +2026-07-12 01:50:55.188 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-12 01:50:57.488 +09:00 [INF] ✅ Database migration completed successfully +2026-07-12 01:51:00.589 +09:00 [INF] Database migration and initialization successful +2026-07-12 01:51:00.610 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-12 01:51:00.632 +09:00 [INF] Start installing Hangfire SQL objects... +2026-07-12 01:51:05.254 +09:00 [INF] Hangfire SQL objects installed. +2026-07-12 01:51:05.261 +09:00 [WRN] Hangfire setup failed: Cannot resolve scoped service 'QuantEngine.Web.Services.SchedulerService' from root provider. +2026-07-12 01:51:05.409 +09:00 [INF] Now listening on: http://localhost:5265 +2026-07-12 01:51:05.417 +09:00 [INF] Starting Hangfire Server using job storage: 'PostgreSQL Server: Host: 127.0.0.1, DB: quantenginedb, Schema: hangfire' +2026-07-12 01:51:05.417 +09:00 [INF] Using the following options for PostgreSQL job storage: +2026-07-12 01:51:05.418 +09:00 [INF] Queue poll interval: 00:00:15. +2026-07-12 01:51:05.418 +09:00 [INF] Invisibility timeout: 00:30:00. +2026-07-12 01:51:05.418 +09:00 [INF] Use sliding invisibility timeout: False. +2026-07-12 01:51:05.418 +09:00 [INF] Using the following options for Hangfire Server: + Worker count: 32 + Listening queues: 'default' + Shutdown timeout: 00:00:15 + Schedule polling interval: 00:00:15 +2026-07-12 01:51:05.434 +09:00 [INF] Application started. Press Ctrl+C to shut down. +2026-07-12 01:51:05.434 +09:00 [INF] Hosting environment: Development +2026-07-12 01:51:05.434 +09:00 [INF] Content root path: C:\Temp\data_feed\src\dotnet\QuantEngine.Web +2026-07-12 01:51:05.741 +09:00 [INF] Server kimjaehyun-note:5816:6e6d8857 successfully announced in 304.3044 ms +2026-07-12 01:51:05.744 +09:00 [INF] Server kimjaehyun-note:5816:6e6d8857 is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler... +2026-07-12 01:51:05.762 +09:00 [INF] Server kimjaehyun-note:5816:6e6d8857 all the dispatchers started +2026-07-12 01:51:16.896 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 01:51:16.900 +09:00 [WRN] Failed to determine the https port for redirect. +2026-07-12 01:51:16.932 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 01:51:16.958 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 01:51:16.970 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 01:51:16.972 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 01:51:16.977 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:51:16.978 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:51:17.024 +09:00 [INF] Executed page /Account/Login in 63.0425ms +2026-07-12 01:51:17.025 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 01:51:17.026 +09:00 [INF] HTTP GET /Account/Login responded 200 in 126.7878 ms +2026-07-12 01:51:17.028 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 132.7688ms +2026-07-12 01:51:42.662 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 01:51:42.685 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 01:51:42.685 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 01:51:42.687 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 01:51:42.687 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 01:51:42.687 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:51:42.687 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:51:42.694 +09:00 [INF] Executed page /Account/Login in 9.2179ms +2026-07-12 01:51:42.695 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 01:51:42.695 +09:00 [INF] HTTP GET /Account/Login responded 200 in 32.3239 ms +2026-07-12 01:51:42.695 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 34.0934ms +2026-07-12 01:51:43.344 +09:00 [INF] Request starting HTTP/1.1 POST http://localhost:5265/Account/Login - application/x-www-form-urlencoded 218 +2026-07-12 01:51:43.352 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 01:51:43.353 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 01:51:43.402 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync - ModelState is "Valid" +2026-07-12 01:51:44.200 +09:00 [INF] AuthenticationScheme: AdminCookie signed in. +2026-07-12 01:51:44.201 +09:00 [INF] [Login] User 'admin' authenticated successfully from ::1 +2026-07-12 01:51:44.205 +09:00 [INF] Executed handler method OnPostAsync, returned result Microsoft.AspNetCore.Mvc.LocalRedirectResult. +2026-07-12 01:51:44.210 +09:00 [INF] Executing LocalRedirectResult, redirecting to /Admin/Dashboard. +2026-07-12 01:51:44.213 +09:00 [INF] Executed page /Account/Login in 859.92ms +2026-07-12 01:51:44.214 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 01:51:44.216 +09:00 [INF] HTTP POST /Account/Login responded 302 in 871.2169 ms +2026-07-12 01:51:44.218 +09:00 [INF] Request finished HTTP/1.1 POST http://localhost:5265/Account/Login - 302 0 null 873.6838ms +2026-07-12 01:51:44.222 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - null null +2026-07-12 01:51:44.232 +09:00 [INF] Executing endpoint '/Admin/Dashboard/Index' +2026-07-12 01:51:44.252 +09:00 [INF] Route matched with {page = "/Admin/Dashboard/Index"}. Executing page /Admin/Dashboard/Index +2026-07-12 01:51:44.253 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Admin.Dashboard.IndexModel.OnGetAsync - ModelState is "Valid" +2026-07-12 01:51:45.151 +09:00 [INF] Executed handler method OnGetAsync, returned result . +2026-07-12 01:51:45.151 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:51:45.152 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:51:45.229 +09:00 [INF] Executed page /Admin/Dashboard/Index in 976.4261ms +2026-07-12 01:51:45.229 +09:00 [INF] Executed endpoint '/Admin/Dashboard/Index' +2026-07-12 01:51:45.230 +09:00 [INF] HTTP GET /Admin/Dashboard responded 200 in 1007.5596 ms +2026-07-12 01:51:45.230 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - 200 null text/html; charset=utf-8 1008.1707ms +2026-07-12 01:51:45.238 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/css/admin.css - null null +2026-07-12 01:51:45.255 +09:00 [INF] Sending file. Request path: '/css/admin.css'. Physical path: 'C:\Temp\data_feed\src\dotnet\QuantEngine.Web\wwwroot\css\admin.css' +2026-07-12 01:51:45.256 +09:00 [INF] HTTP GET /css/admin.css responded 200 in 17.9079 ms +2026-07-12 01:51:45.256 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/css/admin.css - 200 3956 text/css 18.4204ms +2026-07-12 01:51:45.933 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Operations - null null +2026-07-12 01:51:45.937 +09:00 [INF] Executing endpoint '/Admin/Operations/Index' +2026-07-12 01:51:45.951 +09:00 [INF] Route matched with {page = "/Admin/Operations/Index"}. Executing page /Admin/Operations/Index +2026-07-12 01:51:45.952 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Admin.Operations.IndexModel.OnGetAsync - ModelState is "Valid" +2026-07-12 01:51:48.823 +09:00 [INF] Operations data loaded from Hangfire (4 recurring jobs, 2 servers) +2026-07-12 01:51:48.824 +09:00 [INF] Executed handler method OnGetAsync, returned result . +2026-07-12 01:51:48.824 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:51:48.824 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:51:48.846 +09:00 [INF] Executed page /Admin/Operations/Index in 2894.9938ms +2026-07-12 01:51:48.847 +09:00 [INF] Executed endpoint '/Admin/Operations/Index' +2026-07-12 01:51:48.847 +09:00 [INF] HTTP GET /Admin/Operations responded 200 in 2913.4775 ms +2026-07-12 01:51:48.847 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Operations - 200 null text/html; charset=utf-8 2914.1336ms +2026-07-12 01:51:49.732 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 01:51:49.732 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 01:51:49.732 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 01:51:49.732 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 01:51:49.733 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 01:51:49.733 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:51:49.733 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:51:49.735 +09:00 [INF] Executed page /Account/Login in 2.6158ms +2026-07-12 01:51:49.735 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 01:51:49.735 +09:00 [INF] HTTP GET /Account/Login responded 200 in 3.4623 ms +2026-07-12 01:51:49.735 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 3.8328ms +2026-07-12 01:51:50.371 +09:00 [INF] Request starting HTTP/1.1 POST http://localhost:5265/Account/Login - application/x-www-form-urlencoded 218 +2026-07-12 01:51:50.371 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 01:51:50.371 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 01:51:50.373 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync - ModelState is "Valid" +2026-07-12 01:51:50.857 +09:00 [INF] AuthenticationScheme: AdminCookie signed in. +2026-07-12 01:51:50.857 +09:00 [INF] [Login] User 'admin' authenticated successfully from ::1 +2026-07-12 01:51:50.857 +09:00 [INF] Executed handler method OnPostAsync, returned result Microsoft.AspNetCore.Mvc.LocalRedirectResult. +2026-07-12 01:51:50.858 +09:00 [INF] Executing LocalRedirectResult, redirecting to /Admin/Dashboard. +2026-07-12 01:51:50.858 +09:00 [INF] Executed page /Account/Login in 486.6264ms +2026-07-12 01:51:50.858 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 01:51:50.858 +09:00 [INF] HTTP POST /Account/Login responded 302 in 487.2066 ms +2026-07-12 01:51:50.858 +09:00 [INF] Request finished HTTP/1.1 POST http://localhost:5265/Account/Login - 302 0 null 487.636ms +2026-07-12 01:51:50.862 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - null null +2026-07-12 01:51:50.865 +09:00 [INF] Executing endpoint '/Admin/Dashboard/Index' +2026-07-12 01:51:50.865 +09:00 [INF] Route matched with {page = "/Admin/Dashboard/Index"}. Executing page /Admin/Dashboard/Index +2026-07-12 01:51:50.865 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Admin.Dashboard.IndexModel.OnGetAsync - ModelState is "Valid" +2026-07-12 01:51:51.755 +09:00 [INF] Executed handler method OnGetAsync, returned result . +2026-07-12 01:51:51.755 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:51:51.755 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:51:51.757 +09:00 [INF] Executed page /Admin/Dashboard/Index in 891.4622ms +2026-07-12 01:51:51.757 +09:00 [INF] Executed endpoint '/Admin/Dashboard/Index' +2026-07-12 01:51:51.757 +09:00 [INF] HTTP GET /Admin/Dashboard responded 200 in 894.9356 ms +2026-07-12 01:51:51.757 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - 200 null text/html; charset=utf-8 895.2421ms +2026-07-12 01:51:51.766 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/css/admin.css - null null +2026-07-12 01:51:51.779 +09:00 [INF] Sending file. Request path: '/css/admin.css'. Physical path: 'C:\Temp\data_feed\src\dotnet\QuantEngine.Web\wwwroot\css\admin.css' +2026-07-12 01:51:51.779 +09:00 [INF] HTTP GET /css/admin.css responded 200 in 12.9029 ms +2026-07-12 01:51:51.780 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/css/admin.css - 200 3956 text/css 13.3629ms +2026-07-12 01:52:45.383 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 01:52:45.383 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 01:52:45.383 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 01:52:45.383 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 01:52:45.383 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 01:52:45.383 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:52:45.383 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:52:45.383 +09:00 [INF] Executed page /Account/Login in 0.5097ms +2026-07-12 01:52:45.384 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 01:52:45.384 +09:00 [INF] HTTP GET /Account/Login responded 200 in 0.8798 ms +2026-07-12 01:52:45.384 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 1.0536ms +2026-07-12 01:52:46.018 +09:00 [INF] Request starting HTTP/1.1 POST http://localhost:5265/Account/Login - application/x-www-form-urlencoded 218 +2026-07-12 01:52:46.018 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 01:52:46.018 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 01:52:46.019 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync - ModelState is "Valid" +2026-07-12 01:52:46.475 +09:00 [INF] AuthenticationScheme: AdminCookie signed in. +2026-07-12 01:52:46.475 +09:00 [INF] [Login] User 'admin' authenticated successfully from ::1 +2026-07-12 01:52:46.475 +09:00 [INF] Executed handler method OnPostAsync, returned result Microsoft.AspNetCore.Mvc.LocalRedirectResult. +2026-07-12 01:52:46.475 +09:00 [INF] Executing LocalRedirectResult, redirecting to /Admin/Dashboard. +2026-07-12 01:52:46.475 +09:00 [INF] Executed page /Account/Login in 456.9281ms +2026-07-12 01:52:46.475 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 01:52:46.475 +09:00 [INF] HTTP POST /Account/Login responded 302 in 457.3632 ms +2026-07-12 01:52:46.475 +09:00 [INF] Request finished HTTP/1.1 POST http://localhost:5265/Account/Login - 302 0 null 457.5915ms +2026-07-12 01:52:46.478 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - null null +2026-07-12 01:52:46.479 +09:00 [INF] Executing endpoint '/Admin/Dashboard/Index' +2026-07-12 01:52:46.479 +09:00 [INF] Route matched with {page = "/Admin/Dashboard/Index"}. Executing page /Admin/Dashboard/Index +2026-07-12 01:52:46.479 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Admin.Dashboard.IndexModel.OnGetAsync - ModelState is "Valid" +2026-07-12 01:52:47.363 +09:00 [INF] Executed handler method OnGetAsync, returned result . +2026-07-12 01:52:47.363 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:52:47.363 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:52:47.366 +09:00 [INF] Executed page /Admin/Dashboard/Index in 886.9837ms +2026-07-12 01:52:47.366 +09:00 [INF] Executed endpoint '/Admin/Dashboard/Index' +2026-07-12 01:52:47.366 +09:00 [INF] HTTP GET /Admin/Dashboard responded 200 in 888.0406 ms +2026-07-12 01:52:47.367 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Dashboard - 200 null text/html; charset=utf-8 888.4149ms +2026-07-12 01:52:47.378 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/css/admin.css - null null +2026-07-12 01:52:47.380 +09:00 [INF] Sending file. Request path: '/css/admin.css'. Physical path: 'C:\Temp\data_feed\src\dotnet\QuantEngine.Web\wwwroot\css\admin.css' +2026-07-12 01:52:47.380 +09:00 [INF] HTTP GET /css/admin.css responded 200 in 2.4015 ms +2026-07-12 01:52:47.380 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/css/admin.css - 200 3956 text/css 2.7681ms +2026-07-12 01:52:48.337 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Collection - null null +2026-07-12 01:52:48.338 +09:00 [INF] Executing endpoint '/Admin/Collection/Index' +2026-07-12 01:52:48.355 +09:00 [INF] Route matched with {page = "/Admin/Collection/Index"}. Executing page /Admin/Collection/Index +2026-07-12 01:52:48.355 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Admin.Collection.IndexModel.OnGetAsync - ModelState is "Valid" +2026-07-12 01:52:48.581 +09:00 [INF] Executed handler method OnGetAsync, returned result . +2026-07-12 01:52:48.581 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:52:48.581 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:52:48.591 +09:00 [INF] Executed page /Admin/Collection/Index in 236.0372ms +2026-07-12 01:52:48.591 +09:00 [INF] Executed endpoint '/Admin/Collection/Index' +2026-07-12 01:52:48.591 +09:00 [INF] HTTP GET /Admin/Collection responded 200 in 254.0162 ms +2026-07-12 01:52:48.592 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Collection - 200 null text/html; charset=utf-8 254.527ms +2026-07-12 01:52:49.211 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Monitoring - null null +2026-07-12 01:52:49.211 +09:00 [INF] Executing endpoint '/Admin/Monitoring/Index' +2026-07-12 01:52:49.217 +09:00 [INF] Route matched with {page = "/Admin/Monitoring/Index"}. Executing page /Admin/Monitoring/Index +2026-07-12 01:52:49.218 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Admin.Monitoring.IndexModel.OnGetAsync - ModelState is "Valid" +2026-07-12 01:52:49.440 +09:00 [INF] Executed handler method OnGetAsync, returned result . +2026-07-12 01:52:49.440 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:52:49.440 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:52:49.453 +09:00 [INF] Executed page /Admin/Monitoring/Index in 235.3992ms +2026-07-12 01:52:49.453 +09:00 [INF] Executed endpoint '/Admin/Monitoring/Index' +2026-07-12 01:52:49.453 +09:00 [INF] HTTP GET /Admin/Monitoring responded 200 in 242.4802 ms +2026-07-12 01:52:49.453 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Monitoring - 200 null text/html; charset=utf-8 242.724ms +2026-07-12 01:52:50.106 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Admin/Users - null null +2026-07-12 01:52:50.107 +09:00 [INF] Executing endpoint '/Admin/Users/Index' +2026-07-12 01:52:50.117 +09:00 [INF] Route matched with {page = "/Admin/Users/Index"}. Executing page /Admin/Users/Index +2026-07-12 01:52:50.118 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Admin.Users.IndexModel.OnGetAsync - ModelState is "Valid" +2026-07-12 01:52:50.339 +09:00 [INF] Executed handler method OnGetAsync, returned result . +2026-07-12 01:52:50.339 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:52:50.339 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:52:50.346 +09:00 [INF] Executed page /Admin/Users/Index in 228.3491ms +2026-07-12 01:52:50.346 +09:00 [INF] Executed endpoint '/Admin/Users/Index' +2026-07-12 01:52:50.346 +09:00 [INF] HTTP GET /Admin/Users responded 200 in 239.3317 ms +2026-07-12 01:52:50.346 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Admin/Users - 200 null text/html; charset=utf-8 239.5416ms +2026-07-12 01:56:32.591 +09:00 [INF] Registered 10 endpoints in 168 milliseconds. +2026-07-12 01:56:32.627 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-12 01:56:34.908 +09:00 [INF] ✅ Database migration completed successfully +2026-07-12 01:56:37.976 +09:00 [INF] Database migration and initialization successful +2026-07-12 01:56:38.000 +09:00 [INF] User profile is available. Using 'C:\Users\kjh20\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2026-07-12 01:56:38.043 +09:00 [INF] Start installing Hangfire SQL objects... +2026-07-12 01:56:42.666 +09:00 [INF] Hangfire SQL objects installed. +2026-07-12 01:56:42.681 +09:00 [INF] Initializing Hangfire schedules... +2026-07-12 01:56:50.823 +09:00 [INF] Hangfire schedules initialized successfully +2026-07-12 01:56:50.988 +09:00 [INF] Now listening on: http://localhost:5265 +2026-07-12 01:56:50.992 +09:00 [INF] Starting Hangfire Server using job storage: 'PostgreSQL Server: Host: 127.0.0.1, DB: quantenginedb, Schema: hangfire' +2026-07-12 01:56:50.992 +09:00 [INF] Using the following options for PostgreSQL job storage: +2026-07-12 01:56:50.992 +09:00 [INF] Queue poll interval: 00:00:15. +2026-07-12 01:56:50.992 +09:00 [INF] Invisibility timeout: 00:30:00. +2026-07-12 01:56:50.992 +09:00 [INF] Use sliding invisibility timeout: False. +2026-07-12 01:56:50.992 +09:00 [INF] Using the following options for Hangfire Server: + Worker count: 32 + Listening queues: 'default' + Shutdown timeout: 00:00:15 + Schedule polling interval: 00:00:15 +2026-07-12 01:56:51.000 +09:00 [INF] Application started. Press Ctrl+C to shut down. +2026-07-12 01:56:51.000 +09:00 [INF] Hosting environment: Development +2026-07-12 01:56:51.000 +09:00 [INF] Content root path: C:\Temp\data_feed\src\dotnet\QuantEngine.Web +2026-07-12 01:56:51.234 +09:00 [INF] Server kimjaehyun-note:18688:50858618 successfully announced in 231.3723 ms +2026-07-12 01:56:51.239 +09:00 [INF] Server kimjaehyun-note:18688:50858618 is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler... +2026-07-12 01:56:51.251 +09:00 [INF] Server kimjaehyun-note:18688:50858618 all the dispatchers started +2026-07-12 01:56:52.918 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 01:56:52.923 +09:00 [WRN] Failed to determine the https port for redirect. +2026-07-12 01:56:52.975 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 01:56:53.000 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 01:56:53.008 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 01:56:53.009 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 01:56:53.011 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 01:56:53.012 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 01:56:53.043 +09:00 [INF] Executed page /Account/Login in 38.7733ms +2026-07-12 01:56:53.043 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 01:56:53.045 +09:00 [INF] HTTP GET /Account/Login responded 200 in 123.2950 ms +2026-07-12 01:56:53.048 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 131.2244ms +2026-07-12 10:29:03.142 +09:00 [INF] Registered 10 endpoints in 4,906 milliseconds. +2026-07-12 10:29:03.556 +09:00 [INF] 🔄 Starting database migration with DbUp... +2026-07-12 10:29:07.251 +09:00 [ERR] ❌ Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-12 10:29:07.251 +09:00 [ERR] ❌ Database migration failed +System.InvalidOperationException: Database migration failed: 28P01: password authentication failed for user "quantengine_app" + at QuantEngine.Infrastructure.Data.DbMigrator.Migrate() in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Data\DbMigrator.cs:line 39 +2026-07-12 10:29:07.276 +09:00 [WRN] Database initialization warning (development only): Database migration failed: 28P01: password authentication failed for user "quantengine_app" +2026-07-12 10:29:07.442 +09:00 [INF] Initializing Hangfire schedules... +2026-07-12 10:29:07.565 +09:00 [INF] Hangfire schedules initialized successfully +2026-07-12 10:29:07.677 +09:00 [INF] Creating key {49191b44-5683-456a-b1ee-0ddbc2c7fc29} with creation date 2026-07-12 01:29:07Z, activation date 2026-07-12 01:29:07Z, and expiration date 2026-10-10 01:29:07Z. +2026-07-12 10:29:07.689 +09:00 [WRN] No XML encryptor configured. Key {49191b44-5683-456a-b1ee-0ddbc2c7fc29} may be persisted to storage in unencrypted form. +2026-07-12 10:29:07.697 +09:00 [INF] Writing data to file 'C:\Users\kjh20\AppData\Local\quantengine-keys\key-49191b44-5683-456a-b1ee-0ddbc2c7fc29.xml'. +2026-07-12 10:29:07.829 +09:00 [INF] Now listening on: http://localhost:5265 +2026-07-12 10:29:07.833 +09:00 [INF] Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage' +2026-07-12 10:29:07.834 +09:00 [INF] Using the following options for Hangfire Server: + Worker count: 32 + Listening queues: 'default' + Shutdown timeout: 00:00:15 + Schedule polling interval: 00:00:15 +2026-07-12 10:29:07.843 +09:00 [INF] Application started. Press Ctrl+C to shut down. +2026-07-12 10:29:07.843 +09:00 [INF] Hosting environment: Development +2026-07-12 10:29:07.843 +09:00 [INF] Content root path: C:\Temp\data_feed\src\dotnet\QuantEngine.Web +2026-07-12 10:29:07.850 +09:00 [INF] Server kimjaehyun-note:27604:c5019131 successfully announced in 5.0644 ms +2026-07-12 10:29:07.852 +09:00 [INF] Server kimjaehyun-note:27604:c5019131 is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler... +2026-07-12 10:29:07.863 +09:00 [INF] Server kimjaehyun-note:27604:c5019131 all the dispatchers started +2026-07-12 10:29:10.923 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 10:29:10.929 +09:00 [WRN] Failed to determine the https port for redirect. +2026-07-12 10:29:10.969 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 10:29:10.987 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 10:29:10.994 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 10:29:10.995 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 10:29:10.997 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 10:29:10.998 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 10:29:11.026 +09:00 [INF] Executed page /Account/Login in 35.8464ms +2026-07-12 10:29:11.027 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 10:29:11.028 +09:00 [INF] HTTP GET /Account/Login responded 200 in 99.7375 ms +2026-07-12 10:29:11.030 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 121.6214ms +2026-07-12 10:54:40.138 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/login - null null +2026-07-12 10:54:40.144 +09:00 [INF] Executing endpoint 'HTTP: GET /login' +2026-07-12 10:54:40.145 +09:00 [INF] Executed endpoint 'HTTP: GET /login' +2026-07-12 10:54:40.145 +09:00 [INF] HTTP GET /login responded 302 in 6.0857 ms +2026-07-12 10:54:40.146 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/login - 302 0 null 9.206ms +2026-07-12 10:54:40.153 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 10:54:40.163 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 10:54:40.163 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 10:54:40.165 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 10:54:40.165 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 10:54:40.165 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 10:54:40.166 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 10:54:40.179 +09:00 [INF] Executed page /Account/Login in 15.2716ms +2026-07-12 10:54:40.179 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 10:54:40.179 +09:00 [INF] HTTP GET /Account/Login responded 200 in 25.4427 ms +2026-07-12 10:54:40.180 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 26.1015ms +2026-07-12 10:54:40.185 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/login - null null +2026-07-12 10:54:40.186 +09:00 [INF] Executing endpoint 'HTTP: GET /login' +2026-07-12 10:54:40.187 +09:00 [INF] Executed endpoint 'HTTP: GET /login' +2026-07-12 10:54:40.187 +09:00 [INF] HTTP GET /login responded 302 in 1.4987 ms +2026-07-12 10:54:40.187 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/login - 302 0 null 2.2724ms +2026-07-12 10:54:40.190 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 10:54:40.191 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 10:54:40.191 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 10:54:40.195 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 10:54:40.196 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 10:54:40.196 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 10:54:40.196 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 10:54:40.203 +09:00 [INF] Executed page /Account/Login in 11.1274ms +2026-07-12 10:54:40.203 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 10:54:40.203 +09:00 [INF] HTTP GET /Account/Login responded 200 in 12.4260 ms +2026-07-12 10:54:40.203 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 13.0096ms +2026-07-12 10:54:44.086 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 10:54:44.087 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 10:54:44.087 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 10:54:44.087 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 10:54:44.087 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 10:54:44.088 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 10:54:44.088 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 10:54:44.088 +09:00 [INF] Executed page /Account/Login in 1.1538ms +2026-07-12 10:54:44.089 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 10:54:44.089 +09:00 [INF] HTTP GET /Account/Login responded 200 in 1.8741 ms +2026-07-12 10:54:44.089 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 2.4044ms +2026-07-12 10:54:44.647 +09:00 [INF] Request starting HTTP/1.1 POST http://localhost:5265/Account/Login - application/x-www-form-urlencoded 212 +2026-07-12 10:54:44.649 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 10:54:44.649 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 10:54:44.686 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync - ModelState is "Valid" +2026-07-12 10:54:48.980 +09:00 [INF] Executed page /Account/Login in 4330.4506ms +2026-07-12 10:54:48.981 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 10:54:48.984 +09:00 [ERR] HTTP POST /Account/Login responded 500 in 4336.7156 ms +Npgsql.PostgresException (0x80004005): 28P01: password authentication failed for user "quantengine_app" + at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) + at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Dapper.SqlMapper.QueryRowAsync[T](IDbConnection cnn, Row row, Type effectiveType, CommandDefinition command) in /_/Dapper/SqlMapper.Async.cs:line 488 + at QuantEngine.Infrastructure.Repositories.WorkspaceRepository.GetAccountByUsernameAsync(String username) in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Repositories\WorkspaceRepository.cs:line 35 + at QuantEngine.Web.Services.AuthService.AuthenticateAsync(String username, String password, String ipAddress) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Services\AuthService.cs:line 26 + at QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync(String username, String password, Boolean rememberUsername) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Pages\Account\Login.cshtml.cs:line 49 + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Convert[T](Object taskAsObject) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync() + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync() + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync() + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) + at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger) + at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) + Exception data: + Severity: FATAL + SqlState: 28P01 + MessageText: password authentication failed for user "quantengine_app" + File: auth.c + Line: 317 + Routine: auth_failed +2026-07-12 10:54:49.034 +09:00 [ERR] An unhandled exception has occurred while executing the request. +Npgsql.PostgresException (0x80004005): 28P01: password authentication failed for user "quantengine_app" + at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) + at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Dapper.SqlMapper.QueryRowAsync[T](IDbConnection cnn, Row row, Type effectiveType, CommandDefinition command) in /_/Dapper/SqlMapper.Async.cs:line 488 + at QuantEngine.Infrastructure.Repositories.WorkspaceRepository.GetAccountByUsernameAsync(String username) in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Repositories\WorkspaceRepository.cs:line 35 + at QuantEngine.Web.Services.AuthService.AuthenticateAsync(String username, String password, String ipAddress) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Services\AuthService.cs:line 26 + at QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync(String username, String password, Boolean rememberUsername) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Pages\Account\Login.cshtml.cs:line 49 + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Convert[T](Object taskAsObject) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync() + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync() + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync() + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) + at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger) + at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) + Exception data: + Severity: FATAL + SqlState: 28P01 + MessageText: password authentication failed for user "quantengine_app" + File: auth.c + Line: 317 + Routine: auth_failed +2026-07-12 10:54:49.111 +09:00 [INF] Request finished HTTP/1.1 POST http://localhost:5265/Account/Login - 500 null text/html; charset=utf-8 4464.5985ms +2026-07-12 10:54:49.205 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/api/collection/runs?limit=20 - null null +2026-07-12 10:54:49.207 +09:00 [INF] Executing endpoint 'HTTP: GET /api/collection/runs' +2026-07-12 10:54:52.982 +09:00 [INF] Executed endpoint 'HTTP: GET /api/collection/runs' +2026-07-12 10:54:52.982 +09:00 [ERR] HTTP GET /api/collection/runs responded 500 in 3777.5166 ms +2026-07-12 10:54:52.983 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/api/collection/runs?limit=20 - 500 null application/problem+json; charset=utf-8 3778.0479ms +2026-07-12 13:02:07.505 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/login - null null +2026-07-12 13:02:07.523 +09:00 [INF] Executing endpoint 'HTTP: GET /login' +2026-07-12 13:02:07.523 +09:00 [INF] Executed endpoint 'HTTP: GET /login' +2026-07-12 13:02:07.524 +09:00 [INF] HTTP GET /login responded 302 in 16.0250 ms +2026-07-12 13:02:07.529 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/login - 302 0 null 21.1915ms +2026-07-12 13:02:07.531 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 13:02:07.531 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 13:02:07.540 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 13:02:07.546 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 13:02:07.548 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 13:02:07.548 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 13:02:07.550 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 13:02:07.581 +09:00 [INF] Executed page /Account/Login in 40.445ms +2026-07-12 13:02:07.581 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 13:02:07.581 +09:00 [INF] HTTP GET /Account/Login responded 200 in 49.9978 ms +2026-07-12 13:02:07.581 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 50.4194ms +2026-07-12 13:02:07.585 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/login - null null +2026-07-12 13:02:07.585 +09:00 [INF] Executing endpoint 'HTTP: GET /login' +2026-07-12 13:02:07.585 +09:00 [INF] Executed endpoint 'HTTP: GET /login' +2026-07-12 13:02:07.585 +09:00 [INF] HTTP GET /login responded 302 in 0.3455 ms +2026-07-12 13:02:07.585 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/login - 302 0 null 0.6015ms +2026-07-12 13:02:07.586 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 13:02:07.587 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 13:02:07.587 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 13:02:07.587 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 13:02:07.587 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 13:02:07.588 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 13:02:07.588 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 13:02:07.589 +09:00 [INF] Executed page /Account/Login in 1.3984ms +2026-07-12 13:02:07.589 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 13:02:07.589 +09:00 [INF] HTTP GET /Account/Login responded 200 in 2.2170 ms +2026-07-12 13:02:07.589 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 2.4854ms +2026-07-12 13:02:11.141 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/Account/Login - null null +2026-07-12 13:02:11.142 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 13:02:11.142 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 13:02:11.142 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnGet - ModelState is "Valid" +2026-07-12 13:02:11.143 +09:00 [INF] Executed handler method OnGet, returned result . +2026-07-12 13:02:11.143 +09:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2026-07-12 13:02:11.143 +09:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2026-07-12 13:02:11.144 +09:00 [INF] Executed page /Account/Login in 1.7154ms +2026-07-12 13:02:11.144 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 13:02:11.144 +09:00 [INF] HTTP GET /Account/Login responded 200 in 2.8689 ms +2026-07-12 13:02:11.144 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/Account/Login - 200 null text/html; charset=utf-8 3.2765ms +2026-07-12 13:02:11.640 +09:00 [INF] Request starting HTTP/1.1 POST http://localhost:5265/Account/Login - application/x-www-form-urlencoded 212 +2026-07-12 13:02:11.643 +09:00 [INF] Executing endpoint '/Account/Login' +2026-07-12 13:02:11.644 +09:00 [INF] Route matched with {page = "/Account/Login"}. Executing page /Account/Login +2026-07-12 13:02:11.684 +09:00 [INF] Executing handler method QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync - ModelState is "Valid" +2026-07-12 13:02:15.491 +09:00 [INF] Executed page /Account/Login in 3846.9073ms +2026-07-12 13:02:15.493 +09:00 [INF] Executed endpoint '/Account/Login' +2026-07-12 13:02:15.495 +09:00 [ERR] HTTP POST /Account/Login responded 500 in 3854.1437 ms +Npgsql.PostgresException (0x80004005): 28P01: password authentication failed for user "quantengine_app" + at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) + at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Dapper.SqlMapper.QueryRowAsync[T](IDbConnection cnn, Row row, Type effectiveType, CommandDefinition command) in /_/Dapper/SqlMapper.Async.cs:line 488 + at QuantEngine.Infrastructure.Repositories.WorkspaceRepository.GetAccountByUsernameAsync(String username) in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Repositories\WorkspaceRepository.cs:line 35 + at QuantEngine.Web.Services.AuthService.AuthenticateAsync(String username, String password, String ipAddress) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Services\AuthService.cs:line 26 + at QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync(String username, String password, Boolean rememberUsername) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Pages\Account\Login.cshtml.cs:line 49 + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Convert[T](Object taskAsObject) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync() + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync() + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync() + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) + at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger) + at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) + Exception data: + Severity: FATAL + SqlState: 28P01 + MessageText: password authentication failed for user "quantengine_app" + File: auth.c + Line: 317 + Routine: auth_failed +2026-07-12 13:02:15.530 +09:00 [ERR] An unhandled exception has occurred while executing the request. +Npgsql.PostgresException (0x80004005): 28P01: password authentication failed for user "quantengine_app" + at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) + at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) + at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, String username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.PoolingDataSource.g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken) + at Npgsql.NpgsqlConnection.g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken) + at Dapper.SqlMapper.QueryRowAsync[T](IDbConnection cnn, Row row, Type effectiveType, CommandDefinition command) in /_/Dapper/SqlMapper.Async.cs:line 488 + at QuantEngine.Infrastructure.Repositories.WorkspaceRepository.GetAccountByUsernameAsync(String username) in C:\Temp\data_feed\src\dotnet\QuantEngine.Infrastructure\Repositories\WorkspaceRepository.cs:line 35 + at QuantEngine.Web.Services.AuthService.AuthenticateAsync(String username, String password, String ipAddress) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Services\AuthService.cs:line 26 + at QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync(String username, String password, Boolean rememberUsername) in C:\Temp\data_feed\src\dotnet\QuantEngine.Web\Pages\Account\Login.cshtml.cs:line 49 + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Convert[T](Object taskAsObject) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync() + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync() + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) + at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync() + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) + at Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger) + at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) + at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) + at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext) + at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) + Exception data: + Severity: FATAL + SqlState: 28P01 + MessageText: password authentication failed for user "quantengine_app" + File: auth.c + Line: 317 + Routine: auth_failed +2026-07-12 13:02:15.576 +09:00 [INF] Request finished HTTP/1.1 POST http://localhost:5265/Account/Login - 500 null text/html; charset=utf-8 3935.4857ms +2026-07-12 13:02:15.664 +09:00 [INF] Request starting HTTP/1.1 GET http://localhost:5265/api/collection/runs?limit=20 - null null +2026-07-12 13:02:15.668 +09:00 [INF] Executing endpoint 'HTTP: GET /api/collection/runs' +2026-07-12 13:02:19.317 +09:00 [INF] Executed endpoint 'HTTP: GET /api/collection/runs' +2026-07-12 13:02:19.318 +09:00 [ERR] HTTP GET /api/collection/runs responded 500 in 3653.6595 ms +2026-07-12 13:02:19.318 +09:00 [INF] Request finished HTTP/1.1 GET http://localhost:5265/api/collection/runs?limit=20 - 500 null application/problem+json; charset=utf-8 3654.0261ms diff --git a/src/quant_engine/snapshot_admin.db b/src/quant_engine/snapshot_admin.db index 035c9b05f7b2fa7bd29e850be27f39c23b457720..45e68d12aa0a389e593473d09123b939a1ff2b46 100644 GIT binary patch literal 151552 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 F001FRf${(V diff --git a/test-results/.last-run.json b/test-results/.last-run.json index cbcc1fba..4cc0eac8 100644 --- a/test-results/.last-run.json +++ b/test-results/.last-run.json @@ -1,4 +1,6 @@ { - "status": "passed", - "failedTests": [] + "status": "failed", + "failedTests": [ + "90c6053e24d905f92d61-fe6c7d0382f9666a596d" + ] } \ No newline at end of file diff --git a/test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/error-context.md b/test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/error-context.md new file mode 100644 index 00000000..5ce36b02 --- /dev/null +++ b/test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/error-context.md @@ -0,0 +1,259 @@ +# Instructions + +- Following Playwright test failed. +- Explain why, be concise, respect Playwright best practices. +- Provide a snippet of code with the fix, if possible. + +# Test info + +- Name: evidence\qe-m1-02-collection-run.spec.ts >> QE-M1-02: Collection Run List & Detail Verification >> QE-M1-02: Collection run renders in list with API-derived expected values +- Location: tests\e2e\evidence\qe-m1-02-collection-run.spec.ts:24:3 + +# Error details + +``` +Error: expect(received).toBeTruthy() + +Received: false +``` + +# Page snapshot + +```yaml +- generic [active] [ref=e1]: + - heading "An unhandled exception occurred while processing the request." [level=1] [ref=e2] + - generic [ref=e3]: "PostgresException: 28P01: password authentication failed for user \"quantengine_app\"" + - paragraph [ref=e4]: Npgsql.Internal.NpgsqlConnector.ReadMessageLong(bool async, DataRowLoadingMode dataRowLoadingMode, bool readingNotifications, bool isReadingPrependedMessage) + - list [ref=e5]: + - listitem [ref=e6] [cursor=pointer]: Stack + - listitem [ref=e7] [cursor=pointer]: Query + - listitem [ref=e8] [cursor=pointer]: Cookies + - listitem [ref=e9] [cursor=pointer]: Headers + - listitem [ref=e10] [cursor=pointer]: Routing + - list [ref=e12]: + - listitem [ref=e13]: + - 'heading "PostgresException: 28P01: password authentication failed for user \"quantengine_app\"" [level=2] [ref=e14]' + - list [ref=e15]: + - listitem [ref=e16]: + - heading "Npgsql.Internal.NpgsqlConnector.ReadMessageLong(bool async, DataRowLoadingMode dataRowLoadingMode, bool readingNotifications, bool isReadingPrependedMessage)" [level=3] [ref=e17] + - listitem [ref=e18]: + - heading "System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder+StateMachineBox.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(short token)" [level=3] [ref=e19] + - listitem [ref=e20]: + - heading "Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List mechanisms, string username, bool async, CancellationToken cancellationToken)" [level=3] [ref=e21] + - listitem [ref=e22]: + - heading "Npgsql.Internal.NpgsqlConnector.Authenticate(string username, NpgsqlTimeout timeout, bool async, CancellationToken cancellationToken)" [level=3] [ref=e23] + - listitem [ref=e24]: + - heading "Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, string username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, bool async, CancellationToken cancellationToken)" [level=3] [ref=e25] + - listitem [ref=e26]: + - heading "Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, string username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, bool async, CancellationToken cancellationToken)" [level=3] [ref=e27] + - listitem [ref=e28]: + - heading "Npgsql.Internal.NpgsqlConnector.g__OpenCore|209_0(NpgsqlConnector conn, string username, SslMode sslMode, GssEncryptionMode gssEncMode, NpgsqlTimeout timeout, bool async, CancellationToken cancellationToken)" [level=3] [ref=e29] + - listitem [ref=e30]: + - heading "Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, bool async, CancellationToken cancellationToken)" [level=3] [ref=e31] + - listitem [ref=e32]: + - heading "Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, bool async, CancellationToken cancellationToken)" [level=3] [ref=e33] + - listitem [ref=e34]: + - heading "System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter.GetResult()" [level=3] [ref=e35] + - listitem [ref=e36]: + - heading "Npgsql.PoolingDataSource.g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, bool async, CancellationToken cancellationToken)" [level=3] [ref=e37] + - listitem [ref=e38]: + - heading "System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter.GetResult()" [level=3] [ref=e39] + - listitem [ref=e40]: + - heading "Npgsql.NpgsqlConnection.g__OpenAsync|42_0(bool async, CancellationToken cancellationToken)" [level=3] [ref=e41] + - listitem [ref=e42]: + - heading "Dapper.SqlMapper.QueryRowAsync(IDbConnection cnn, Row row, Type effectiveType, CommandDefinition command) in SqlMapper.Async.cs" [level=3] [ref=e43]: + - text: Dapper.SqlMapper.QueryRowAsync(IDbConnection cnn, Row row, Type effectiveType, CommandDefinition command) in + - code [ref=e44]: SqlMapper.Async.cs + - listitem [ref=e45]: + - heading "QuantEngine.Infrastructure.Repositories.WorkspaceRepository.GetAccountByUsernameAsync(string username) in WorkspaceRepository.cs" [level=3] [ref=e46]: + - text: QuantEngine.Infrastructure.Repositories.WorkspaceRepository.GetAccountByUsernameAsync(string username) in + - code [ref=e47]: WorkspaceRepository.cs + - button "+" [ref=e48] [cursor=pointer] + - list [ref=e50]: + - listitem [ref=e51]: return await conn.QueryFirstOrDefaultAsync(@" + - listitem [ref=e52]: + - heading "QuantEngine.Web.Services.AuthService.AuthenticateAsync(string username, string password, string ipAddress) in AuthService.cs" [level=3] [ref=e53]: + - text: QuantEngine.Web.Services.AuthService.AuthenticateAsync(string username, string password, string ipAddress) in + - code [ref=e54]: AuthService.cs + - button "+" [ref=e55] [cursor=pointer] + - list [ref=e57]: + - listitem [ref=e58]: var account = await _workspaceRepository.GetAccountByUsernameAsync(username.Trim()); + - listitem [ref=e59]: + - heading "QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync(string username, string password, bool rememberUsername) in Login.cshtml.cs" [level=3] [ref=e60]: + - text: QuantEngine.Web.Pages.Account.LoginModel.OnPostAsync(string username, string password, bool rememberUsername) in + - code [ref=e61]: Login.cshtml.cs + - button "+" [ref=e62] [cursor=pointer] + - list [ref=e64]: + - listitem [ref=e65]: var account = await _authService.AuthenticateAsync(username, password, ipAddress); + - listitem [ref=e66]: + - heading "Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory+GenericTaskHandlerMethod.Convert(object taskAsObject)" [level=3] [ref=e67] + - listitem [ref=e68]: + - heading "Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory+GenericTaskHandlerMethod.Execute(object receiver, object[] arguments)" [level=3] [ref=e69] + - listitem [ref=e70]: + - heading "Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync()" [level=3] [ref=e71] + - listitem [ref=e72]: + - heading "Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync()" [level=3] [ref=e73] + - listitem [ref=e74]: + - heading "Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context)" [level=3] [ref=e75] + - listitem [ref=e76]: + - heading "Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)" [level=3] [ref=e77] + - listitem [ref=e78]: + - heading "Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync()" [level=3] [ref=e79] + - listitem [ref=e80]: + - heading "Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)" [level=3] [ref=e81] + - listitem [ref=e82]: + - heading "Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)" [level=3] [ref=e83] + - listitem [ref=e84]: + - heading "Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)" [level=3] [ref=e85] + - listitem [ref=e86]: + - heading "Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)" [level=3] [ref=e87] + - listitem [ref=e88]: + - heading "Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker)" [level=3] [ref=e89] + - listitem [ref=e90]: + - heading "Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker)" [level=3] [ref=e91] + - listitem [ref=e92]: + - heading "Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger)" [level=3] [ref=e93] + - listitem [ref=e94]: + - heading "Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)" [level=3] [ref=e95] + - listitem [ref=e96]: + - heading "Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)" [level=3] [ref=e97] + - listitem [ref=e98]: + - heading "Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)" [level=3] [ref=e99] + - listitem [ref=e100]: + - heading "Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)" [level=3] [ref=e101] + - listitem [ref=e102]: + - button "Show raw exception details" [ref=e104] [cursor=pointer] +``` + +# Test source + +```ts + 1 | import { test, expect } from '@playwright/test'; + 2 | import * as fs from 'fs'; + 3 | import * as path from 'path'; + 4 | + 5 | test.describe('QE-M1-02: Collection Run List & Detail Verification', () => { + 6 | // Login before each test + 7 | test.beforeEach(async ({ page }) => { + 8 | await page.goto('/Account/Login'); + 9 | await page.waitForLoadState('domcontentloaded'); + 10 | + 11 | // Fill login form with credentials (admin/admin) + 12 | const usernameInput = page.locator('#username'); + 13 | const passwordInput = page.locator('#password'); + 14 | const loginButton = page.locator('#loginBtn'); + 15 | + 16 | await usernameInput.fill('admin'); + 17 | await passwordInput.fill('admin'); + 18 | await loginButton.click(); + 19 | + 20 | // Wait for login to complete + 21 | await page.waitForLoadState('domcontentloaded'); + 22 | }); + 23 | + 24 | test('QE-M1-02: Collection run renders in list with API-derived expected values', async ({ page }) => { + 25 | // Step 1: Fetch expected values from API (source of truth) + 26 | const apiResponse = await page.request.get('/api/collection/runs?limit=20'); +> 27 | expect(apiResponse.ok()).toBeTruthy(); + | ^ Error: expect(received).toBeTruthy() + 28 | + 29 | const responseJson = await apiResponse.json(); + 30 | const runs = (responseJson as any).runs || []; + 31 | + 32 | // Fail if no collection runs exist in database + 33 | if (runs.length === 0) { + 34 | throw new Error( + 35 | 'No collection runs in DB — run the daily-collection job first. ' + + 36 | 'Expected at least 1 run from kis_collection_runs table.' + 37 | ); + 38 | } + 39 | + 40 | // Extract expected values from most recent run (first in list) + 41 | const expectedRun = runs[0]; + 42 | const expectedRunId = expectedRun.runId; + 43 | const expectedTotalSnapshots = expectedRun.totalSnapshots ?? 0; + 44 | const expectedStatus = expectedRun.status; // e.g., "completed", "running", "failed" + 45 | + 46 | // Map status to Korean text (same logic as Index.cshtml — unknown statuses + 47 | // like COMPLETED_WITH_ERRORS render the raw status string in a secondary badge) + 48 | let expectedStatusText = String(expectedStatus ?? ''); + 49 | if (expectedStatus?.toLowerCase() === 'completed') { + 50 | expectedStatusText = '완료'; + 51 | } else if (expectedStatus?.toLowerCase() === 'running') { + 52 | expectedStatusText = '진행 중'; + 53 | } else if (expectedStatus?.toLowerCase() === 'failed') { + 54 | expectedStatusText = '실패'; + 55 | } + 56 | + 57 | console.log( + 58 | `\n=== QE-M1-02 Test Started ===\n` + + 59 | `Expected RunId: ${expectedRunId}\n` + + 60 | `Expected TotalSnapshots: ${expectedTotalSnapshots}\n` + + 61 | `Expected Status: ${expectedStatus} (rendered as: ${expectedStatusText})\n` + 62 | ); + 63 | + 64 | // Step 2: Navigate to Collection admin page + 65 | await page.goto('/Admin/Collection'); + 66 | await page.waitForLoadState('domcontentloaded'); + 67 | + 68 | // Step 3: Verify page title contains "데이터 수집" (collection) + 69 | const pageTitle = await page.title(); + 70 | expect(pageTitle).toContain('데이터 수집'); + 71 | + 72 | // Step 4: Assert that a row containing the expected runId is visible + 73 | const runIdCell = page.locator(`td:has-text("${expectedRunId}")`); + 74 | await expect(runIdCell).toBeVisible(); + 75 | console.log(`✓ RunId row found and visible: ${expectedRunId}`); + 76 | + 77 | // Step 5: Find the row containing this runId and verify the snapshot count + 78 | const tableRow = runIdCell.locator('xpath=ancestor::tr'); + 79 | + 80 | // Within the row, find all td elements and map to columns + 81 | // Columns: 실행 ID (0), 시작 시간 (1), 종료 시간 (2), 상태 (3), 스냅샷 수 (4), 오류 수 (5) + 82 | const cells = tableRow.locator('td'); + 83 | const cellCount = await cells.count(); + 84 | expect(cellCount).toBeGreaterThanOrEqual(5); // At least 5 columns + 85 | + 86 | // Cell 4 (index 4) is "스냅샷 수" (total snapshots) + 87 | const snapshotCell = cells.nth(4); + 88 | const snapshotText = await snapshotCell.textContent(); + 89 | expect(snapshotText?.trim()).toBe(String(expectedTotalSnapshots)); + 90 | console.log(`✓ Snapshot count matches: ${snapshotText?.trim()} == ${expectedTotalSnapshots}`); + 91 | + 92 | // Cell 3 (index 3) is "상태" (status badge) + 93 | const statusCell = cells.nth(3); + 94 | const statusBadge = statusCell.locator('span.badge'); + 95 | const statusBadgeText = await statusBadge.textContent(); + 96 | expect(statusBadgeText?.trim()).toBe(expectedStatusText); + 97 | console.log(`✓ Status badge matches: ${statusBadgeText?.trim()} == ${expectedStatusText}`); + 98 | + 99 | // Step 6: Create screenshot directory and take screenshot of collection list + 100 | const screenshotDir = path.join(process.cwd(), 'Temp', 'evidence', 'QE-M1-02', 'screenshots'); + 101 | fs.mkdirSync(screenshotDir, { recursive: true }); + 102 | + 103 | await page.screenshot({ + 104 | path: path.join(screenshotDir, '01-collection-page.png'), + 105 | fullPage: true, + 106 | }); + 107 | console.log(`✓ Screenshot saved: 01-collection-page.png`); + 108 | + 109 | // Step 7: Navigate to the run detail page + 110 | // The detail page route is /Admin/Collection/{runId} + 111 | await page.goto(`/Admin/Collection/${expectedRunId}`); + 112 | await page.waitForLoadState('domcontentloaded'); + 113 | + 114 | // Step 8: Verify detail page title contains the runId + 115 | const detailPageTitle = await page.title(); + 116 | expect(detailPageTitle).toContain('수집 실행 상세'); + 117 | + 118 | // Step 9: Verify that the RunId is displayed on the detail page + 119 | // The page title shows: "수집 실행 상세 - {runId}" + 120 | const pageHeading = page.locator('h2.page-title'); + 121 | const headingText = await pageHeading.textContent(); + 122 | expect(headingText).toContain(expectedRunId); + 123 | console.log(`✓ Detail page title contains RunId: ${headingText}`); + 124 | + 125 | // Step 10: Verify snapshots count is displayed on detail page + 126 | // The snapshot count appears in a card with "스냅샷 수" as the title + 127 | const snapshotCountCard = page.locator('h4.card-title:has-text("스냅샷 수")'); +``` \ No newline at end of file diff --git a/test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/test-failed-1.png b/test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/test-failed-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b0f2ecbe45e762e372cb81b230bb10c889dae7aa GIT binary patch literal 101840 zcmd?RXH-)`_bzTj6a)lB6aN-T!K z8(~|;V42HSVy1`J^ZQR*a@Zie_@BX>$2W+d{C|TtdjBuW2OneNo1cbWf`)wd7SBD@ z-2>bd0$*?}Z+)LoC*P{u^(!H8*Tu#i9(kd`YjRhMG@zkfe&#b8&*7x#l2EbRPmI##-N zzpUC`?&uBMwHLmOQ(F+7sk3Krz~Dm{i@yPc+c%$cpPf=q-+$y?OY`Ig&6iGIocDRG&{R^Cv?Xrw{Ls-|F{t)rjc)*`wM^A`;_HQ z<9dd$mCyM=#Sv5{i-1Eb-AYIkH9wnN#OK3xnVG=Q8#kVlMtOW0%6uYZrs~{}IKS+t zKQTuz(Lw$7(Y)7l{@MWug&MmlUm-jvsc&fA9Je<-?@mCR4`K;{R`;NI!JB=gDc2UO ze9-f7GZf){7=s@g!0Lcr^9_-ar~m)(MzPf0@$RsnLNaW&A@xz5v zskLI0UrdSh;nI`-C+E{^x!gZY+}bC>@RNW}u+w4i1vS%RFQCMG1-wqIwxz!haXDkE zZFx!C-uug~fJiyp>CU-CRLGS+7-qgmT=FHKb7NXi&+C?d9 z=wZNFC@cd2z%u%q`VE|lf*L?mi++$P^EFmeY(paCpdYK=EOLy_JRO~!fTY~n=nq2#$kQmcQNnF0pv$yA>8?(j=pU1FiP zJ!Lq3k_>ci6epmIkn@smH6(m^)N~^L{IB)Z!cH+GVAQHv!Z7V@Vey$*E|ZK~yR^DH z`s##hHNP(3^7eOG#5gdEt!d{g%G6kosBmlUkeF%PPZo#m>>S)I6NWJXF8bXNQcy#m z6{N>3`poYtabF-M2_zhToF0z#7=>=K!+e?O@j-$B0t}vIo-PjSjm^tMu<0DAAdwqy zvIndQucP9eKHBihs^WGu5E9|SBa6Bu$%x=b@2aO5m@Kvm^Z~zF@tRL<0Uv9GBrWO=*Ys43-9tW680?sv^UQ6k68!*J932ny}S;_VT zkGKst9Q$Dfjx#j_{YILp8+X-`TV!8T(mTUTmA1??jXGYFGg04H$_7`~jz5vapHzMhtZa(EodNQvday2{Fg@d@7Fv*O2&Kb@a=vI!f(aR^6oHboQFUQ4( z^zKnKVYWD3*$y@CPUhM7pGfH}$P&J)UoVe8x?yp*rTlvjbh|r4Bwf47I=o`F`HP_D z;*^>ABVM8vTY}K%U1egmX6wuI4KH*0i^$DBTR8qZF^OKZ&>_B0p2^Q@lRG( zvaFwnIR6X46NwHfcOmdr8-~Xitc}?=2y%L9DGzsTdL043OoxdDDz4YonMqHa59LSb zOHH5t5h(-k>tgGm_=EO&gm2=s5^lKPcE3LG&fA{iuRY2G==3pujLgZ3h8)le+U**G zcSp^jf`TB<^Jn;dc4DSN#L0}L!b3hr=*h^S{!DiTcF}h=9_|eA^V=kq$8-Ai(N%8q z!^;WiGZub_<5le43kY1&bxOX*7OWE92tNYW1Y&V$<;7sgYKPbE(-Etn!R9)kvf6Np zk%{**6Zr|;hOKaJasG0&FoA_4DE9K#Nc^HS)_Ek~tVVvgg)rE^wqzOmJ$-g3^8I@z z!}~?KidMZX=DJJfCgsnT0DlovbC7Lbc|ErcsK+N1#j`sDvu>FV$IA-&Np+oBf%F=j$@P#09M$`>9VDehaOp0)1$h|XW zi~3piV1rK|G9ZFc;Em0i|!1!8;qqUj1L&lF0@Jq4ZcekYSt{R%o zy8*jr1&;6b5tr#Gc{3rR(~Z6msaYmpO}oE*43Pr0BOC)eU6DcnT#77VJkKW=wox0z z2<<*hf5kZwQ~bNnuh4L)1v6Q-)7E%f3VhScp>P{hY@9s#l%UniT;# zw>evsl8anYGtwfZ7lti?zQ~B%>DVr{IfC~wT0Pl6W{l0=et$tx>xYS=R`!GIUA#=h z>fJB(uDgp@srh&iE*+z-fcIY_hRvy-D2oXZTP%PWNKz%PcN_{B`fi*r0e>=RQ!b++%WV;LqaCM5_T$e{O%LeoM9RsYty9MelQs- z&ls$jXq?***Go+S-M7xm(<)*!?CKax*DO2# z6zcV(_(5ybRtB^21-dZnMy(Fx{T8L%qJtECfb;w!i`@kPff@hZ!cVWnx*Y>+@m4BR zzIbjJGtP1QUv@xFpjqlT;}n!Qq4uJ6&LNn3;LWWKTuLxp-EF_6#K+h+*n`9EoRz;ngs}8&2F_E#{V_lh!kjW=5i{9%~`sgb${-IKj zMPGr-9$hQ+->gkb{;k#ZczxRi*3Rv}MW>mCMVA0CS}3z~c%xe78LAMCa_*Yg>c-vX zPjf<6hR2qf&l6l$&Tj%2GSwH2oi!i7T1?L)=jLk-e4uV{e|kb&AFV&fu`afMp$ z4X9h&LBy@`@xjIrn14%$PgOP*KpcWH%iY6Z0afOYo^YZl*fT0nKc^g92*%+K$GrIE z{$T+9fd6^NAfa*UL3$0Pjxu$hPVy}Q>KP9ja}b;`s19+DzgUkq$FEgCw*7TR6I9Z0 zDqN>0gZGNh9Q++{Hn!`&+Y#6QycBcMZaw%nUTL+MjY%H@zeIm}&d_vujDB1E!x;M> z-msGpIr{K$8ep7081yaslRyD66prb9rukhipS=?#syf&o)wH?rgLET&k_*ox+Itb0 zzUaNe?X|GEc?L_9kwud+>iEcD`hR_70BXb;+|GDRyupx<$AiYBo%_cV%ZRK zV;@bAF18#vt1C&EGEv9}wWkdOmv2LSvD!lY(O6 z$-7$CsWYzjJ;Fi%0f4oZ?dElqBb{a)o@b#CijUs_>(_I?@)D9!YcUT<18>7E z24oh*oZ<6`tFKW1OJy&bf`$FeGLGZYTeIa;YIcY6C5{l*;Ch0s%BZK#v9+iHTpeM1N*^zF#P(6)-P7w3Y2tBKdc!<|N%VJvEBd@Y zKMV?MEL|c0bY~!<%dF9rod68!s1pR5i$WaJk7A5)*!}>oxJQZ-^{XN%GVCdnzR9p? zH8c|d3%e?_Zn-o*F7=3{hv~nR&KD0Jypq7g66k(rLiF+A`*4p;acTQ`6V1OQE~>4i z^uZ>NPEu{n1f}!p?lST+EzRdh95X?|sA_TBz8U+Pm+P^a@c5G!1y+ktY5X*yVgEH+ zwKuIq0k}wy_FsY{7QJ4v^6WppDd%VX01yJ zz3=EdYP5a1yEqry+_Zy2OG*I}YpbT=Tr_XG@}QP*%IBFaI1x{>V;19D6m+;U6e`FX+-b52aT5lp54$5H&|+= z1(p5mQ(4yl$EJ|g>FW6733G0tCm8);^p>@cs$l+ezk@Imz z_WrlJE3-K^kO-INnsN-C^)+H#CYGyiT?X}NCy0t+{VY%Y*Dnb0BQl%RF_>By;p-i% z&rjjaiAz)Xvg>3bFoS;-sgsaayw@yJH}WH>br5*wqaGPe?{a;Hmvl=&*0UV3BhoPIJ|C+hw3 z)Lg@{$W`XP_6F#%4put|s08&+*sU@dP)|7Jd>zE7$Ci7@)<-BYBD;fu9Bf;l#dvW2hKTWcPMs}Ca}=e;MhJMO7T)X0Q2%9Xbj(1(09CMiDcm)K7AoJxtQ zdJhGqn#=98X!U?hKc|hI{J@NhXv|mU^t!-|%S7HFCd9_wcTV-kOc~Egk|R#9)*2Gc zsxYa9^O|-FKq?{bgnat1Vt+zj+<0*a*}nQ6pG>U;qe~gR>fPRJ(>$j>G`X3Nr8z8V@_$Nj}v&_)E4Z>M*p>#Xg- z)t}h;pjA}W&ardtXjsb$pJ>)~F8vulg|H?S$A(ge-EMxdEGK20yf+}faGC2dy_LdC zuPsVVmbBG1xseJOA|pGD;h-7vY`6&2?G$yWuBDRmENUKjBXI=~5zA;#7J7`bY^5>oX%(?6kKPvcYXBU zgi;?S_5++2&h7`_G0^?2klHLQa}s#C4?I2wpqkAKjK1!8xARI8P=_q(?Et?OdM{)C za!7|G&g8V>ncnkMv@UqKgPRWC&a zWe-_J8XL~0KcGs&vx;8!b~CoVPWnUhOFgo!-^2x;nJ*QOdi-|o&0vY~ zrK^8u9aci!*vX~O<93UQeV@?*hFjvJHdM6)pvY(IoHZeZPkIeK#hi&Wd z54O0UD6SUR20SD@GIxb+j_?0qZ`xX$W3VAlzo=u602)Shh^}@qZoLM#U(C~Ry2pL9 zX*@+Y4Ln^0-==`hJCtzKLK$|%%4)~E_NVR7dt&Fw5-ey52eTvS-@j9I02LjLK$|5W zQ`1Gpt3)Wh(k@Qs)2+>E-popsj`&sFX z?OtZy=XGw40ws-bi;c-tN1`-!hg8Iv z4T>gi4B^5Oj+bzXajcZqN#c~y^w(F=3()Q|Zl|w!A9pzg6-svyB))OOqT%4)R~z*P z*36b;5wBgk^tqEKu^FWKkk|AJN%C6n@q1n|Z!LXRYHWWC55-uoT%?L5vH$9KmpO@7 zixF^w6%Ig09xgQjt|xID{$8G1Srw~~-z+?{gD>-AuZzIzeiaX>5y zJ$Tc~bs-mp>eQxqT6P3RYzI%C7~Drq%~O}>k=tbW)~|C;O_V~h0g}8mgPirJMn{2V z$AUvLMvA(F+<44y?6@f0BJO-%UxLZ$^G;_t4R%k-Fkj*MnC^*oe{5T4ksUCba6a9# zSP)7mRVWvo3Y;K7E+<#iqn=*n8nkV5$=_h$zVKTe$PY`T+iyAB3o^SDQGBptsX)tD zIAP+2Ek$O#kk8-sOW^x3(3~ay=NrZI+zeeWNTKJBa%WJ9I4``SBCy--Ja-V`-;*mK zIyXi&81IYkY{E>XztZWLQ5XN0H@GtpF7d!?BJAiB|MF)ngYg#U0Ik^;cq?88&4BdU z)ov%l>g?_M2^$(K%~YNWuEjxWF}QrVrn>N}EM7)VJsNf&tk8nA6-535D=Uv?s$6ub zJLD=VSizI!hk4cSbMgyu6WS%W(m-A%?6w|@NwDnu@$a>s%D}C6=st;!I7=;_$syw$ zTuyfgr<=#frgCmu;#8>1?7{7ODR-|4ft!aU2gzbppsM=ppLJe4mK`*rsZbMNr%jI- zf$@qtkJHY*({QiY+yL{KQjZ!MR{OY_Wqs#W$MnI5{0aw_Xw>R5aiosYp0%m24o+-; z5a`sx|HWd;ahBkHW$Sd%;*35+oTj9911dI-y+*0MCg%+GfqW#UjN7|s;TX8Itv;)k zTh)-K;dzRHV@bW_qW@`L2r(04N~DA59`wbMsDxkdWpFPHP}+#)WV6U~u=JmF=2Imy zt{IWPa9{9g+1b7*g6W}Rby$ime~_$Y)_au|myjB~LRl)r0YeAeyqwQNKh561Hg>ar zkBAaLgB1=nyJ{hsCT-{)GV`CT2gY36qHg<5sNX7e=2blT;@3e!;Wjg|_hIf6>Pe2Yy%}bGSlUnZ*zv;( zFk)=Rq{_cVQAP;tLq^10eC^156>AVZw^NH5{neyneQDm_fmd6hxYX7vR_f$r z`9oF88uFT4alk{S7KW5muT&==`JI~+OQ!B4EO%5zlfIwSh^{+c?PhciieQ8u`Pwdu z0tdG3zFm#f;k{n9LUzl#G9~=him`quln3g;ati%*7Kz9|OjWNg$d74$D*1_s-n^;m z^`+wK3>a;@;!2FTYAzE2Iu$}IS8>&jJ5J4=N^Y|Z=Jksb0!Hw>$LGS45X5N)=;CT> z&U;5KHwxfwk$Sv48F}Tbx1RIM8jXrOM&} zP7l!5G`IFI1gf?sW&^e^eOKqhEMN`zJmb)Pf>w7_k-)y+Ww*W;T}(5EdX^h8at>3i z%d@*cbJfBk480hAE~ATPWwMIn^~%`^hY??hv;l!utq{@;ROzm*4d6O=$d%&QWiiG` zUA42rEAqXK2T$`xVLe%!ZGpG5z}kLx zPZtwp7#cv~9zR<rrnMHGYa6{xN=XEp{1t@vRo*J%H-%0w!2Z{iF6yjn*&6f!3%0bhb=MEsfZr&2_!6!US&GB&H!(fK2Z8S7Bu+`d)u_ zjtzpp)pX6x79d$!Bh#m`sNY4`1j-FcrkB^BHx!7RJAH}!=Vj|2)BeHzJ24jsBLw~X z=J}H`26Mu~Ven#$J>y%yb1(LY4{%2YoEJz=ck}n1f0rZ^>3zA@_2t*)dGCyNI30-Py@pLil&;{*?Hc#dY^Qz$DiEbcxzrY3Ql<_4tMYx!9lU?u~{>;12q{Jy_p{ zui5Q<2pJD_?wv_8|2(v~pzYch{@-WZSNr;}SoqhXXqF!G{8zkj!|>*Rl>cY=e=K(k z>-_j1F5p_z|FNF`TklPXoxvlKc*Dv&VILAXe$({L*?~=ce8fx^gkKOeVm>j1qvYi~ z0Q~(Yb-LWvT+R^#l>aekl#nZVxqu@7Jx*%bfFq5sM?-;jjy7LQRFZm=?j#@NC7x%Y zz8z(7RzB(UHyLp8{v99b&R*FUG>1|6hy>ujkl$l7pGd!Y!R-m7Uj-y`7t7OzX_X-jm$sn7A{K{SaQo!LBNXxt{jEQvvUPRmT6UNGY& zX>Z%~NL$%L(gpU?uDa0^UX0)~$9X`wJkJyyArrfj)^~D(+4d~9G*)x>=-gu4ci`Rz zN=E1FdoAk$Kt*J7NLTv=F;!i~o9-A)1e^AM-uO_6GPrkwY};npTd&B7wpy^~?{BHn zqK($>X=7SUwp@?WHqfeP1xm}6R(zl6&*8~u9&JXusF;6DeJay9O;v#k@|oBpejG_Y zbTDR=u0M(Nu&6n&u3YYJwfxGnRuZq>J>erK=cBxwz{j(;_A4?cfNhWA+Uoxh67~F0`j1@h`uD@!`x8XU z?b~fJ&Ei+-opb$bfgU2xEVlE3Jx?S3e~Qoc9jmDUDF?LKak3NEwNK48>o2Svb&}ms zKO#@w7lrD%zhVCm*J^q4w6yd^ohfLJgglsal*as*A&jp8D5+swtrz#%1Fj$b z_$9I!EPF-#v$_~TBX)ZMjSHiOx~$bYIo0ds3H3&o z8Ar&%+E`+1eWMMVJU!=8yy24~DFJC&C7$2`6?MHpBdLsx%+z^}Um~l!Cp~+)9ub+x zr0>QyY!s7!k)eW8lp`OVc5c_dE;EvAC#}GIcet%_9yI&Alr4ctT6AR5qq^&?0__4$ z&t&fBEOjmS^8HwI^cQ)A$x!G~0sEA=PgBVlKCv&B*0&9G8Y9I4`GroVifE-~Kjf5k zvIGWF^P_A7FDRGa%4&m(3>6(>2nS%dfPfq2jCz%2O<{M< zpwpu_;2gu(D#&H*>C0W}Y{W5d#MM^Ul(Cqg?x-ex>8U2~xGBUFZfgY=Jw?t_EMx2)oN{H7ge7T#4Al(d~a0XZ9n9+pGl zlVkgL-|qa2f823D7?uKpm)$;2@Fy`iIEk5!F33Equu%flkkOc$ZacnDcB)nx$800` z`UiQV(k{POkYHJ3oam(!78iv5-YDBas*6wG_+|V^c4P-5_4Sz|YPMqoW(?f=?COi5 zV)8=``MI?%4d(MH{XNsE6LP$u3M6JEMj<%iQf26?w<$Ohe&4g8L0E5cl2Nc&T(S-c zd%#6|fyKg{#HNk&O_S&yipho;7@atH9Da7tnPl7wjdYxN*NKTNDFsH>6nXWBS5NFA z%7SK!idDLQJ|q2I;SH+S#aV*nb{0^RwPbs}tQyG_gXD6?D>bI3jAP}=XFYrC6DbOL zFJ0RP9ra;mlG4Q`&%w<<40d!U&%MEYCiY-`l__$$!Tz$f8GL*D4jp+Hvjd6y&}Uf$ ze8l+IJ#AADdAG(e=|LmlxDKO&L3FD(bSPQ%HmFI5JXEQHpS?>}J{Gy`Ioo z3ZTF!W`Zyh;{ug!|69f=+tv$CuC4t|+x>D-`Jof_%U`ZHmpw>?Z2>Ha3blcX!cFZz z)V*AmrX=qS4DB<>sBZjL@$Dn8yQt&o7_-CmrUYfy`WmYz(_iD{OL5STcfV+DplO#)51FNV$AL>$@&v5;fJ|3yZS3;j5rNJ!9o=zXk_yT8Kvg&-yMZP;EY4n(jEJ#__T3)|St|Jy|&Ac#2 z1#=Sa(1_d55M8GU{FzikBmWW%>{vMbyBs{c97v@sNwU*O4wISwEoy3Z`gKykEj2w` zf)|KeO?h$_@Fi`>UX;vZ|PLH%78KL%l6#rC;`x_hCU}*owin2 zk%^gy+xdYD6>&nBW!1+IhLZ`^Lguy#J^Ino!ULfJBbeK61Jb3|2}%YnuUqMqf(g?- zHJZimijQ|vlyTRmQx&Jf9F*G9#E&t80@?o3M#IJXVVPSXhM9?W1#b_?*_+dsTb9Gr z8V$b=Bm=^tNi#}~(nV@drydKxZ!gZz)jk+We>1Q@?=DkF1Tut`t?>i-WRTmI(rixu zLQffU4ui$KEe{2aBY!CnK&xej(H?SuFk{qAr(5#049uhp(PugdU_~A@peL1S3$UTa z!LI{yO9?4b=A~8aN%gCkTaH_Q^kdNepG)~1_JS)6%%!vV4%)tEaCWSQ|82|b6BV4R zTE4juoF!xJ5^u| z_Tf~=AN?O`9;qwr^68*otWQHa!dYnubzk2= zBW=SkLAICUF6wVf-K0StiVa>5n&obB(LRCXEA)4t|ADCuVvcUix1N``_ac#WOs zhzQTolvqnQ#{4MBb#W+$oj$NJ`&UEIsD8?PTbY#njE_UQtpVVy-5TJ9+7!yF-T7ME zc;Mo3jNcCN`*?3}x1s0T9-LgKHBicUf!%VW4Lv7|i?3S;vI%--*Z&!~nph509gvpq zACehRDdFYZP+j)#UE->W?m^b1xc?-^SF$zdPNw$zknB89aTqAh8GO$JHnS~`vnE6>tH`TGafs$+h9=I%p2TcwGFF|!xh3yvKQW4<$r zvT9uWz!|y3QL$nhMap{PR``mbC`0D<7DbndCv(2%*Fb9Z^+&yTu}2DT)^D}%Ke|sR z?o72yPTuU!{^l4gny&7k)Q2Jh8b+3}z5u>pL~aA6+4{M!;qNjLb@syGXf2N6XZ#3@ z1f5cTT^$oDQ&tc_YiComy7i;Sde^3=(n?Hn077MrkKB*C)A!tJ-eXk82RV$f5n)2Z z+!Sm+I#|IQJ6^M8?@XF%la|Hb5*7CW+HSs7pA9D^JfOoSE+~5y?XuR`*iKw+X*c;;wO z;Ox&?Ng`R#v$J$&vc~A7R$IkVG%Fr-cK)c&k-1V$!B}-C`7hbE9sVe>9u7UXUvuW) zkdGh8NUin%z@A?qF$%7f-dB+27cJm|y>dr?0~_zQHGA)9n?Zu#zxi$6$(Ps2>;`HF ztywfZB~7Zc$2|gEXl6ffLv!);hYdbPovZTZSf@TA{XMeHBEHvBxlc6i0c@a;7cM-j z)<#l?;OaR)6DQT>mGJO6D5{;le~iJtFH$~o8=qmKfHRj2zzTLkP6PAlvM)aLrtPgC z%Tga(ZLjGVD)2f(3Qny20{hi6csM3#9jNS5|Io?6(06x>NV$tv%Epm9a~s6m`%e_U zb$jH!@8;*B$=x-Tg$a$#3ja*|Al^NrvqVXiQI}=$?U?5E`AcQR^!4h_5zf(U`VgZt zcjEoZmnD)?&8dSyImVL-2Jb2{6ME`9oF3O~#0?jk=#tybwH(c5>?mYL^(*9Tll1Na zHc_AM<)q0+$O00SP$w<5xG$k)i?UMjd#Mz0w1VJ%Sts0^QIQl7jOm_(bg=W-gE9aX zjeq3UYuIt}kEyuYmnuHW*PsHS-ep;HNW2K*&pi1vjoO>ZTL1xsc{Rw(!)&DOAV=1$ z>JXyE>@hsB9rH^1MPTVfn*yN+dGw}r#*^;^BPq(Rc7k<+KI1H`3Y$#A(xo#KH7*CjZI9683)ZJo41no{uh>a16B*@MoO}*4T%?U+n}vrB?RH zmdEC!&Sz-q#8^xBcI6~We2j?CA-GK1VAd(OVB9qhwPScU-jqnYRHX(b-(=J%Qj?s? zsy9jTl889%tYbeED8qc?fg$v4QC8gf$u2 z2KoB|qoGa=lPNvu@CdpQlu{Q2{ws*k5Eq~PM58bgf$DBZxU2h6JnPlg_ETZnpgdpX z3NYN%=ayU&-6y0Y-z31$$YPuq@JPn%q+6vS_mx~O5qsoG86W@0!6WiHk)psl_i&?> zY&-8ElR|}dQe~hzW6dB#D!oIMN6_U_qZfJYEO&allbpNzE2c}D8ESrE^16u($B){2 zmvGH(O5FIXbklZX_3LEPAUKVMOoaQj;5cJ=q44;{UwqQ~C}-Ytfn=5zun?OEW|Ho0 zzJiwM9kxQJ*@fTtl;;?v`nG>d!o_@pY{$-j)jBGZj=dW1R^B9yd~dY}D>a+cM*pL( zmbjRSz+aAwnm!R#w3p_RX#=OqObraW`9U*_Oe2XTQz#QJ0WG9Ng#^2;a1W{QdkQ*Y z?)3m{5S>F`)4iE$1Xe+Aa63kUuxtPZatOrAdNHoYqazthB)1w$xnYg@wx-~mM)!~s zQ)RnJGK%U+8Xwyd2K#wSdSv^Ef$Xv!?(6y06)H)cJq_S!$F!Fp#4smJ!bVtzWax7js*G}j!1JhIN7P1Mw+ z7Nvrd_S;cGy|y@gL4Fmz#5fqvwZBZTb@szlR>J6{AzeYi+Qpl{vhDG+;01dir?iy% zzNZ&)?u{VD>auEGLJKd_XxL*MdA6}@@s}7Nhv_s92m6YgaLA>n>1z*i7Jy_lQ0DDI zUS#~uLP`(zghwE`0W4JxS&w-Af8};~19L*NQjBgnEWINe*egB87gh!+H4bJNvFtwT z*}9uKAy;}8gp1F9FI3vi?@an@8Pd4QO^iKQ9dU;Q>tg@LC6tnN&=$mJT~L)+GXxXG z|8Gk>h{FG%m6-K=@*Zq&W;ivX$|oT(-VCquQOF3KRaQqwKYF7+MU$e^0m0?#i<;(H zjQP`iO{;eE#gKnh<0lpTeeB~+b{)Aah+Ydas1Nu!USsWs!fWNjr#XL`oZ4;g zUFTLMPc~<)QhRaQ^#PtvcF=jsg|9wD1JcCYOZNZv@*}IL+fss5#vDBS{UaL>NULN= z8q2=fl|=nh_q6Bo@9=vyL&J<^^fjweEtCfQDW~Q0!&R-L)qv<Pu;Kz9yDn@wa5Cwsm!@R02dt9~v`fnw#Q%qFj#UBN zA^rEHe@)^3Q^>u?|CO&fCc32?|0ejab(8$xASZO)WDG}bY)oN>B+A6ga)Phf)yvHS zLQSr`PNiShL@sw}vF3P!paCS9Ev%H0Q&Xx|b9~%qloDUglY{8f%qlRH=C$~)y+$(F1bG?R+GnSRaf#6(LA4O5j8bSGYi{NF*Lh1jhza(6GlR-p;pjvZ`8g}v=~+~XJ3jsJ8=R*b9v;W4CuCfw zQ0w{ht82Y6(_p;=r2wTo<0o>nnY?zO0Mh0o1Ng(uZHErKl9P-E*1x1h z@torVUi{YH+QbT-T#4^vUXLWpnt2?X3HZNQUkS%{?Y$Xkk zYaox0ZnCSul)#2=U0qPwt<~7A$9Xw^u&SRHMCD=NFS60La(v~Ol+my?i^WpIX!a3J z3@DEVvmCOOg~jxBSrimT2+Ta0L5qJ_DYe$StMV``x%$EdI$qzY+ILv;zCnaTPvzCL z&(Dxo`tr#a$Gsp^?a+PSRPo{ybjv`texoBONnWmoRw-aHthVpO$;`6+Bf#@@F^Hcj zusb%Qyx|F%TbZ`5Xx%Jr^@pIyJy03<$v_y(EiBvHukTxAISd$0G#&P_-`y2+;aS@n zjH1@YPwyaExPtG&6?RWOc@}0^s?X_qSm}2e0FtbYeW=N0i-{_r`(WogH~RNBGas8 z9tz$?A5j2u==lJ+;1vm#`1woa(gDfB@6TK1|0+u%S>mJlV-D@-v2weC!IM~#Q`^Ko{J|<&ue1}mkbNZ7mr?riYd5!$ z9+8-}8~r2m*f-#^iX6U&^nxT~y~+Cn@trR4FpGyuNb`ZS$#-l~wVNE=oc-^E;OljX zNMmE~bWO*6(8LCIb>w5!6o-dKpDtBa-Z8(Xlc}A7f`*DwbvbJ!*0cEUh zrckKo4}XdQmB1efnmjrqKc@2CYg6uzDtZcZ?8TxR_-rxUQo%JkfE*4oN z;zG$@!TQfX3my^mb!f-g2pUkDXEa(ut=n|9D=^-oMf949m7x&~3KPu(ALELnt0(#e z;&j*>3sv))LiaTjbsud$GS93d>G+_l=GB-Vm%T4+9PE9Dc&A9LElB*frlVh8|3=N~ zEUqlF)2Dr1NVk!F7zSPUb_;a~*X(_Gi>FcY+kE_3^NW&W9XIbPB8 z%}GuF{UnKxngJw~f2<03g(K-Kv}kSU$7>(X7VvS=t8Z`Z@n##oy>+_U&g6G{z)Wg` zID6}+?Y%WBM-@dSo@VA?9=GkhhaZH$V-&~EG;G6tW?9%t~R ztfhR&!$-gVvDDd@n7XVbuEkAP;mY02w_1zmxaP&&A~{NaSuXzPnQY*sCxPzH_F13V z0?)NI%m(j{`wKQ_tN4P9_MBv9^HeqO@4%YxG8UrwEx*6}Tii6M-8N-Bm``1MySh7X zUT-}cwP`M)Z@RwFv9uOlN-Sp}@$HQAVzt zSiD+QN7&)qy5aEh>)$FAJqd2-KK}R<=wrq~#aKqTBT-XB;^HNGd4@KtAU>tQsBpaT zmx;ZY$E}Smg0DzwlSKI5R9*fY@Y2gukIot2^U{klxv~m* zXn~>fgZyFGzdU5nj(HgROTn)%ZItuJy-eEy+43LJ&aQ$6dIdLMHm{5xjwuENET1T1 zO{V+<4sf8A+av~xJOr;V;jc1CSBwipw#)B^HmFp)9Y3qWuwjk3L{>8jqBUvsUbbC~X>dpgvmnpEM120kr?*OJyj!qGJIE0erJJwX z`7B2{%Ncbk&$$rA1=z7zJs>LW1@Uo`jhRtmnx-m$29eANC%f^zrLL7Wg z6e@DgefdA~N*zG;z|h4Z$+xOT#{Gkv&iNfzNq3u6g?A$FC!jC)D`sdbw17t9N>__i z$e$tiKJcr6?V81Soswf19>%`*Sji5F?_j&#G4;{Eto8CZ?lZM^!_BnnwtHw*7j%DucGp$QMv0Z4@df{S9-@1V;;p9T- z5)H8Z{%DkI)R6zeO>ot&5=Vu2)3)&9VM#%~R<;$I)@nP&>0o?Z7W^R~JWP%!#q zO>OOCAzVvUW#Y%`MgOpb8>cEsx1=8o)io(Ew5wE0Nu<-Mg4epMU-IPM?PXe!)?&4X zBR@NhefNHnm|~{e z&Ij?Yb=z23QN+)FOLIxI@lPkklpCC_-qV&(wN^WQ^exmX^F-y1#Z$R=WCF`HlPXba zm9d$3$p-CiNqSItKM2R~y`o1=yxy{~`OGqtGpWz9!;LwNT`A;4; zQi9ry)1a|k`KsBK&z)n%{y z)@{AV{>l6YK~?Wn9{m8ZlwEjS7jIO7*Uvl3S)XMc!FM0$%IB?vvCo2s^fuO?_PG7? z?ydMAiyx$#-h{n%bgn|AAp73LChbu&D!Z!;Wo}a1`D9qLkTWE_zMqoL6Y7){{8KXB zs0qLAX$lWuh4gFc=KVs(`YDq3^4jvA{jBLQQ)OHIm=PC%WZn(Kdm5b;j7V);_SYq; zGz?eY!HN}wkk^ZF4DTAY$tx$Dy*jqHSJK&ZQS_V_(r_H}^8sH4)z+<>vuCYaYgbi)CX&n*OmC4!IIs9limvi5`9jAxrk>!A9L_Qu28S z4X+|Noka-CtJXHbc4C>(jO3r+$g(ufkn2_d4eWEfM9(@vaCgcwcW{Yo+b&IQ?UiWO z>hiGEdlFQyrDR{4?;>EGw9`z4Ke`xA{)zGk>~38A5DkSujtK*+4j7r{$xNG`-@M34 z*I-_VQHLo41Try*{rpxXn{5AeXm>oNuR~1JIq3EXiNeFOPoaI7Hl1%~?tar?Cl-ff zvbL1SgM}jtfMSyYJ9(B$!1D5u5aW|N{@bwaEJbkgFi&1~T2nG3$i~o?a36e31G`PQ z1nu7&O;XNCe>pc>Vuh1TNF$m2*V}&c>LWB;{+Hgn{};UP|E_D`r+e5~X>tB1z3lJ( zYFOGV)rWgOixBzzdH)yE_@`C6eS!KL7WmtUX}>}LtpNDj{_mXMRd4%ptleU3!t40$ zqWn#s`=>SkMEED&=B@Ls{N3mOyXV9S1iu}g(j+#oVNB>4{m*Lfy4=&>;n`nH5dRk@ z!yJd4P^joLYpY!@@OlO^NA|S~E0^4T@tzPt6R3MxW4#(ZT^@o2Y{v7c`DeFO*X%d! z>#vDUhi&2kGZnlUlr#NK`zc>b9>cq;#^c)jlAIrwZ~Hn;+v4TbfNc zzimVw^|QnCx^AcSYFdtfn{kuhMqA9;a_MUVcmMWYOmOQ^#5XVNlEDIG{)=Pw-C^Gt zzSaxMQ~QoTs}&t*&uS-c3>a*>Q#0#7bcl%~m9924MTk_@UhTkoFq5;AcNf6lXa9)# zn=HT(?(QZBvx*E$p^o8nUBD--Tu}Aw)+-d+;SosaX}jg##DBjUP3sl>=gL{zTj~}q zW}&S5#Cod!kuu^PBU&|7^E2&+ghJnsm@YM6dtCJ+=a-8`^OyL4ZzL86&<=N398*DZ z)^Urec`*8X+m)k?+556|va{xLrtfa=Q}seg>&~)wU@zeLL!0d#w%t;5+<*NT3D6FO z{|M=`ZGaV9Cue-^cn&?|f04AUe5h(8Z1KTTQV+NH;S>i(@eI3HGTF6Ww1sA5pBQCZ z-92;;Ain5tRk?eeJt|1l78*_9dGmYn-Il!7<3FuT3|_DHtu$0+xSh6VU&(hoCD}Gv zFI#Xd8S$(x>oh1@AyN3GpSA*!`DS<{t9X4XXxc|YxOVwC>H{IdxIx0 zk)>dJ!3aHX@$2+bmOt2r?J4?vueuk(5)A%g9oNA#A^H`U7YY=9jWzp<(z;nGTYHJ% z`|=Zzd}M=2YAcb#s>j-u18a`@xyg$jE!d;0)RS@osMLXLw4G0Jk?B|BhnhrK_R;gfr_{yB$EUuopNPJr(oo({pueoIQyK7uc$%$Kl_Mver*!(JRIanu}aIdni zXAiKmhPrI%c_saKQ5A-n@CTtIuHI^#i8=WS-S3zadTt$MN3yQI4sj0EWFNfBRCaX= zJ(j(ksh-Vq^FN#sHCCM$k3Gtfmnh8Ubal2ZYOt&{dRtK5&t1OS_J_UNZ0QywI?i;s z^GT0CKO*kNlqh78`Zv^h3?a+1i~V z+*-HZiZi&(fRvt_7@mYfJ3a!Z>*sFuo<(9-J#wD?=SV51MDxnKacx~xT%D)% zvvT$!w5=!BqgH=Tau^?IuNyuFhfLC*=4&2jfD5Eg=y(q+yJUVgh~(b^po+F`G*?u7x=yeEow)2rKMKQVgYcG{^B+89XaIUl|CYuK5~a<4hc z$K%jb81FLo^WLvwuRT3!%;FiEkdHo+55_Hfin(QIdFA2od*a=)I}oGwNo;r5p-SOt0?HI9y`!AxGhAE$)Y%->SbjF z&@sv8PXp73=U?>_wzF~p7O_LNCEc6IN+$z#7b}6w$MthzbL9+Tdgr+RO$UAlA{#n; zcQjdT{-9Q9d;WlZJ0tOcsoxjV!D#jbdUoQ;+U&g5OCjE&cegFj4xHJ2p2oSM=5E=` zMi-l>9C}@%LV5MkJ9n9|)+W*{-h{3Q zO5YR4xX`EzHGw05b_ZaJ`^AJ9-w{pz>({1}&Zl1gGtaO^HtA$&nuuG!n@QvAn-Tw_ zXNmPxF#1{Cay};M-LkE?nv~pCh>0$Go%ls(g3PB&8=hnOi^}Gy2!^A3NV)&Vf|UsE=B~GP}OYl@CY##5n>*-8l-N`%W<| zcp}-3f&#UZSxcujs*~&aSB!h27?{G(aBDbzwp$ZTOB}q*xn=3ud)^27!+DOg)KA2= zUrVVf*ZU?ODqhIY1eS;FbzHObGt2E)xmHvOd<(Uf-#=~}cR6KAB^x=tToAd-t6pV$ z-0M9Yc9(E-GUEQTddnT+kpkR^Zw(8VX*ts2_!EF@k6i$c+qRwz{TH2?KOov8bfUX9 z0FolywC4eD@1Y_W`4`*337aUb!dP z5Ru3f+)65#Qp(VyQj(RMKL%`x^G~{!r}*^*)i%{G>64A*z*43C%)|W>5R>E7rd}+% z>~Ti`_@B_$yLW{@-jX&QR!-ymZqF~Wtk-a66D>tEY_(i67pv&NRvQ*{>AJaTvN7lVCMNV9BTfCXj~Y}zcQcRHue?ky4MC* znGN`?!_hO)pb0XkR}~gW{i^-EK2uo8;GND0^=47&Gj1hKCHc6`SGMZB75J#Re|CO- zwjG$Vz)LYO=d5V+yTIXVmjnGM`Z_Gk%7?zhxjNQ{6)U<1vl!9M9`NuX;$Q6*D;y6W zpw2rjVKvrO`Gz$;jw(EMKDC_ZkGR{mJ&m%T@chg(uktsJc_^us=H+|(bEVr)XmGt- zoN|y7J35;vk?Gkdd>hyN04bXIBLYegLgMCoUWu-x&mCS`oo~b$Uu#^gg7~>xpQ&)% zOm`9b{)r>G&Li>rhxH0Q*VKv1qpnm-#tSL=OmDmfZjwZZk^M%CsG>rBU`e zRUYodA9k__t`PAeN2}g*y_r&A!EB#n?NbXwAj8$Z<#W!fiha__!%n!rx{}Y`$kD+- z*@FF_L%o~}!j1M$#uVw_;iN{#@72Xz1en}Tz-rB1kAo`7^&N-f8^Demo|J71)`y2; z4t4+SE_d-)Wy^ti_Gtwo9JOlu(VGKUFJ&+*)Y*P<9?bU-e%5lis;>=8MD{0tN&ntj zVZ=W%TISnTi&nw3v9|{$2}t;v2J}$n!e#bCBnL|znTMCBVCzNykRszJ%>B=gnz^M` zNi={&ZxUhwL{HjR7Vq5AzNTNUVABW9}pUl=04eX;oG z)3?L_aTQCzG4=m&{C-A!p#Axuk!qp-Db)F=`+wy;5ING1)BP0xe|TN$xEbuWn|iO4 za6~?W|GA7e*2C|D|8GTt|GRwA|NS`nY;>|$vvv~`j33X4(#hWqGU1NRm!9YwHE4Eb zVwi>Agd$#CHqGD2(#Kv^!)SgTRp`q{Dq3a>7ngXpbJvbkWeqjKeLsRwDV*Hs{#TOh zft){gkNb_hEt^S}1ehc$nK{+Q?uM2`j|HD%zSGGQ31I3Qg&O&pmAd6)@v*43V(XUd^2L53e%w!oAKnI05VYiVdJFh_i~zr2989D z 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 G@&7+h({)Dx literal 0 HcmV?d00001 diff --git a/test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/trace.zip b/test-results/qe-m1-02-collection-run-QE-ae870-API-derived-expected-values-evidence/trace.zip new file mode 100644 index 0000000000000000000000000000000000000000..53c8c9a141d74b1d2b3a30c3d90d8b33cb9cf4e9 GIT binary patch literal 399500 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 z zT9tGm7Mfq9<=(TbYARmU#xaBcI3{~2R(3wLP$AGmkT_!h9i!dZzVfq*i!E`kXy|WP z`_^t7h7B4bwStjH2RAwR)CmdHsA9;wiiz>0)?aPy;s$M7?pi;%?8xXpZEqA2m3Kvd z=)rCC0JzmmOvd5H3C@lSF?Zpv6Fwlk$-rSA#MyA&rtB+?88x?NejVCAz$)S- zhw_(gNKGX)bfxH!BKAVAtn|pC#}y~ka%T(KV~47kwnO1l-v~|^Ey1vmn8wg)+%6s0 zQ*HRbmbN6nG4IVYa)fS2iW<+2bpZzsV3M%)ouDLPJLpAHWCR4|?W?}NoFMzI*s|z2 zBba_Vf1(xSO}}^dqYuowFv30#hut8AaawSw<;PFB5-9MqkbY98jF`lveOriGLndV* zv$bbzknen3?=CVR24@32`)o$_RiCUTLH!(hneRy3S7Po7h7JR&^S>GFt(N7ndN;!r zCsVWxEC?!A4Yy-%-~8$`t#*3u3jGJO1JkRGx7!nUuZ`dyqb41m<_`BFq10G_{EXom zV6k~p!I%S0Qa}k9SFo~D)=rSe=HXR3r4Nv^9eH@T!Nq% z6aPYBlP_t(UO`W4AJ)%F7QJJbQo_r5XK#ag>I`}WIJ9=)4+W`#XEkQ=N`Q8>iXqJx zj|r>Sdi)^(v0w?ddmsJrFt3e5p|@EjHOz3YZ~79d@RRPZl+@Y8^7bBS)mc(AlKhZH zV1S-Fw%Gm*XkcO`q*_;JBQ@QGQyS9u^bl#G8rHY+t0bTc!d_bPg*#`A?Sbl&VMi91 z1rHa^HWAkM9?9R_ssmy%5hx?~g9<#=Fclw!K>XtfuLV&GzOM(KYa5{G@*JLZPx2$= zdMp>l%1LT?0&6OE60*xIvMIgpBQ#6ygEj3T#AV9kgxe}pR_%k?M!mkQ=0iA~-ENgr zeC`j|LXuO5Vt#LlDnrAAm5S0c!rT&~fswOh>b+4}he9s~K88%Jjtz8KhD$&+N#iUk07MX&V&O`ByVpU@V|{y+Y!hE%nwtLLzBsFvaLB z%8{-&&{zD^O1%IC07#LyKj<(``l!jY_;6z?_X9mQq^zc{b+m*a(T<3O0aq-u&;rGO zOeb>df3dJqbeEN>!sH7*GOa0~+Ld3vD9ps|29ZEZUvX8>NIT;C^x1YCbAVB~WLM(h z0v4y&I;xXbYTgo3)^T+5TMV-eSH2T6qJL^MaNA1sAL6O^t84&Q6t<_JPUHHvA6rg)p)_)zL6Lb8mC{EbagxGPHiBwxv!OgAs=+T&U%Vn#q74A$8?H2C?14SDdb)?}`ZP*@Jgs*B;&J z3FtHCHch(3>Bp3(xkJ+PhC&Th(fu1(<@$NUi`xi;V{QpnVfii1+IXjFT*wp1X_rh* zO?NOVnZRx)fON+@nvil_e`6@D@;u?Y8BQdKMb!em+i>z~u+wAA*sZCNXTdsWW8G$8 zE≺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⋙_il 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

d|2^Bc|<>Jez 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

BHlxl8Y>V7^4|nM~{i=>Q0`bbXSG> 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

_+-P?L&T2zJRg>L3mxRhGCqR4YXz^VF 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%0Da%lc`;tD)q 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