Skip to content

IMP-281: Dominant-v2 proto#147

Merged
ndiezel0 merged 37 commits intomasterfrom
IMP-281/dmt_v2_proto
May 19, 2025
Merged

IMP-281: Dominant-v2 proto#147
ndiezel0 merged 37 commits intomasterfrom
IMP-281/dmt_v2_proto

Conversation

@ndiezel0
Copy link
Contributor

@ndiezel0 ndiezel0 commented Aug 1, 2024

No description provided.

@ndiezel0 ndiezel0 requested review from a team as code owners August 1, 2024 22:48
@ndiezel0 ndiezel0 requested a review from WWWcool August 1, 2024 22:48
@nanodirijabl nanodirijabl self-requested a review August 8, 2024 08:17
ndiezel0 and others added 14 commits August 9, 2024 13:45
* Alternative dmt v2

* Fixes refless domain objects union

* Renames `UserOp` to `Author`

* Refactors repository service

* Fixes union alignment

* Adds missing total_count response attribute and version argument for `GetObjectsByType`

* Flattens Commit() function second argument (operations)

---------

Co-authored-by: ndiezel0 <ndiezel0@gmail.com>
@A77AY A77AY requested review from A77AY and removed request for A77AY April 23, 2025 08:08
Comment on lines +123 to +128
/**
* PostgreSQL tsquery expression for searching objects.
* See: https://www.postgresql.org/docs/current/textsearch-intro.html
* If query is '*', it matches everything.
*/
1: required string query
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

есть предложение сортировать по умолчанию (для query *) по id

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

для остальных случаев по весу

…cts + CheckoutSnapshot methods in RepositoryClient service
@nanodirijabl nanodirijabl self-requested a review May 7, 2025 07:03
…apshot return type to Snapshot in domain_config_v2.thrift
/**
* Интерфейс сервиса конфигурации предметной области.
*/
service RepositoryClient {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а есть сейчас какая то логика почему разделено на два сервиса Repository и RepositoryClient?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

АПИ RepositoryClient важно для ядра и потому надо держать в стабильном состоянии. Но на самом деле какого-то великого смысла нет, кроме как референса к исторической практике

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

выглядит что он уже итак переписан и туда докинули еще один депрекейтед метод, как будто весь сервис депрекейтед, но просто repository не умеет checkout

@nanodirijabl
Copy link
Contributor

@ndiezel0

  1. Для капи операций типа GetCountries нужна поддержка чекаута коллекции объектов по типу и референсу версии. Например типа того что я прежде добавлял в этот ПР (только нужно 1: VersionReference version_ref):

        /**
         * Возвращает список объектов данного типа.
         */
        ObjectVersionsResponse GetObjectsByType (
            1: Version version
            2: domain.DomainObjectTypes type
            3: RequestParams request_params
        )
            throws (1: ObjectTypeNotFound ex1)
  2. В существующих инструментах тестирования в ХГ есть необходимость в сбросе состояния версии до заданной, например после группы мутирующих домен тест кейсов. Сейчас это осуществляется через вычитку всего "снепшота" (всех объектов) целевой версии с последующим апсёртом на актульную версию. Превентивно задепрекейченная функция CheckoutSnapshot в принципе подойдёт, но так же подойдёт и SearchFullObjects без использования критериев поиска.

    Предлагаю пересмотреть комментарии к этим функциям и добавить замечания об ограничениях и их области применимости.

    Так же предлагаю явно разделить часть API нового протокола доминанты на публичное API и внутреннее API, например по-сервисно (service RepositoryInternal {..., где только публичное API стоит рассматривать для разработки новых клиентов сервиса. Внутреннее же API может содержать что-либо ориентированное для работы с конкретным сервисом или служебный костыль. В случае костыля явно помечать кто использует, чтобы потом легко и без лишних обсуждений можно было отправлять его под нож.

  3. В качестве альтернативного решения с добавлением CheckoutSnapshot для нужд ХГ, предлагаю рассмотреть вариант с добавлениев функции Version Rollback (1: Version version, 2: AuthorID author_id), которая и будет осуществлять откат домен-конфига до состояния целевой версии без выворачивания наружу (и в API) "снепшота".

@ndiezel0 ndiezel0 merged commit 35a8abf into master May 19, 2025
5 of 7 checks passed
@ndiezel0 ndiezel0 deleted the IMP-281/dmt_v2_proto branch May 19, 2025 11:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants