market J: перенацелить gendesign_reader на market.v_* + обновить ETL #976 #2138

Closed
opened 2026-07-02 13:41:07 +00:00 by lekss361 · 0 comments
Owner

Часть Epic #2127, шаг J. Depends: шаг I (contract-views). Активировать после merge I.

Goal

Перевести потребителя с сырых таблиц на contract-view. GRANT SELECT gendesign_reader на market.v_* (+ GRANT USAGE ON SCHEMA market); обновить cross-load ETL на gendesign-стороне (#976) читать market.v_* вместо public.*; ПОСЛЕ подтверждения — REVOKE SELECT с 5 сырых таблиц. Финализирует «потребитель видит только контракт».

Files

  • tradein-mvp/backend/data/sql/NNN_reader_grants_to_contract_views.sql (GRANT)
  • tradein-mvp/backend/data/sql/NNN_revoke_raw_from_reader.sql (REVOKE — отдельный, применять после ETL-switch)
  • gendesign-сторона: backend/app/services/etl/newbuilding_crossload.py + site_finder/premises_lookup.py + competitors.py (переключить на market.v_*)

Acceptance

  • ETL #976 зелёный через view, данные идентичны до/после
  • gendesign_reader после revoke НЕ имеет прямого SELECT на сырые (\dp подтверждает)

Risk

Порядок деплоя КРИТИЧЕН — 2 деплоя: (a) view(#I)+grant+ETL-switch, (b) revoke сырых после подтверждения. Иначе ETL падает на проде.

Agent: database-expert (гранты) + backend-engineer (ETL)

Часть Epic #2127, шаг J. ⛔ Depends: шаг I (contract-views). Активировать после merge I. ## Goal Перевести потребителя с сырых таблиц на contract-view. GRANT SELECT `gendesign_reader` на `market.v_*` (+ `GRANT USAGE ON SCHEMA market`); обновить cross-load ETL на gendesign-стороне (#976) читать `market.v_*` вместо `public.*`; ПОСЛЕ подтверждения — REVOKE SELECT с 5 сырых таблиц. Финализирует «потребитель видит только контракт». ## Files - `tradein-mvp/backend/data/sql/NNN_reader_grants_to_contract_views.sql` (GRANT) - `tradein-mvp/backend/data/sql/NNN_revoke_raw_from_reader.sql` (REVOKE — отдельный, применять после ETL-switch) - gendesign-сторона: `backend/app/services/etl/newbuilding_crossload.py` + `site_finder/premises_lookup.py` + `competitors.py` (переключить на `market.v_*`) ## Acceptance - ETL #976 зелёный через view, данные идентичны до/после - `gendesign_reader` после revoke НЕ имеет прямого SELECT на сырые (`\dp` подтверждает) ## Risk Порядок деплоя КРИТИЧЕН — 2 деплоя: (a) view(#I)+grant+ETL-switch, (b) revoke сырых после подтверждения. Иначе ETL падает на проде. **Agent:** database-expert (гранты) + backend-engineer (ETL)
lekss361 added the
data
priority/p2
scope/backend
scope/db
tradein
labels 2026-07-02 13:41:59 +00:00
lekss361 added the
status/ready
status/wip
labels 2026-07-02 14:44:57 +00:00
lekss361 added
status/qa
and removed
status/ready
status/wip
labels 2026-07-02 15:12:11 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2138
No description provided.