|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 9s
CI Trade-In / frontend-checks (pull_request) Successful in 1m56s
CI / frontend-tests (pull_request) Successful in 2m14s
CI Trade-In / backend-tests (pull_request) Successful in 3m1s
CI / openapi-codegen-check (pull_request) Successful in 2m15s
CI / backend-tests (pull_request) Successful in 15m48s
Две связанные вещи, обе — по решению владельца продукта. 1. auth/** в paths-фильтры обоих CI (ci.yml, ci-tradein.yml). auth/roles.yaml — общий RBAC-конфиг двух стеков, но лежит в корне репы и не попадал НИ В ОДИН фильтр: правка ролей/пользователей не запускала ни backend-, ни tradein-сьют. Так 2026-07-30 в main уехал красный test_get_role_known_users (user2 переведён в expired, тест ждал pilot) — обнаружен только вручную и починен в PR #2587. Теперь правка roles.yaml гоняет оба гейта. 2. «Поиск домов» (/trade-in/sale-share) — ТЕСТОВЫЙ продукт, доступ только у админа. Раньше он был закрыт от клиентских ролей (employee/manager/pilot), но оставался открыт внутренней роли analyst. «Только у админа» включает и внутренние роли → analyst добавлен в deny по sale-share. Асимметрия с «Кэшем» намеренная и запиннена тестом: Кэш — не продукт, а диагностика кэшей/скраперов, т.е. ровно тот инструмент, ради которого роль analyst заведена; ему он оставлен. Замеры после правки (реальный is_path_allowed поверх roles.yaml): роль | Поиск домов | Кэш | ядро продукта admin | True | True | True analyst | False | True | True pilot | False | False| True Тест test_yaml_roles_deliberately_outside_client_deny переписан: пиннит ОБЕ стороны асимметрии, а не только «analyst видит всё». Набор внутренних путей разрезан на _SALE_SHARE_PATHS / _CACHE_TOOL_PATHS с assert'ом, что разрез покрывает исходный набор целиком — иначе новый путь добавят и забудут отнести к продукту, оставив analyst непроверенным. Заодно поправлены устаревшие комментарии «Доступ: pilot + admin» в Caddyfile (vanity-редирект gendsgn.ru/sale-share) и в докстринге самой страницы. Тесты: 77 passed (tradein rbac/auth_session/auth_api) + 24 passed (site-finder). tsc --noEmit + next build — зелёные. YAML обоих workflow провалидирован. |
||
|---|---|---|
| .. | ||
| roles.yaml | ||