docs(specs): archive frontend auth query gating change
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
## 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 не обнаружит фактическую
|
||||
документационную дельту.
|
||||
Reference in New Issue
Block a user