spec: simplify runtime requirements
Specs security / security (push) Failing after 8s
Specs verify / verify (push) Successful in 10s
Conventional commits / commits (pull_request) Successful in 12s
Specs security / security (pull_request) Failing after 8s
Specs verify / verify (pull_request) Successful in 10s

Preserve identity isolation and financial integrity while accepting
cross-tab reauthentication and on-demand candle history.

Align portfolio freshness with persisted reads and keep income
consistency at the backend owner.
This commit is contained in:
2026-10-03 11:38:08 +03:00
parent 4d580f145a
commit d861de5ead
3 changed files with 35 additions and 9 deletions
+12 -2
View File
@@ -53,11 +53,21 @@
#### Scenario: Истёкшая сессия
- **WHEN** клиент отправляет refresh-cookie Session, не обновлявшейся более 7 дней
- **THEN** система удаляет refresh-cookie и отвечает `401` Problem Details с code `UNAUTHORIZED`
- **THEN** система отвечает `401` Problem Details с code `UNAUTHORIZED`, не изменяя cookie неуспешным refresh
#### Scenario: Повторное использование refresh token
- **WHEN** клиент отправляет refresh token, заменённый предыдущим успешным refresh
- **THEN** система удаляет refresh-cookie и отвечает `401` Problem Details с code `UNAUTHORIZED`, не отзывая связанную Session только из-за этого запроса
- **THEN** система отвечает `401` Problem Details с code `UNAUTHORIZED`, не изменяет cookie и не отзывает связанную Session только из-за этого запроса
### Requirement: Межвкладочная координация не требуется
Frontend MUST сохранять изоляцию данных текущей identity внутри вкладки.
Он MUST NOT требовать cross-tab synchronization для auth flow. После смены
auth-состояния в другой вкладке допускаются reload или повторная авторизация.
Неуспешный refresh MUST NOT удалять cookie успешного конкурентного запроса.
#### Scenario: Конкурентный refresh проигрывает в другой вкладке
- **WHEN** вкладка получает `401` после ротации общей cookie другой вкладкой
- **THEN** она может перейти на login; cookie победителя остаётся доступной для последующего восстановления
### Requirement: Завершение сессии
Система SHALL позволять завершить текущую Session через logout. Logout MUST отозвать Session, если refresh-cookie соответствует активной Session, и MUST удалить refresh-cookie. Logout MUST быть идемпотентным и не раскрывать существование Session.