Skip to content

Param alias - #56

Merged
petrCher merged 11 commits into
mainfrom
param-alias
Sep 25, 2026
Merged

petrCher merged 11 commits into
mainfrom
param-alias

Conversation

@DaymasS

@DaymasS DaymasS commented Jun 25, 2026 •

Copy link
Copy Markdown
Contributor

Изменения

У параметров появились альтернативные имена. Клиент может записывать данные пользователя по алиасу вместо канонического имени параметра.

Детали реализации

  • Новая модель ParamAlias и миграция (таблица param_alias). Алиас привязан к параметру и может быть:
    • привязан к источнику (source_id задан): им может пользоваться только этот источник
    • общим (source_id = NULL): им может пользоваться любой источник
  • CRUD-эндпоинты в /param/{param_id}/alias:
    • POST: создать алиас (скоуп userdata.alias.create)
    • GET / GET /{alias_id}: список алиасов параметра или один алиас
    • PATCH /{alias_id}: изменить имя и/или источник (скоуп userdata.alias.update)
    • DELETE /{alias_id}: мягкое удаление (скоуп userdata.alias.delete)
  • Имена алиасов уникальны во всей таблице. При создании дубликата возвращается 409.
  • Если параметр не найден по имени, он ищется по алиасу. POST /user/{id} и воркер логина сначала ищут параметр по каноническому имени, затем по алиасу источника из запроса или по общему алиасу (utils/param_alias.get_param_by_name_or_alias).
  • В ParamGet теперь есть список aliases параметра.

Прочие изменения

  • psycopg2-binary заменён на psycopg[binary]: он не работал с SQLAlchemy 2.1.0.
  • Makefile: добавлен SHELL := /bin/bash, чтобы работала команда source.
  • Тесты: фикстура dbsession теперь делает rollback перед каждым тестом, чтобы ошибка в одном тесте не ломала следующие. Добавлены тесты для роутов алиасов, обновления данных по алиасу и воркера.

Check-List

  • Вы проверили свой код перед отправкой запроса?
  • Вы написали тесты к реализованным функциям?
  • Вы не забыли применить форматирование black и isort для Back-End или Prettier для Front-End?

@DaymasS
DaymasS requested a review from petrCher June 25, 2026 17:43
@DaymasS DaymasS self-assigned this Jun 25, 2026
@github-actions

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

@github-actions

github-actions Bot commented Jun 25, 2026 •

Copy link
Copy Markdown

Code Coverage

Coverage Report
FileStmtsMissCoverMissing
userdata_api
   __main__.py17170%1–26
userdata_api/models
   base.py65592%25–28, 76
   db.py73199%97
userdata_api/routes
   admin.py14379%24, 41–42
   category.py41490%37, 70–72
   param.py53885%38, 58, 97–100, 105, 128
   param_alias.py55395%29, 66–67
   source.py30197%34
userdata_api/schemas
   base.py8450%6–9
   user.py24771%22–28
userdata_api/schemas/types
   scope.py24675%30–32, 37, 40, 42
userdata_api/utils
   admin.py261735%26–35, 52–98
   param_alias.py14193%49
   user.py86397%42, 84, 88
TOTAL6958088% 

Summary

Tests Skipped Failures Errors Time
70 0 💤 0 ❌ 0 🔥 4.802s ⏱️

@DaymasS

DaymasS commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Убрать Category_id из поиска/инициализации алиаса

@petrCher

Copy link
Copy Markdown
Member

https://github.com/profcomff/dwh-pipelines/blob/main/dags/ods/user/user_to_back.py#L179
например здесь хочется только название параметра(алиаса) писать, без категории

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

1 similar comment
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

@petrCher petrCher linked an issue Jul 13, 2026 that may be closed by this pull request
@petrCher

Copy link
Copy Markdown
Member

@DaymasS сделай ребейз (исправил линтинг)

@github-actions

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

@github-actions

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

@github-actions

Copy link
Copy Markdown

💩 Code linting failed, use black and isort to fix it.

Comment thread userdata_api/routes/param_alias.py Outdated
Comment thread userdata_api/routes/param_alias.py Outdated
Comment thread userdata_api/routes/param_alias.py Outdated
Comment thread userdata_api/routes/param_alias.py Outdated
Comment thread userdata_api/routes/param_alias.py Outdated
@petrCher

Copy link
Copy Markdown
Member

запусти сейчас make format, у меня локально для текущего кода проблемы, на которые ругается линтинг исчезают

Comment thread userdata_api/models/db.py Outdated
Comment thread userdata_api/schemas/param_alias.py
@DaymasS
DaymasS requested a review from petrCher September 25, 2026 02:44
@petrCher
petrCher merged commit 6b517b5 into main Sep 25, 2026
2 checks passed
@petrCher
petrCher deleted the param-alias branch September 25, 2026 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

aliasы для параметров

2 participants