Project

General

Profile

Actions

Feature #3157

closed

Accounts agenda

Added by Roman Kučera almost 2 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Tomáš Doischer
Category:
Technical and other accounts
Target version:
Start date:
06/27/2022
Due date:
% Done:

100%

Estimated time:
40.00 h
Owner:

Description

Use Figma mock-ups
Test performance for big env.

50K of users
every user has account in 2 VS systems, two 2 LDAPs and 2 postgresql = 300K of accounts

The most important is personal type (identity account) and technical account from new module.
We need to support other types via filter (role, role catalogues, orgs, contract, contract slices)

Actions #1

Updated by Tomáš Doischer over 1 year ago

  • Sprint set to Sprint 12.3-1 (srp 03 - srp 17)
  • Assignee set to Tomáš Doischer
Actions #2

Updated by Tomáš Doischer over 1 year ago

  • Status changed from New to In Progress
Actions #3

Updated by Tomáš Doischer over 1 year ago

  • Sprint changed from Sprint 12.3-1 (srp 03 - srp 17) to Sprint 12.3-2 (srp 17 - srp 31)
Actions #4

Updated by Tomáš Doischer over 1 year ago

  • Sprint changed from Sprint 12.3-2 (srp 17 - srp 31) to Sprint 12.3-3 (srp 31 - zář 14)
Actions #5

Updated by Tomáš Doischer over 1 year ago

  • % Done changed from 0 to 70

Implemented. I also added a technical accounts agenda and ported bulk actions from accounts.

PRs:
https://github.com/bcvsolutions/CzechIdMng/pull/263
https://git.bcvsolutions.eu/modules/technical-accounts/-/merge_requests/2

Once the tests pass, it will be ready for review. The technical accounts are waiting for #3154 because a bulk action to provision technical account was added.

Actions #6

Updated by Tomáš Doischer over 1 year ago

  • Status changed from In Progress to Needs feedback
  • Assignee changed from Tomáš Doischer to Roman Kučera
  • % Done changed from 70 to 80

@kucerar, can you please give me feedback?

Actions #7

Updated by Tomáš Doischer over 1 year ago

  • Sprint changed from Sprint 12.3-3 (srp 31 - zář 14) to Sprint 12.3-4 (zář 14 - zář 28)
Actions #8

Updated by Roman Kučera over 1 year ago

  • Status changed from Needs feedback to In Progress
  • Assignee changed from Roman Kučera to Tomáš Doischer

Code looks good, filters works nicely, thx

Clicking on column name for sorting end with system error (uid work once then brokes, some other columns broke after first click)

It looks like there are some cross joins

Filter by system on persnola tab

select
        generatedAlias0 
    from
        AccAccount as generatedAlias0 
    left join
        generatedAlias0.systemEntity as generatedAlias1 
    where
        (
            generatedAlias0.system.id in (
                :param0
            ) 
        ) 
        and (
            generatedAlias0.systemMapping.accountType=:param1 
        ) 
        and (
            1=1 
        ) 
    order by
        generatedAlias1.uid asc */ select
            accaccount0_.id as id1_0_,
            accaccount0_.created as created2_0_,
            accaccount0_.creator as creator3_0_,
            accaccount0_.creator_id as creator_4_0_,
            accaccount0_.modified as modified5_0_,
            accaccount0_.modifier as modifier6_0_,
            accaccount0_.modifier_id as modifier7_0_,
            accaccount0_.original_creator as original8_0_,
            accaccount0_.original_creator_id as original9_0_,
            accaccount0_.original_modifier as origina10_0_,
            accaccount0_.original_modifier_id as origina11_0_,
            accaccount0_.realm_id as realm_i12_0_,
            accaccount0_.transaction_id as transac13_0_,
            accaccount0_.end_of_protection as end_of_14_0_,
            accaccount0_.entity_type as entity_15_0_,
            accaccount0_.external_id as externa16_0_,
            accaccount0_.form_definition_id as form_de19_0_,
            accaccount0_.in_protection as in_prot17_0_,
            accaccount0_.system_id as system_20_0_,
            accaccount0_.system_entity_id as system_21_0_,
            accaccount0_.system_mapping_id as system_22_0_,
            accaccount0_.uid as uid18_0_ 
        from
            acc_account accaccount0_ 
        left outer join
            sys_system_entity syssysteme1_ 
                on accaccount0_.system_entity_id=syssysteme1_.id cross 
        join
            sys_system_mapping syssystemm2_ 
        where
            accaccount0_.system_mapping_id=syssystemm2_.id 
            and (
                accaccount0_.system_id in (
                    ?
                )
            ) 
            and syssystemm2_.account_type=? 
            and 1=1 
        order by
            syssysteme1_.uid asc limit ?

Plain filter, personal account agenda

select
        count(generatedAlias0) 
    from
        AccAccount as generatedAlias0 
    where
        (
            generatedAlias0.systemMapping.accountType=:param0 
        ) 
        and (
            1=1 
        ) */ select
            count(accaccount0_.id) as col_0_0_ 
        from
            acc_account accaccount0_ cross 
        join
            sys_system_mapping syssystemm1_ 
        where
            accaccount0_.system_mapping_id=syssystemm1_.id 
            and syssystemm1_.account_type=? 
            and 1=1

Personal acc, filter by role

select
        generatedAlias0 
    from
        AccAccount as generatedAlias0 
    left join
        generatedAlias0.systemEntity as generatedAlias1 
    where
        (
            exists (
                select
                    generatedAlias2 
                from
                    AccIdentityAccount as generatedAlias2 
                where
                    (
                        generatedAlias2.account=generatedAlias0 
                    ) 
                    and (
                        exists (
                            select
                                generatedAlias3 
                            from
                                IdmIdentityRole as generatedAlias3 
                            where
                                (
                                    generatedAlias3.role.id in (
                                        :param0
                                    ) 
                                ) 
                                and (
                                    generatedAlias2.identityRole=generatedAlias3 
                                )
                        ) 
                    )
                ) 
        ) 
        and (
            generatedAlias0.systemMapping.accountType=:param1 
        ) 
        and (
            1=1 
        ) 
    order by
        generatedAlias1.uid asc */ select
            accaccount0_.id as id1_0_,
            accaccount0_.created as created2_0_,
            accaccount0_.creator as creator3_0_,
            accaccount0_.creator_id as creator_4_0_,
            accaccount0_.modified as modified5_0_,
            accaccount0_.modifier as modifier6_0_,
            accaccount0_.modifier_id as modifier7_0_,
            accaccount0_.original_creator as original8_0_,
            accaccount0_.original_creator_id as original9_0_,
            accaccount0_.original_modifier as origina10_0_,
            accaccount0_.original_modifier_id as origina11_0_,
            accaccount0_.realm_id as realm_i12_0_,
            accaccount0_.transaction_id as transac13_0_,
            accaccount0_.end_of_protection as end_of_14_0_,
            accaccount0_.entity_type as entity_15_0_,
            accaccount0_.external_id as externa16_0_,
            accaccount0_.form_definition_id as form_de19_0_,
            accaccount0_.in_protection as in_prot17_0_,
            accaccount0_.system_id as system_20_0_,
            accaccount0_.system_entity_id as system_21_0_,
            accaccount0_.system_mapping_id as system_22_0_,
            accaccount0_.uid as uid18_0_ 
        from
            acc_account accaccount0_ 
        left outer join
            sys_system_entity syssysteme1_ 
                on accaccount0_.system_entity_id=syssysteme1_.id cross 
        join
            sys_system_mapping syssystemm4_ 
        where
            accaccount0_.system_mapping_id=syssystemm4_.id 
            and (
                exists (
                    select
                        accidentit2_.id 
                    from
                        acc_identity_account accidentit2_ 
                    where
                        accidentit2_.account_id=accaccount0_.id 
                        and (
                            exists (
                                select
                                    idmidentit3_.id 
                                from
                                    idm_identity_role idmidentit3_ 
                                where
                                    (
                                        idmidentit3_.role_id in (
                                            ?
                                        )
                                    ) 
                                    and accidentit2_.identity_role_id=idmidentit3_.id
                            )
                        )
                    )
            ) 
            and syssystemm4_.account_type=? 
            and 1=1 
        order by
            syssysteme1_.uid asc limit ?

Actions #9

Updated by Tomáš Doischer over 1 year ago

  • Status changed from In Progress to Needs feedback
  • Assignee changed from Tomáš Doischer to Roman Kučera

Thanks for the findings.

I couldn't replicate the problem with the sort, please try again.

The cross joins were caused by the account type, this is now fixed.

Tests are running but when they are finished, can you look at it again, please?

Actions #10

Updated by Roman Kučera over 1 year ago

  • Status changed from Needs feedback to Resolved
  • Assignee changed from Roman Kučera to Tomáš Doischer
  • % Done changed from 80 to 100

Cross joins are now gone, thx for fix.
Sorting issue is also gone.

LGTM, merged to develop

Actions #11

Updated by Roman Kučera over 1 year ago

  • Status changed from Resolved to Needs feedback
  • Assignee changed from Tomáš Doischer to Roman Kučera

I need to do a review for the part on tech module :)

Actions #12

Updated by Tomáš Doischer over 1 year ago

  • Sprint changed from Sprint 12.3-4 (zář 14 - zář 28) to Sprint 12.3-5 (zář 28 - říj 12)
Actions #13

Updated by Roman Kučera over 1 year ago

I did review for part in technical module.
Only small things, please look at it @doischert

Actions #14

Updated by Tomáš Doischer over 1 year ago

Actions #15

Updated by Tomáš Doischer over 1 year ago

  • Sprint changed from Sprint 12.3-5 (zář 28 - říj 12) to Sprint 12.3-6 (říj 12 - říj 26)
Actions #16

Updated by Roman Kučera over 1 year ago

  • Status changed from Needs feedback to Resolved
  • Assignee changed from Roman Kučera to Tomáš Doischer

thx, LGTM, merged

Actions #17

Updated by Tomáš Doischer about 1 year ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF