chore(ci+rbac): auth/** в paths-фильтры + «Поиск домов» только у админа #2592
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2592
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "chore/tradein-ci-auth-filter-and-saleshare-admin-only"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Две связанные вещи, обе по решению владельца продукта.
1.
auth/**в paths-фильтры обоих CIauth/roles.yaml— общий RBAC-конфиг двух стеков (bind-mount вbackendи вtradein-backend), но лежит в корне репы и не попадал ни в один paths-filter. Следствие: правка ролей/пользователей не запускала ни backend-, ни tradein-сьют.Так 2026-07-30 в main уехал красный
test_get_role_known_users—user2перевели вexpired, а тест ждалpilot. Обнаружен вручную и починен в PR #2587; теперь дыра закрыта симметрично вci.ymlиci-tradein.yml.2. «Поиск домов» — тестовый продукт, только админ
Раньше
/trade-in/sale-shareбыл закрыт от клиентских ролей (employee/manager/pilot), но оставался открыт внутренней ролиanalyst— я специально оставлял её вне deny. «Только у админа» включает и внутренние роли →analystдобавлен в deny по sale-share.Асимметрия с «Кэшем» намеренная и запиннена тестом: Кэш — не продукт, а диагностика состояния кэшей/скраперов, т.е. ровно тот инструмент, ради которого роль
analystи заведена («видит всё, кроме admin-управления»). Ему он оставлен.Замерено после правки реальным
is_path_allowedповерхroles.yaml:adminanalystpilottest_yaml_roles_deliberately_outside_client_denyпереписан: пиннит обе стороны асимметрии, а не только «analyst видит всё». Набор внутренних путей разрезан на_SALE_SHARE_PATHS/_CACHE_TOOL_PATHSсassert, что разрез покрывает исходный набор целиком — иначе новый путь добавят в общий список, забудут отнести к продукту, иanalystостанется на нём непроверенным.Заодно
Поправлены устаревшие комментарии «Доступ: pilot + admin» — в
Caddyfile(у vanity-редиректаgendsgn.ru/sale-share) и в докстринге самой страницы. Оба теперь говорят про admin-only и про то, что это тестовый продукт.Проверено
pytesttradein (rbac + auth_session + auth_api) → 77 passedpytestsite-finder (backend/tests/test_rbac.py) → 24 passedbackend-фильтры содержатauth/**tsc --noEmit+next build— зелёныеNB по деплою
Правка
Caddyfileтриггерит деплой Site Finder с пересозданием caddy — изменение только в комментарии, поведение конфига не меняется.