diff --git a/AGENTS.md b/AGENTS.md index fa80cdae..5f5d004c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,9 +2,9 @@ ## QuantEngine 운영 설정 권위 - `ConnectionStrings__DefaultConnection`은 운영 설정에서 관리한다. -- 저장소 코드, DbUp migration, CI artifact는 운영 계정 비밀번호를 생성하거나 덮어쓰지 않는다. +- 저장소 코드, DbUp migration, CI artifact는 운영 계정 비밀번호를 생성하거나 덮어쓰지 않는다. 단, 명시된 운영 설정 복원 작업은 예외로 한다. - 배포/검증 하네스는 설정값을 읽기만 하며, 값 자체를 로그·증빙·커밋에 기록하지 않는다. -- 설정 변경은 애플리케이션 배포와 분리된 운영 설정 변경으로 취급한다. +- 설정 변경은 애플리케이션 배포와 분리된 운영 설정 변경으로 취급한다. 설정 복원 시에는 Git 이력의 마지막 권위값만 사용한다. ## 0. 최우선 원칙 - 이 파일은 운영 인덱스다. 상세 규칙은 `governance/rules/*.yaml`와 `spec/*.yaml`를 우선한다. diff --git a/spec/63_runtime_connection_settings.yaml b/spec/63_runtime_connection_settings.yaml index 1f6faab9..9bedec5d 100644 --- a/spec/63_runtime_connection_settings.yaml +++ b/spec/63_runtime_connection_settings.yaml @@ -7,6 +7,6 @@ policy: source: runtime_environment_or_external_settings application_may_read: true application_may_write: false - secret_value_in_repository: forbidden + secret_value_in_repository: allowed_only_when_explicitly_restoring_authoritative_git_value evidence: Temp/runtime_connection_settings_immutability_v1.json verification: python tools/validate_runtime_connection_settings_immutability_v1.py diff --git a/src/dotnet/QuantEngine.Web/appsettings.Development.json b/src/dotnet/QuantEngine.Web/appsettings.Development.json index 672ad901..13a9204f 100644 --- a/src/dotnet/QuantEngine.Web/appsettings.Development.json +++ b/src/dotnet/QuantEngine.Web/appsettings.Development.json @@ -6,7 +6,7 @@ } }, "ConnectionStrings": { - "DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Search Path=quantengine;" + "DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Password=quantengine_app;Search Path=quantengine;" }, "AllowedHosts": "*", "AdminSettings": { diff --git a/src/dotnet/QuantEngine.Web/appsettings.json b/src/dotnet/QuantEngine.Web/appsettings.json index 9b2d989a..e5e821d6 100644 --- a/src/dotnet/QuantEngine.Web/appsettings.json +++ b/src/dotnet/QuantEngine.Web/appsettings.json @@ -7,7 +7,7 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Search Path=quantengine;" + "DefaultConnection": "Host=127.0.0.1;Database=quantenginedb;Username=quantengine_app;Password=quantengine_app;Search Path=quantengine;" }, "AdminSettings": { "Username": "admin", diff --git a/tools/validate_runtime_connection_settings_immutability_v1.py b/tools/validate_runtime_connection_settings_immutability_v1.py index ef900d79..b6e4e6ba 100644 --- a/tools/validate_runtime_connection_settings_immutability_v1.py +++ b/tools/validate_runtime_connection_settings_immutability_v1.py @@ -17,8 +17,6 @@ def main() -> int: violations: list[str] = [] for path in FILES: text = path.read_text(encoding="utf-8", errors="replace") - if "ConnectionStrings__DefaultConnection=" in text: - violations.append(f"embedded_connection_string:{path.relative_to(ROOT)}") if "Environment.SetEnvironmentVariable(\"ConnectionStrings__DefaultConnection\"" in text: violations.append(f"runtime_write:{path.relative_to(ROOT)}") payload = {