Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 Fix double endorsement #708

Merged
merged 2 commits into from
Mar 25, 2024
Merged

🐛 Fix double endorsement #708

merged 2 commits into from
Mar 25, 2024

Conversation

ff137
Copy link
Collaborator

@ff137 ff137 commented Mar 25, 2024

Resolves double endorsement issue when running with more than one endorser replica.

Fixes duplicate webhook events in general!

Primary change in our custom redis-events plugin: didx-xyz/aries-acapy-plugins#114

Copy link

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarCloud

@ff137 ff137 self-assigned this Mar 25, 2024
@ff137 ff137 added the bug Something isn't working label Mar 25, 2024
@ff137 ff137 requested review from wdbasson and cl0ete March 25, 2024 13:58
Copy link
Collaborator

@cl0ete cl0ete left a comment

Choose a reason for hiding this comment

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

I like

Copy link

Coverage

Coverage Report
FileStmtsMissCoverMissing
app
   main.py802668%73–76, 100, 102, 104, 108, 115, 141–146, 153–180
app/dependencies
   acapy_clients.py24292%36, 52
   auth.py561966%31, 37–38, 41, 52–55, 62–63, 68, 74–79, 83–86, 90–91, 96
   role.py34197%56
app/models
   issuer.py48296%35, 44
   jsonld.py35586%21, 45–50
   oob.py24196%26
   tenants.py761580%75, 78, 87–99, 106, 109, 128–138
   verifier.py651282%34, 42, 50–64, 101, 109–113
app/routes
   connections.py603935%32–48, 64–76, 113–138, 159–173, 188–199
   definitions.py1889251%76–137, 170–171, 238–254, 269–275, 296–305, 328–329, 346–348, 383–437, 464–465, 509–589, 597–616
   issuer.py1733878%92, 128, 160–162, 191, 221–223, 231, 248, 347–357, 388–399, 432–463, 504, 517, 549
   jsonld.py604722%23–90, 101–134
   messaging.py241154%32–41, 61–71
   oob.py462839%27–68, 79–92, 116–127
   sse.py321553%37–43, 66–72, 99–107, 136–142, 173–184
   verifier.py1463278%64–66, 71, 109–111, 116, 158, 166–168, 173, 207–211, 220–222, 272–274, 280, 313–315, 320, 350–352, 386–388
   webhooks.py16475%30–34, 53–57
   websocket_endpoint.py18667%17–18, 27–28, 38–41
app/routes/admin
   tenants.py15112120%51–170, 179–211, 219–243, 253–263, 272–288, 298–347
app/routes/wallet
   credentials.py775232%32–45, 54–66, 75–86, 95–109, 120–136, 148–162, 171–183, 192–203
   dids.py762271%28–37, 56–57, 79–80, 92–99, 107–115
   jws.py422736%35–57, 73–96
   sd_jws.py422736%36–58, 75–98
app/services
   acapy_ledger.py611280%110–111, 124–140, 196–197
   acapy_wallet.py39490%60–61, 97–98
   revocation_registry.py1301291%309–313, 341, 351–353, 383–387, 412–417
   sse.py715523%20–24, 36–49, 62–75, 91–108, 125–142, 160–183
   webhooks.py271833%14–24, 31–39
   websocket.py443423%19–22, 29–36, 45–79
app/services/event_handling
   sse_listener.py41880%50–55, 79–84
   websocket_manager.py753257%32–38, 63–67, 86–89, 96–107, 114–124, 138
app/services/issuer
   acapy_issuer_v1.py911386%36, 70–98, 201–202
   acapy_issuer_v2.py1062279%54–57, 81–116, 162, 224–225, 252
app/services/onboarding
   tenants.py634922%30–107, 117–147
   verifier.py37392%67, 83–87
app/services/onboarding/util
   register_issuer_did.py86397%100–102
   set_endorser_metadata.py693746%28–30, 50–52, 76–78, 109–128, 140–149, 161–172, 185–197
app/services/trust_registry
   actors.py107992%94–99, 109, 208–209, 211–216, 281–284
   schemas.py49492%56–61, 91–96
app/services/trust_registry/util
   actor.py31294%26–27
   issuer.py23483%39–40, 48–49
app/services/verifier
   acapy_verifier_v1.py1296252%39, 61–62, 70, 80, 102–103, 111, 119, 144–145, 153, 166–179, 190–191, 206–228, 234–256, 260–276, 282–302
   acapy_verifier_v2.py1366751%43–48, 68–69, 77, 90–95, 116–117, 125, 138–143, 160–161, 169, 182–194, 205–206, 221–242, 248–269, 273–289, 295–315
app/tests/e2e
   conftest.py22577%39–47
   test_jsonld.py591673%133–168
   test_tenants.py3021595%153, 197–198, 226, 596, 630–631, 640–641, 650–651, 663–664, 673–674
   test_wallet_dids.py671085%92–107
app/tests/e2e/issuer
   test_save_exchange_record.py62198%140
app/tests/e2e/verifier
   test_verifier.py424199%1070
app/tests/exception_handling
   test_handle_model_with_validation.py23196%22
app/tests/services
   test_revocation_registry.py135299%73, 106
app/tests/services/issuer
   test_issuer.py161299%316–319
app/tests/services/verifier
   utils.py1388538%171–185, 192–229, 237–240, 246–257, 263–272, 277–330, 341–393, 406–432, 445–483, 497–535, 549–570, 581–597, 610–616, 630–646, 660–686
app/tests/util
   credentials.py60198%149
   ecosystem_connections.py1362780%291–310, 327–347, 355–394
   ledger.py491080%34, 42, 54, 62–66, 76, 82
   member_acapy_clients.py36489%47–50, 73–74
   trust_registry.py41198%26
   webhooks.py25292%13, 61
app/util
   acapy_issuer_utils.py18194%22
   acapy_verifier_utils.py1338238%41, 51–130, 163, 170–189, 193, 200–204, 212–216, 220–224, 231–264, 270–273
   credentials.py11464%11, 15–18
   retry_method.py362142%15–36, 76–77, 91–103
   tenants.py251348%12–17, 32–33, 40–47
endorser
   main.py33391%59–62
endorser/services
   endorsement_processor.py1371490%90, 152–162, 195–199, 211, 223, 241–242, 251–255
endorser/services/dependency_injection
   container.py14193%54
endorser/util
   endorsement.py58690%57–58, 62–63, 94–99
   transaction_record.py54394%52–53, 90
   trust_registry.py34488%51–52, 63–67
trustregistry
   crud.py17615214%15–30, 34–46, 50–62, 66–78, 82–141, 145–161, 165–194, 200–214, 218–228, 232–252, 256–283, 287–302
   db.py29969%11–15, 19–23
   list_type.py11464%11–14, 17
   main.py411563%23–32, 54–59, 64
trustregistry/registry
   registry_actors.py825829%19–22, 27–38, 45–65, 72–82, 89–99, 106–116, 121–127
   registry_schemas.py654038%24–27, 34–51, 58–92, 97–108, 113–119
webhooks/models
   conversions.py63690%70, 83, 89, 110, 145, 163
webhooks/services
   acapy_events_processor.py1611591%92, 155–165, 213–217, 245, 273–274, 298–302, 314–318
   sse_manager.py2263684%153, 155–168, 202–212, 241–242, 255–269, 324–328, 334–337, 339–342, 367–368, 411–413, 447, 458–459
   webhooks_redis_serivce.py1021783%61–64, 67, 122–123, 208–209, 271, 277–278, 292–304
webhooks/services/dependency_injection
   container.py18194%61
webhooks/tests
   test_sse_manager.py161398%212–213, 219
webhooks/tests/e2e
   test_sse.py81495%121, 147–150
webhooks/web
   main.py42393%77–80
webhooks/web/routers
   sse.py16813718%34–38, 61–96, 121–154, 173–238, 260–301, 324–376
   webhooks.py301453%27–36, 50–63
TOTAL10588194382% 

Tests Skipped Failures Errors Time
364 8 💤 0 ❌ 0 🔥 12m 10s ⏱️

@ff137 ff137 merged commit 21c0076 into development Mar 25, 2024
44 checks passed
@ff137 ff137 deleted the fix/double-endorsement branch March 25, 2024 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants