Files

63 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Why
Frontend data-loading code сейчас заставляет page-level callers вручную
передавать текущий session access token в несколько investment data hooks,
хотя сам bearer header уже добавляется централизованным authenticated
transport boundary. Из-за этого token одновременно является security credential
и локальным флагом включения запроса в местах, которые не должны владеть
transport concerns.
Это стоит исправить сейчас, потому что review от 25 авг 2026 подтвердил
повторяющийся token-plumbing pattern как отдельную frontend architecture
проблему. Пока он остаётся в публичных hook interfaces, новые screens будут
копировать тот же контракт и расширять область, где auth state виден без
необходимости.
## What Changes
- Сузить frontend data-loading interfaces так, чтобы callers investment views
больше не передавали session access token через props или hook arguments для
включения query.
- Централизовать authenticated-query gating на frontend API/auth boundary,
сохранив существующую transport responsibility: bearer injection остаётся
единственным местом, которое формирует Authorization header для защищённых
backend requests.
- Сохранить текущее observable behavior для authenticated и unauthenticated
users: защищённые investment requests не выполняются без active session, а
при active session продолжают использовать тот же backend API contract и
тот же refresh/retry behavior.
- Сохранить existing query cache policy, stale behavior, loading/error/empty
presentation states и generated OpenAPI snapshot.
- Non-goal: менять backend auth semantics, HTTP routes, response DTOs,
generated API types, session storage model или T-Bank connection behavior.
- Non-goal: выполнять несвязанные frontend page restructuring или error-code
consolidation из architecture review.
## Capabilities
### New Capabilities
_Нет._
### Modified Capabilities
_Нет._
Это behavior-preserving frontend architecture cleanup. Change отказывается от
Delta Specs через `skip_specs: true`, потому что user-visible capability,
backend API contract, durable data behavior и product requirement не меняются.
Если при Design или реализации обнаружится observable behavior change, работа
должна вернуться к Proposal и Delta Specs до продолжения.
## Impact
Users должны видеть те же investment screens и auth transitions до и после
change. Frontend maintainers и AI agents получают более узкий data-loading
interface: session token остаётся detail auth/API boundary, а не параметром
каждого investment data consumer.
Affected implementation area — frontend authenticated data-loading boundary и
его callers. Specs отслеживает SDD lifecycle. Backend и as-built docs
repository не должны меняться, если Design не обнаружит фактическую
документационную дельту.