docs(auth): restore legacy acceptance contracts

This commit is contained in:
2026-10-02 06:09:11 +00:00
parent 7056e012a7
commit 8544ea30f4
@@ -266,6 +266,26 @@ credential, secret, token, cookie가 UI·URL·log·session state에 나타나지
비민감 correlation ID 외 인증 비밀 상태가 없다. 비민감 correlation ID 외 인증 비밀 상태가 없다.
### REQ-001.03-AC02 — 두 credential의 constant-time 비교
**판정 기준**
제출 ID와 password는 각각 `hmac.compare_digest`로 비교하며, 한 필드가 일치하지 않아도 다른 필드의 비교를 생략하지 않는다.
**검증**
`tests/test_dashboard_authentication.py::test_verify_credentials_uses_constant_time_comparison_for_both_fields`에서 성공 및 두 필드가 모두 잘못된 경우에 두 비교의 호출 순서와 인자를 계측한다.
**검증 분류**
- 수준: unit
- 백엔드: pytest monkeypatch
- 케이스: 정상 credential, 잘못된 ID와 password
**상태 불변조건**
일반 동등 비교나 한 필드 실패에 따른 short-circuit를 사용하지 않는다.
### REQ-001.04-AC01 — 실패 지연과 일반 오류 ### REQ-001.04-AC01 — 실패 지연과 일반 오류
**판정 기준** **판정 기준**
@@ -406,6 +426,46 @@ README와 Kubernetes 문서에 HTTPS, proxy allowlist, rate limit, secret 주입
실제 credential·secret 값이 문서와 manifest에 없다. 실제 credential·secret 값이 문서와 manifest에 없다.
### REQ-001.10-AC02 — 인증 후 기존 페이지 호환성
**판정 기준**
유효한 Dashboard 인증 cookie로 인증하면 기존 page query parameter를 유지한 채 요약, 자산/마감, 분류 규칙, 확인필요 큐와 월정산 핵심 페이지가 예외 없이 예상 내용을 렌더링한다.
**검증**
`tests/test_dashboard_app.py::test_streamlit_apptest_core_pages_use_synthetic_fixture_db`와 `tests/test_dashboard_authentication_app.py::test_valid_cookie_allows_dashboard_and_is_not_stored_in_session_state`를 실행한다.
**검증 분류**
- 수준: regression integration
- 백엔드: Streamlit AppTest, synthetic SQLite
- 케이스: 인증된 핵심 page query와 기존 gateway
**상태 불변조건**
기존 SQLite schema, page query와 gateway contract를 변경하지 않는다.
### REQ-001.10-AC03 — MCP 인증 범위 분리
**판정 기준**
Dashboard cookie 인증은 MCP endpoint의 인증을 의미하지 않으며 MCP server 진입점, transport와 port를 변경하지 않는다.
**검증**
Base-to-head diff에서 MCP 인증·진입점·transport·port를 담당하는 `jarca_ledger_mcp/server.py`, `jarca_ledger_mcp/adapters/mcp/**`, `tests/test_mcp_http_runtime.py`의 불변성을 확인하고 기존 stdio, streamable HTTP와 invalid transport 회귀 test를 실행한다.
**검증 분류**
- 수준: static/regression
- 백엔드: Git diff, pytest
- 케이스: MCP source, stdio, streamable HTTP, invalid transport
**상태 불변조건**
Dashboard와 MCP 인증 경계를 결합하지 않으며 MCP 인증 상태를 변경하지 않는다.
### REQ-001.11-AC01 — 안전한 관찰성 ### REQ-001.11-AC01 — 안전한 관찰성
**판정 기준** **판정 기준**